What's new

in an Assembly edit a part in separate window causes disassociation of constraints

Drutort

Senior Member
So maybe a bug in the different window code? It shouldn't be a difference.

I wonder if this is a design complexity problem. I'll need to think about the type of designs I build and which ones had the problems. When I had assemble issues that was a structural steel model. I knew a fully modeled structural steel project with connection details would be fun do in Alibre...not really but possible.

This topic and other issues aren't about size complexity but some are made more obvious.
I cant find it now, and not sure if it works, but a user had posted that there is a way to force all parts in the asm to be regen, its not recommended but I wonder if this could fix some things? or it could break them, it was a specific keyboard shortcut
 

NateLiquidGravity

Alibre Super User
I cant find it now, and not sure if it works, but a user had posted that there is a way to force all parts in the asm to be regen, its not recommended but I wonder if this could fix some things? or it could break them, it was a specific keyboard shortcut
Here's info about Regenerate and setting Auto-regenerate:

Here is a thread where that secret regenerate combo was discussed, but also a strong caution from Alibre not to use it:
 

Drutort

Senior Member
Here's info about Regenerate and setting Auto-regenerate:

Here is a thread where that secret regenerate combo was discussed, but also a strong caution from Alibre not to use it:
Thank you so much! For whatever reason mine was off, BUT it worked flawlessly for the gear example asm, but I went to my more complex asm and it was somewhat working, but then it was messing up again, like before with the constraints etc... Also I see that auto regen does not stay on for me, I can toggle it on, save open its off, as far as the icon displaying goes.

So is there no other way to regen all models in the asm? I had read it a while back, but I could not remember the combo.

I do not know why the cube will randomly deactivate on me, its the strangest thing, so I assume that other things get messed up at times?

It could be related that I move about and work on different systems? though my settings should be pretty much identical on all.

On a somewhat related topic, I do not understand suppressed constraints or ones that where broken and suppressed still having an impact at times as if they are working or its from the previous instant when they worked?

I caught a few like that and was confused how the constraint was working but being broken, I fixed it and then it was the same as if nothing changed?
 
Last edited:

JimCad

Senior Member
I know I'm being a bit simplistic . . . . . but. . . . . I have not seen anyone list SAVE as part of their steps before the regen.
I'm guessing that you do save but don't list it as it's so obvious.

Jim
 

Drutort

Senior Member
I know I'm being a bit simplistic . . . . . but. . . . . I have not seen anyone list SAVE as part of their steps before the regen.
I'm guessing that you do save but don't list it as it's so obvious.

Jim
can you elaborate on list save?

Do you mean like save as the asm to another file in increments or something like that?
That actually would not be a bad idea if they did that have a bak folder and at least the asm auto save in increments? My CAM software does that and it saved me a few times from losing the whole project from a bug, I was able to go back to previous auto save session and only lost 15-30min of work

I never thought of CAD needing that, but for ASM with the complexity of constraints paired with cofig and global param that would be interesting.

I assume that maybe auto save for global param file and asm is sufficient? and parts are simple enough that its not a big deal vs asm?
 
Last edited:

stepalibre

Alibre Super User
it was messing up again, like before with the constraints etc...
Add that assembly as a sub in a new assembly file to see if it makes a difference.
I know I'm being a bit simplistic . . . . . but. . . . . I have not seen anyone list SAVE as part of their steps before the regen.
I'm guessing that you do save but don't list it as it's so obvious.

Jim
I've made that mistake. Alibre leans little too much on manual regen and save (for things to update properly).
Good info here:

In general:
When I'm working in assemblies I open the files. I never do real work in an assembly (separate window or in-place) except where it's assembly only features/commands. I use separate window or in-place modes to see the full tree details or as an isolate type feature/command, to take a look at things. I easily get confused about which window is from what assembly or forget I'm in the mode. This way also forces me to save and regen the part. I then go back to the assembly and manually hit regen when I'm ready.
 

JimCad

