Short answer is that SolidWorks currently uses common rounding, and is controlled by your decimal places. Rounding off to a particular multiple is an interesting idea. Do you have case where the decimal place setting does not provide you with the result you desire?
i have no problem with the decimal place and precision setting. it is fine for me. I am working in plant layout and we are using solid works for the design purpose. So, when we place the equipments in metres distance, we are not giving importance for 5 or 6 mm difference. For example, if the distance between the two equipments is 3996mm, normally we will show it 4000mm. In Auto cad, if we select round of 10mm, automatically 4000mm will come. Like the same option, i am expecting in solidworks.
Have you considered changing the settings of your plant layout drawing at Tools > Options > Document Properties > Units to "MKS (meter, kilogram, second)"? You could set the Decimals to .1. With those settings 3996mm would display as 4.0.
If you don't want to make this change for the entire drawing you can make the change on selected dimensions by clicking on them to highlight them, then going to the Other tab of the PropertyManager, clicking the box for "Override Units", and choosing Meters from the drop-down. You could then go to the Value tab, Tolerance/Precision section to set the desired number of decimals. You can Ctrl+select multiple dimensions to make this change to all of them at once instead of one at a time.
Thank you for the alternative idea. Our constraint is we should show in mm only. We can use it for time being and we will use this option when we need to show in different units. for example in feets.
Why would you want to round off the dimension in incriments of 10 and 100 so severely?
Surely that defetes the purpose of using CAD.
We are working in plant layout. So, multiples of 10 or 100 is equivalent to 0.01 and 0.1mm in part modelling. So, practically we have no problem in this.
Ah, ok. I see your issue now.
Could I make a suggestion then. If you are placing objects into specific areas can you not create a "Bounding Box" of the approximate area somewhere in the model itself. for example, make a base (4000 X 2000)
I know this would be like a temporary measure until Matt can work his magic and incorporate "round ups" in SW2015
I also came about this need and compiled a simple macro to do that. It overrides with rounded value. When you run next time it removes override.
I can be made more sexy for persisten dialog box with setting so go ahead and make modifications and share here. I also used examples found if forum.
'prerequisite: choose dimension(s) on drawing
'rounds to closest 1000
Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swDisplayDim As SldWorks.DisplayDimension
Dim i As Long
Dim retval As Double
Dim DocUnits As Long
Const AllSelections = -1
Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swModel = swApp.ActiveDoc
Set swSelMgr = swDoc.SelectionManager
For i = 1 To swSelMgr.GetSelectedObjectCount2(-1)
If swSelMgr.GetSelectedObjectType3(i, -1) = swSelDIMENSIONS Then
Set swDisplayDim = swSelMgr.GetSelectedObject6(i, -1)
retval = swDisplayDim.GetDimension2(0).GetValue3(swInConfigurationOpts_e.swThisConfiguration, "")(0)
retval = Round((retval + 0.000001) / 1000) * 1000 'https://stackoverflow.com/questions/326476/how-to-round-a-number-in-vba-to-the-nearest-5-or-10-or-x
'round to closest 1000
retval = retval / 1000 'm to mm
If swDisplayDim.GetOverride = False Then 'checking if already overriden
swDisplayDim.SetOverride True, retval 'setting override value
Else: swDisplayDim.SetOverride False, retval 'User wants to revert override
MsgBox "Selected object must be a dimension."