□ 매개변수 값 변경 기능 소개
매개변수 및 치수 값을 변경 하여 모델을 변경 합니다. 변경 값은 엑셀에서 입력 합니다. 매개변수 이름은 "SPRING_NUMBER"입니다. 매개변수 타입은 "정수" 입니다. SPRING_NUMBER 매개변수는 관계식으로 정의 되어 있습니다.
VBA CODE
Spring Model을 Open 하고 VBA 프로그램과 연결하는 모듈을 호출 합니다.
▷ Conect 모듈
Public asynconn As New pfcls.CCpfcAsyncConnection
Public conn As pfcls.IpfcAsyncConnection
Public session As pfcls.IpfcBaseSession
Public model As pfcls.IpfcModel
Sub model_session()
'/현재 session에 있는 모델의 이름을 표시합니다
Set conn = asynconn.Connect("", "", ".", 5)
Set session = conn.session
Set model = session.CurrentModel
On Error GoTo E01
If model Is Nothing Then
Err.Raise 5001, , "▶ 현재 활성화된 모델이 없습니다 ◀"
End If
Exit Sub
E01:
MsgBox "Error Number: " & Err.Number & vbNewLine & _
"Error Description: " & Err.Description
Err.Clear
End Sub
▷ Main 프로그램
아래와 같은 함수를 호출 하여 변수를 정의 합니다.
1) IpfcParameterOwner :
Creo Parametric 모델 내에서 매개 변수를 소유하고 있는 요소를 나타내는 인터페이스입니다. 이는 Creo Parametric에서 모델 요소(예: 부품, 어셈블리 등)가 가지고 있는 매개 변수에 액세스하고 이러한 매개 변수를 수정하는 데 사용됩니다.
2) IpfcParameter :
IpfcParameter 인터페이스를 사용하면 이름, 값, 단위 및 기타 특성과 같은 매개변수의 다양한 속성에 액세스할 수 있습니다. 이 인터페이스를 사용하면 Creo Parametric 모델 내에서 프로그래밍 방식으로 매개변수 값을 읽고 수정할 수 있습니다.
3) IpfcParamValue :
이 클래스는 매개변수의 타입을 설명합니다.
EpfcPARAM_STRING /EpfcPARAM_INTEGER/EpfcPARAM_BOOLEAN/ EpfcPARAM_DOUBLE
4) IpfcBaseParameter :
Creo Parametric 매개변수가 지정, 관계식에 사용, 수정 (IsDesignated / IsModified / IsRelationDriven) 되었는지를 YES / NO로 표시 합니다. 프로그램에서 매개변수의 치수값을 가져오고, 보낼수 있습니다
모델에서 매개변수 이름을 가져오기 위해 "IpfcParameterOwner" 로 연결 합니다. "IpfcParameter"로 "SPRING_NUMBER"
매개변수 이름을 가져오고, 매개변수 타입을 "IpfcParamValue" 정의 합니다. 엑셀 파일에 있는 감김수 값을 "IpfcBaseParameter"을 이용하려 Creo의 매개변수 "SPRING_NUMBER" 매개변수에 저장 합니다
Sub idt_spring()
'/ 현재 세션 연결
file_name.model_session
'// Creo Parameter variable
Dim ParameterOwner As IpfcParameterOwner
Dim BaseParameter As IpfcBaseParameter
Dim ParamValue As IpfcParamValue
Dim Parameter As IpfcParameter
Dim CMModelItem As New CMpfcModelItem
Set ParameterOwner = model
Set Parameter = ParameterOwner.GetParam("SPRING_NUMBER")
Set ParamValue = CMModelItem.CreateIntParamValue(Cells(5, "D"))
Set BaseParameter = Parameter
BaseParameter.Value = ParamValue
End Sub
* 주의
엑셀의 치수 값을 모델에 넣기 위해서는 "BaseParameter.Value = ParamValue" 형식의 코드를 사용 합니다
반대로 모델에 있는 치수를 엑셀에 표시 하려면 "ParamValue = BaseParameter.Value" 형식의 코드를 사용 합니다
감김수 5 | 감김수 7 | 감김수 10 |
모델을 자동으로 업데이트 하는 코드는 넣지 않았습니다. 블로그에 자동 업데이트 및 저장 기능이 있습니다.
Creo 자동 설계는 모델과 도면이 잘 만들어(?) 있으면, VBA와 같은 개발 도구를 사용하여 자동 설계가 가능 합니다
ToolBOX 프로그램은 정의된 모델을 불러오고, 치수 변경, 부품 교체가 가능한 프로그램을 판매 하고 있습니다
많은 관심 부탁드립니다.
영업 문의 : lionkk@idt21c.com
'VBA For Creo' 카테고리의 다른 글
모델의 Front 뷰를 360도 회전 하기 (0) | 2023.08.07 |
---|---|
#3/3 Helical Sweep & VBA (0) | 2023.08.07 |
#1/3 Helical Sweep & VBA (0) | 2023.08.06 |
모델이 가지고 있는 치수 이름, 값, 타입 표시 (0) | 2023.08.04 |
주 관성 모멘트(CenterGravityInertiaTensor의 고유값) (0) | 2023.08.03 |