Convert meters to fraction inches using SOLIDWORKS API
This VBA macro converts the value specified in system units (meters) into the fraction inches with specified denominator.
For example the value of 0.112713 with denominator 16 would be converted to 4 7/16"
Configure the parameters as per the settings below:
Const DENOMINATOR As Integer = 16 'denominator value Const ROUND_TO_NEAREST_FRACTION As Boolean = True 'True to round to nearest fraction, False to not
The result and available options are equal to the dimension property manager page in SOLIDWORKS
Const DENOMINATOR As Integer = 16 Const ROUND_TO_NEAREST_FRACTION As Boolean = True Dim swApp As SldWorks.SldWorks Sub main() Set swApp = Application.SldWorks Debug.Print ConvertMetersToFractionInches(0.112713, DENOMINATOR, ROUND_TO_NEAREST_FRACTION) End Sub Function ConvertMetersToFractionInches(value As Double, denom As Integer, round As Boolean) As String Dim swUserUnits As SldWorks.UserUnit Set swUserUnits = swApp.GetUserUnit(swUserUnitsType_e.swLengthUnit) swUserUnits.FractionBase = swFractionDisplay_e.swFRACTION swUserUnits.SpecificUnitType = swLengthUnit_e.swINCHES swUserUnits.RoundToFraction = round swUserUnits.FractionValue = denom ConvertMetersToFractionInches = swUserUnits.ConvertToUserUnit(value, True, True) End Function