Notifications
Clear all

[Closed] How to read out new Point helper position after using FFDBox modifer?

Hi everyone,

I have a collection of Point helpers which location I’ve altered by assigning a FFD modifier to them.

Clearly the Point helpers are moved in the viewport, but their individual location doesn’t change when I read them out with Maxscript.

Collapsing the stack doesn’t help. Am I missing something, or is it impossible what I want to do?

I see them move so I’m still hoping that I can use the FFD modifier in this way.

Thanks!!

5 Replies

What makes you think you can change the position of a node by applying the FFD modifier in the first place?

FFD modifiers are designed to modify the geometry. It would be appropriate if the system did not allow these modifiers to be applied to objects that are not of the geometry class.

1 Reply
(@charlo020)
Joined: 10 months ago

Posts: 0

Haha yes you’re right! I was fooled by the visual change in the viewport, but obviously that shouldn’t happen at all or be prevented.

Thanks for confirming guys!

I think I’ll then create vertices at the locations of the Point helpers, match each vertex to each Helper, tweak the vertices with the FFD modifier, read out the new vertex locations and update the matching Helpers accordingly.

Or… feel free to post a better idea!

there are lots works you need to solve what you have done
first hope you didn’t move the ffd-point’s relative position ,then you should get the 1st ffd-point’s position when add to a new point , use ffd.control_point_1,for ffd 2x2x2 , it should be [0,0,0],this was the best state
2cd , you should get the position the time you need , it may like [1918.01,-4123.36,0]
3rd , you should tranform the position from object-tranform to world-transform , see the manual https://help.autodesk.com/view/MAXDEV/2021/ENU/?guid=GUID-1E2277FE-7854-4404-89A9-9D72C07CDBDB
the code may like this

b=$
ffd=$.FFD_2x2x2
cp64posL=ffd.control_point_1
objTM=b.objecttransform
modTM=(getModContextTM b ffd)*ffd.lattice_transform.value
modBBMin=getModContextBBoxMin b ffd
modBBMax=getModContextBBoxMax b ffd
cp64posW=(modBBMin+(cp64posL*(modBBMax-modBBMin)))* (inverse modTM) * objTM

now , you get the pos what you want

No. I can’t believe that this could be true. The FFD modifier cannot change the transformation properties of a node or object.

It’s obvious that we need to look for another solution instead of using FFD and helpers together.

as Denis says it’s not doing what you think it is… it’s only changing the way it’s drawn while the nodes position remains unchanged.