Identify constraints on a particular part inside a sub-assembly?

Identify constraints on a particular part inside a sub-assembly?

DRoam
Mentor Mentor
2,490 Views
7 Replies
Message 1 of 8

Identify constraints on a particular part inside a sub-assembly?

DRoam
Mentor
Mentor

Is there a trick I don't know about for identifying which constraints on a sub-assembly are applied to a particular part within that subassembly? If not, does anyone have an iLogic solution for doing so?

 

I have a sick assembly that I'm trying to diagnose, and it's very difficult to fix the Part giving me trouble when I can't determine which of the dozens and dozens of constraints on the sub-assembly containing the part are applied to the part itself.

 

Thanks!

0 Likes
Accepted solutions (1)
2,491 Views
7 Replies
Replies (7)
Message 2 of 8

Anonymous
Not applicable
Here are the strategies I use:
1. RMB the constraint & click Other Half. This will take you to the other half of the contraint.
OK if only a few constraints.

2. Application Options> Assembly> Display component names after relationship names. Tick this option to identify which two parts are linked by the constraint.

3. After you set point 2 above, use the relationship folder to quickly identify sick constraints.


In general I find troubleshooting a (badly) sick model difficult - especially when it is not your own model.
The Dr (red cross) is good at identifying sickness, but not so good at telling you which constraint is the cause of all your problems!

Hope this helps,
BeeDub
0 Likes
Message 3 of 8

DRoam
Mentor
Mentor

@Anonymous, thanks for the response.

 


@Anonymous wrote:
1. RMB the constraint & click Other Half. This will take you to the other half of the contraint.

I'm not sure how "other half" would help me in this situation. The problem at hand is identifying which constraints in a huge list of constraints on a sub-assembly are applied to a specific part within the sub-assembly. I don't think "other half" can help here.

 


@Anonymous wrote:
2. Application Options> Assembly> Display component names after relationship names. Tick this option to identify which two parts are linked by the constraint.

The problem with this is it displays the name of the sub-assembly that the constraint is applied to, NOT the name of the part WITHIN the sub-assembly that the constraint is ACTUALLY applied to.

 

Same problem applies with number 3.

 

Thanks for your suggestions though!

 

The challenge here is Inventor doesn't seem to be very helpful with determining which component(s) WITHIN a sub-assembly a constraint is applied to. Inventor is happy to show me all of the constraints applied to "Sub-Assembly A", but how can I easily determine which of those constraints are acting on a specific part WITHIN Sub-Assembly A?

0 Likes
Message 4 of 8

jhackney1972
Consultant
Consultant

I think you are already aware of the answer but maybe did not take it far enough.  The Design Doctor (Red Cross) can automatically "Edit" a sub-assembly and isolate and edit the two components that contain the sick constraint.  Watch my Screencast and see how I do this.

 

I also offer another method of finding a sick constraint(s) in the complete assembly, including sub-assemblies using the "Find" command.  This will not allow you to edit on the fly but will find them in the browser wherever they exist.  You can then decide how to edit them.

John Hackney, Retired
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 5 of 8

dgreatice
Collaborator
Collaborator

Old question for me, it not like SW, but this only feature in inventor

Capture2.JPG

Capture3.JPG

Please use the ACCEPT AS SOLUTION or KUDOS button if my Idea helped you to solve the problem.

Autodesk Inventor Professional Certified 2014
0 Likes
Message 6 of 8

DRoam
Mentor
Mentor

I guess I'm not doing a good enough job explaining the situation.

 

These constraints are not at the sub-assembly level. They are at my top assembly level, but applied to parts within my sub-assembly.

 

Let me try and write up a simplified sample situation:

 

Master Assembly:

~ Sub-assembly A

   -  Part A-1

   -  Part A-2

~ Part B

~ Part C

~ Part D

~ Part E

 

At my Master Assembly level, Parts B, C, D, and E are constrained to Sub-assembly  A. I can see the list of constraints applied to Sub-assembly A by expanding its main node in Master Assembly. It will look like this:

 

Mate:1 (Part B:1,Sub-assembly A:1)

Mate:2 (Part C:1,Sub-assembly A:1)

Mate:3 (Part D:1,Sub-assembly A:1)

Mate:4 (Part E:1,Sub-assembly A:1)

 

However, what I want to find out is which of those constraints are acting on Part A-1 specifically. For example, is the right-hand side of Mate:1 applied to a workplane in Sub-assembly A? Or a face/workplane in Part A-1? Or a face/workplane in Part A-2?

 

I want to isolate the constraints, in the list above, that are acting specifically on Part A-1 within Sub-assembly A.

 

 

I know that Part A-1 is my problem part. The Design Doctor and "related relationship failure analysis" are not helping me here, the assembly is too complex. This is a massive assembly (that I did not make) with hundreds of parts, hundreds of constraints, and Adaptivity involved, and the Design Doctors is not even able to determine which of the constraints applied to Sub-assembly A in my Master Assembly are the conflicting ones. So I'm trying to diagnose the thing manually. It wold be very easy if I could somehow isolate which of the dozens and dozens of constraints on my Sub-assembly A are applied to Part A-1 specifically, since I know that Part A-1 is my problem part.

0 Likes
Message 7 of 8

torbjorn_heglum2
Collaborator
Collaborator
Accepted solution

DRoam,

 

I think I understand what you mean. Or at least it looks similar as challenges we have when we use flexible sub-assemblies. If you are trying to find the 'other half' of a constrain at the top assembly with relation to a specific part inside the flexible sub, you are only guided to the sub. 

 

So a workaround we use for those cases is to:

  • Create a folder with only the sub inside
  • Drag all parts out of the sub and up to the top assembly - but be sure to leave them still inside the folder. Then you know that whatever you have inside the folder shall be dragged back to the sub when you have finished.
  • Now the constrains are referring to part at the same assembly level, and the issues can be corrected.
  • Drag the parts back to its sub when all is back in order.

 

This might help you as well.

 

Torbjørn

Message 8 of 8

DRoam
Mentor
Mentor

Great suggestion, @torbjorn_heglum2! That little trick allowed me to diagnose my assembly within a few minutes. When I was done I just dragged/demoted my problem part back into my sub-assembly and all was fixed. Thanks a lot!

 

I can say, one situation where this would definitely not work is if I had multiple instances of Sub-assembly A in my Master Assembly, with constraints applied to its children. As soon as I promoted the children of one instance of Sub-assembly A into my Master Assembly level, all of the constraints on all the other instances of Sub-assembly A would be broken. And they wouldn't be restored even after I re-demoted the children back into Sub-assembly A. I'd have to repair all constraints on other instances of Sub-assembly A manually.

 

Fortunately that wasn't the case in my situation, because I only had one instance of Sub-assembly A, so this method worked great for me.

 

I definitely think this is an area where Inventor could use some improvement, though. Determining what a bunch of constraints do can be very difficult and time-consuming in Inventor.

 

I did create an Idea regarding this some time ago, located here: Make it easier to determine what constraints are constraining. But it's more to do with determining which parts are acted on by a single given constraint that you're investigating.

 

The situation in this thread, however, was more to do with determining which constraints act on a single given part that you're investigating (even if that part is in a sub-assembly). I'd create an idea for this too, but given how hard it was to explain the goal here, I think it would be hard to explain it in a way that would gain any attention on the Ideas forum. If I ever give it a shot though I'll post the idea here.

 

Thanks again @torbjorn_heglum2 for the solution, and everyone else for your time and suggestions.