Senior Member
I'm still very inexperienced with Alibre.
When I was using Inventor I had to help lots of times where people had edited things within assemblies. or opened parts to edit them whilst having the assembly open. It's so easy to create "dirty" parts so I always stressed to save the assembly before opening parts or editing inside the assembly then save before closing the part or returning to assembly level. Then rebuild all on return. Then save again.
Like walking on ice. . . . . small steps = less chance of falling over.
Jim
 

Drutort

Senior Member
In general:
When I'm working in assemblies I open the files. I never do real work in an assembly (separate window or in-place) except where it's assembly only features/commands. I use separate window or in-place modes to see the full tree details or as an isolate type feature/command, to take a look at things. I easily get confused about which window is from what assembly or forget I'm in the mode. This way also forces me to save and regen the part. I then go back to the assembly and manually hit regen when I'm ready.

I have few different workflow paths, but I have learned that I can get better results when I throw a few rough parts into an asm and then edit and work on them in the asm and or edit window. Now of course if its just something simple and you have dimensions and clear idea and picture, then its easy enough to just design the parts and then throw them into the asm.

Add that assembly as a sub in a new assembly file to see if it makes a difference.

I've made that mistake. Alibre leans little too much on manual regen and save (for things to update properly).
Good info here:

So, spending more time in the problematic asm I found out that cleaning up the constraints helped tremendously. Apparently some constraints even if they are suppressed can still have an impact on the asm? Not always but sometimes, even when they are broken.

The only safe bet is when the part or sub asm is suppressed and none of those constraints show in main asm then I feel confident no issues.

With the above and the combo of auto regen (having to toggle it on every time I open the asm) has fixed my issues!

I found out ctrl click on constraint will open it to the edit screen! no more right click go to edit.

I wish for "rename" option to be mapped on the keyboard shortcuts, but this is a fundamental thing IMO, I like to rename sketches and constraints for obvious reasons, organization.

For some reason mapping the edit part/asm worked for a sec then stopped? no big deal I guess.
 

DavidJ

Administrator
Staff member
On a somewhat related topic, I do not understand suppressed constraints or ones that where broken and suppressed still having an impact at times as if they are working or its from the previous instant when they worked?

One case where you'll see this behaviour is if reference geometry defined at the assembly level uses component parts of the assembly to help define it, then if that same reference geometry is used in constraints to try to control parts there will be chaos. I've ran into several examples over the last few days whilst helping users... It can be very puzzling to diagnose.

This may or may not relate to your problems - this aspect just sounded familiar.

If you need to use reference geometry to constrain a part, any reference geometry tied to the part should be defined in the part. You can constrain to assembly reference geometry, but any new reference geometry added to the assembly must be built on off other assembly geometry, it must not use parts or sub assemblies in the definition.
 

stepalibre

Alibre Super User
Great to hear you had some improvement!

I noticed this:
1705823137527.png

The learn how to deal with these issues link doesn't address the failure noted there.

What simonb65 said:

A problem I had is related to this:

One case where you'll see this behaviour is if reference geometry defined at the assembly level uses component parts of the assembly to help define it, then if that same reference geometry is used in constraints to try to control parts there will be chaos. I've ran into several examples over the last few days whilst helping users... It can be very puzzling to diagnose.

This may or may not relate to your problems - this aspect just sounded familiar.

If you need to use reference geometry to constrain a part, any reference geometry tied to the part should be defined in the part. You can constrain to assembly reference geometry, but any new reference geometry added to the assembly must be built on off other assembly geometry, it must not use parts or sub assemblies in the definition.
This is the problem I had for sure.

My feedback DavidJ:
If you need to use reference geometry to constrain a part, any reference geometry tied to the part should be defined in the part. You can constrain to assembly reference geometry, but any new reference geometry added to the assembly must be built on off other assembly geometry, it must not use parts or sub assemblies in the definition.
Alibre should alert you when something will break constraints.
any reference geometry tied to the part should be defined in the part.
The assembly should consume or link to the reference geometry that it needs for constraints.
any new reference geometry added to the assembly must be built on off other assembly geometry
Alibre should handle all this when you make constraints.
it must not use parts or sub assemblies in the definition
If this is all by design and not a bug, Alibre should alert you if an action will break a constraint.
 

