|
经典图书 SolidWorks机械工程师论坛
' Mass_Section Properties (Mass) ---------------------------------06/08/10
' ******************************************************************************
' Macro will change the Mass units for Mass/Section Properties from Grams to Kilograms
' or vice versa
' ------------------------------------------------------------------------------
' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)
' ------------------------------------------------------------------------------
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Instance As swUnitsMassPropMass_e 'As swUnitsMassPropMass_e
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Debug.Print Instance
' Set the Unit system to Custom
boolstatus = Part.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, 0, swUnitSystem_Custom)
' Get/Check Mass/Section Properties - Mass - Unit, if Grams
If (Part.Extension.GetUserPreferenceInteger(swUnitsMassPropMass, 0) = 2) Then
' Change to Kilograms
boolstatus = Part.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, 0, 3) '
Else
' Else keep or set to Grams
boolstatus = Part.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, 0, 2)
End If
End Sub
复制代码
'This example shows how to change the drafting standard to a custom drafting standard.
'-------------------------------------------------
' Preconditions: Model document is open and a
' SolidWorks-supplied drafting standard is set.
'
' Postconditions: Drafting standard is set to the
' specified custom drafting standard.
'-------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModExt As SldWorks.ModelDocExtension
Dim bRetVal As Boolean
Dim sPath As String
Dim sFileName As String
Dim vDSNames As Variant
Dim i As Integer
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModExt = swModel.Extension
'Get current SolidWorks-supplied drafting standard
Debug.Print "Current drafting standard..."
Debug.Print " (Standard, NoOptionSpecified) before = " & swModExt.GetUserPreferenceInteger(SwConst.swDetailingDimensionStandard, SwConst.swDetailingNoOptionSpecified)
Debug.Print " (StandardName, NoOptionSpecified) before = " & swModExt.GetUserPreferenceString(SwConst.swDetailingDimensionStandardName, SwConst.swDetailingNoOptionSpecified)
Debug.Print " "
' Get drafting standard names
' Only the SolidWorks-supplied drafting standards
' are returned; any custom drafting standards are
' not returned
Debug.Print "SolidWorks-supplied drafting standards..."
vDSNames = swModExt.GetDraftingStandardNames
PrintNames vDSNames
Debug.Print " "
' Load custom drafting standard
bRetVal = swModExt.LoadDraftingStandard("C:testMyANSI.sldstd") ' Substitute your custom drafting standard path and filename
' Get custom drafting standard just-specified
Debug.Print "Standard that custom drafting standard is based on or derived from..."
Debug.Print " (Standard, NoOptionSpecified) after custom loaded = " & swModExt.GetUserPreferenceInteger(SwConst.swDetailingDimensionStandard, SwConst.swDetailingNoOptionSpecified)
Debug.Print " (StandardName, NoOptionSpecified) after custom loaded = " & swModExt.GetUserPreferenceString(SwConst.swDetailingDimensionStandardName, SwConst.swDetailingNoOptionSpecified)
Debug.Print " "
' Get drafting standard names
' Remember, only the SolidWorks-supplied drafting standards
' are returned; any custom drafting standards are
' not returned
Debug.Print "SolidWorks-supplied drafting standards..."
vDSNames = swModExt.GetDraftingStandardNames
PrintNames vDSNames
Debug.Print " "
End Sub
Function PrintNames(ByVal vDSNames As Variant)
For i = LBound(vDSNames) To UBound(vDSNames)
Debug.Print " " & vDSNames(i)
Next i
End Function |
|