□ Main 프로그램 컨셉
엑셀에 입력된 "6C:6G"까지의 값을 가져와서 모델의 치수를 변경 하는 코드 입니다.
Option Explicit
Option Base 1
Sub FingerCheck01()
On Error GoTo RunError
Application.EnableEvents = False
'// Module Name : CreoVBAStart
Call CreoVBAStart.CreoConnt01
Dim ModelItemOwner As IpfcModelItemOwner
Dim modelitems As IpfcModelItems
Dim BaseDimension As IpfcBaseDimension
Dim targetCell As Range
Dim i, j As Long
Set ModelItemOwner = Model
Set modelitems = ModelItemOwner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION)
For j = 0 To 5 '// Dimension Parameter
Set targetCell = Range("B5").Offset(0, j + 1)
For i = 0 To modelitems.Count - 1
Set BaseDimension = modelitems(i)
If targetCell.value = BaseDimension.Symbol Then
Set targetCell = Cells(6, "C").Offset(0, j)
BaseDimension.DimValue = targetCell.value
End If
Next i
Next j
MsgBox "OK"
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
▷ IpfcModelItemOwner
모델 안에 있는 여러 항목(예: 피처, 면, 축, 레이어 등)을 다룰 수 있게 해주는 도구입니다.
모델 안의 특정 부분을 찾아내거나, 관련된 목록을 불러오는 역할을 합니다.
Function GetItemById (Type as IpfcModelItemType, Id as Long) as IpfcModelItem [optional]
모델 안에서 고유한 ID를 가진 항목(예: 특정 피처나 면)을 찾아줍니다.
예: "ID가 1234인 피처를 찾아줘!"라고 요청하면 해당 피처를 반환합니다.
Function GetItemByName (Type as IpfcModelItemType, Name as String) as IpfcModelItem [optional]
항목의 이름을 기준으로 특정 엔티티(레이어, 피처 등)를 찾습니다.
예: "레이어 이름이 'MyLayer'인 항목을 찾아줘!"라고 하면 해당 레이어를 반환합니다.
Function ListItems (Type as IpfcModelItemType [optional]) as IpfcModelItems [optional]
특정 유형(피처, 면, 축 등)의 모든 항목을 리스트로 불러옵니다.
예: "모델 안의 모든 피처를 리스트로 보여줘!"
→ 피처 목록이 쭉 출력됩니다.
추가 팁: 유형(Type)을 지정하지 않으면, 모델에 있는 모든 항목을 가져옵니다.
IpfcModelItemType . . ..
EpfcITEM_FEATUREFeature
EpfcITEM_SURFACESurface
EpfcITEM_EDGEEdge
EpfcITEM_COORD_SYSCoordinate system
EpfcITEM_AXISAxis
EpfcITEM_POINTPoint
EpfcITEM_QUILTQuilt
EpfcITEM_CURVECurve
EpfcITEM_LAYERLayer
EpfcITEM_NOTEA solid model note
EpfcITEM_DIMENSIONDimension
EpfcITEM_REF_DIMENSIONReference dimension
EpfcITEM_SIMPREPSimplified representation
EpfcITEM_SOLID_GEOMETRYA solid geometry layer item.
EpfcITEM_TABLEA drawing table
EpfcITEM_DTL_ENTITYA detail entity
EpfcITEM_DTL_NOTEA detail note
EpfcITEM_DTL_GROUPA detail draft group
EpfcITEM_DTL_SYM_DEFINITIONA symbol definition
EpfcITEM_DTL_SYM_INSTANCEA symbol instance
EpfcITEM_DTL_OLE_OBJECTA drawing-embedded OLE object
EpfcITEM_EXPLODED_STATEAn exploded state
EpfcITEM_EDGE_START
EpfcITEM_LOG_EDGE
EpfcITEM_EDGE_END
EpfcITEM_XSECCross Section
EpfcITEM_LAYER_STATELayer state
EpfcITEM_COMBINED_STATECombined state
EpfcITEM_STYLE_STATEStyle state
EpfcITEM_RP_MATERIALMaterial Item
EpfcITEM_VIEWView
EpfcITEM_SURF_FIN
EpfcITEM_ANNOT_PLANE
EpfcITEM_ANNOTATION_ELEM
EpfcITEM_SET_DATUM_TAG
EpfcITEM_GTOL
EpfcITEM_BODYSolid body
EpfcITEM_CRV_STARTDatum Curve End
EpfcITEM_CRV_ENDDatum Curve End
EpfcModelItemType_nilUse this enumerated value to represent "null" passed to optional properties or method arguments.
▷ 참조 코드
korealionkk@gmail.com
'VBA, VB.NET For Creo' 카테고리의 다른 글
VB.NET ? (0) | 2024.12.04 |
---|---|
개발 요청] 치수 변경, 간섭 체크, 최단 거리 값 구하기 #4 (0) | 2024.12.01 |
개발 요청] 치수 변경, 간섭 체크, 최단 거리 값 구하기 #2 (0) | 2024.11.27 |
개발 요청] 치수 변경, 간섭 체크, 최단 거리 값 구하기 #1 -개발 중 (0) | 2024.11.26 |
개발 요청] 이미지 생성 프로그램 #4 (0) | 2024.11.24 |