使用SOLIDWORKS API偏移平面曲线(线体)
这个VBA示例演示了如何使用SOLIDWORKS API偏移SOLIDWORKS曲线的线体,并显示偏移预览。
线体是一种对应于边和曲线的实体类型。
线体用于复合曲线、通过XYZ曲线等特征,并且还用于生成某些类型特征的预览,例如倒角特征。
{ width=350 }
要运行此示例:
- 在前平面上创建一个复合曲线(或任何其他类型的曲线),法线为{0, 0, 1}。
- 运行宏。宏从所选曲线中提取实体。该实体将是一个线体。宏将该实体偏移10毫米,并显示偏移预览。
- 宏停止执行。此后,临时实体将被销毁。
{ width=450 }
Dim swApp As SldWorks.SldWorks
Sub main()
Set swApp = Application.SldWorks
Dim swModel As SldWorks.ModelDoc2
Set swModel = swApp.ActiveDoc
If Not swModel Is Nothing Then
Dim swSelMgr As SldWorks.SelectionMgr
Set swSelMgr = swModel.SelectionManager
Dim swEdge As SldWorks.Edge
Set swEdge = swSelMgr.GetSelectedObject6(1, -1)
If Not swEdge Is Nothing Then
Dim swBody As SldWorks.Body2
Set swBody = swEdge.GetBody()
If swBody.GetType() = swBodyType_e.swWireBody Then
Dim swOffsetBody As SldWorks.Body2
Dim swNormVec As SldWorks.MathVector
Dim swMathUtils As SldWorks.MathUtility
Set swMathUtils = swApp.GetMathUtility
Dim dVec(2) As Double
dVec(0) = 0: dVec(1) = 0: dVec(2) = 1
Set swNormVec = swMathUtils.CreateVector(dVec)
Set swOffsetBody = swBody.OffsetPlanarWireBody(0.01, swNormVec, swOffsetPlanarWireBodyOptions_e.swOffsetPlanarWireBodyOptions_GapFillExtend)
If swOffsetBody Is Nothing Then
Err.Raise vbError, "", "无法创建偏移实体。请确保所选边与dVec变量中指定的平面上相同。"
End If
swOffsetBody.Display3 swModel, RGB(255, 255, 0), swTempBodySelectOptions_e.swTempBodySelectOptionNone
Stop
Set swOffsetBody = Nothing
Else
Err.Raise vbError, "", "所选边不是线体。"
End If
Else
Err.Raise "未选择边。"
End If
Else
Err.Raise "未打开文档。"
End If
End Sub