DavidJ

Administrator
Staff member
One issue here is that customers come up with (illogical) workflows that were never imagined when the product was designed. It's only after users break the product that the conditions to warn against perhaps become clear.

The particular issue I mentioned results in recursion - the constraint to position the part has to refer to the part location in the assembly to find out where some other assembly geometry is that the part is to be constrained to. Not only does this lead to the constraint solver getting thoroughly confused, it can lead to the software closing unexpectedly.

I've just been working on another case, where what seem to be valid constraints don't get re-evaluated after an edit until a MANUAL regenerate is done - even if auto-regenerate is selected. I'm checking internally if my interpretation of what I'm seeing is correct (maybe it's actually something else going on).
 

stepalibre

Alibre Super User
Illogical workflows. That doesn't seem fair to users. It can be tricky because the details matter, but Alibre shouldn't break constraints. What's the purpose of a constraint.
 

DavidJ

Administrator
Staff member
Well, it seems illogical to me if a user rather than just constraining one part directly to another by edges of the parts (for example), instead adds an assembly reference axis to an edge of each part, then defines an assembly constraint to make those 2 axes concentric.
 

stepalibre

Alibre Super User
The particular issue I mentioned results in recursion - the constraint to position the part has to refer to the part location in the assembly to find out where some other assembly geometry is that the part is to be constrained to. Not only does this lead to the constraint solver getting thoroughly confused, it can lead to the software closing unexpectedly.
As I said before, constraint solving related code needs to perform checks before and maybe after Motion is triggered by moving things with minimum motion turned ON. I guess minimum motion turned ON is motion sim mode (kind of).
Well, it seems illogical to me if a user rather than just constraining one part directly to another by edges of the parts (for example), instead adds an assembly reference axis to an edge of each part, then defines an assembly constraint to make those 2 axes concentric.
Referencing topology (edges, faces and vertices) can cause problems if you plan to modified them later. The assembly constraints that used the edge (in your example) would fail if the edge is changed. It depends on the design intent. So if the intent is to later fillet that edge the user might have wanted to avoid edges by using reference geo. Some CAD apps have tools to help reassociate missing edge references.

an assembly reference axis to an edge of each part, then defines an assembly constraint to make those 2 axes concentric.
This is easier to fix if the edge change. You can then in the Reference geometry dialog box select another edge to fix the missing edge.

If you're automating designs it's often required to make reference geometry because you need something to reference in order to create the boss extrude feature or whatever you're doing.

There are many other reasons to use reference geometry instead of model topology. I agree with you that some setups are not efficient and create issues, but I also think Alibre can improve here.
 

stepalibre

Alibre Super User
As I said before, constraint solving related code needs to perform checks before and maybe after Motion is triggered by moving things with minimum motion turned ON. I guess minimum motion turned ON is motion sim mode (kind of).

Referencing topology (edges, faces and vertices) can cause problems if you plan to modified them later. The assembly constraints that used the edge (in your example) would fail if the edge is changed. It depends on the design intent. So if the intent is to later fillet that edge the user might have wanted to avoid edges by using reference geo. Some CAD apps have tools to help reassociate missing edge references.


This is easier to fix if the edge change. You can then in the Reference geometry dialog box select another edge to fix the missing edge.

If you're automating designs it's often required to make reference geometry because you need something to reference in order to create the boss extrude feature or whatever you're doing.

There are many other reasons to use reference geometry instead of model topology. I agree with you that some setups are not efficient and create issues, but I also think Alibre can improve here.

Quick example. The edge constraint broke after adding a fillet to the referenced edge. Reference geometry would prevent this type of constraint fail.
1705844526039.png1705844881851.png
 

DavidJ

Administrator
Staff member
No - my point is that if the user wants to use axes to constrain the part within the assembly - those axes should be defined in the design of the part - not 'tacked on' in the assembly workspace.

You can add as many axes etc. as you want in the part workspace, and then access those (using 'show reference geometry') in the assembly to constrain to.
 
Last edited:

stepalibre

Alibre Super User
No - my point is that if the user want to use axes to constrain the part within the assembly - those axes should be defined in the design of the part - not 'tacked on' in the assembly workspace.

You can add as many axes etc. as you want in the part workspace, and then access those (using 'show reference geometry') in the assembly to constrain to.
I understand. It shouldn't matter where they're made from the user point of view. Alibre should handle that for you. I used a part that could've been an assemble. The reference geometry could be in the assemble or part, either way. What you're explaining should work regardless both are valid ways the design assemblies.

the user want to use axes to constrain the part within the assembly
This is a valid approach, If the user has a reason to do it. That's using reference geometry as it should be used.

You can add as many axes etc. as you want in the part workspace, and then access those (using 'show reference geometry') in the assembly to constrain to.
This is true, but doesn't mean you can't do what the user did or it is incorrect. They're both valid ways to design things.

Can you explain how you use reference geometry in assemblies? What's the purpose of assembly reference geometry in Alibre?
 

DavidJ

Administrator
Staff member
I'll just disagree with you. Either I'm not being clear in my explanation, or you don't accept it.

In assemblies you can again define lots of reference geometry to constrain parts to. It is a framework.

I still suggest that recursive relationships will at best be unreliable, and are likely to be insoluble or extremely resource intensive - and might require a completely different solving capability to even evaluate.
 

stepalibre

Alibre Super User
I found this note:
1705847575279.png
Alibre would like users to avoid assembly reference geometry because they aren't reliable when mechanical constraints are used. This is fine, but should be fixed.
I'll just disagree with you. Either I'm not being clear in my explanation, or you don't accept it.
I understand and respect your advise as Alibre staff.
I still suggest that recursive relationships will at best be unreliable, and are likely to be insoluble or extremely resource intensive - and might require a completely different solving capability to even evaluate.
I agree.
You're trying to prevent users from taking a path that leads to problems steering them away from known issues.
Edit
I forgot something..I'll take your word for it.
Well, it seems illogical to me if a user rather than just constraining one part directly to another by edges of the parts (for example), instead adds an assembly reference axis to an edge of each part, then defines an assembly constraint to make those 2 axes concentric.
My comments were in general terms.
 
Last edited:

Drutort

Senior Member
One issue here is that customers come up with (illogical) workflows that were never imagined when the product was designed. It's only after users break the product that the conditions to warn against perhaps become clear.

The particular issue I mentioned results in recursion - the constraint to position the part has to refer to the part location in the assembly to find out where some other assembly geometry is that the part is to be constrained to. Not only does this lead to the constraint solver getting thoroughly confused, it can lead to the software closing unexpectedly.

I've just been working on another case, where what seem to be valid constraints don't get re-evaluated after an edit until a MANUAL regenerate is done - even if auto-regenerate is selected. I'm checking internally if my interpretation of what I'm seeing is correct (maybe it's actually something else going on).

I think some users will build/design one way and then go and modify things and later forget that they did something that causes a case of recursion.

That is true that its a bad practice or approach of design, and I can see that something like that is bad, BUT again if the software gets confused then it was lacking detection/protection mechanism to prevent the user from doing something like that. I have not done things like that. (that I can recall) Instead I use GP along with configs. I often will use fixed values then have scale/formulas and offsets for other parts and features that I can pretty much do minor tweaks/adjustments, when such and approach is applicable.

I do think that more robust protection mechanisms should be placed in and the software should warn the user of such things like we have for sketches, when analyzing and fully defined, if the software can do something like that for constraints, have it be extra calculation that you can run or turn on auto/manual that would be great!
 
Top