□ 소개
Excel VBA 프로그램으로 Creo Model의 Dimension 값을 가져오고, 변경 할수 있습니다. 새로운 모델을 생성 할수 있습니다.
이를 위해 프로그램에 어떤 모델을 호출 해야하는지 지정을 해야 합니다. 또한 모델의 어떤 치수 이름을 호출해야 하는지 지정을 해야 합니다.
모델의 치수 이름은 "편집"기능을 사용 하여, 사용자가 정의 할수 있습니다. 다음 블로그를 참고 하십시요
1단계: Creo 모델과 연결 하기 (CreoVBAStrat 모듈)
Option Explicit
Public asynconn As New pfcls.CCpfcAsyncConnection
Public conn As pfcls.IpfcAsyncConnection
Public BaseSession As pfcls.IpfcBaseSession
Public Model As pfcls.IpfcModel
Public Sub CreoConnt01()
'// connect creo model
Set conn = asynconn.Connect(Null, Null, Null, Null)
Set BaseSession = conn.Session
Set Model = BaseSession.CurrentModel
'// creo model connection check
If Model Is Nothing Then
MsgBox "There are No Active Creo Models", vbInformation, "korealionkk@gmail.com"
Exit Sub
End If
End Sub
2단계: Creo 모델로 부터 치수 이름 및 값 가져오기 코드 만들기
Creo 활성화 된 모델(객체 = Object)이 있으면, 변수 "Model"에 입력 됩니다. 모델이 가지고 있는 모델 아이템들 중에, 필요한 모델아이템을 가져오고, 모델 아이템중 치수유형을 선택하고, 치수를 변경 하면 됩니다.
- IpfcModelItemOwner
- IpfcModelItems
- IpfcBaseDimension
▷ IpfcModelItemOwner
모델 아이템(model item)과 연관된 객체의 기반 클래스입니다. 모델 아이템을 소유하고 관리하는 객체의 부모 클래스라고 할 수 있습니다. 모델(IpfcModel)은 여러 모델 아이템(예: 파트, 어셈블리, 도면 등)을 포함할 수 있습니다. 이러한 경우, 모델은 IpfcModelItemOwner 인터페이스를 구현하여 모델 아이템들을 관리할 수 있습니다. 모델의 갣채로 부터 모델 아이템을 가져오려면 "IpfcModelItemOwner 인터페이스"를 사용 해야 합니다
set IpfcModelItemOwner = IpfcModel
▷ IpfcModelItems
모델 아이템은 모델을 구성하는 가장 기본적인 단위이므로, 모델의 복잡성과 기능을 결정하는 데 중요한 역할을 합니다. 모델 아이템을 효율적으로 관리하고 활용함으로써, 모델의 성능을 향상시키고 유지보수를 용이하게 할 수 있습니다.
이클래스는 모델 아이템들의 목록을 나타냅니다. 이 목록은 순서가 있는 리스트로, 각 모델 아이템은 특정한 인덱스(0부터 시작하는 정수)에 위치합니다. 이 클래스를 사용하면 다음과 같은 작업을 할 수 있습니다:
- 인덱스를 이용한 모델 아이템 접근: 특정 인덱스에 해당하는 모델 아이템을 가져올 수 있습니다.
- 모델 아이템의 추가, 삭제, 수정: 목록에 새로운 모델 아이템을 추가하거나, 기존의 모델 아이템을 삭제 또는 수정할 수 있습니다.
- 모델 아이템의 순서 변경: 모델 아이템의 순서를 변경할 수 있습니다.
- 모델 아이템의 검색: 특정 조건에 맞는 모델 아이템을 검색할 수 있습니다.
Function ListItems (Type as IpfcModelItemType [optional]) as IpfcModelItems [optional]
"Function" 함수는 함수를 실행하고, 결과 값을 "IpfcModelItems" 유형으로 반환 받습니다. 아래와 같은 코드를 추가 합니다. Creo 모델의 치수 유형의 객체를 모두 배열의 상태로 가져 옵니다.
Set modelitems = Modelowner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION)
적용 가능 한 "Solid" EpfcModelItemType . . .
- ITEM_FEATURE
- ITEM_SURFACE
- ITEM_COORD_SYS
- ITEM_AXIS
- ITEM_QUILT
- ITEM_EDGE
- ITEM_POINT
- ITEM_CURVE
- ITEM_LAYER
- ITEM_SOLID_GEOMETRY
- ITEM_NOTE
- ITEM_DIMENSION
- ITEM_REF_DIMENSION
- ITEM_EXPLODED_STATE
- ITEM_SIMPREP
▷ IpfcBaseDimension
IpfcBaseDimension 인터페이스는 기본적인 치수(Dimension) 또는 참조 치수(Reference Dimension)를 정의합니다.
다양한 유형의 치수를 위한 기본적인 속성과 기능을 제공합니다. 이를 통해 치수의 생성, 수정, 조회 등의 작업을 수행할 수 있습니다. 사용 가능 한 치수 타입은 아래와 같습니다
- DIM_LINEAR
- DIM_RADIAL
- DIM_DIAMETER
- DIM_ANGULAR
IpfcModelItems의 Dimension의 객체(Object - 덩어리)를 순치적으로 받습니다. for 문을 사용 합니다.
For i = 0 To modelitems.Count - 1
Set BaseDimension = modelitems(i)
Msgbox BaseDimension.Symbol
Msgbox BaseDimension.DimValue
Next i
Set BaseDimension = modelitems(i) : i에 "0"을 대입합니다. 즉, 첫번째 순서의 Dimension의 객체(Object - 덩어리)를 BaseDimension이라는 객체에 대입합니다. 메제시 박스에 BaseDimension.Symbol - 치수 이름을 표시 합니다. 메제시 박스에 BaseDimension.DimValue - 치수 값을 표시 합니다
IF문을 만들어 BaseDimension.Symbol 이름과 사용자가 정의한 이름이 같다면, 어떤 행동을 하라고 정의 합니다.
3단계: 치수 변경 프로그램 만들기
VBA 프로그램으로 Template 모델을 불러올수 있습니다. 치수를 변경하고, 새로운 파일로 저장 할수 있습니다.
아직 설계 되지 않은 치수로 모델을 자동으로 수백, 수천개를 만들수 있습니다.
이것을 하기 위해서는 설계자가 Creo 모델을 변경 할수 있게 모델을 잘 만들어야 합니다. Creo의 하향식 설계 방법을 학습하면, 쉽게 설계를 자동화 할수 있습니다
korealionkk@gmail.com
'VBA, VB.NET For Creo' 카테고리의 다른 글
Creo Model Open (0) | 2024.11.19 |
---|---|
Show the current Working Directory (0) | 2024.11.19 |
IpfcComponentPath (0) | 2024.11.15 |
Iintseq 클래스 (0) | 2024.11.15 |
Cintseq (0) | 2024.11.15 |