VBA, VB.NET For Creo

IpfcParameterOwner (Managing creo parameters)

ToolBOX01 2025. 1. 18. 09:34
반응형

□ IpfcParameterOwner 소개

Parameter 소유자와 관련된 Parameter 목록을 제공하는 기능입니다. 이를 통해 사용자는 Parameter를 상호작용적으로 선택할 수 있습니다. 또한, 특정 이름으로 지정된 Parameter를 검색할 수 있습니다

▷ Parameter  소유자와 관련된 다양한 기능을 제공합니다. 주요 기능은 다음과 같습니다:

  • CreateParam: 지정된 이름과 값을 가진 파라미터를 데이터베이스에 추가하고 반환합니다.
  • CreateParamWithUnits: 단위가 있는 파라미터를 생성하고 초기화합니다.
  • GetParam: 이름으로 지정된 파라미터를 검색합니다.
  • ListParams: 파라미터 소유자와 관련된 파라미터 목록을 제공합니다.
  • SelectParam: 사용자가 목록에서 파라미터를 상호작용적으로 선택할 수 있게 합니다.
  • SelectParameters: 파라미터 선택 옵션에 따라 목록에서 파라미터를 상호작용적으로 선택할 수 있게 합니다

참고) 

Direct Known Subclasses:
IpfcModelItem, IpfcModel, IpfcMaterial

"Direct Known Subclasses" 의미
IpfcModel 클래스는 IpfcParameterOwner 인터페이스의 메서드와 속성을 사용할 수 있도록 정의되어 있습니다.

Dim Model As pfcls.IpfcModel
Dim ParameterOwner As pfcls.IpfcParameterOwner
set ParameterOwner = Model

 

▷  Code to get parameter names and values ​​stored in model

Dim Model As pfcls.IpfcModel
Dim ParameterOwner As IpfcParameterOwner
Dim Parameters As IpfcParameters
Dim ParameterObject As Object
Dim ParamValue As IpfcParamValue
Dim i As Integer

Set ParameterOwner = model
Set Parameters = ParameterOwner.ListParams()
For i = 0 To Parameters.Count - 1
	Set ParameterObject = Parameters.Item(i)
    Set ParamValue = ParameterObject.Value
    Ddburg.Print ParameterObject.Name
    
    If ParamValue.discr = 0 Then
    	Ddburg.Print ParamValue.StringValue
    ElseIf  ParamValue.discr = 1 Then     
        Ddburg.Print ParamValue.ParamValue.IntValue      
    ElseIf  ParamValue.discr = 2 Then     
        Ddburg.Print ParamValue.ParamValue.BoolValue
    ElseIf  ParamValue.discr = 3 Then     
        Ddburg.Print ParamValue.DoubleValue
    End If
Next i

 

▷  Code to get specific parameter values ​​from the model

Dim Model As pfcls.IpfcModel
Dim ParameterOwner As pfcls.IpfcParameterOwner
Dim BaseParameter As pfcls.IpfcBaseParameter
Dim ParamValue As pfcls.IpfcParamValue
Dim ParamterName As String
ParamterName = "PART_NAME"

Set ParameterOwner = Model
Set BaseParameter = ParameterOwner.GetParam(ParamterName)
set ParamValue= BaseParameter.Value

deburg.print ParamValue.StringValue

 

 Code to modify specific parameter values

Dim Model As pfcls.IpfcModel
Dim ParameterOwner As pfcls.IpfcParameterOwner
Dim BaseParameter As pfcls.IpfcBaseParameter
Dim Parameter As IpfcParameter
Dim ParamValue As pfcls.IpfcParamValue
Dim ParamObject As New CMpfcModelItem
Dim ParamterName As String
ParamterName = "PART_NAME"
Dim PART_NAMEValue As String
PART_NAMEValue = "korea"

Set ParameterOwner = Model
Set Parameter = ParameterOwner.GetParam(ParamterName)
set BaseParameter= Parameter
set ParamValue = ParamObject.CreateStringParamValue(PART_NAMEValue)
BaseParameter.Value = ParamValue

New CMpfcModelItem.CreateBoolParamValue
New CMpfcModelItem.CreateDoubleParamValue
New CMpfcModelItem.CreateIntParamValue
New CMpfcModelItem.CreateNoteParamValue
New CMpfcModelItem.CreateStringParamValue

  Code to create a string type parameter

Dim Model As pfcls.IpfcModel
Dim ParameterOwner As pfcls.IpfcParameterOwner
Dim Parameter As IpfcParameter
Dim ParamObject As New CMpfcModelItem
Dim ParamValue As New CpfcParamValue
Dim ParamterName As String
ParamterName = "PART_NAME"
Dim PART_NAMEValue As String
PART_NAMEValue = "korea"

Set ParameterOwner = Model
Set ParamValue = ParamObject.CreateStringParamValue(PART_NAMEValue)
Set Parameter = ParameterOwner.CreateParam(ParamterName, ParamValue)