□ 모델 치수 가져오기
모델이 가지고 있는 모든 치수 값을 가져오는 코드 입니다. 이 코드는 참조 치수 및 Annotate 치수를 모두 가져옵니다.
참조 및 Annotate에서 정의한 치수를 모두 가져올 수 있습니다
Creo 화면 | 엑셀 |
Dimmension Type은 5가지로 구분 합니다.
Dimmension Type 기호 | EpfcDimensionType | 내용 | 이미지 |
0 | EpfcDIM_LINEAR | linear dimension | |
1 | EpfcDIM_RADIAL | radial dimension | |
2 | EpfcDIM_DIAMETER | diametrical dimension | |
3 | EpfcDIM_ANGULAR | angular dimension | |
4 | EpfcDimensionType_nil | 기타 |
▷ VBA 코드
Option Explicit
Sub Dimension_Nanme()
'// 활성화된 모델을 엑셀과 연결 합니다
Application.EnableEvents = False
Dim asynconn As New pfcls.CCpfcAsyncConnection
Dim conn As pfcls.IpfcAsyncConnection:
'// Creo Connect Check
On Error Resume Next
Set conn = asynconn.Connect("", "", ".", 5)
If conn Is Nothing Then
MsgBox "Error occurred while starting new Creo Parametric Session", vbInformation, "www.idt21c.com"
Exit Sub
End If
On Error GoTo RunError
Dim BaseSession As pfcls.IpfcBaseSession
Dim Model As IpfcModel
Dim Solid As IpfcSolid
Set BaseSession = conn.Session
Set Model = BaseSession.CurrentModel
Set Solid = Model
'//현재의 작업 폴더와 파일이름을 표시 합니다
Cells(2, "D") = BaseSession.GetCurrentDirectory
Cells(3, "D") = Model.Filename
Dim Modelowner As IpfcModelItemOwner
Set Modelowner = BaseSession.CurrentModel()
Dim modelitems As IpfcModelItems
'//모델에서 Dimension 타입 객체를 가져옵니다
Set modelitems = Modelowner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION)
Dim BaseDimension As IpfcBaseDimension
Dim i As Integer
For i = 0 To modelitems.Count - 1
Set BaseDimension = modelitems(i)
Cells(i + 5, "B") = i + 1
Cells(i + 5, "C") = BaseDimension.Symbol
Cells(i + 5, "D") = BaseDimension.DimType
Cells(i + 5, "E") = BaseDimension.DimValue
Next i
MsgBox "치수 및 값을 표시 하였습니다", vbInformation, "ToolBOX VBA"
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 : 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
▷ Dimension Symbol Type
문자 조합은 기호 유형을 정의하고 숫자는 치수의 고유 식별자입니다. 문자와 숫자의 조합은 차원 간의 관계 수식 정의와 같은 고급 기술에 사용되는 차원에 대한 고유한 참조 지정자를 만듭니다.
(1) Dimension Symbol "d"
- 모델에서 피쳐를 생성하는 동안 생성된 표시(구속) 치수입니다. 이러한 치수는 모델과 도면 간에 양방향으로 연관되어 있습니다.
스케치 모드의 Reference Dimension Symbol은 "d"로 표시 됩니다.
(2) Dimension Symbol "ad"
- 모델과 연관되고 모델과 함께 저장되지만 드로잉에서 수정할 수 없는 생성된(구동) 치수입니다. 이러한 치수는 모델 형상이 수정되는 경우에만 도면에서 업데이트됩니다. config.pro 옵션 create_raw_dims_only 및 draw_models_read_only 의 값이 기본값인 no 일 때 생성됩니다. Annotate에서 추가된 치수를 표시 합니다.
(3) Dimension Symbol "add"
- 참조하는 형상이나 도면 요소와 계속 연관되어 있지만 드로잉과 함께 저장되는 도면 치수를 생성했습니다. config.pro 옵션 create_ drawings_dims_only 또는 draw_models_read_only 값이 yes 일 때 치수를 추가합니다 . 도면 형상을 참조하기 위한 추가 치수를 생성하려면 associative_dimensioning 세부 옵션을 yes 로 설정해야 합니다 .
(4) Dimension Symbol "dd"
- 참조하는 도면 요소와 연관되지 않은 도면 치수입니다. dd 치수를 생성하려면 associative_dimensioning 세부 옵션을 기본값인 no 로 설정해야 합니다 .
영업문의 : lionkk@idt21c.com
카카오 채널 : http://pf.kakao.com/_fItAxb
'VBA For Creo' 카테고리의 다른 글
#3 MBD : 모델 치수 및 공차 가져오기-3 (0) | 2023.12.24 |
---|---|
#3 MBD : 모델 치수 가져오기-2 (0) | 2023.12.24 |
#1 Creo 엑셀 VBA 코드 :: 개발 환경 설정 하기 (0) | 2023.12.21 |
Geometry Evaluation (0) | 2023.10.12 |
모델의 서피스 타입 구분 하기 (0) | 2023.10.11 |