업무 자동화/VBA, VB.NET For Creo

IpfcModel : Property RelationId

ToolBOX01 2025. 11. 12. 09:03
반응형

◎ Property RelationId as Long [readonly, optional]

IpfcModel.RelationId 속성의 주된 기능모델에 정의된 매개변수 관계(Relations)의 고유 식별자(ID)를 검색하는 것입니다. 그러나 프로그래밍 관점에서 볼 때, 이 속성의 반환 값을 통해 "Creo 모델에 관계식이 없는 경우"를 판별하는 용도로 사용될 수 있습니다. 이 속성은 모델에 설정된 관계(Relation), 즉 치수나 매개변수 간의 수학적 수식에 부여된 고유한 정수형 ID 값(Long 타입)을 가져오는 것이 주 목적입니다

. Relation Identifier (관계 식별자):

  • Creo 모델 내의 특정 피처, 주석, 혹은 다른 요소들이 가지고 있는 관계를 고유하게 식별하는 Long 정수 값입니다.
  • Readonly (읽기 전용):
    이 값은 코드로 설정할 수 없고, Creo가 내부적으로 부여한 값을 읽기만 할 수 있습니다.
  • Optional (선택적) / Null 가능:
    해당 엔티티가 특정 관계 식별자를 가지고 있지 않다면 이 속성은 null이 될 수 있습니다.

사용 목적:

관계나 연관성을 가지는 요소를 프로그래밍 방식으로 찾거나 분류할 때 유용할 수 있습니다.

만약 사용자가 Creo Toolkit API를 사용하여 모델의 관계 목록을 검색한다면, 다음과 같은 정보를 얻을 수 있으며, 여기서 <고유 정수> 부분이 RelationId의 실제 값이 됩니다.

Relation Expression IpfcModel.RelationId (예시 값)
d1 = d2 1001
d3 = 2 * d1 1002
P_WIDTH = 50.0 1003

예시:  관계식 **d1 = d2**에 할당된 IpfcModel.RelationId의 값은 **1001**과 같은 임의의 고유한 정수일 수 있지만, 이 값을 미리 알 수는 없습니다.


💻 Sample code

Creo 모델에서 주석 목록을 순회하며, 각 주석이 가진 관계 ID (Property RelationId) 속성 읽어오는 로직을 보여줍니다.

Dim Session As IpfcBaseSession
Dim Model As IpfcModel
Set Model = Session.GetCurrentModel()

Dim RelationID As Long
RelationID = Model.RelationId

If RelationID = 0 Or Err.Number <> 0 Then
    ' ID가 0이거나 (Creo API에서 0을 반환할 수 있음)
    ' RelationId를 가져오는 과정에서 오류가 발생했다면 (NULL 반환의 VB 처리)
    MsgBox "관계식 없음"
Else
    ' 유효한 ID (0이 아닌 Long 값)가 성공적으로 반환된 경우
    MsgBox "관계식 존재"
End If

 

참고  Relations 

 

 

• 모델 파라미터 관리 및 관계 설정
설계 의도를 모델에 반영하는 기본적인 방법 중 하나는 치수 또는 매개변수 간의 관계를 정의하는 것입니다. 모델을 사용자 친화적으로 만들기 위해 치수 이름을 변경하고, '도구' 탭 또는 '모델' 탭에서 '관계' 기능을 사용하여 대화 상자를 열 수 있습니다.

• 치수 관계의 종류 및 활용
관계는 크게 세 가지 종류로 나눌 수 있습니다. 첫째, 등호 관계는 우변 표현식을 좌변에 할당합니다. 둘째, 비교 관계는 특정 표현식이 참인지 거짓인지 확인하며, 예를 들어 치수가 특정 값보다 크거나 같도록 제약 조건을 설정할 수 있습니다. 셋째, IF-THEN-ELSE 관계는 조건에 따라 다른 결과를 적용할 수 있게 합니다.

• 관계 설정 예시 및 단위 민감성
코일 수를 기준으로 피치를 제어하거나, 스프링 길이가 특정 값보다 길면 직경을 다르게 설정하는 등 다양한 관계를 설정할 수 있습니다. 관계 설정 시 단위 민감성을 고려하면, 서로 다른 단위를 가진 매개변수를 잘못 사용할 경우 오류를 방지할 수 있습니다.

by korealionkk@gmail.com


 

 

반응형