본문 바로가기
  • Welcome!
VBA For Creo

Geometry Evaluation

by ToolBOX01 2023. 10. 12.
반응형

□ Geometry Traversal

어떤 도형이나 그래프를 정해진 방식으로 방문하거나 탐색하는 과정을 의미합니다. 

• 단순한 직사각형 면에는 윤곽선 (경계) 1개와 모서리 4개가 있습니다.

[  윤곽선 ]


• 윤곽선은 어떤 부분 면(2D 평면 도형)의 경계를 따라 이동합니다. 외부 윤곽선은 시계방향으로 이동하고, 내부 윤곽선은 반시계방향으로 이동하여 부분 면의 오른쪽에 위치합니다.


• U자형 단면이 있는 스케치에서 부품이 돌출되면 U자형 채널의 각 다리에 별도의 서피스가 있게 됩니다.


• 사각형 모양의 단면이 있는 스케치에서 부품을 돌출시킨 다음 슬롯 형상을 부품으로 절단하여 U 채널처럼 보이도록 하면 U 채널 다리를 가로지르는 하나의 서피스가 있게 됩니다. 채널. 부품의 원래 표면은 절단된 하나의 표면으로 표시됩니다.

□  기하학 용어


다음은 일부 기하학적 용어에 대한 정의입니다.

• 표면(Surface) - 이상적인 기하학적 표현, 즉 무한 평면입니다.
• 면(Face) - 잘린 표면입니다. 면(Face) 에는 하나 이상의 윤곽이 있습니다.
• 윤곽선 (Contour) - 면의 닫힌 루프입니다. 윤곽선(Contour)은 여러 모서리로 구성됩니다. 윤곽선 (Contour) 은 하나의 면에만 속할 수 있습니다.
• 가장자리(Edge) - 트림된 표면의 경계입니다.

솔리드의 모서리는 두 표면의 교차점입니다. 모서리는 두 표면(Surface) 과 두 윤곽선(Contour) 에 속합니다. 데이텀 서피스의 모서리는 두 데이텀 서피스의 교차점이거나 서피스의 외부 경계일 수 있습니다.
모서리가 두 데이텀 서피스의 교차점인 경우 해당 두 서피스와 두 윤곽선(Contour) 에 속합니다. 모서리가 데이텀 서피스의 외부 경계인 경우 해당 서피스에만 속하며 단일 윤곽선 (Contour) 에도 속합니다.

 

□ 리드 블록의 형상 탐색

▷ IpfcModelItemOwner.ListItems()
     지정된 유형의 모델 항목 목록을 제공합니다.

Function	ListItems (Type as IpfcModelItemType [optional]) as IpfcModelItems [optional]

 


▷ IpfcSurface.ListContours()
    표면 (Surface)의 모든 윤곽선 (Contour) 을 나열합니다.

Function	ListContours () as IpfcContours

 

Option Explicit
Sub VersionStamp()

On Error GoTo RunError

    Dim asynconn As New pfcls.CCpfcAsyncConnection
    Dim conn As pfcls.IpfcAsyncConnection
    Dim BaseSession As pfcls.IpfcBaseSession
    Dim Session As IpfcSession
    Dim model As IpfcModel
    
    Dim ModelItemOwner As IpfcModelItemOwner
    Dim ModelItems As IpfcModelItems
    Dim ModelItem As IpfcModelItem
    Dim Surface As IpfcSurface
    Dim Contours As IpfcContours
    Dim Contour As IpfcContour
    
    Set conn = asynconn.Connect("", "", ".", 5)
    Set BaseSession = conn.Session
    Set model = BaseSession.CurrentModel
    Set ModelItemOwner = model
    
    '// Solid Model Surface List
    Set ModelItems = ModelItemOwner.ListItems(EpfcModelItemType.EpfcITEM_SURFACE)
    
    Dim i As Integer
    Dim j As Integer
    
    For i = 0 To ModelItems.Count - 1
    
        Set ModelItem = ModelItems.Item(i)
        Set Surface = ModelItem
        Set Contours = Surface.ListContours
        
        For j = 0 To Contours.Count - 1
        
            Set Contour = Contours(j)          
            MsgBox Contour.EvalArea
        
        Next j
   
    Next i
     
    conn.Disconnect (2)
    
    '// Cleanup
    Set asynconn = Nothing
    Set conn = Nothing
    Set Session = 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

 

▷ IpfcContour.ListElements()
     윤곽선 (Contour)의 edge 배열을 가져옵니다.

Function	ListElements () as IpfcEdges

 

□ UV Parameterization

아래 그림은 표면 매개변수화 기술에 대한 좋은 개요 입니다. 매개변수(u, v)를 사용하여 표면을 설명하는 방정식은 3D 공간에서 표면을 정의하는 방법 중 하나입니다. 이러한 방정식을 사용하면 더 복잡한 곡면을 모델링할 수 있으며, 종종 컴퓨터 그래픽, CAD, 3D 모델링 및 기타 분야에서 사용됩니다.

