Community
3ds Max Forum
Welcome to Autodesk’s 3ds Max Forums. Share your knowledge, ask questions, and explore popular 3ds Max topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Scaling a box results in original parameters remaining...?

10 REPLIES 10
Reply
Message 1 of 11
darawork
3337 Views, 10 Replies

Scaling a box results in original parameters remaining...?

Hi,

 

When I uniformly scale a box in 3DSMax Design 2014 the original L/W/H dimensions, as read from the modify tab, remain the same as before the scale operation. As this is not a stack type modifier the same figures make no sense.

 

Can someone else test this and see if they get the same results?

 

Thanks

Darawork
AutoDesk User
Windows 10/11, 3DS Max 2022/24, Revit 2022, AutoCad 2024, Dell Precision 5810/20, ASUS DIY, nVidia Quadro P5000/RTX 5000/GTX760

10 REPLIES 10
Message 2 of 11
PROH
in reply to: darawork

Hi.

 

Yes, the L/W/H dimensions reads the same in the modifier tab, when you scale it. Furthermore the scale is relatively, just like if you added a modifier.

 

This means that if you make a box with the dimensions 10 x 10 x 10 and scale it 200% it will measure (as expected) 20 x 20 x 20. If you then goes back to the modifier and "add" 2 to the height, the resulting height-adjustment is 4, and the box will now measure 20 x20 x 24, but still read 10 x 10 x 10 in the modifer panel.

 

AFAIK Max has always worked this way - just another reason not to use scale at object level.

___________________________________________________________________________________________________
3dsMax 4.2 to 2018
AutoCAD 2000 to 2018
Infrastructure Design Suite Premium 2012 to 2018

Message 3 of 11
Steve_Curley
in reply to: darawork

All of the above, and more, is why you should avoid scaling anything at the Object level. Either convert to EPoly (or EMesh) and scale the Vertices or Edges, or apply an XForm Modifier and scale its Gizmo. The first time a hierarchy (objects linked with the Select and Link tool) blows up and the animation goes completely haywire, you'll know why...

The discrepancy in the numbers is expected and is the result of scaling at the the Object level - the normal parameters have no way to know that you altered the mesh they are generating.
Note that this has been true since, well, forever - it's nothing specific to 2014.

Max 2016 (SP1/EXT1)
Win7Pro x64 (SP1). i5-3570K @ 4.4GHz, 8Gb Ram, DX11.
nVidia GTX760 (2GB) (Driver 430.86).

Message 4 of 11
darawork
in reply to: Steve_Curley

Coming from an AutoCad background I would so much like to say that that sounds like it is broken, but I won't; I'm sure there must be a reason for its 'unique' functionality, although that reason is unfortunatly beyond the grasp of my current skill level.

 

It reminds me of a clock I have in my bathroom that is one hour and four minutes fast. To everyone else it appears wrong.... but it's been like that for ages, so I've gotten used to it.

Darawork
AutoDesk User
Windows 10/11, 3DS Max 2022/24, Revit 2022, AutoCad 2024, Dell Precision 5810/20, ASUS DIY, nVidia Quadro P5000/RTX 5000/GTX760

Message 5 of 11
Swordslayer
in reply to: darawork

Okay, you've asked for it 🙂 Let's have a look at a very simplified explanation at how max does its magic:

