What's new

Making an inserted assembly flexiable

skeller

Member
I have an assembly that I have added to a larger assembly. There are 2 parts in the small assembly that should move to be constrained to the larger assembly. If I make the small assembly "flexible" makes every constraint flexible instead of just the 2 with can move.

How do I keep all the fixed constraints fixed and the ones I want to move moveable?
 

bigseb

Alibre Super User
Two options

1) Use configs to set the two moving pieces relatively to where they should be according to each assembly.

2) Remove the two moving parts from the assembly they're in and create new flexible assmbly with just those two parts. then add both this new assembly and the original assembly to the main assembly.
 
I have an assembly that I have added to a larger assembly. There are 2 parts in the small assembly that should move to be constrained to the larger assembly. If I make the small assembly "flexible" makes every constraint flexible instead of just the 2 with can move.

How do I keep all the fixed constraints fixed and the ones I want to move moveable?
Hi Skeller -- I have been complaining for years, but SubAssemblies are only Flexible in their Used-On Assembly and not the Used-On-Used-On Assembly. My way of thinking is that, once Flexible and Assembly should be Flexible all the way up the entire Modeling Tree.

However, I often create Configurations that allow me to demonstrate "key positions" for Assemblies as I "move up the Modeling Tree." -- Lew
 

DavidJ

Administrator
Staff member
'Make Flexible' should turn the sub assembly from being treated as a single solid body, to being treated as flexible as allowed by its own assembly constraints. It should not introduce movement possibilities that were not previously there.

I don't understand the comment "makes every constraint flexible instead of just the 2 with can move".

Can you provide more details, or share the files?
 

jhiker

Alibre Super User
And I think I'm right in saying you can't make a sub-assembly flexible if it contains a 'pattern' - why, I don't know.
 

skeller

Member
'Make Flexible' should turn the sub assembly from being treated as a single solid body, to being treated as flexible as allowed by its own assembly constraints. It should not introduce movement possibilities that were not previously there.

I don't understand the comment "makes every constraint flexible instead of just the 2 with can move".

Can you provide more details, or share the files?

I was expecting it to work as you describe "as allowed by its own assembly constraints". However, when the assembly was made Flexible every piece of the assembly was moveable. So as I made constraints between the sub-assembly and the main assembly individual parts in the sub-assembly moved by themselves without staying connected.

I ended up splitting the sub-assembly into multiple sub-assemblies to get the project done. I will try to duplicate what I saw and if I can I will send the files.
 

JST

Alibre Super User
I CONFIRM that the make flexible is apparently releasing constraints WITHIN the assembly.

I have an assembly in a higher level assembly, which when looked at alone, operates exactly as one would assume, constraints are OK. It has one main rotating part which is otherwise constrained. No parts can be pulled out, they all appear to be constrained OK.

When in the next level up, however, "make flexible" allows some, at least, of the parts of that assembly to be pulled out in all directions at will. These parts could NOT be pulled out at the subassembly level.

If it is then made NOT flexible, they are frozen in whatever location they were put. But the whole pile of them will now move together within whatever constraints were applied at the higher level assembly.

The rotating part will not rotate when not flexible. It does when made flexible, which is the expected result. However, it will also slide axially, which it will not do at the subassembly level.
 

JST

Alibre Super User
So, take a look. Please do not be fooled, the assembly as a separate assembly is constrained, and none of the parts can be pulled out as shown in the GIF.

Sorry, first time I go to "make flexible", I quit with no change because I wanted to also show some more things that do not happen. Second time, the subassembly is made flexible. Then, the same things done will pull out parts.

You notice, that after it is made flexible, the green spindle will turn, but not before. Of course it will also move out of the assembly, and so will other parts.

This is completely wrong, and should never happen.

make flexible issues.gif
 
Last edited:

bigseb

Alibre Super User
I CONFIRM that the make flexible is apparently releasing constraints WITHIN the assembly.

I have an assembly in a higher level assembly, which when looked at alone, operates exactly as one would assume, constraints are OK. It has one main rotating part which is otherwise constrained. No parts can be pulled out, they all appear to be constrained OK.

When in the next level up, however, "make flexible" allows some, at least, of the parts of that assembly to be pulled out in all directions at will. These parts could NOT be pulled out at the subassembly level.

If it is then made NOT flexible, they are frozen in whatever location they were put. But the whole pile of them will now move together within whatever constraints were applied at the higher level assembly.

The rotating part will not rotate when not flexible. It does when made flexible, which is the expected result. However, it will also slide axially, which it will not do at the subassembly level.
So, take a look. Please do not be fooled, the assembly as a separate assembly is constrained, and none of the parts can be pulled out as shown in the GIF.

Sorry, first time I go to "make flexible", I quit with no change because I wanted to also show some more things that do not happen. Second time, the subassembly is made flexible. Then, the same things done will pull out parts.

