본문 바로가기
  • 환영 합니다 ! Welcome!
VBA For Creo

4-1 # Parameter : 이름 및 값 표시 하기

by ToolBOX01 2020. 11. 30.
반응형

모델이 가지고 있는 Parameter 이름 및 타입 (string, 정수, 실수) 표시 하는 프로그램 입니다. 매개변수 이름과 값을 표시
하기 위해, 아래와 같은 클래스를 연결 합니다. 

주요 객체 연결 관계

 

1. 단계 :  변수 oModel에 현재 활성화된 Creo 모델 연결 하기

Sub Param_List()
    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection : Set conn = asynconn.Connect("", "", ".", 5)
    Dim session As pfcls.IpfcBaseSession: Set session = conn.session
    Dim oModel As IpfcModel: Set oModel = session.CurrentModel
    Range("B3") = oModel.Filename  '현재 활성화된 파일 이름을 표시 합니다"

 

2 단계 : CREO의 파일의 Parameter 이름, 값, 타입을 표시 합니다. 모델이 가지고 있는 Paramter를 List (배열) 형식으로
              가지고 옵니다.

    Dim oPowner As pfcls.IpfcParameterOwner: Set oPowner = oModel
    Dim oParams As IpfcParameters: Set oParams = oPowner.ListParams()

IpfcparameterOwner는 모델 또는 모델 아이템 등과 연관된 파라미터를 갖는 오브젝트에 대한 베이스 클래스이다.
"Listparams()" 등 매개변수를 블러오거나, 생성 하거나, 선택 할때 필요하다.

Set oParams = oPowner.ListParams() 중  "oPowner.ListParams()" 의미는 무얼까? "oPowner"는 "IpfcparameterOwner" 객체 타입니다. 즉 "ListParams() " 함수를 사용 할수 있고. "Set oPowner = oModel" 에서 현재 모델이 대입 되어 있다.

 

Function ListParams () as IpfcParameters [optional]

 - 매개변수 소유자와 연관된 매개변수 목록을 제공합니다.

 

 

3 단계 : 매개변수 정의  

 

예:) 모델의 Paramter

Part 파일의 매개변수
매개변수 속성

매개변수 "oParams"은 모델의 모든 Parameter의 이름, 값 및 데이터 타입을 가지고 있습니다.
아래 코드는 For문을 이용 하여, oParams에 있는 Parameter들을 엑셀에 표시 합니다. 

Parameter의 이름은 IpfcNamedModelItem 객체 타입으로 정의한다.

 

    Dim oParam As IpfcBaseParameter
    Dim oParamValue As IpfcParamValue
    Dim oParamName As IpfcNamedModelItem

    For i = 0 To oParams.Count - 1
        Set oParam = oParams(i)
        Set oParamValue = oParam.Value
        Set oParamName = oParam
        
        Cells(i, 2) = i + 1
        Cells(i, 3) = oParamName.Name

        If paramValue.discr = 0 Then 'If parameter is string
           		Cells(i, 4) = paramValue.StringValue
        	ElseIf paramValue.discr = 3 Then 'if parameter is real value
           		Cells(i, 4) = paramValue.DoubleValue
        End If
           Cells(i, 5) = params(i).Description  
    Next i

 

프로그램 실행 결과
parameter display.xlsm
0.02MB

 

    Dim NewDesignation As String

    If paramName.Name = "DESIGNATION" And paramValue.discr = 0 Then
       NewDesignation = InputBox("Changer la designation:")
     

 

비즈니스 문의 : lionkk@idt21c.com