Hey guys,
I need some help figuring out why my macro is changing the angular precison of the chamer from None to double decimal. I use the macro to change the mass to kg and to define the number of decimal places based on the weight. But somehow the macro also affects the angular precision of the chamfers. For example it changes it from 10x45° to 10x45,00°.
The section of the code that makes this happen:
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim vCustPropNames As Variant
Dim vCustPropVals As Variant
Dim Current As New Collection
Dim Final As New Collection
Dim i As Integer
Dim blnFound As Boolean
' Decimal places:
Dim Val2 As Integer
Dim swModExt As ModelDocExtension
Dim MassProp As MassProperty
Dim boolstatus As Boolean
' Apply sort by rules for BOMs
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swTable As SldWorks.ITableAnnotation
Dim swSpecTable As BomTableAnnotation
Dim vTable As Variant
Dim j As Integer
Dim swSortData As BomTableSortData
Dim status As Boolean
' Rebuild
Dim boolstatusRebuild As Boolean
' Save file
Dim boolstatusSave As Boolean
Dim swErrors As Long
Dim swWarnings As Long
'--------------------------------------Mass Units to KG--------------------------------------
swModel.Extension.SetUserPreferenceInteger swUserPreferenceIntegerValue_e.swUnitSystem, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitSystem_Custom
swModel.Extension.SetUserPreferenceInteger swUserPreferenceIntegerValue_e.swUnitsMassPropMass, swUserPreferenceOption_e.swDetailingNoOptionSpecified, swUnitsMassPropMass_Kilograms
'--------------------------------------Set number of decimal places--------------------------------------
Set MassProp = swModel.Extension.CreateMassProperty
Val2 = 0 ' no decimal
If (MassProp.Mass < 1000) Then Val2 = 1 ' one decimal
If (MassProp.Mass < 100) Then Val2 = 2 ' two decimals
If (MassProp.Mass < 10) Then Val2 = 3 ' three decimals
boolstatus = swModel.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swUnitsMassPropDecimalPlaces, Val2)
End Sub
There are some other things that the macro performs, but have no effect on the angular precision.
Thanks,
B
SolidworksApi/macros