■ IpfcView 소개
Creo Parametric의 그래픽 뷰를 나타내는 인터페이스입니다. 이 인터페이스를 통해 3D 모델의 가시성, 표현 방법, 표시
설정 등을 제어할 수 있습니다. 변환 행렬은 개체의 좌표계에서 논리적 화면 좌표로의 변환을 제공합니다. 이 행렬에는 어셈블리 구성원에 대한 변환이 포함되어 있지 않습니다.
▷ IpfcView .Reset : 기본 방향으로 뷰 변환
Dim Windows As IpfcWindow
Dim ViewOwner As IpfcViewOwner
Dim View As IpfcView
'// View 변수에 뷰 이름 정의
Set Windows = session.CurrentWindow
Set ViewOwner = model
Set View = ViewOwner.RetrieveView("DEFAULT")
'// Default View로 변환
Call View.Reset
Windows.Refresh
▷ Creo 화면
사용전전 | IpfcView .Reset 사용 |
▷ IpfcViewOwner.GetCurrentViewTransform()
현재 사용자가 작업 중인 3D 뷰의 변환 행렬을 검색하는 데 사용됩니다. 이 변환 행렬은 3D 모델의 뷰를 표시하거나 조작하는 데 사용됩니다. 이 함수를 사용하여 뷰의 위치, 회전 및 축척과 관련된 정보를 얻을 수 있습니다.
현재의 X,Y,Z 위치 값을 가져오는 코드 입니다
Dim Windows As IpfcWindow
Dim ViewOwner As IpfcViewOwner
Dim Transform3D As IpfcTransform3D
Dim Point3D As IpfcPoint3D
'// X, Y, Z 값 가져오기
Dim Xpoint, Ypoint, Zpoint As Double
Set Windows = session.CurrentWindow
Set ViewOwner = model
Set Transform3D = ViewOwner.GetCurrentViewTransform
Set Point3D = Transform3D.GetOrigin
Xpoint = Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_X)
Ypoint = Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Y)
Zpoint= Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Z)
프로그램 실행 결과 :
모델이 회전 또는 이동을 하는 경우, X,Y,Z 값은 변경 됩니다. 동일한 위치에서 모델 사이즈가 변경되면 X,Y,Z 값은 변경 됩니다. 하지만 Shell 명령은 삭제 해도 X,Y,Z 값은 동일 합니다. Round 값이 변하면 X,Y,Z 값은 변경 됩니다
Xpoint : 500 Ypoint : 229.898734913327 Zpoint: -1516.90472887573 |
Xpoint :625.922416633263 Ypoint :296.696737737071 Zpoint: -1227.03177005774 |
원점 좌표계를 변경 하는 코드
Dim Windows As IpfcWindow
Dim ViewOwner As IpfcViewOwner
Dim Transform3D As IpfcTransform3D
Dim Point3D As IpfcPoint3D
Dim newc As New CpfcPoint3D
Dim X0move, Y0move, Z0move As Double
Set Windows = session.CurrentWindow
Set ViewOwner = model
Set Transform3D = ViewOwner.GetCurrentViewTransform
Set Point3D = Transform3D.GetOrigin
X0move = Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_X)
Y0move = Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Y)
Z0move = Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Z)
X0move = X0move + 100
Y0move = Y0move + 100
Z0move = Z0move + 100
Call newc.Set(0, X0move)
Call newc.Set(1, Y0move)
Call newc.Set(2, Z0move)
Call Transform3D.SetOrigin(newc)
▷ IpfcView . Transform
Creo Parametric에서 뷰(view)는 3D 모델의 특정 시점에서의 모습을 나타내며, 뷰의 위치, 방향 및 확대/축소 수준을 정의하는 변환 정보를 포함합니다. IpfcView.Transform 속성을 통해 해당 뷰의 변환 정보를 가져오거나 설정할 수 있습니다.
IpfcView.Transform은 입력한 뷰로 이동후 X,Y,Z 값을 표시 합니다. 만일 뷰 이름이 다르면 뷰 마다 X,Y,Z 값이 다릅니다
Dim Windows As IpfcWindow
Dim ViewOwner As IpfcViewOwner
Dim View As IpfcView
Dim Transform3D As IpfcTransform3D
Dim Point3D As IpfcPoint3D
Set Windows = session.CurrentWindow
Set ViewOwner = model
Set View = ViewOwner.RetrieveView("DEFAULT")
Set Transform3D = View.Transform
'// 좌표계의 원점을 나타내는 점을 검색합니다.
Set Point3D = Transform3D.GetOrigin
MsgBox Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_X)
MsgBox Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Y)
MsgBox Point3D.Item(EpfcCoordAxis.EpfcCOORD_AXIS_Z)
영업 문의 : lionkk@idt21c.com
'VBA For Creo' 카테고리의 다른 글
#8 IpfcBaseSession - 파일 Create Function (0) | 2023.08.12 |
---|---|
프로그램 개발을 AI (artificial intelligence)로 하면 좋은 이유 (0) | 2023.08.08 |
모델의 Front 뷰를 360도 회전 하기 (0) | 2023.08.07 |
#3/3 Helical Sweep & VBA (0) | 2023.08.07 |
#2/3 Helical Sweep & VBA (0) | 2023.08.07 |