■ Parameter 값을 가져 오는 기능
- 지정된 Parameter 값을 가져 옵니다
- 지정된 Parameter 가 모델에 없으면 자동으로 모델에 생성 됩니다.
모델에서 Parameter 값을 가지고 올수 있습니다.
Dim oParameterOwner As IpfcParameterOwner
Set oParameterOwner = oModel
Dim oBaseParameter As pfcls.IpfcBaseParameter
Set oBaseParameter = oParameterOwner.GetParam("PART_NO")
Cells(7, "E") = oBaseParameter.Value
모델에 String 타입 Parameter 만들고 기본값을 입력 합니다.
Dim oParameterOwner As IpfcParameterOwner
Set oParameterOwner = oModel
Dim oCMModelItem As New CMpfcModelItem
Dim oParamValue As IpfcParamValue
Set oParamValue = oCMModelItem.CreateStringParamValue ( "A001-23457AB")
Dim oParameter As IpfcParameter
Set oParameter = oParameterOwner.CreateParam("PART_NO"), oParamValue)
1. 설계자, 검도자, 승인자 코드
모델에 설계자 검도자, 승인자에 해당하는 Parameter가 없으면, 자동으로 생성 됩니다. 기본값은 "not"가 입력 되고 ,모델에 저장 됩니다
Dim i As Long, j As Long
'// Designer, Checker, Approver Parameter Define ////////////////////////////////
For i = 0 To 2
Set oBaseParameter = oParameterOwner.GetParam(Cells(i + 7, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateStringParamValue("not")
Set oParameter = oParameterOwner.CreateParam(Cells(i + 7, "D"), oParamValue)
Cells(i + 7, "E") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(i + 7, "E") = oParamValue.StringValue
End If
Next i
2. Part_no ~ weight 값을 엑셀 파일로 가져 옵니다.
Dim i As Long, j As Long
'// Material, Finish, Part_no, Part_name Parameter Define
For j = 0 To 3
Set oBaseParameter = oParameterOwner.GetParam(Cells(j + 13, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateStringParamValue("not")
Set oParameter = oParameterOwner.CreateParam(Cells(j + 13, "D"), oParamValue)
Cells(j + 13, "C") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(j + 13, "C") = oParamValue.StringValue
End If
Next j
'///////////////////////////////////////////////////////////////////////////////////
'// Weight Parameter Define
Set oBaseParameter = oParameterOwner.GetParam(Cells(17, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateDoubleParamValue(0#)
Set oParameter = oParameterOwner.CreateParam(Cells(17, "D"), oParamValue)
Cells(17, "C") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(17, "C") = oParamValue.DoubleValue
End If
'///////////////////////////////////////////////////////////////////////////////////
■ 전체 코드
Sub New_parameter()
Dim oParameterOwner As IpfcParameterOwner
Set oParameterOwner = oModel
Dim oBaseParameter As pfcls.IpfcBaseParameter
Dim oParameter As IpfcParameter
Dim oParamValue As IpfcParamValue
Dim oCMModelItem As New CMpfcModelItem
Dim oModelItem As IpfcModelItem
Dim oCellsParameterName, oCellsParameterType As String
Dim i As Long, j As Long
'// Designer, Checker, Approver Parameter Define ////////////////////////////////
For i = 0 To 2
Set oBaseParameter = oParameterOwner.GetParam(Cells(i + 7, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateStringParamValue("not")
Set oParameter = oParameterOwner.CreateParam(Cells(i + 7, "D"), oParamValue)
Cells(i + 7, "E") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(i + 7, "E") = oParamValue.StringValue
End If
Next i
'///////////////////////////////////////////////////////////////////////////////////
'// Material, Finish, Part_no, Part_name Parameter Define
For j = 0 To 3
Set oBaseParameter = oParameterOwner.GetParam(Cells(j + 13, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateStringParamValue("not")
Set oParameter = oParameterOwner.CreateParam(Cells(j + 13, "D"), oParamValue)
Cells(j + 13, "C") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(j + 13, "C") = oParamValue.StringValue
End If
Next j
'///////////////////////////////////////////////////////////////////////////////////
'// Weight Parameter Define
Set oBaseParameter = oParameterOwner.GetParam(Cells(17, "D"))
If oBaseParameter Is Nothing Then
Set oParamValue = oCMModelItem.CreateDoubleParamValue(0#)
Set oParameter = oParameterOwner.CreateParam(Cells(17, "D"), oParamValue)
Cells(17, "C") = "not"
Else
Set oParamValue = oBaseParameter.Value
Cells(17, "C") = oParamValue.DoubleValue
End If
'///////////////////////////////////////////////////////////////////////////////////
End Sub
'VBA For Creo' 카테고리의 다른 글
VBA Start Template (0) | 2023.02.05 |
---|---|
함께 VBA 만들기 #4 - Creo 3D 모델 정보 보기 (0) | 2023.02.05 |
마이크로소프트(MS)가 인공지능(AI) 챗봇 기능 기반의 제품을 출시 (0) | 2023.02.03 |
함께 VBA 만들기 #2 - Creo 3D 모델 정보 보기 (0) | 2023.02.02 |
함께 VBA 만들기 #1 - Creo 3D 모델 정보 보기 (0) | 2023.02.02 |