Get and Set Center Mark Set Example (VBA)
This example shows how to get and set properties of a center mark set.
'------------------------------------------------------------------------
' Preconditions:
' 1. Open public_documents\samples\tutorial\introtosw\pressure_plate.sldprt.
' 2. Click File > Make Drawing from Part > OK.
' 3. Drag Bottom from the View Palette to Sheet1 and click OK.
' 4. Click a center mark and press Delete.
' 5. Open the Immediate window.
'
' Postconditions:
' 1. Activates Drawing View1.
' 2. Selects a center mark in Drawing View1.
' 3. Gets and sets properties of the center mark set.
' 4. Examine the Immediate window.
'
' NOTE: Because the part is used elsewhere, do not save changes.
'-----------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swDrawingDoc As SldWorks.DrawingDoc
Dim swCenterMark As SldWorks.CenterMark
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelectionMgr As SldWorks.SelectionMgr
Dim status As Boolean
Dim nbrInGroup As Long
Dim i As Long
Dim cmCoordinates As Variant
Sub main()
Set swApp = Application.SldWorks
Set swDrawingDoc = swApp.ActiveDoc
'Get drawing view
swDrawingDoc.ActivateView ("Drawing View1")
Set swModel = swDrawingDoc
Set swModelDocExt = swModel.Extension
'Select a center mark
status = swModelDocExt.SelectByID2("DetailItem217@Drawing View1", "CENTERMARKSYM", 0.434357613710555, 0.467612346028292, 0, False, 0, Nothing, 0)
Set swSelectionMgr = swModel.SelectionManager
Set swCenterMark = swSelectionMgr.GetSelectedObject6(1, -1)
'Get and set properties of center mark set
Debug.Print "Center mark set"
Debug.Print " Style (4 = swCenterMark_CircularGroup): " & swCenterMark.Style
Debug.Print " Is grouped? " & swCenterMark.IsGrouped
nbrInGroup = swCenterMark.GroupCount
Debug.Print " Number in set: " & nbrInGroup - 1
Debug.Print " Any detached? " & swCenterMark.HasDetachCenterMark
For i = 0 To nbrInGroup - 1
Debug.Print " Center mark: " & i
Debug.Print " Detached: " & swCenterMark.IsDetached(i)
cmCoordinates = swCenterMark.GetPosition(i)
Debug.Print " x, y, z coordinates: " & cmCoordinates(0) & ", " & cmCoordinates(1) & ", " & cmCoordinates(2)
Debug.Print " Original extended length: " & swCenterMark.GetExtendedLength(i, swCenterMarkHandle_e.swCenterMarkHandle_Right)
status = swCenterMark.SetExtendedLength(i, swCenterMarkHandle_e.swCenterMarkHandle_Right, 0.005)
Debug.Print " Modified extended length: " & swCenterMark.GetExtendedLength(i, swCenterMarkHandle_e.swCenterMarkHandle_Right)
Debug.Print " Is deleted? " & swCenterMark.IsDeleted(i)
Next i
End Sub