반응형
엑셀 파일에 입력한 값을 모델에 저장 하는 기능 입니다
엑셀에서 파라메터 이름을 가져오고, 모델의 동일한 파라메터에 값을 저장 합니다.
- 파라메터 타입에 주의 합니다.
■ 사용자 화면
■ 코드
1. 설계자, 검도자, 승인자 (Designer, Checker, Approver) 값, part 파일에 입력 하기
for 문을 사용 하여 반복하여 Parameter 이름과 값을 엑셀에서 가져와 모델에 저장 합니다.
String 타입이므로 "CreateStringParamValue"을 사용 합니다.
'// DESIGNER,CHECKER,APPROVER ///////////////////////////////////////////////////////////////////////
For i = 0 To 2
oCellsParameterName = Cells(i + 7, "D") '// Parameter Name
Set oParameter = oParameterOwner.GetParam(oCellsParameterName)
Set oBaseParameter = oParameter
Set oParamValue = oCMModelItem.CreateStringParamValue(Cells(i + 7, "E")) '// Parameter Value
oBaseParameter.Value = oParamValue
Next i
2. 입력한 무게 값을 모델에 저장 합니다.
실수 (double) 타입 이므로 "CreateDoubleParamValue"을 사용 합니다.
'// MATERIAL MASS /////////////////////////////////////////////////////////
oCellsParameterName = Cells(17, "D") '// Parameter Name
Set oParameter = oParameterOwner.GetParam(oCellsParameterName)
Set oBaseParameter = oParameter
Set oParamValue = oCMModelItem.CreateDoubleParamValue(Cells(17, "C")) '// Parameter Value
oBaseParameter.Value = oParamValue
Sub ParamSave()
Call Creo_Connect
On Error GoTo RunError
'// Creo Parameter variable
Dim oParameterOwner As IpfcParameterOwner
Dim oBaseParameter As IpfcBaseParameter
Dim oParamValue As IpfcParamValue
Dim oParameter As IpfcParameter
Dim oCMModelItem As New CMpfcModelItem
Dim oModelItem As IpfcModelItem
Dim oCellsParameterName As String
Dim i As Integer, j As Integer
Set oParameterOwner = oModel
'// DESIGNER,CHECKER,APPROVER ///////////////////////////////////////////////////////////////////////
For i = 0 To 2
oCellsParameterName = Cells(i + 7, "D") '// Parameter Name
Set oParameter = oParameterOwner.GetParam(oCellsParameterName)
Set oBaseParameter = oParameter
Set oParamValue = oCMModelItem.CreateStringParamValue(Cells(i + 7, "E")) '// Parameter Value
oBaseParameter.Value = oParamValue
Next i
'// MATERIAL FINISH,PART_NO,PART_NAME /////////////////////////////////////////////////////////
For j = 0 To 3
oCellsParameterName = Cells(j + 13, "D") '// Parameter Name
Set oParameter = oParameterOwner.GetParam(oCellsParameterName)
Set oBaseParameter = oParameter
Set oParamValue = oCMModelItem.CreateStringParamValue(Cells(j + 13, "C")) '// Parameter Value
oBaseParameter.Value = oParamValue
Next j
'// MATERIAL MASS /////////////////////////////////////////////////////////
oCellsParameterName = Cells(17, "D") '// Parameter Name
Set oParameter = oParameterOwner.GetParam(oCellsParameterName)
Set oBaseParameter = oParameter
Set oParamValue = oCMModelItem.CreateDoubleParamValue(Cells(17, "C")) '// Parameter Value
oBaseParameter.Value = oParamValue
oModel.Save
MsgBox "Model Saved", vbInformation, "www.idt21c,com"
'// Disconnect with Creo
conn.Disconnect (2)
'// Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set oSession = Nothing
Set oModel = Nothing
Exit Sub
RunError:
If Err.Number <> 0 Then
MsgBox "Process Failed : Unknown error occurred." + Chr(13) + _
"Error No: " + CStr(Err.Number) + Chr(13) + _
"Error: " + Err.Description, vbCritical, "Error"
If Not conn Is Nothing Then
If conn.IsRunning Then
conn.Disconnect (2)
End If
End If
End If
End Sub
'VBA For Creo' 카테고리의 다른 글
Get the parameter value in the feature (0) | 2023.02.08 |
---|---|
함께 VBA 만들기 #7 - Creo 3D 모델 정보 보기 프로그램 사용 방법 (0) | 2023.02.08 |
함께 VBA 만들기 #5 - Material 지정 및 무게 계산 (0) | 2023.02.08 |
VBA Start Template (0) | 2023.02.05 |
함께 VBA 만들기 #4 - Creo 3D 모델 정보 보기 (0) | 2023.02.05 |