Get Sketch Constraints Example (VBA)
This examples shows how to determine whether or not a sketch is under-constrained
or over-constrained and how to iterate over all the entities in the sketch
and list their constraints.
'----------------------------------------------
'
' Preconditions:
' (1)
Part or assembly is open.
' (2)
Sketch is selected.
'
' Postconditions: None
'
' NOTE: To access sketch-segment constraint
' information,
the sketch must be placed into
' edit
mode.
'
'-----------------------------------------------
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
swSketch As
SldWorks.sketch
Dim
vSketchSeg As
Variant
Dim
vConstraint As
Variant
Dim
i As
Long
Dim
j As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swSketch = swFeat.GetSpecificFeature2
Debug.Print
"Sketch = " & swFeat.Name
Debug.Print
" SketchConstraintStatus
= " & swSketch.GetConstrainedStatus
Debug.Print
""
'
Put sketch into edit mode to get access
'
to sketch segment constraint information
swModel.EditSketch
vSketchSeg
= swSketch.GetSketchSegments
For
i = 0 To UBound(vSketchSeg)
vConstraint
= vSketchSeg(i).GetConstraints
For
j = 0 To UBound(vConstraint)
Debug.Print
" SketchSegConstraint["
& i & "] = " & vConstraint(j)
Next
j
Next
i
'
Exit edit mode and do not rebuild the model
swModel.InsertSketch2 False
End Sub
'--------------------------------------------------------