Change Dimension Example (VBA)
This example shows how to modify dimension
values of an existing SolidWorks part.
Metric and English:
Most of the API functions operate in meters. Therefore, if you pass in XValue_Passed = 2.0,
and your part file units are millimeters, then it
will appear as a 2000.0 in the part. If you need to determine the units
used in the part file, you can use the IModelDoc2::LengthUnit property
and perform the appropriate conversion.
'----------------------------------------------------------------------------
' Preconditions: Specified file to open exists.
'
' Postconditions:
' 1. Part opens.
' 2. Specified dimension parameter of the selected feature is modified.
'
' NOTE: Because the specified document is used elsewhere,
' do not save changes when closing it.
'----------------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeature As SldWorks.Feature
Dim swSelectionManager As SldWorks.SelectionMgr
Dim swDim As SldWorks.Dimension
Dim fileName As String
Dim boolstatus As Boolean
Dim errors As Long
Dim warnings As Long
Sub main()
Set swApp = Application.SldWorks
fileName = "C:\Program Files\SolidWorks Corp\SolidWorks\samples\tutorial\api\assem2.sldasm"
Set swModel = swApp.OpenDoc6(fileName,
swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_Silent, "", errors, warnings)
boolstatus = swModel.Extension.SelectByID2("LocalCirPattern1",
"COMPPATTERN", 0, 0, 0, False, 0, Nothing, 0)
Set swSelectionManager = swModel.SelectionManager
Set swFeature = swSelectionManager.GetSelectedObject6(1,
-1)
Set swDim = swFeature.Parameter("D3")
' Change D3 of LocalCirPattern1 from 360 degrees to 270
degrees (4.72 radians)
errors = swDim.SetSystemValue3(4.72,
swSetValue_InThisConfiguration, Empty)
swModel.EditRebuild3
Debug.Print "D3@LocalCirPattern1 is " &
swFeature.Parameter("D3").SystemValue
End Sub