Create Layer for Selected View Example (VBA)
This example shows how to create a layer for the selected drawing view.
'------------------------------------------
'
' Preconditions:
' (1)
Drawing of part is open.
' (2)
A view in the drawing is selected.
'
' Postconditions: A layer for the selected view is created.
'
'------------------------------------------
Option Explicit
Private Sub ChangeComponentLayer _
( _
swApp
As SldWorks.SldWorks, _
swDraw
As SldWorks.DrawingDoc, _
sLayerName
As String _
)
Dim
bRet As
Boolean
'
Form a valid layer name
sLayerName
= Replace(sLayerName, "/", "_")
sLayerName
= Replace(sLayerName, "@", "_")
bRet
= swDraw.CreateLayer( _
sLayerName,
_
"Layer
for part in " & sLayerName, _
0,
swLineCONTINUOUS, swLW_NORMAL, True): Debug.Assert bRet
'
Changes in all views
swDraw.ChangeComponentLayer sLayerName, True
End Sub
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swDraw As
SldWorks.DrawingDoc
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swView As
SldWorks.view
Dim
swDrawModel As
SldWorks.ModelDoc2
Dim
swDrawPart As
SldWorks.PartDoc
Dim
vBody As
Variant
Dim
swBody As
SldWorks.body2
Dim
swFace As
SldWorks.face2
Dim
swEnt As
SldWorks.entity
Dim
nErrors As
Long
Dim
nWarnings As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swDraw = swModel
Set
swSelMgr = swModel.SelectionManager
Set
swView = swSelMgr.GetSelectedObject5(1)
Set
swDrawModel = swApp.OpenDoc6(swView.GetReferencedModelName, swDocPART, swOpenDocOptions_Silent,
"", nErrors, nWarnings)
Set
swDrawPart = swDrawModel
Debug.Print
"File =
" & swModel.GetPathName
Debug.Print
" View
=
" & swView.Name
Debug.Print
" View
Model = " & swView.GetReferencedModelName
vBody
= swDrawPart.GetBodies2(swSolidBody,
True)
Set
swBody = vBody(0)
Set
swFace = swBody.GetFirstFace
Set
swEnt = swFace
bRet
= swView.SelectEntity(swEnt, False):
Debug.Assert bRet
ChangeComponentLayer
swApp, swDraw, swView.Name
End Sub