본문 바로가기
  • Welcome!
VBA For Creo

#2/3 Helical Sweep & VBA

by ToolBOX01 2023. 8. 7.
반응형

□ 매개변수 값 변경 기능 소개

매개변수 및 치수 값을 변경 하여 모델을 변경 합니다. 변경 값은 엑셀에서 입력 합니다. 매개변수 이름은 "SPRING_NUMBER"입니다. 매개변수 타입은 "정수" 입니다.  SPRING_NUMBER 매개변수는 관계식으로 정의 되어 있습니다.

 

#1/2 Helical Sweep & VBA

■ Helical Sweep 소개 HELICAL SWEEP는 나선형 형상을 생성하는 기능으로, 회전하는 형상을 디자인할 때 유용하게 활용됩니다. 이 기능은 주로 나선형 또는 나선형 특성을 가진 형상을 만들 때 사용됩

tool-2020.tistory.com


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