IpfcModel : Property RelationId
◎ 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
