0

みんなが元気であることを願っています。

アセンブリ軸を回転点としてアセンブリ構成部品を回転させる Solidworks マクロを使用しています。私は以下のコードを持っています:

Sub RotateX()

    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swSelMgr            As SldWorks.SelectionMgr
    Dim swMath              As SldWorks.MathUtility
    Dim swComp              As SldWorks.Component2
    Dim compTransform       As SldWorks.MathTransform
    Dim swVect              As MathVector
    
        Set swApp = Application.SldWorks
        Set swModel = swApp.ActiveDoc
        Set swSelMgr = swModel.SelectionManager
        Set swComp = swSelMgr.GetSelectedObjectsComponent2(1)
        Set swMath = swApp.GetMathUtility
'==============================
    On Error Resume Next
'==============================
        Set compTransform = swComp.Transform2
 
    Dim dirArr(2) As Double
        dirArr(0) = 1
        dirArr(1) = 0#
        dirArr(2) = 0#
    'Rotate about x axis {1,0,0}
    
        Set swVect = swMath.CreateVector((dirArr))
        Set swVect = swVect.MultiplyTransform(compTransform)
        'rotate the x axis into the component's reference frame
    
    Dim vData  As Variant
        dirArr(0) = 0#
        dirArr(1) = 0#
        dirArr(2) = 0#
        'rotate about origin
   
            vData = dirArr
    Dim swPoint As SldWorks.MathPoint
        Set swPoint = swMath.CreatePoint(vData)
        Set swPoint = swPoint.MultiplyTransform(compTransform)
    Dim swXform As SldWorks.MathTransform
        Set swXform = swMath.CreateTransformRotateAxis(swPoint, swVect, 90# * RadPerDeg)
            swComp.Transform2 = compTransform.Multiply(swXform)
            swModel.EditRebuild3
End Sub

ただし、このコードはパーツの軸を回転点として使用して回転します。アセンブリ軸を使用して部品を回転させるマクロを作成したいのですが、部品の位置はまだ移動せず、回転するだけです。このパーツをアセンブリ軸上で回転させる方法について誰かが答えてくれることを願っています。

4

1 に答える 1