|
7#
楼主 |
发表于 2017-4-22 10:48:57
|
只看该作者
经典案例图书 开料,绘制3D草图线框
'----------------------------------------------
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim vBox As Variant
Dim swSketchPt(8) As SldWorks.SketchPoint
Dim swSketchSeg(12) As SldWorks.SketchSegment
Dim bRet As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swFeat = swSelMgr.GetSelectedObject5(1)
Debug.Print "Feature = " & swFeat.Name
bRet = swFeat.GetBox(vBox): Debug.Assert bRet
Debug.Print " Pt1 = " & "(" & vBox(0) * 1000# & ", " & vBox(1) * 1000# & ", " & vBox(2) * 1000# & ") mm"
Debug.Print " Pt2 = " & "(" & vBox(3) * 1000# & ", " & vBox(4) * 1000# & ", " & vBox(5) * 1000# & ") mm"
swModel.Insert3DSketch2 True
swModel.SetAddToDB True
swModel.SetDisplayWhenAdded False
' Draw points at each corner of bounding box
Set swSketchPt(0) = swModel.CreatePoint2(vBox(3), vBox(1), vBox(5))
Set swSketchPt(1) = swModel.CreatePoint2(vBox(0), vBox(1), vBox(5))
Set swSketchPt(2) = swModel.CreatePoint2(vBox(0), vBox(1), vBox(2))
Set swSketchPt(3) = swModel.CreatePoint2(vBox(3), vBox(1), vBox(2))
Set swSketchPt(4) = swModel.CreatePoint2(vBox(3), vBox(4), vBox(5))
Set swSketchPt(5) = swModel.CreatePoint2(vBox(0), vBox(4), vBox(5))
Set swSketchPt(6) = swModel.CreatePoint2(vBox(0), vBox(4), vBox(2))
Set swSketchPt(7) = swModel.CreatePoint2(vBox(3), vBox(4), vBox(2))
' Now draw bounding box
Set swSketchSeg(0) = swModel.CreateLine2(swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z, swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z)
Set swSketchSeg(1) = swModel.CreateLine2(swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z, swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z)
Set swSketchSeg(2) = swModel.CreateLine2(swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z, swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z)
Set swSketchSeg(3) = swModel.CreateLine2(swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z, swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z)
Set swSketchSeg(4) = swModel.CreateLine2(swSketchPt(0).X, swSketchPt(0).Y, swSketchPt(0).Z, swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z)
Set swSketchSeg(5) = swModel.CreateLine2(swSketchPt(1).X, swSketchPt(1).Y, swSketchPt(1).Z, swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z)
Set swSketchSeg(6) = swModel.CreateLine2(swSketchPt(2).X, swSketchPt(2).Y, swSketchPt(2).Z, swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z)
Set swSketchSeg(7) = swModel.CreateLine2(swSketchPt(3).X, swSketchPt(3).Y, swSketchPt(3).Z, swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z)
Set swSketchSeg(8) = swModel.CreateLine2(swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z, swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z)
Set swSketchSeg(9) = swModel.CreateLine2(swSketchPt(5).X, swSketchPt(5).Y, swSketchPt(5).Z, swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z)
Set swSketchSeg(10) = swModel.CreateLine2(swSketchPt(6).X, swSketchPt(6).Y, swSketchPt(6).Z, swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z)
Set swSketchSeg(11) = swModel.CreateLine2(swSketchPt(7).X, swSketchPt(7).Y, swSketchPt(7).Z, swSketchPt(4).X, swSketchPt(4).Y, swSketchPt(4).Z)
swModel.SetDisplayWhenAdded True
swModel.SetAddToDB False
swModel.Insert3DSketch2 True
End Sub
'----------------------------------------------
|
|