반응형
Inventor의 Assembly에서 여러가지 부품 중 Tap Size를 알기 위해 Inventor 기본 내장 기능인 측정 기능으로
Tap을 클릭 해본 적이 있으실 겁니다.
이 때, Tap Size 대신 Tap에 사용된 실제 Hole크기만 확인됩니다.
저도 Inventor 사용 초반에 이 부분이 엄청 불편했는데 기본기능의 한계라고 생각하고 넘어 갔었습니다.
그러던 중 최근에 어떤 분이 다시 이부분을 문의 해주셨고, 순간 iLogic으로 해결할수도 있겠다 생각해서 API를 찾아보고 코딩해보았습니다.
오늘은 Assembly 조립품에서 각 부품에 작업된 Tap Size를 부품파일에서 직접 확인하지 않고 Assembly에서 바로 확인할 수 있는 iLogic Message 창을 만들어 보겠습니다.
- VBA 조사식으로 관련 API 확인하기.
- iLogic 으로 API 에서 가져온 Tap Size Message 창에 나타내기.
- 해당 Hole이 Tap인지, 일반 Hole인지 확인 하기.
1. VBA 조사식으로 관련 API 확인하기.
- Assembly에서 ①우선순위를 변경하는 아이콘을 클릭.
- ② "면 및 모서리 선택" 클릭.
- ③ Tap의 면을 클릭하고 ④ [VBA 편집기] 클릭.
Option Explicit
Public Sub FilletDelete()
Debug.Print ThisApplication.Caption
End Sub
- ①[Module1] 더블클릭.
- Code 입력하고 FilletDelete()끝에 커서클릭.
- ③ [디버그] → ④[한 단계씩 코드 실행] 두번 실행.
- ⑤ [ThisApplication] Drag 마우스 오른쪽 클릭.
- ⑥ [조사식 추가] 클릭.
※ 사용 할 Inventor API
- TapSize 가져오기 : [ActiveDocument] - [SelectSet] - [Item 1] - [CreatedByFeature] - [TapInfo] - [CustomThreadDesignation]
- Tap인지, Hole인지 확인 : [ActiveDocument] - [SelectSet] - [Item 1] - [CreatedByFeature] - [Tapped]
2. iLogic으로 Tap Size Message 창에 나타내기.
Dim doc = ThisDoc.Document
oFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "확인 할 Hole을 클릭하세요!!")
'→ Inventor 창에서 면을 클릭하여 Selectset에 추가하는 Method.
'※ "kPartFaceFilter"가 면을 필터해주는 Property.
oTapSize = oFace.CreatedByFeature.TapInfo.CustomThreadDesignation
'→ 선택 된 면에 사용된 Feature를 생성하고 Tap Size를 가져옴.
MessageBox.Show(oTapSize, "Tap Size 확인")
'→ 가져온 Tap Size를 메세지 박스에 표현
3. 선택한 면이 Tap인지, 일반 Hole인지 확인하기.
Dim doc = ThisDoc.Document
oFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "확인 할 Hole을 클릭하세요!!")
'→ Inventor 창에서 면을 클릭하여 Selectset에 추가하는 Method.
'※ "kPartFaceFilter"가 면을 필터해주는 Property.
oFaceTap = oFace.CreatedByFeature.Tapped
'→ 선택된 면이 Tap인지, 아닌지 True, False값으로 반환
If oFaceTap = True '→ 선택된 면이 Tap인 경우,
oTapSize = oFace.CreatedByFeature.TapInfo.CustomThreadDesignation
'→ 선택된 면의 피처의 Tap Size를 가져옴.
MessageBox.Show(oTapSize, "Tap Size 확인")
'→ 가져온 TapSize를 메세지 박스에 표현
Else '→ 선택된 면이 Tap이 아닌 경우,
oHoleSize = oFace.CreatedByFeature.HoleDiameter.Expression
'→ 선택된 면의 피처의 HoleDiameter를 가져옴.
MessageBox.Show(oHoleSize, "Hole 지름 확인")
'→ 가져온 HoleDiameter를 메세지 박스에 표현.
End If
반응형
'인벤터로 배우는 코딩(iLogic) > inventor API 연구소' 카테고리의 다른 글
[iLogic] dwg PDF 자동 출력 (0) | 2023.04.06 |
---|