It’s a sad day when you go to override the mass properties in your model and you lose your Moment of Inertia, your Center of Gravity and your will to live. It doesn’t have to be that way though. You could do what Marc Monaghan did… scream your lungs out your chest, put them back in, scream again, then write a macro that keeps your CG and lets you change your SolidWorks assembly mass. just. like. that.

How to Change SolidWorks Assembly Mass without losing your CG

Marc’s company assigns a custom mass to their machinery assemblies quite frequently. SolidWorks gives you the option to do this with the Mass Properties tool and many of you may do the same. Like Mark, many would like to keep the moment of inertia and CG data as well. However, if you override the assembly mass, the other properties zero out (even in SolidWorks 2012) forcing you to manually enter them all again and turn violently anti-social doing it.

So, instead of manually entering the values everytime, Mark wrote a Macro to share. The download is below. It includes a trick to force the VBA form on top of SW in Windows 7 x64, otherwise VBA forms pop up behind SW (a lame surprise you get when upgrading from XP). Oh, and a disclaimer from Marc. He is not responsible for fiery deaths on rollercoasters or black holes created by particle collisions due to this macro.

Marc’s MassMaker Macro

Currently, the macro is only coded for lbs input (Feel free to add unit recognition!) Also, if using on parts, you cannot have a material assigned to it, as it will lock the density to that materials properties.

green arrowMarc’s MassMaker Macro

Have other 3D software, hardware or design tips? Send them in to!

Intro Image created via model at GrabCAD


Josh is founder and editor at, founder at Aimsift Inc., and co-founder of EvD Media. He is involved in engineering, design, visualization, the technology making it happen, and the content developed around it. He is a SolidWorks Certified Professional and excels at falling awkwardly.