Announcements
Autodesk Community will be read-only between April 26 and April 27 as we complete essential maintenance. We will remove this banner once completed. Thanks for your understanding

Potential Bug: Translations from imported parts are lost.

philipphertel
Participant

Potential Bug: Translations from imported parts are lost.

philipphertel
Participant
Participant

Hi there, I've noticed that when I translate a Component in model A that is imported into model B, when I pull the updates into model B, then the translations appear not to have happened. This does not happen with bodies. When I translate bodies in model A, they appear correctly in model B. This happens all the time and is maddening. Here is a screenshot of this happening.

 

Am I doing something wrong? Have other people noticed this problem? 

 

Thanks for any help!

0 Likes
Reply
Accepted solutions (1)
580 Views
12 Replies
Replies (12)

sanjana.shankar.goli
Autodesk Support
Autodesk Support

I'm just wondering if you did a "Capture Position" in model A for the changes to be reflected in model B.

sanjanashankargoli_0-1640140170948.pngsanjanashankargoli_2-1640140221666.png

 

 

 

 


Sanjana Goli
Software QA Engineer
Fusion 360 Webinars | Tips and Best Practices | Troubleshooting
0 Likes

philipphertel
Participant
Participant
Thanks for your response. Yes it does not work whether or not I capture
position. If I do a point to point change it works. It’s just the
translation that does not work. It really seems like a bug.
0 Likes

sanjana.shankar.goli
Autodesk Support
Autodesk Support

It would be great if you can share the file here and we can see what's going on.


Sanjana Goli
Software QA Engineer
Fusion 360 Webinars | Tips and Best Practices | Troubleshooting
0 Likes

philipphertel
Participant
Participant

Model B is a very large proprietary file and cannot be shared. I am not even sure how to share a minimal example because it involves multiple independent files that are all linked together. Is it possible to export them in a way that allows you to reconstruct the same file structure when you import them?

0 Likes

philipphertel
Participant
Participant

I could screen share it with you if we could do a Zoom call or something like that. It only seems to happen when the model B gets quite large and complicated. When I try to make small examples, then the translation works.

0 Likes

sanjana.shankar.goli
Autodesk Support
Autodesk Support

To update position changes of subassembly parts, avoid using the "Move" feature on the parts of the subassembly within the main assembly. If the behavior is already observed, delete and reinsert the affected subassembly. If the issue still persists, share a screencast of the issue instead of the file.


Sanjana Goli
Software QA Engineer
Fusion 360 Webinars | Tips and Best Practices | Troubleshooting
0 Likes

jeff_strater
Community Manager
Community Manager

What I suspect is going on here is not a bug.  If you have a sub-assembly that is inserted into a higher-level assembly, and if you move a sub-component of the sub-assembly within the top-level assembly, then that sub-component's position is now totally controlled by the top-level assembly.  Its transform within the sub-assembly is overridden within the top-level assembly.  So, no matter how you change its component position within the sub-assembly, the position within the top-level assembly is not going to change unless you move it in that top-level assembly.

 

I think if Fusion behaved any differently, the side effects would be much more severe.  Imagine if you had positioned a sub-component within your assembly, only to have that position canceled out because someone moved it within the sub-assembly.  Further, this allows you to have multiple instances of a sub-assembly in different positions within a top-level assembly.  Without this component transform override behavior, all instances of a sub-assembly within a top-level assembly would have to share the same position.

 

This is partially why we recommend using Joints to position components at any level.  Using Move Component, Translate, Align, even with Capture Position, can still be overridden in a top-level assembly.  If you use Joints, component positions will be determined by the Joints, not by unstable component transforms.

 

If this is not clear, I can provide an example which illustrates this.


Jeff Strater
Engineering Director
1 Like

philipphertel
Participant
Participant

I see, yes this sounds like a plausible explanation. It makes sense that I'd only be observing this behavior in larger files because there has been more time to work on them and maybe someone did a move of a subassembly inside the main assembly during that time. Is there any way to clear the override? Or maybe as a feature request show which imported assemblies have their positioning overridden in this way? 

 

Is there any way that I can verify that this is the case? If I select the component can I see it's status with respect to the overriding in some way?

 

 

0 Likes

jeff_strater
Community Manager
Community Manager
Accepted solution

Is there any way to clear the override?

Or maybe as a feature request show which imported assemblies have their positioning overridden in this way? 

 

Is there any way that I can verify that this is the case? If I select the component can I see it's status with respect to the overriding in some way?

 

 


Those are all great suggestions.  I don't think that there is any way, today to either tell what transforms are overridden, or reset the override on any component.  I'll ask the team about that, and if not, enter a request to have this added at some point.  I agree it can be confusing...


Jeff Strater
Engineering Director
0 Likes

philipphertel
Participant
Participant
Yeah, especially with multiple people modifying a file. I'll re-import the
subassembly for now and try to use joints in the future. Thanks for your
help!
0 Likes

philipphertel
Participant
Participant

Hi Jeff,

 

I just wanted to revisit this topic because I am also seeing translations being lost across copies of local components. So basically, I have a component A defined in my project, which contains a mix of other components. I have made 8 copies of component A in my project. The look like they are all linked to one another because they are named like: ComponentA:1, ComponentA:2, ..., ComponentA:8. Yet when I translate some of ComponentA:1's subcomponents those same changes DO NOT occurs in any of the other copies of it. If I translate bodies that are in ComponentA:1, those translations do occur in the other copies.

 

This does not always happens with components, but is happening in a very complex project I am editing and it is quite frustrating. I can't move this component with joints due to the nature of it, but do need to translate it.

 

Any insights to this would be really welcome!

 

Thanks!

0 Likes

jeff_strater
Community Manager
Community Manager

Right.  This is just how Fusion works, for better or worse.  We call this "flexible sub-assemblies".  Meaning that every instance of a sub-assembly is not required to be in the same orientation as every other instance of that sub-assembly.  The example we usually use is:  Imagine that you have a sub-assembly that is a door + its hinges + its doorframe.  You have a "room" model, into which you insert 3 copies of this door sub-assembly.  Note:  this behavior is independent of whether the sub-assembly component is local or external - the same model applies.  Because of "flexible sub-assemblies", Fusion can allow each door to be in a different position.  You can have one door open, one door closed, and the third half-open.  The other way to implement this would have been to have each sub-assembly share only one set of relative positions.  In that implementation, when you open one door, all 3 would open.  This was seen as undesirable.

 

As to how this is implemented, without going into too much detail, in the top-level assembly (the "room" in my example), we manage component position for each unique path through the component hierarchy.  So:  Room/Door_assy:1/door can have a different position than Room/Door_assy:2/door.

 

So, why does Body Move behave differently?  Simply because Body position is NOT owned by the top-level assembly.  Body position is owned by the component itself.  You can tell this, because Fusion does not allow you to Move a body in an external design - you have to open that design and make the change there (or use edit in place, which is really the same thing).

 

Hope that helps a bit.  It is admittedly confusing at times, but I think mostly gives the best overall behavior.


Jeff Strater
Engineering Director
0 Likes