라이브러리 특성 값을 사용 하여, 어셈블 파일에 적용할 파일을 선택 할 수 있습니다. 관리자는 동일한 Class의 라이브러리 파일들을 특정 폴더에 저장 합니다
>> 관리자 모드
1. List
- Creo에서 라이브리 파일이 모여 있는 "Folder"를 작업 Directory 으로 설정 합니다.
- "List" 버튼을 클릭 하면 "Folder" 항목에 작업 Directory가 입력 됩니다.
작업 Directory의 모든 파일들의 "번호" 와 "Creo File Name" 항목에 표시합니다.
2. IMG
- 표시된 "Creo File Name" 모델의 이미지를 생성 합니다.
- 이미지 저장은 작업 Directory에 표시됩니다
3. 특성 값 "Maker", "Size", "Length", "DIA" 값을 입력 합니다.
- 엑셀의 필터링을 사용 합니다. 쉽게 검색을 할 수 있습니다.
* 라이브러리 내용이 갱신이 되면 관리자 모드를 재 실행 합니다. 또는 수동으로 입력 해야 합니다.
구글 드라이버, 네이버 N드이버등을 활용해 보세요. 다른 설계자와 협업이 가능 합니다. VBA 엑셀 프로그램 파일, CREO 라이브러리 파일들을 공유 하여 사용해보십시요. 설계 생산성이 매우 혁신적으로 개선 됩니다.
>> 사용자 모드
4. Open
- "Creo File Name" 항목을 파일 이름을 선택 합니다. 모델을 open 합니다
5. ASS'Y
- "Creo File Name" 항목을 파일 이름을 선택 합니다. 선택된 모델은 ASSY 모들에서 OPEN 됩니다
>> 참조
라이브러리 파일들은 폴더 단위로 관리 하고 공유 합니다. 라이브러리 폴더를 공유 하는 방법은 아래와 같습니다.
부품을 재사용할 수 있을 때마다 설계, 프로토타이핑, 검증, 제조 및 재고 유지 비용에 대한 불필요한 비용을 $20,000 이상 줄일 수 있습니다.
>> 라이브러리 관리 프로그램 이점
라이브러리 파일은 구매품, 또는 자주 사용하는 모델입니다. 라이브러리 파일은 검증, 설계 시간을 감소 시키고, 설계 생산성을 향상 시킵니다. 대부분 라이브러리 파일은 한군데 모여있습니다. 하지만 이름으로 검색 하기 때문에 설계자의 기억력을 테스트(?) 합니다. 엑셀의 필터링 기능을 사용하여, 검색을 쉽게 하여 creo 파일을 조립 할수 있습니다.
1. 모델 재사용 향상 (↑)
2. 부품 재사용 향상 (↑)
3. 지식 재사용 향상 (↑)
■ 어셈블 모드로 라이브러리 파일 불러오기 코드
Option Explicit
Sub CreoFileassy()
Application.EnableEvents = False
On Error GoTo RunError
Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection
Dim oSession As pfcls.IpfcBaseSession
Dim oModel As IpfcModel
Dim oSolid As IpfcSolid
Dim oAssembly As IpfcAssembly
Dim oAsmcomp As IpfcComponentFeat
Dim oCreoFileName As String
Set conn = asynconn.Connect("", "", ".", 5)
Set oSession = conn.session
Set oModel = oSession.CurrentModel
Dim oCreateModelDescriptor As New CCpfcModelDescriptor
Dim oModelDescriptor As IpfcModelDescriptor
'// cells Selecte File Open
oCreoFileName = Selection.Value
Set oModelDescriptor = oCreateModelDescriptor.CreateFromFileName(oCreoFileName)
Set oSolid = oSession.RetrieveModel(oModelDescriptor) '// Session으로 모델 불러오기
Set oAssembly = oModel
Set oAsmcomp = oAssembly.AssembleComponent(oSolid, Nothing)
oAsmcomp.RedefineThroughUI
conn.Disconnect (2)
'Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set oSession = Nothing
Set oModel = Nothing
RunError:
If Err.Number <> 0 Then
MsgBox "Process Failed : Unknown error occurred." + Chr(13) + _
"Error No: " + CStr(Err.Number) + Chr(13) + _
"Error: " + Err.Description, vbCritical, "Error"
If Not conn Is Nothing Then
If conn.IsRunning Then
conn.Disconnect (2)
End If
End If
End If
End Sub
■ 라이브러리 파일들 불러오기 코드
라이브러리 파일은 일반 PART 파일과 페밀리 테이블 파일이 섞여 있습니다. 페밀리 테이블 파일은 인스턴스 파일만 사용 합니다. 아래 코드는 일반 파일과 페밀리 테이블 파일의 인스터스 파일을 표시 합니다.
어셈블 기능은 표시 하지 않습니다. 개발을 하지 않았습니다. 다음 버전에서 추가할 예정 입니다.
Option Explicit
Public asynconn As New pfcls.CCpfcAsyncConnection
Public conn As pfcls.IpfcAsyncConnection
Public oSession As pfcls.IpfcBaseSession
Public oModel As IpfcModel
Sub FileList()
Application.EnableEvents = False
On Error GoTo RunError
'// Make an asynchronous connection with Creo
Set conn = asynconn.Connect("", "", ".", 5)
Set oSession = conn.Session
'// Family Table's Parameter
Dim generic As IpfcFamilyMember
Dim FamilyTablerows As IpfcFamilyTableRows
Dim FamilyTablerow As IpfcFamilyTableRow
Dim InstName As String
'// Work Folder Part File List
Dim oCreoFIleList As Istringseq
Set oCreoFIleList = oSession.ListFiles("*.prt", EpfcFILE_LIST_LATEST, Null)
Dim oCreoFileName As String
Dim oModelDescriptorCreate As New CCpfcModelDescriptor
Dim oModelDescriptor As IpfcModelDescriptor
Dim i, j, icnt, oCreoFileNameTrim, oCreoFileNamelength As Long
Dim rng As Range
icnt = 0
If oCreoFIleList.Count > 0 Then
For i = 0 To oCreoFIleList.Count - 1
'// Creo File Name : "W" Remove
oCreoFileName = oCreoFIleList.Item(i)
oCreoFileNamelength = Len(oCreoFileName)
oCreoFileNameTrim = InStrRev(oCreoFileName, "\")
oCreoFileNameTrim = oCreoFileNamelength - oCreoFileNameTrim
oCreoFileName = Right(oCreoFileName, oCreoFileNameTrim)
Set oModelDescriptor = oModelDescriptorCreate.Create(EpfcMDL_PART, oCreoFileName, Null)
'//Retrieve the model into the oModel handle
Set oModel = oSession.RetrieveModel(oModelDescriptor)
'// Declare (make) the Model as a IpfcFamilyMember type object
Set generic = oModel
'// list the ROws of family table. If the part is not a generic, there will be 0 rows
Set FamilyTablerows = generic.ListRows()
If FamilyTablerows.Count > 0 Then
'// Now, get each row and print the instance name. Once, each instance is obtained, perform required operations.
For j = 0 To FamilyTablerows.Count - 1
Set FamilyTablerow = FamilyTablerows.Item(j)
Cells(j + icnt + 8, "A") = j + icnt + 1
Cells(j + icnt + 8, "C") = FamilyTablerow.InstanceName & ".prt"
Next j
'// 초기화
j = 0
Else
Cells(j + icnt + 8, "A") = j + icnt + 1
Cells(j + icnt + 8, "C") = oModel.Filename
End If
Set rng = Range("A8", Cells(rows.Count, "A").End(xlUp))
icnt = rng.Count
Next i
End If
MsgBox "라이브러리 파일 이름을 표시 하였습니다", vbInformation, "www.idt21c.com"
conn.Disconnect (2)
'// Cleanup
Set asynconn = Nothing
Set conn = Nothing
Set oSession = Nothing
Set oModel = Nothing
RunError:
If Err.Number <> 0 Then
MsgBox "Process Failed : Unknown error occurred." + Chr(13) + _
"Error No: " + CStr(Err.Number) + Chr(13) + _
"Error: " + Err.Description, vbCritical, "Error"
If Not conn Is Nothing Then
If conn.IsRunning Then
conn.Disconnect (2)
End If
End If
End If
End Sub
>> instance Display
by lionkk@idt21c.com
'VBA, VB.NET For Creo' 카테고리의 다른 글
라이브러리 관리 프로그램 #2 (0) | 2023.01.03 |
---|---|
Family Table Part (1) | 2023.01.01 |
Model 파일 Assemble (0) | 2022.12.28 |
ToolBOX VBA 1.5 개발 작업 #4 (0) | 2022.12.27 |
Feature ID 및 Feature 이름 검색 프로그램 # 3/3 (0) | 2022.12.23 |