■ 소개
모델이 가지고 있는 치수 이름 및 값, 타입을 모두 표시 합니다. "IpfcBaseDimension" 함수를 사용 합니다.
* Part 모드에서만 사용 가능 합니다
▷ "IpfcBaseDimension" 함수 기능 ...
기본 치수(Base Dimension)는 부품 또는 어셈블리의 기하적 요소를 측정하고 제어하는 데 사용되는
중요한 치수입니다. 예를 들어, 부품의 길이, 너비, 높이 등의 치수가 기본 치수에 해당합니다.
이러한 치수를 정확하게 설정하면 모델의 형상과 크기를 정확하게 제어할 수 있으며, 설계 변경
시에도 이러한 치수들을 변경함으로써 모델을 자동으로 업데이트할 수 있습니다.
▷ IpfcBaseDimension.DimType
번호 | 0 | 1 | 2 | 3 |
DimType | EpfcDIM_LINEAR - A linear dimension. |
EpfcDIM_RADIAL - A radial dimension. |
EpfcDIM_DIAMETER - A diametrical dimension. |
EpfcDIM_ANGULAR - An angular dimension. |
모델이 가지고 있는 치수의 타입을 표시 합니다. 참조 치수를 구분하여 표시 하지 않습니다
▷ IpfcBaseDimension.Symbol
1) d #
모델에서 피쳐 생성 중에 생성된 표시(구동) 치수입니다. 이러한 치수는 모델과 도면 간에 연관 양방향입니다.
2) ad #
모델과 연관되고 모델과 함께 저장되지만 드로잉에서 수정할 수 없는 생성된(구동) 치수입니다. 이러한 치수는 모델
형상이 수정된 경우에만 드로잉에서 업데이트됩니다.
3) add #
참조하는 형상이나 도면 요소에 여전히 연관되어 있지만 드로잉과 함께 저장되는 도면 치수를 생성했습니다.
config.pro 옵션 create_drawing_dims_only 또는 draw_models_read_only 의 값이 yes 인 경우 치수 결과를
추가합니다. 도면 형상을 참조하기 위한 추가 치수를 생성하려면 associative_dimensioning 세부 옵션을 yes 로
설정해야 합니다 .
4) dd #
참조하는 도면 요소와 연관되지 않은 도면 치수입니다. dd 치수를 생성하려면 associative_dimensioning 세부
옵션을 기본값인 no 로 설정해야 합니다 .
"IpfcModelItems"는 Creo Parametric의 VBA API(Virtual Basic for Applications Application Programming Interface)에서 제공하는 인터페이스 중 하나입니다. 이 인터페이스를 통해 여러 개체(Items)를 다룰 수 있습니다.
"ModelItems"는 Creo Parametric 모델 내에 존재하는 다양한 개체들을 나타내는 컬렉션(Collection)입니다.
▷ part > feature > dimension name
Session > model > feature > dimension 순서로 치수 이름 및 값을 검색 하고 표시 합니다.
1) 연결 모듈
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
End Sub
모듈 이름은 "file_name" 입니다. 프로그램 프로시져는 "model_session"입니다.
main 프로그램에서는 "file_name.model_session" 코드를 넣으면 됩니다. 이렇게 하면 모듈을 불러 옵니다
▷ IpfcModelItemOwner
CAD API를 사용하는 프로그래밍에서 IpfcModelItemOwner는 모델 아이템들을 관리하는 중요한 인터페이스로, 모델의 구성 요소에 대한 액세스와 조작을 가능하게 합니다. 이를 통해 CAD 소프트웨어와 외부 프로그램 간의 상호 작용을 용이하게 합니다.
▷ IpfcModelItem
IpfcModelItem 인터페이스는 모델 아이템들의 속성과 메서드에 액세스하는 데 사용됩니다. 예를 들어, 특정 모델 아이템의 이름, ID, 타입 등의 속성을 얻거나, 모델 아이템을 이동하거나 삭제하는 등의 작업을 수행할 수 있습니다.
▷ IpfcFeature
ipfcFeature는 CAD 모델 내에서 3D 디자인을 구성하는 기본 요소 중 하나로, 보통 어떤 형상, 도형, 연산 또는 기능을 나타냅니다. 예를 들어, 원, 직선, 각도, 둥근 구멍, 치공, 프로파일 추가 등이 특성의 예시입니다.
IpfcFeature 인터페이스는 특성의 속성과 메서드에 액세스하는 데 사용됩니다. 몇 가지 주요 메서드와 속성은 다음과 같습니다
- GetName: 특성의 이름을 가져옵니다.
- GetId: 특성의 고유 ID를 가져옵니다.
- GetType: 특성의 타입을 가져옵니다. (예: 원, 직선, 각도 등)
- GetSubItemType: 특성의 서브 아이템 타입을 가져옵니다. (특성의 경우에는 특성의 서브 아이템 타입, 예를 들어, 둥근 구멍, 프로파일 추가 등)
- GetOwner: 특성의 소유자(부모)를 가져옵니다. (일반적으로 어셈블리 또는 부품이 될 수 있습니다)
- ListSubItems: 특성의 서브 아이템들을 리스트로 가져옵니다. (예를 들어, 특성에 연결된 차원들을 가져올 수 있습니다)
- Regenerate: 특성을 재생성합니다. (모델을 업데이트하는 경우에 사용됩니다)
- Delete: 특성을 삭제합니다.
Sub Dim_info()
'// 현재 세션 연결
file_name.model_session
Dim ModelItemOwner As IpfcModelItemOwner
Dim Featureitem As IpfcModelItem
Dim Feature As IpfcFeature
Set ModelItemOwner = Model
Set Featureitem = ModelItemOwner.GetItemByName(EpfcITEM_FEATURE, "KOREA_01")
Set Feature = Featureitem
Dim Dimensionitems As IpfcModelItems
Dim Dimension As IpfcBaseDimension
Set Dimensionitems = Feature.ListSubItems(EpfcModelItemType.EpfcITEM_DIMENSION)
Dim i As Integer
For i = 0 To Dimensionitems.Count - 1
Set Dimension = Dimensionitems(i)
Cells(i + 5, "C") = i + 1
Cells(5, "D") = Featureitem.GetName
Cells(i + 5, "E") = Dimension.Symbol
Cells(i + 5, "F") = Dimension.DimValue
Cells(i + 5, "G") = Dimension.DimType
Next i
'// Disconnect with Creo
conn.Disconnect (2)
'Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set session = Nothing
Set Model = Nothing
End Sub
위 코드는 part 모델의 특정 Feature 이름에 있는 치수 및 공차 값을 가져 옵니다. 이것을 사용 한다면 "A".part를 엑셀의 오른쪽에 표시하고 "B".part는 왼쪽에 표시할수 있습니다. 치수 값이 다른 Feature를 검색 가능한 기능 개발이 가능 합니다.동일한 모델에서 A0, A2, A3 버전의 차이점 Feature는 무엇일까요?
위 기능을 확장 한다면 꽤 많은 파생 기능을 개발 할수 있습니다. 치수 값을 읽으면 수정하여 모델을 변경 할수 있습니다.
동작 예제)
|
예제 파일
프로그램 파일
참고 사이트 . .
영업 문의 : lionkk@idt21c.com
'VBA For Creo' 카테고리의 다른 글
#2/3 Helical Sweep & VBA (0) | 2023.08.07 |
---|---|
#1/3 Helical Sweep & VBA (0) | 2023.08.06 |
주 관성 모멘트(CenterGravityInertiaTensor의 고유값) (0) | 2023.08.03 |
Module (0) | 2023.08.02 |
유용한 사이트 (0) | 2023.05.21 |