본문 바로가기
  • Welcome!
VBA, VB.NET For Creo

도면이 가지고 있는 치수 값을 가지고 오기 #1

by ToolBOX01 2023. 2. 14.
반응형

도면에 표시된 치수 값을 가져오는 코드 입니다. 아래 그림은 5개의 뷰를 가지고 있습니다.  전체 치수는 도면에서 생성한 치수 입니다. 5개의 치수를 가지고 있습니다.  도면은 3D를 뷰로 배치하고,  Drawing Dimension을 추가 합니다.

Excel VBA Download

ToolBOX VBA 01.xlsm
0.08MB

 

[ Drawing 파일 ]

"Drawing Dimension" 버튼을 클릭하면 자동으로 도면이 가지고 있는 모든 치수를 표시합니다. 
Set IpfcModelItems = IpfcModelItemOwner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION)
코드로 드로잉 뷰(정면도, 측면도 ...)가  가지고 있는 치수(3D, 2D)를 모두 표시 합니다. 

 "IpfcModelItemOwner"는 IpfcModel >  IpfcDrawing >  IpfcModel2D >  IpfcView2D > Set oModel = oView2D.GetModel
순서로 적용되는 개체를 사용 합니다.

[ Drawing Dimension 표시]

 

모든 치수 이름 및 값은 "IpfcBaseDimension. Symbol  - 이름", "IpfcBaseDimension.DimValue - 치수 값" 으로 표시합니다.
Drawing Dimension은 "ad ~ "로 시작 합니다. 모든 치수에서 "ad ~"로 시작하는 치수만 표시 하면 됩니다.
If InStr(oDimensionName, "ad") = 1 Then 기능을 사용하여 "ad ~"로 시작하는 치수만 표시 합니다

■ 전체 코드 입니다

Sub Dim_2d()

    Call Creo_Connect
    
    Cells(4, "C") = oModel.Filename
    
    Dim oDrawing As IpfcDrawing
    Set oDrawing = oModel
    
    Dim oModel2d As IpfcModel2D
    Set oModel2d = oDrawing
    
    Dim oView2Ds As IpfcView2Ds
    Set oView2Ds = oModel2d.List2DViews

    Dim oView2D As IpfcView2D
    
    Dim oModelowner As IpfcModelItemOwner
    Dim oModelitems As IpfcModelItems
    Dim oModelitem As IpfcModelItems
    Dim oBaseDimension As IpfcBaseDimension
    Dim oDimension As IpfcDimension
    
    Dim oDimensionName As String
    
    Dim i As Integer, j As Integer
    
    j = 0
       
    Set oView2D = oView2Ds.Item(0)
    Set oModel = oView2D.GetModel
    Set oModelowner = oModel
    Set oModelitems = oModelowner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION)
    
    For i = 0 To oModelitems.Count - 1
            
            Set oBaseDimension = oModelitems.Item(i)
            Set oDimension = oBaseDimension
            oDimensionName = oBaseDimension.Symbol
                    
            If InStr(oDimensionName, "ad") = 1 Then
                    
                j = j + 1
                
                Cells(j + 5, "A") = j
                Cells(j + 5, "B") = oBaseDimension.Symbol
                Cells(j + 5, "C") = oBaseDimension.DimValue
            
            End If
     Next i
     

      
End Sub

 

■ 동영상

 

 

■ 참고 사이트

 

Create a dimension between two edges using Creo VB API - Creo Customization

Creating dimensions in the drawing is one of the mandatory processes while doing drawing automation. Here the article to demonstrate how to

creocustomization.com

 

 

모델이 가지고 있는 치수 값을 가지고 오기 - 두번째

IpfcModelItemOwner.ListItems(EpfcModelItemType.EpfcITEM_DIMENSION) 코드로 Creo 모델이 가지고 있는 치수 값을 표시 합니다. IpfcBaseDimension.DimValue를 이용하여 값을 가져 올수 있습니다. Program Download IpfcBaseDimension.Di

tool-2020.tistory.com

 

by lionkk@idt21c.com