When you construct an object, all its points' positions are stored as positons relative to a single point - for now let's say it's the pivot point. If it's non-collapsed primitive, every time you change a parameter, the points' positions are rebuilt according to all the supplied values, if we are dealing with an editable_poly, mesh or anything similar, there's no formula to recalculate them, they are basically stored as a list of their numbers and positions only (when you scale bunch of these points at once, it's only the positions that change so no issue here).

So to continue, how does the object, let's say a Box, know where should the points appear? It calculates their positions as if the object was placed at the origin - this is how you get a virtual object with correct dimensions and parameters. This virtual object is then created in the scene as a node and transformed by the node transformation matrix to a certain positon, orientation and scale. Most probably you've already noticed you can move the pivot around - why doesn't it change the positions of object's points then? It turns out there's also an offset transformation which changes when you manipulate the pivot. To reach the final tranform, all the positions are multiplied by the individual transformation matrices in given order - so far we have point position * object offset matrix * node transformation matrix. If the object is a child node, this matrix is further multiplied by the transformation matrix of its parent, and so on until you get to the top of hierarchy. The virtual object is still the same, only the node transformation changes and is applied to the object's points.

Knowing all this, what do you think should happen when you rotate the pivot so now the width and length should be switched? What if you rotate it 45° instead? Should an instance of a primitive object nested in a scaled group report the original values or scaled values? And so on. There are of course other tools apart from scale itself, the XForm modifier, Rescale World Units utility and heaps of scripts to fit the object to certain dimensions or align its gizmo to world or parent. There's the Measure utility with a floater showing you what are the dimension of the bounding box of the object in the world coordinates, there are dimensions of the object in its object space in the Object Properties dialog and so on. Pick your tool but pick it carefully.

All of it follows a the same pattern, which is nested transformations, controllers and control objects. You want a pivot you can transform when animating stuff, you want deep hierarchies especially with complex rigs, and you want all of it to work consistently. Just as AutoCAD is no good at animating objects, max is no good at CAD drawings. Some concepts are different, some are similar but all the time you should keep in mind it's a completely different piece of software and shape your expectations based on this.

Message 6 of 11
Doughboy12
in reply to: darawork

Sort of a bad analogy...but I get it.

The clock still counts 1 second as one second...it is just set wrong.

The scale utility in Max doesnt do what ANYONE would assume it would/should do...IMHO

On that you and I can agree...and yes we just live with it.

Cheers.

__________________________________________________________________
If my post answers your question, please click the "Accept as Solution" button.
This helps everyone find answers more quickly!
______________________________
3ds Max 2012 Certified Professional
Windows 7 Enterprise 64Bit
Intel Xeon X5650 @ 2.67 x2 36GB
3ds Max 9 - 2013
______________________________
Message 7 of 11
Swordslayer
in reply to: darawork

To put it more in AutoCAD terms, it's similar to enclosing the object in a block to be able to scale it non-uniformly (what should a non-uniformly scaled circle report as a radius anyway? what about skewed torus where each section is different? and so on). Just go by the rule of not using scale in object level unless you really mean it.

 

On the other hand, talking about all sorts of scaling in max, mirror function is an obscure beast, it basically sets the scale to negative value and hides it from the user. If you were to negatively scale some polygons, their normals will flip - that's because the polygon normals are defined by the order of the polygon verts and when you mirror it while the order stays the same, the direction is opposite. Mirroring the object hides this and only when you attach the object or manipulate it in some other way you suddenly find the attached piece renders in black or causes weird artifacts. So basically instead of having a mirrored instance you can make a reference, add XForm modifier, scale that one negative 100 in axis of your liking and put a Normal modifier on top of it to flip the normals back.

Message 8 of 11
lightcube
in reply to: darawork

Interesting discussion. I just happened to write an article about scale for users of my tools because I am often getting this same kind of question from new Max users: "Why is my model so small when exported?!?!" etc.

 

It's because they scaled it and never reset the transformation.

 

I do think that AD should add some new tools to the Max Scale toolset. Among them are new scaling and skewing tools.

 

It would be nice if the scale tool had a way to lock/unlock automatic scale reset upon completion... so that you wouldn't have to go into the Hierarchy tab and do this or apply XForm modifiers all the time. For non animation scales, this probably makes sense (so if you are in "modeling" mode the transformation simply gets reset after scale and when in "animation" mode it doesn't). Those coming in from CAD would probably use the scale reset/modeling mode.

 

Some common scaling tips for new users are like those Steve mentioned above. Some other tools you can look into are the FFD modifier. Especially the FFD 2x2 modifier for CAD objects (and convex BSP level design, which is what I deal with a lot).



Shawn Olson

Developer of Wall Worm
3ds Max plugins and Scripts

3ds Max 4/Gmax - 3ds Max 2020
Mudbox 2009-2019

Windows 10 x64
i7 8700K
64GB RAM
Geforce 1080ti
Message 9 of 11
Swordslayer
in reply to: lightcube

Actually, what Reset Scale does is it multiplies the object's objectOffsetScale matrix by the node matrix scale part and sets the node scale to [1,1,1] (if you Reset Pivot the scale will be back again). So you scale a box to ten-times its original size and then chamfer its edges - let's say the input is 10 mm but even if you've reset scale, the resulting chamfer will still be 100 mm. For geometry export the preferred way is using snapshotAsMesh, when working with the scene it's either using ResetXForm if you don't care about pivot orientation or PEN_resetXform (or a similar script) if you want to preserve it.

Message 10 of 11
PROH
in reply to: lightcube

I agree that Max could benefit from a "modernized" scaling tool, that would simplify the workflow - even though it already got several different options, depending on you area of work.

About a "scale reset" tool, the Real World Scale utility does provide this already.

About CAD users expectation to how a scaling tool works/react: I work on a daily basis with both AutoCAD and Max, and receives CAD drawings from many people (and programs), which I have to use in my 3D work, and it's my personal experience that many CAD users has some really bad habits on how and when to use scale. Besides that, it is not correct that AutoCAD resets the object after scale - you just don't see it. When importing a CAD file to Max, the objects scale value is passed on, giving you a lot of different problems.
___________________________________________________________________________________________________
3dsMax 4.2 to 2018
AutoCAD 2000 to 2018
Infrastructure Design Suite Premium 2012 to 2018

Message 11 of 11
lightcube
in reply to: Swordslayer

Thanks for the lesson swordslayer. I guess I'll need to go read up a little more on the hierarchy tab!

 

 



Shawn Olson

Developer of Wall Worm
3ds Max plugins and Scripts

3ds Max 4/Gmax - 3ds Max 2020
Mudbox 2009-2019

Windows 10 x64
i7 8700K
64GB RAM
Geforce 1080ti

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report