□ 요청 사항
- 어셈블 파일을 구성하는 Component 파일들을 List 만들기
- Component의 유형 및 ID를 순차적으로 표시
- 맨 처음 Component를 제외한, 모든 Component를 Suppress 하고, Image 저장
- 순차적으로 Component들을 Resume 하고, Image 저장
□ 기능 개발
- 어셈블 파일을 구성하는 모든 Component 파일 이름을 LIST로 만들기, 중복 파일 이름 허용
- Component 파일 유형 및 ID들 LIST로 만들기
- Component Suppress 기능
- Component Resume 기능
- Image 변환 기능
□ 프로그램 UI
1단계 : 어셈블을 구성 하는 부품들 표시
번호, File 이름, File 유형 및 Feature ID 표시 합니다. File 이름은 PTC에서 제동 하는 코드를 사용 합니다.
▷ 활성된 어셈블 모델 이름, 메세지로 표시하는 코드
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
변수 "model"에 현재 활성화된 "어셈블 객체"가 입력 됩니다.
Public Sub CreoConnt01()은 여러 프로그램에서 호출하여 사용 하는 프로그램 입니니다. 이것은 모듈에 저장 합니다.
엑셀 sheet 마다 프로그램을 만듭니다. 공통 모듈은 재사용 합니다.
2단계 : 어셈블 모델 이름을 메세지로 표시
Option Explicit
Public useAsm As IpfcAssembly
Public pathArray As New Collection
Sub Suppress01()
On Error GoTo RunError
Application.EnableEvents = False
'// Module Name : CreoVBAStart
Call CreoVBAStart.CreoConnt01
MsgBox model.fileName, vbInformation, "korealionkk@gmail.com"
conn.Disconnect (2)
'// Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set BaseSession = Nothing
Set model = Nothing
RunError:
If Err.Number <> 0 Then
MsgBox "Process Failed: An error occurred." & vbCrLf & _
"Error No: " & CStr(Err.Number) & vbCrLf & _
"Error Description: " & Err.Description & vbCrLf & _
"Error Source: " & Err.Source, vbCritical, "Error"
If Not conn Is Nothing Then
If conn.IsRunning Then
conn.Disconnect (2)
End If
End If
End If
End Sub
3단계 : 어셈블 모델의 모든 부품 이름 가지고 오기
PTC가 제공 하는 프로그램을 활용 합니다.
□ IpfcComponentPath
이 클래스는 어셈블리 내의 구성 요소를 식별하고 찾습니다.
Property ComponentIds as Iintseq
이 구성 요소를 포함하는 다양한 하위 어셈블리를 통해 루트 어셈블리에서 구성 요소까지의 경로입니다. 이 시퀀스의 각 요소는 부모 어셈블리의 구성 요소 기능 식별자입니다.
▷ 예제 코드
Dim eachPath As IpfcComponentPath
Dim ComponetIDIintseq As Iintseq
Set ComponetIDIintseq = eachPath.ComponentIds
Worksheets("Suppress").Cells(iCnt + 6, "D") = ComponetIDIintseq.item(ComponetIDIintseq.Count - 1)
▷ Download File
simplified representation
the VB API supports simplified representation of assemblies only, not parts.
단순화 표현은 IpfcSimRep 클래스로 식별됩니다. 이 클래스는 IpfcModelItem의 자식이므로 IpfcModelItems를 처리하는 메서드를 사용하여 단순화된 표현을 수집, 검사 및 수정할 수 있습니다.
IpfcModel > IpfcModelItemOwner > IpfcModelItems > IpfcSimRep
□ IpfcSimpRepInstructions
IpfcSimpRepInstructions 인터페이스는 단순화 표현(Simplified Representation)을 정의하는 데 필요한 데이터를 포함하는 클래스의 기반 클래스입니다. 이 인터페이스를 상속하는 클래스는 단순화 표현을 생성하거나 가져오는 등의 작업을 수행할 수 있습니다.
직접적인 하위 클래스
- IpfcRetrieveExistingSimpRepInstructions: 기존의 단순화 표현을 가져오는 데 사용되는 클래스입니다.
- IpfcCreateNewSimpRepInstructions: 새로운 단순화 표현을 생성하는 데 사용되는 클래스입니다.
Function CCpfcCreateNewSimpRepInstructions.Create (NewSimpName as String) as IpfcCreateNewSimpRepInstructions
위 기능은 새로운 단순화 표현을 만드는 데 사용되는 새 객체를 만듭니다.
▷ 새로운 단순화 표현 이름 만들기
Dim SimpRepInstructions AS IpfcSimpRepInstructions
Dim CreateNewSimpRepInstructions AS New.CCpfcCreateNewSimpRepInstructions
Dim NewSimpRepInstructions AS IpfcCreateNewSimpRepInstructions
Set NewSimpRepInstructions = CreateNewSimpRepInstructions.Create("IDT_DEMO")
Set SimpRepInstructions = NewSimpRepInstructions
SimpRepInstructions.DefaultAction = EpfcSIMPREP_INCLUDE
korealionkk@gmail.com
'VBA, VB.NET For Creo' 카테고리의 다른 글
IpfcAssembly 는 IpfcSolid 의 인스턴스입니다 (0) | 2024.11.13 |
---|---|
개발 요청] 이미지 생성 프로그램 #2 (1) | 2024.11.10 |
깃 데스탑 설치와 사용 방법 (0) | 2024.10.15 |
Git Hub를 사용하기 (2) | 2024.10.15 |
Get unit information from part file (0) | 2024.10.05 |