You notice, that after it is made flexible, the green spindle will turn, but not before. Of course it will also move out of the assembly, and so will other parts.

This is completely wrong, and should never happen.

View attachment 31046
I hadn't picked this up yet but then I only use flexible assemblies for slide moulds. This is a pretty serious issue and needs to be addressed.
 
I hadn't picked this up yet but then I only use flexible assemblies for slide moulds. This is a pretty seriously issue and needs to be addressed.
Hi Sebastian -- I use quite a few hydraulic or pneumatic cylinders in my work (and am in the process of "updating" said Models). They are most often applied (as Components) to SubAssemblies or SubSubAssemblies such that when viewed at the Installation level, they no longer "flex" in an appropriate fashion! Such statements apply to Positioning Stages and the like as well. -- Lew
 

JST

Alibre Super User
Are the grey bearings imported or did you build them yourself?

They are STEP imports, however they are now Alibre parts, and are confirmed to be constrained in the original assembly. It is not possible to pull them out like that in the original assembly.

If for some reason Alibre cannot handle an imported STEP part, and all "imported" parts must be avoided..... That would be an extremely serious problem with Alibre, one that would call it's general usability into question.

I would NOT expect step files that are imported to somehow pollute an assembly in which they are used, so that constraints are affected, transparency changed, etc.

I would expect that any issues with overly large "extents" would be "washed" in the import process, or flagged.
 
Last edited:

idslk

Alibre Super User
Hello colleagues,

here an simple 3 level flexible assembly to play with...
as ever: comments are wellcome;)

Regards
Stefan
 

Attachments

  • cylinder_assy_level3.AD_PKG
    100.8 KB · Views: 16

JST

Alibre Super User
I think I know what is going on.

The command is reaching back too far. While it is doing what it should in the next level lower , it is also releasing the level below that. So if anything at a lower level was not fully constrained, the "make flexible will reach back THROUGH the next level down, and find that unconstrained part, and release IT too.

So if a subassembly of level "A" is made free in level "A", what should happen is that any unconstrained motion allowed at level "B" is now allowed when at level "A". But any unconstrained motion allowed in , say, level"C" should NOT be allowed. At least not unless it is made free in Level "B".

WITHOUT being made free, there is a "default constraint" on the level "B" parts, so they do not move. Making free in level "A" should release THAT LEVEL (the level A "default constrained" parts), but should go no further.

What actually happens now is that not only are level "A" default constraints released, but default constraints in level "B" below that are also released, meaning for parts in level "C", IF the constraint against the motion does not exist at level "C". I do not know how far back it will go, my example only has that many applicable layers.

So, if a part is in an assembly at level "C", and is not constrained, what SHOULD happen is that it is by default retained in position at level "B" and any higher levels with respect to that assembly. It may move if that level "B" allows it to move as part of the overall level "B" assembly, but it should not move with respect to the level "B" assembly.

But because the "make flexible" is reaching back 2 or more levels, instead of just one, that part at level "C" is allowed to be INDIVIDUALLY unconstrained at level "A", even though it is not actually movable at level "B" due to the .

This should not be "intended behavior" (or at least not "allowed behavior"), because the parts are being "default constrained", they actually will NOT MOVE at level "B", and the "make flexible" should respect that. If it will not move at level "B", then it should not move at level "A" if made flexible. Only those parts allowed to move at level "B" should be released at level "A" by the "make flexible".

But the command releases all things that are not actually constrained at "B", even if a test at "B" will show them not to move. The "default" constraint at "B" is not respected by the "make flexible".

I think it is not what should happen, but it does.

It is indeed effectively reaching back at least two levels and allowing the non-constraint at "C" to be made flexible at "A".

All the make free should do is release ONE LEVEL of "default constraints". That is what everyone says it should do.

SO, while the parts should all be constrained when put in, and this can be blamed on the user to that extent, it seems that the program is actually not following what is described, since it effectively reaches back more levels than it is stated to do.
 
Last edited:
SO, while the parts should all be constrained when put in, and this can be blamed on the user to that extent, it seems that it is actually not following what is described, since it effectively reaches back more levels than it is stated to do.
Hi David -- I recently designed a machine (covered by NDA, so I cannot "share" it) that had: (A) a (pneumatic) cylinder that raised a component until a "stop" engaged it (and triggered a "switch"); (B) that caused a (stepper driven) "screw" to verify another component's "height" above a "surface;" that (C) provided a "release" to a device that provided a "clamp" at various positions along the "length" of the primary component. You (probably) have no idea how much being able to "drive" this Installation through it's "steps" in a video would have improved things for me. -- Lew
 

MilesH

Alibre Super User
I came across this problem using only Parts made in Alibre. It happened when I re-made a series of Constraints in a Sub-Assembly which was set to Flexible in the Main Assembly. When I returned to the Main Assembly, one of the Sub-Assembly Constraints wasn't respected. Somehow, I fixed this.... I think by switching Flexibility off and then on again.
 
Top