Megaimportant wish: Weight measurement

Rhinoceros exists since decades and is a NURBS software primarily used in many fields of product design and manufacturing. As such, the CAD designers and engineers who use it quite often need to check and validate the weight of a certain 3d model in the scene. However, for some unknown reason Rhino still lacks the aforementioned capability. It’s super easy for the programmers of Rhino to make a simple tool for weight calculation, but why don’t they?

Weight is the result of measuring the volume and using it in conjunction with a specific mass formula for certain material types. Since Rhino already has a tool to measure the volume of 3d models, it’s natural to expect that a weight measurement tool is also included in the list of features. In many applications the weight is as important as the volume; sometimes even more important.

Other CAD programs even have real-time weight measurement which shows the dynamically changing weight of a 3d model during its modifications via scale, point editing, bending, twisting etc.

Could we expect a weight measuring tool to be added via future update to Rhino 6 or Rhino 7? :slight_smile:

I’m aware of the “Real material” BOM script that users could download from Internet, but it’s not a native part of Rhino. Also, it requires several mouse clicks for each weight measurement and shows a dialog box that exports the results to the clipboard and asks for a confirmation to save the numbers to a csv file (many users even don’t have a software to open that file format). A more elegant solution would be for Rhino to offer that capability natively and open a new window with a vertical list of the measured objects and their individual weight, and ability to arrange the objects by name, weight or material type. Also, an icon on that window to export the results as txt or rtf file formats that are widely used and could be read by many users, even on phones.

8 Likes

Hello - how would you expect to see this implemented - would the user assign a material with known density or is the user expected to know the density and assign it? Should this be tied to assigning render materials?

-Pascal

I think that “Real material” (part of “Peter’s tools scripts”) has a good idea that just needs to be further improved. It requires the user to preliminary set a material type (glass, steel, aluminum, concrete, water etc) to the object. Then, another icon (BOM) is used to take the weight measurement at any given moment as soon as the 3d model(s) already have assigned material(s).
https://wiki.mcneel.com/people/peterharris

There is also another script by Dale Fugier that’s called “Weight calculator” (SolidWeight.rvb) that works the other way around, and it’s very convenient, because it lets the user to pick the material type after the object is already selected. Unfortunately, it works only on single 3d models and that limits its usage.
http://v5.rhino3d.com/group/rhinoscript/forum/topics/weight-calculator

Your suggestion about Rhino materials is really intriguing. That would be great for people who would like to combine the rendering properties (colour, reflectivity, textures etc) with the actual physical properties (weight). :slight_smile:

PS: For the “Real material” script I use the following weight formulas that I copied from various sources from Internet:

How To Edit The Materials List:
To edit the list, just add your materials, Then an equal sign, and the specific gravity of your material.
Do Not begin a material name With a number Or other characters - just letters.
Do Not put In multiple materials that have the same name, and Do Not put spaces In the material names
Leave the EditMaterialsList=EditMaterialsList line intact. You can re-arrange the order as much as you would like.
To add materials for which you do not know the specific gravity, convert them to grams per cubic cm.
To convert from whatever units you know, go to google and type in something like:
“40 pounds per cubic foot in grams per cubic cm” …and google will return the number to enter here.
You can also move materials from the MaterialsToHide list to the MaterialsList list and vise-versa,
which can keep your options simple and customized for you without getting rid of materials that you might need someday.

Here is one website that lists specific gravities of various materials:
http://www.reade.com/Particle_Briefings/spec_gra.html

[MaterialsList]
Steel=7.9
Stainless_steel=8
Battery=1.41902
Aluminum=2.72
Titanium=4.48
Glass=2.8
Cork=0.225
Rubber=1.2
Iron=7.84
Zinc=7.12
Brass=8.72
Bronze=8.8
Copper=8.96
Gold=19.32
Silver=10.48
Lead=11.36
Magnesium=1.76
Nickel=8.88
Platinum=21.44
ABS=1.05082887
PVC=1.28149863
Nylon=1.11063214
Water=1
Ice=0.925
Diamond=3.2
Granite=2.725
Cement=3
Coal=1.4
Brick=1.6
Magnetite=5.125
EditMaterialsList=EditMaterialsList

[MaterialsToHide]
ppr=0.900100225
his=1.03740365
eva=0.945868033
lpe=0.945868033
mis=1.03740365
Renshape_BM5440=0.55
Renshape_BM70=0.7
Renshape_450=0.65
Renshape_460=0.77
Axson_ProLab_65=0.65