주어진 매개변수 방정식의 특징은 다음과 같습니다:

1. (u, v)는 표면을 정의하는 매개변수입니다. 이러한 매개변수를 사용하여 3D 공간의 모든 점을 표현할 수 있습니다.
2. (u, v)는 보통 [0, 1] 범위를 벗어나도록 제한되지 않습니다. 이것은 모델링의 편의성을 높이는 데 도움이 됩니다. 예를 들어, u와 v가 [0, 1] 범위 밖에 있는 경우 해당 범위 안으로 변환할 수 있습니다.
3. 매개변수 방정식은 표면의 모든 점의 (x, y, z) 좌표를 제공합니다. 이를 통해 표면의 형태와 모양을 정의하고 다양한 작업을 수행할 수 있습니다.
4. 이러한 방정식은 주로 다양한 종류의 표면을 모델링하기 위해 사용됩니다. 예를 들어, 곡면, 곡선, 원통, 구, 평면 및 다른 형태의 3D 개체를 설명하는 데 활용됩니다.

이러한 매개변수 방정식은 컴퓨터 그래픽에서 특히 텍스처 매핑, 조명 및 렌더링과 관련된 작업에서 중요합니다. 특히 3D 모델을 만들거나 다룰 때 매개변수 방정식을 사용하여 표면의 모양을 정확하게 제어할 수 있습니다.

UV Parameterization"은 3D 서피스 모델의 텍스처 매핑 및 텍스처 좌표의 제어를 위한 중요한 기능 중 하나입니다. 이 기능을 사용하면 3D 모델의 표면에 이미지나 텍스처를 정확하게 매핑하고 텍스처의 위치, 회전 및 크기를 조절할 수 있습니다.3D에서 가로 x축은 2D 공간에서 U 가 되고 세로 y축은 Y 가 됩니다

□ Surface Types

솔리드 모델 내부 표면은 다음 유형 중 하나일 수 있습니다.

•  PLANE - 인터페이스IpfcPlane으로 표시되는 평면 표면입니다.
• CYLINDER - IpfcCylinder 인터페이스로 표시되는 원통형 표면입니다.
• CONE - 인터페이스IpfcCone으로 표시되는 원추형 표면 영역입니다.
• TORUS - IpfcTorus 인터페이스로 표시되는 환상면 표면 영역입니다.

[&nbsp; TORUS ]


• REVOLVED SURFACE - 축을 기준으로 커브를 회전하여 생성됩니다. 이는 IpfcRevSurface 인터페이스로 표현됩니다.
• RULED SURFACE - 두 곡선 요소 사이를 선형으로 보간하여 생성됩니다. 이는 IpfcRuledSurface 인터페이스로 표현됩니다.
• 테이블형 원통(TABULATED CYLINDER) - 곡선을 선형으로 돌출시켜 생성됩니다. 이는 IpfcTabulatedCylinder 인터페이스로 표시됩니다.

[ TABULATED CYLINDER ]

• Coons  Path  - Coons 패치는 표면을 함께 혼합하는 데 사용됩니다. 이는 IpfcCoonsPatch 인터페이스로 표시됩니다.

[ Coons &nbsp;Path ]


• 필렛 서피스(FILLET SURFACE) - 필렛된 서피스는 원형이나 필렛이 곡선 모서리나 일관되지 않은 호 반경을 가진 모서리에 배치되는 곳에서 발견됩니다. 직선 모서리에서 원통은 모깎기를 나타내는 데 사용됩니다. 이는 클래스 인터페이스 IpfcFilletedSurface로 표현됩니다.

[&nbsp; FILLET SURFACE) ]


• 스플라인 표면(SPLINE SURFACE) - 각 점에 주어진 탄젠트 벡터가 있는 그리드를 통과하는 비균일 쌍입방 스플라인 표면입니다. 이는 IpfcSplineSurface 인터페이스로 표현됩니다.

[&nbsp; SPLINE SURFACE ]


• NURBS 표면 - NURBS 표면은 기본 기능(u 및 v), 확장 가능한 노트 배열, 가중치 및 제어점으로 정의됩니다. 이는 클래스 인터페이스 IpfcNURBSSurface로 표현됩니다.

[&nbsp; NURBS Surface ]


• 원통형 스플라인 표면 - 원통형 스플라인 표면은 각 점에 주어진 탄젠트 벡터가 있는 그리드를 통과하는 비균일 쌍입방 스플라인 표면입니다. 이는 IpfcCylindricalSplineSurface 인터페이스로 표현됩니다.

[ CYLINDRICAL SPLINE SURFACE ]