VBA를 사용하는 API를 통해 SolidWorks 기능 트리에있는 여러 개체의 좌표에 액세스하는 방법을 알고 싶습니다. 개인적으로 문제는 선택한 객체에 따라 달라지는 위치 데이터를 추출하기 위해 올바른 진술을 찾는 것입니다. 내 개체는 자체 좌표계와 원점을 통해 설명됩니다.
미리 감사드립니다
구성 요소의 경우 .Transform2 속성을 사용할 수 있습니다 . 이렇게하면 구성 요소에 대한 변환 행렬 데이터가 포함 된 MathTransform 개체가 반환됩니다. .ArrayData 속성 을 사용하여 MathTransform 개체의 데이터에 액세스 할 수 있습니다 . 이것은 16 개의 double 배열을 반환합니다. 처음 9 개 요소는 3x3 회전 행렬을 정의하고 다음 3 개 요소는 변환 구성 요소 (구성 요소의 xyz 원점)를 정의합니다. API 도움말에서 자세한 정보를 찾을 수 있습니다.
API 도움말에는 어셈블리 컴포넌트의 변환을 가져 오는 방법에 대한 예가 있습니다. http://help.solidworks.com/2019/English/api/sldworksapi/Get_Transforms_of_Assembly_Components_Example_VB.htm
내 개체는 자체 좌표계와 원점을 통해 설명됩니다.
참조 지오메트리 "좌표계"를 사용자 지정 원점으로 사용하는 경우 CoordinateSystemFeatureData 개체 의 .Transform을 통해 MathTransform 에 액세스 할 수 있습니다 .
CoordinateSystemFeatureData 객체를 얻으려면 먼저 좌표계의 Feature 객체를 얻은 다음 .GetDefinition 을 호출 해야합니다.
예:
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("FEATURE NAME OF COORDINATE SYSTEM", "COORDSYS", 0, 0, 0, False, 0, Nothing, 0)
Dim swSelMgr As SelectionMgr
Set swSelMgr = Part.SelectionManager
Dim swFeat As Feature
Set swFeat = swSelMgr.GetSelectedObject6(1, -1)
Dim swFeatData As CoordinateSystemFeatureData
Set swFeatData = swFeat.GetDefinition
End Sub
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다