When I’ve needed this, esp ‘live’ I’ve scripted this in grasshopper and either shown the results in a panel or linked the results up to a Gsheet.

For those not capable of rolling there own something based around ‘real materials’ sounds very handy.

Cheers

DK

I used Dale’s script on my Win machine a long time ago. I used to have it as a right click on the “volume” button. Very nice and useful script. It doesn’t, of course, work on the Mac, though. It would be nice to have this as a normal Rhino command.

Perhaps some wizard could make a Mac/Python version of the script as first aid… :wink:

Philip

Yes I vote for politely request this too please . It would be great to include mass moment of inertia as well. Again the ingredients are already there in terms of volume moments.

Graham

Hi @Rhino_Bulgaria,

There are several different meanings to “weight” and weight is variable, depending on context (e.g. location, motion), so you need to be able define which weight you want and the context in which you want it…

I can see scenarios where a boat designer might want to use a definition which takes account of buoyancy, whereas a rocket designer will want to use one which includes the effect of centrifugal force.

Unless you really want mass, which is precisely defined and independent of context, and therefore simpler to implement.

Regards
Jeremy

Yeah, I assume we’re talking about mass here… I hope…

-Pascal

1 Like

I hope we all mean mass too!

A quick mass calculator would be very useful, but I imagine that the specific gravity list would have to be editable. People use Rhino for all designing all sorts of things and my material list as a jeweler would be very very different from an architect or boat designer.

Tying it to the render material could be neat solution, although it may seem non-intuitive to anyone who doesn’t do much rendering or uses a 3rd-party plugin to render like vray or keyshot.

As long as the material list could be edited and saved in the template file or somewhere else that could be easily transferred from one computer to another, I think it would be a useful addition.

Cheers,
Mike

Jewelry designer here:
This would be very helpful for us too!
I have to export an STL to another program to calculate weight/mass… I’d love to be able to this all in rhino!

1 Like

Yeah, I meant mass, or gravity if you wish. :slight_smile: But it’s commonly named as “weight” in many programs, including the aforementioned scripts.

I also agree that editable material list is a must. Both scripts that I mentioned above allow to edit the material list, and “Real material” even uses a separate ini file, so it could be transferred to other PCs or sent via e-mail to customers, co-workers etc.

Another idea. Is it possible to implement the mass to a layer material, so that every new model that’s created while a certain layer is active will automatically receive the mass properties relative to the given material? This brings the question what happens when a 3d model made in such layer (lets say its mass is set to aluminum) is then moved to another layer (steel). Will that will result into an automatic change of its mass properties?

I assigned the "Weight calculator"script to a custom icon whose icon I created by simply doubling the “V” in the “Volume” icon. :slight_smile: I upload it here in case that someone wants to use it.

24x24 pixels:
Weight

32x32 pixels:
Weight%20Rhino%206

1 Like

All - Weight is the simple multiplication of volume times density (density being mass per unit volume).
As has been noted, there are scripts out there that can do this. Also, you can quite simply do this in Grasshopper, as @kiteboardshaper remarked. In GH you can sort, draw tables, etc… and all of that in real-time.

This thread, however, is about doing this in plain Rhino.

I’ll turn that around a bit and say that, yes, the tools in Rhino 7.x (*) will allow you to measure weight without having to resort to scripts or GH.

The key missing item at this moment is captured in RH-49774 which, when resolved, will allow you to perform calculations on two or more text fields.

A few things, though…

We like to think that the tools that we provide are exact (within given tolerances) and can be relied upon and understand that getting an exact weight can be very important. Small variations in the calculated weight of small objects in precious metals or of huge assemblies in more plain metals can lead to costly mistakes.

What is the density of something as simple as “water”. Are we talking about pure water, fresh water, sea water? What is the temperature? The salinity?
The same with “steel”. Low carbon steel, S355, stainless, Duplex, Super Duplex, Inconel 625, Inconel 718, …?
18 K gold? Yes, that is 75% pure gold but the rest is a combination of palladium, nickel, zinc, iron, copper, silver, cadmium, manganese, …

Just note that “specific gravity” is the ratio of the density of something to the density of a given reference material, usually water (997 kg/m³), and is thus not the same as “density”. But, yes, perhaps for your application you actually need “specific gravity”.

