Dimension size based on pixels instead of units?

Hi, is there a way to create dynamically scaling dimensions whose properties (text height, arrow lengths and thickness etc) are based on pixels instead of units? That would help a lot in situations where the intend is to always have readable numbers of the dimensions no matter of the zoom factor, be it up close or from a far distance. In case that this is not yet implemented, I would be glad if you consider it as a suggestion for a future release. :slight_smile:

I can imagine that zooming out way too much could lead to a disorganized clutter of arrows and numbers, so there may be a setting to limit the maximum size to a certain amount of units. For example, the text could be set to be 24 pixels tall, along with a maximum size limited to 200 units (lets say, in millimeters). This means that moving the camera up-close to the object will always render the dimensions text at the preferred size of 24 pixels, however, moving the camera far from the model (like 50 meters away) will render the dimension text no larger than 200 mm. This is extremely usable with making drawings or screenshots for manufacturing, with the added benefit to always have the text size and arrow size same across all the drawings, and not worrying about manually setting different size for each part depending on the camera zoom.

Hey @Rhino_Bulgaria did you ever figure this out? I’m currently creating (or really, fixing) a font for FontForge, and this would be helpful so I can make a template. I’m assuming the ratio probably just needs to be right to just make it useable, but wondering about pixels straight in/from Rhino.

--Alan

I can only rely on the developers to implement dynamically scalable dimensions.
In fact, I have an extra feature request:

Add a distance falloff for the dimensions, so that they will disappear as soon as the camera reaches a certain distance from them. The same goes for the dot objects. For example, when I zoom-out the camera and my model takes just a tiny portion of the viewport, the dots remain the same size, but they are also super huge in comparison to the distant model. So, my suggestion is to hide the dimensions and dots when they are too far away.

A similar functionality is used for the dimensions and some of the Gumball handles since years. When they are rotated nearly perpendicular to the camera, they disappear, because they become unusable anyway from that extreme angle.

This is an excellent suggestion; sizing text by pixels. Using mm or inches makes sense if the goal is to print out a dimensioned design on paper but the flexibility for on screen work makes total sense. I use ArcGIS and this is the default way of labeling features and has the ability to limit visible ranges, etc., as you suggested. It can get cluttered if you zoom out too far but there is the ability to create multiple classes of labels, each tied to a specific scale range with auto switching between label classes as you zoom in/out, making it easy to manage the readability. This would be really nice in Rhino.

It’s interesting to know that a similar functionality is already used in other programs. Now it’s up to the developers to add that particular functionality in Rhino. Currently, I’m forced to make my custom sizes for the dimensions and change them based on how close the camera is located. An automation of that process would be so much helpful.

Video games, for example, use different LOD (level of details) based on the camera position relative to the models. Each LOD model is active from a set range of minimum and maximum distance from the camera. Once the limit of the range is reached, the game engine switches to the next LOD. The same logic could be used for the dimensions in Rhino.

In fact, Rhino already uses a similar approach to render the NURBS geometry with a different level of detail for distant objects. :slight_smile: The code is already there, it just have to include the dimensions, too.