For us, therefore, the only sensible solution is that this list is completely user customized.
If you are working with a very specific material, you’ll probably have a datasheet that includes its density. If you only want a quick feeling of a ball-park weight of something, a simple search on the net will get you a “typical” density.

Currently, in Rhino 7 WIP you can store custom material density (or whatever) information on an object as attribute user text, or as document user text. Storing the information as document user text allows you to have your custom list available from your custom start-up template.

Volume already is a text field that is available for objects. Once RH-49774 is resolved, you will be able to multiply these and show the result in a text string.

You will then be able to make a simple block that, when inserted, will ask you to provide information for all text fields in that block:


For now, you will have to select an object and then select the density information to get its weight.

I’ve filed this feature request as RH-55343.

Yes, of course.


(*) Note that the 7.x reference merely is the simple observation that issue RH-49774 currently is on the 7.x list.

2 Likes

Sorry @wim, but volume x density gives an object’s mass, not weight. The commonest definition of weight is weight = mass x g where g is the acceleration due to gravity. g varies from place to place (which is why @pascal hoped the OP meant mass).

Regards
Jeremy

1 Like

That’s true, @jeremy5.
… and when multiplication of text fields becomes possible, you can calculate exactly what you need.
-wim

Wow, there is so much deep information regarding the mass and weight that I start to feel like a dump person. :smiley: Just kidding.
As I mentioned above, I find Dale Fugier 's scrip called “Weight calculator” to be of great help, because it’s very simple and quick to use with little to no preparation. The only exception is made during the first usage of the script to set one or more custom values for the desired materials. The user may never visit and change that list again, unless a new material definition is needed. Unfortunately, it does not work with multiple objects. It’s the only missing feature of that great script. :slight_smile:

We have the request to support multiple objects on the list as RH-54270.
-wim

I guess Rhino has to have an option to distingish between earth and the moon then. I mean, we just can’t assume that only earthlings use Rhino, or? :wink:

// Rolf

2 Likes

It may be that Rhino is a distant descendant of the Mondoshawans, guardians of the Fifth Element.

1 Like

You might also have a look at Orca3D’s Weight & Cost tracking module. You start by building a library of materials (point, curve, surface, or solid), with the appropriate “weight density.” This is the actual weight for a point, weight per unit length for a curve, weight per unit area for a surface, and weight per unit volume for a solid. You can also specify “cost densities” for material and production costs. There are tools for generating reports, selecting items in the model by material, selecting items with or without material properties, etc. We have customers using this for entire boat and ship designs. As you say, weight (mass) and CG are critically important.

3 Likes

Orca3D’s “Weight&cost” plugin also looks something in the right direction. It’s closer to “Real material” script.

In my opinion, Rhino should offer both solutions:

  1. A complete weight and cost calculation module based on materials with user-set mass properties which applies the mass to the objects permanently (unless those properties are changed or removed from the object). Obviously, it’s slow to use and requires more mouse clicks, because the material properties are accessed via the Properties panel and then going to the materials tab. It should be able to show the results in a new window with a vertical list, plus an option to save the resulting data in a variety of commonly used file formats that could be read by different operating systems for PC, Mac and phones (txt, rtf, pdf, csv etc.)

  2. An alternative and very quick way (just 3 mouse clicks) to check the weight of objects that works in the same fashion as Dale Fugier’s “Weight calculator” script. First mouse click to select one or more objects, then a second mouse click to press the icon, and third mouse click to pick the desired material from a pop-up window with a vertical list of user-set mass properties. Upon selecting the material that could finis the command and show the total mass in the command line. I find if especially useful for quick reference purposes, because does not require opening the Properties window and browsing across its tabs.
    “Weight calculator” actually requires an additional, fourth mouse click, because it asks for a confirmation via pressing the “OK” button in the pop-up window. However, that script offers an alternative way to finish the command by double-clicking on the material. In this case, it will close the pop-up window so there is no need to press the “OK” button.
    If there is a tiny box with a tick such as “Close this window upon picking the material”, the users will be able to choose whether the pop-up window will close after the 3rs mouse click or will ask for an additional confirmation via the “OK” button.

Both of these mass evaluation tools should carry the mass properties to the target objects so that they preserve that information even if their size and shape is eventually modified via scale, solid control point editing, bend, twist, Boolean operations etc. Basically the same principle as the rendering materials.

Being able to see the changing mass in real-time during editing of the size or shape of an object (inside the viewport, if possible - via special Mass dimension) is also a great way to save cost and weight (mass) of a structural component while optimizing its strength.