How to make an assembly flexible by default?

Use this space to ask how to do whatever you're trying to use SolidWorks to do.
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

How to make an assembly flexible by default?

Unread post by bnemec »

In Solid Edge we used a setting called "Place this assembly as adjustable when it is placed into another assembly" It saved a lot of mistakes of people placing this sub assembly as rigid. Does SOLIDWORKS have a similar function?
image.png
User avatar
DennisD
Posts: 684
Joined: Fri Mar 12, 2021 10:04 am
Answers: 1
Location: Near Jacksonville, FL
x 994
x 1433

Re: How to make an assembly flexible by default?

Unread post by DennisD »

bnemec wrote: Wed Nov 09, 2022 3:42 pm In Solid Edge we used a setting called "Place this assembly as adjustable when it is placed into another assembly" It saved a lot of mistakes of people placing this sub assembly as rigid. Does SOLIDWORKS have a similar function?

image.png
I looked and cannot find anything that indicates you can set the default insertion of subassemblies to be flexible.

I think your signature line is wrong. Shouldn't it be "There are 11 kinds of people in the world, those who can count in binary and those who cannot."?
;;
Brick walls are there for a reason. The brick walls aren't there to keep us out. The brick walls are there to show us how badly we want things.
- - -Randy Pausch
User avatar
Glenn Schroeder
Posts: 1458
Joined: Mon Mar 08, 2021 11:43 am
Answers: 22
Location: southeast Texas
x 1650
x 2056

Re: How to make an assembly flexible by default?

Unread post by Glenn Schroeder »

As @DennisD said, no, there isn't a similar setting in Solidworks. It would make a nice enhancement, but I wouldn't hold my breath waiting for it.
"On the days when I keep my gratitude higher than my expectations, well, I have really good days."

Ray Wylie Hubbard in his song "Mother Blues"
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

Have you ever tried inserting an assembly into SolidWorks and setting it as flexible before mating it? It's a horror-show to deal with most of the times, depending on the level of flexibility your assembly has.
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

AlexLachance wrote: Thu Nov 10, 2022 8:59 am Have you ever tried inserting an assembly into SolidWorks and setting it as flexible before mating it? It's a horror-show to deal with most of the times, depending on the level of flexibility your assembly has. Speaking to the "if you want to do this then you cannot have that" situations.
Honestly, I'm still trying to figure out WTH I'm doing in SW when it comes to something other than what's covered in the basics training. I can tell you that the training labs would go a LOT different if they used the same data set for all of the entire training sessions vs showing how to do each action in an isolated and sterile data set.

Anyway, It took me a while to gain harmony with how SE does adjustable/flexible assemblies. Here's what I understand from our usage in SE.
- when a sub assembly is set to adjustable the relationships/mates in that sub assembly are "promoted" to the current assembly and solved in that context. I think this is why there's no problem placing mates between two components in the same sub assembly. I don't understand why SW doesn't allow this, I'm guessing it's something to do with how they implemented flexible.
- In light of the previous point, we had a rule that there shall be NO relationships to the base planes in an assembly that is intended to be placed as adjustable. This is a big flaw in their implementation IMO, because when those relationships in the sub assembly are promoted to the current assembly to be solved, any relationships that were to base planes in the sub assembly were now to the base planes in the current assembly. So obviously that's not going to work. We would position the "base" part in the sub assembly then delete any relationships and ground that part (its similar to fixed in SW but I'm not convinced they are identical in all behaviors) This worked because the "Ground" isn't really a constraint so it was not promoted to the current assembly like relationships are. This was the only place we allowed grounding parts.
- Mates in an adjustable sub assembly can be edited (offset changed or angle changed type edits, not change faces) from the current assembly when they added Override Relationship. Those mates in the sub assembly can also be suppressed in the context of the current assembly. These do not change sub-assembly file and do not affect other whrere used.
- Don't try to change back and forth between rigid and adjustable in SE. In fact, I learned that if the sub assembly was placed and relationships applied before the user changed it over to adjustable, we're better off to delete all those relationships, switch to adjustable then make new mates. I never was able to get to the bottom of the WHY on this so we may have still been doing something wrong or had to use a process that was a bit off label, I dont' know. This is why that document setting is so important in SE, placing the assembly as adjustable by default so the user doesn't have chance to start applying relationships to the rigid assembly.


Now back to SW (actually I'd rather literally go back to SE) I have not gained an understanding of how SW has implemented flexible, how the fixed constraint plays in, how to position two parts in a subassembly without adding extra frivolous reference features or if there's a way to modify existing mates in the flexible sub assembly like the "Override Relationship" did in SE.
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

bnemec wrote: Thu Nov 10, 2022 9:24 am Honestly, I'm still trying to figure out WTH I'm doing in SW when it comes to something other than what's covered in the basics training. I can tell you that the training labs would go a LOT different if they used the same data set for all of the entire training sessions vs showing how to do each action in an isolated and sterile data set.

Anyway, It took me a while to gain harmony with how SE does adjustable/flexible assemblies. Here's what I understand from our usage in SE.
- when a sub assembly is set to adjustable the relationships/mates in that sub assembly are "promoted" to the current assembly and solved in that context. I think this is why there's no problem placing mates between two components in the same sub assembly. I don't understand why SW doesn't allow this, I'm guessing it's something to do with how they implemented flexible.
- In light of the previous point, we had a rule that there shall be NO relationships to the base planes in an assembly that is intended to be placed as adjustable. This is a big flaw in their implementation IMO, because when those relationships in the sub assembly are promoted to the current assembly to be solved, any relationships that were to base planes in the sub assembly were now to the base planes in the current assembly. So obviously that's not going to work. We would position the "base" part in the sub assembly then delete any relationships and ground that part (its similar to fixed in SW but I'm not convinced they are identical in all behaviors) This worked because the "Ground" isn't really a constraint so it was not promoted to the current assembly like relationships are. This was the only place we allowed grounding parts.
- Mates in an adjustable sub assembly can be edited (offset changed or angle changed type edits, not change faces) from the current assembly when they added Override Relationship. Those mates in the sub assembly can also be suppressed in the context of the current assembly. These do not change sub-assembly file and do not affect other whrere used.
- Don't try to change back and forth between rigid and adjustable in SE. In fact, I learned that if the sub assembly was placed and relationships applied before the user changed it over to adjustable, we're better off to delete all those relationships, switch to adjustable then make new mates. I never was able to get to the bottom of the WHY on this so we may have still been doing something wrong or had to use a process that was a bit off label, I dont' know. This is why that document setting is so important in SE, placing the assembly as adjustable by default so the user doesn't have chance to start applying relationships to the rigid assembly.


Now back to SW (actually I'd rather literally go back to SE) I have not gained an understanding of how SW has implemented flexible, how the fixed constraint plays in, how to position two parts in a subassembly without adding extra frivolous reference features or if there's a way to modify existing mates in the flexible sub assembly like the "Override Relationship" did in SE.
Flexible assemblies in SolidWorks are literally a pain in the @$$. Avoid them as much as you can.

I've never worked professionnally with SolidEdge but it sounds as if they work in similar fashion. I'll try and explain the logic but I'm not sure you'll understand me..

The way a flexible sub-assembly works is that it 'flexes' around what is fixed. For instance, the environment(planes, origin) is fixed.The mates are not "promoted" to the assembly, they remain proper to the actual flexible sub-assembly.

If a flexible assembly isn't 'fixed' within itself, that means you could place and mate the flexible assembly inside another assembly and the environment could continue "moving around" without necessarly being visually noticeable.

Let's use a hydraulic cylinder as an example for a flexible sub-assembly. If you create an assembly for a cylinder and do not limit the travel of the piston of the cylinder, then the piston can fly eternally through the environment. If the travel is defined, then the flexible sub-assembly will only let the piston move as it can move within the assembly.

So, if the cage of the cylinder is fixed to the environment and the piston is concentric to it with a travel mate that defines it's max and minimal travel, the piston is left with 2 degrees of freedom.
1. The travel
2. The orientation of what the piston attaches to. (It could be defined for all purposes too!)


For some reason, whenever you open an assembly that contains a flexible sub-assembly, SolidWorks will 'forget' that it's flexible and might even throw errors until you refresh SolidWorks memory by toggling the flexible back to rigid and back to flexible.


I think the easiest way to image it is this way. Create an empty assembly and insert it into another assembly. How do you mate it? By it's environment. Putting it flexible won't change anything inside it because the assembly is empty and the environment of assemblies is fixed.
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

Thank you Alex, this is helpful.
AlexLachance wrote: Thu Nov 10, 2022 9:38 am Flexible assemblies in SolidWorks are literally a pain in the @$$. Avoid them as much as you can.
Yeah, we cannot do that. Every single top-level assembly will have at least four flexible assemblies nested in at least 3 sub levels, sometimes twice that many. I'll put this in the list of why we shouldn't have switched CAD systems. But they were a bit of a PITA in SE too until we got more of a fundamental understanding of how they're implemented so we do better job of working within the abilities of the system.
AlexLachance wrote: Thu Nov 10, 2022 9:38 am I've never worked professionnally with SolidEdge but it sounds as if they work in similar fashion. I'll try and explain the logic but I'm not sure you'll understand me..
Sounds like you have a good analysis of who you're talking to. :lol:
AlexLachance wrote: Thu Nov 10, 2022 9:38 am The way a flexible sub-assembly works is that it 'flexes' around what is fixed. For instance, the environment(planes, origin) is fixed.The mates are not "promoted" to the assembly, they remain proper to the actual flexible sub-assembly.

If a flexible assembly isn't 'fixed' within itself, that means you could place and mate the flexible assembly inside another assembly and the environment could continue "moving around" without necessarly being visually noticeable.
Sounds similar, the main difference I see is the way they are solved. It sounds like the flexible sub assembly's mates are still solved in it's own context. As you stated, the mates are not promoted to the current assembly to be solved there.
AlexLachance wrote: Thu Nov 10, 2022 9:38 am Let's use a hydraulic cylinder as an example for a flexible sub-assembly. If you create an assembly for a cylinder and do not limit the travel of the piston of the cylinder, then the piston can fly eternally through the environment. If the travel is defined, then the flexible sub-assembly will only let the piston move as it can move within the assembly.

So, if the cage of the cylinder is fixed to the environment and the piston is concentric to it with a travel mate that defines it's max and minimal travel, the piston is left with 2 degrees of freedom.
1. The travel
2. The orientation of what the piston attaches to. (It could be defined for all purposes too!)
Travel mate. SE had some of these types of mates and we found them to be glitchy/jerky in updating after using the drag command. Especially when they were several layers of sub-assems deep. So I'm still avoiding them. You're suggesting using these moving mates or limit mates in the flexible assembly use case so I'm understanding they are fairly robust mates in SW? Different systems with different behaviors == different set of dos and don'ts.
AlexLachance wrote: Thu Nov 10, 2022 9:38 am For some reason, whenever you open an assembly that contains a flexible sub-assembly, SolidWorks will 'forget' that it's flexible and might even throw errors until you refresh SolidWorks memory by toggling the flexible back to rigid and back to flexible.
<()> o[
Well now that's just crap. But we had things like that before and the workarounds were paved, we all learned as muscle memory to look for these glitches, what they looked like and what to do with them.
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

bnemec wrote: Thu Nov 10, 2022 10:02 am Thank you Alex, this is helpful. Sounds like you have a good analysis of who you're talking to. :lol:
Actually, I have a good understanding that I often have a hard time getting my point across for various reasons.
Travel mate. SE had some of these types of mates and we found them to be glitchy/jerky in updating after using the drag command. Especially when they were several layers of sub-assems deep. So I'm still avoiding them. You're suggesting using these moving mates or limit mates in the flexible assembly use case so I'm understanding they are fairly robust mates in SW? Different systems with different behaviors == different set of dos and don'ts.
They work as they should, most of the times. There are times when they start being jerky. For instance, when a flexible sub-assembly becomes over-defined, these mates start doing all sort of weird stuff until you refresh SolidWorks's memory by toggling rigid/flexible (So that the program remembers their original position and doesn't start misinterpreting to flip mates)
Well now that's just crap. But we had things like that before and the workarounds were paved, we all learned as muscle memory to look for these glitches, what they looked like and what to do with them.
Yup, pretty much crap. Doesn't throw errors if nothing changes, but change one thing and SolidWorks goes bonkers trying to solve things that it shouldn't even have to bother with. Heck, it even goes bonkers even if the change is within the "defined flexibility", because SolidWorks most likely forgot that it was a flexible assembly.


Don't know if you saw what I added after posting, but maybe this could help you 'visualize' it.
I think the easiest way to image it is this way. Create an empty assembly and insert it into another assembly. How do you mate it? By it's environment. Putting it flexible won't change anything inside it because the assembly is empty and the environment of assemblies is fixed.
User avatar
Glenn Schroeder
Posts: 1458
Joined: Mon Mar 08, 2021 11:43 am
Answers: 22
Location: southeast Texas
x 1650
x 2056

Re: How to make an assembly flexible by default?

Unread post by Glenn Schroeder »

bnemec wrote: Thu Nov 10, 2022 9:24 am . . . - when a sub assembly is set to adjustable the relationships/mates in that sub assembly are "promoted" to the current assembly and solved in that context. I think this is why there's no problem placing mates between two components in the same sub assembly. I don't understand why SW doesn't allow this, I'm guessing it's something to do with how they implemented flexible.
Maybe this is covered in the replies above, but why would you need to mate elements of a flexible sub-assembly to each other in a higher level Assembly? Why not just apply those mates in the sub-assembly? If you need different conditions for different upper level assemblies, or different conditions in the same upper level assembly, why not handle that with configurations?
"On the days when I keep my gratitude higher than my expectations, well, I have really good days."

Ray Wylie Hubbard in his song "Mother Blues"
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

Glenn Schroeder wrote: Thu Nov 10, 2022 10:57 am Maybe this is covered in the replies above, but why would you need to mate elements of a flexible sub-assembly to each other in a higher level Assembly? Why not just apply those mates in the sub-assembly? If you need different conditions for different upper level assemblies, or different conditions in the same upper level assembly, why not handle that with configurations?
Discussed in another thread. I'd fail at trying to explain the full use case. We cannot use configs for each position because they are not known at the time of releasing the sub assembly model and more importantly there would be endless configs. New usages of old assemblies are added on a regular basis; not new where used, but a new use that would require new configs in the base assembly. Think of a seat assembly that has tracks/sliders for fore/aft adjustment. There are endless where used of the purchased track rails, so reduce inventor custom travel limits are implemented in upper levels, not at the base assembly level. So a right hand track rail very well winds up in a couple thousand different top level SKUs and at minimum that purchased track assembly model is three sub assemblies deep; purchased track assembly, then handle added to track assembly, then right and left tracks kit assembly then top level assembly. That is the most simple case, others may be six or seven layers deep. The travel limiters are either added at the right and left track kit assembly level or more often added as another kit along side the right and left track kit at the top level; it all depends on various requirements. Back to why not just use configurations? I think because we would need configs in the bottom track assembly for every single latch position to allow for every possible track limiting option in the upper levels.

I still don't understand if the where used assembly then needs to have a config for every config in the sub assembly. It seems that if the bottom assembly has three configs for example, then the next assembly must have a config for each of the configs in the bottom assembly for upper levels to make use of them. In other words every config in a lower assembly must be implemented up through every other assembly level until it is no longer needed. Then if there's a degree of freedom added in another configured assembly then they multiply. This would turn into hundreds or thousands of configs in the mid-tree assemblies to accommodate all the possible motions in the upper levels. Or am I totally out to lunch? Which is quite likely I admit.
User avatar
Glenn Schroeder
Posts: 1458
Joined: Mon Mar 08, 2021 11:43 am
Answers: 22
Location: southeast Texas
x 1650
x 2056

Re: How to make an assembly flexible by default?

Unread post by Glenn Schroeder »

bnemec wrote: Thu Nov 10, 2022 11:18 am Discussed in another thread. I'd fail at trying to explain the full use case. We cannot use configs for each position because they are not known at the time of releasing the sub assembly model and more importantly there would be endless configs. New usages of old assemblies are added on a regular basis; not new where used, but a new use that would require new configs in the base assembly. Think of a seat assembly that has tracks/sliders for fore/aft adjustment. There are endless where used of the purchased track rails, so reduce inventor custom travel limits are implemented in upper levels, not at the base assembly level. So a right hand track rail very well winds up in a couple thousand different top level SKUs and at minimum that purchased track assembly model is three sub assemblies deep; purchased track assembly, then handle added to track assembly, then right and left tracks kit assembly then top level assembly. That is the most simple case, others may be six or seven layers deep. The travel limiters are either added at the right and left track kit assembly level or more often added as another kit along side the right and left track kit at the top level; it all depends on various requirements. Back to why not just use configurations? I think because we would need configs in the bottom track assembly for every single latch position to allow for every possible track limiting option in the upper levels.

I still don't understand if the where used assembly then needs to have a config for every config in the sub assembly. It seems that if the bottom assembly has three configs for example, then the next assembly must have a config for each of the configs in the bottom assembly for upper levels to make use of them. In other words every config in a lower assembly must be implemented up through every other assembly level until it is no longer needed. Then if there's a degree of freedom added in another configured assembly then they multiply. This would turn into hundreds or thousands of configs in the mid-tree assemblies to accommodate all the possible motions in the upper levels. Or am I totally out to lunch? Which is quite likely I admit.
Yes, I can see why configurations wouldn't work. You are not out to lunch on how they work with multiple levels.

So from someone who is frequently out to lunch, and just barely smart enough to realize it happens, why do you need (or at least want) to mate elements of the sub-assemblies to each other in higher level assemblies? And if there are valid reasons that you don't want to take the time to explain I will be just fine with that.
"On the days when I keep my gratitude higher than my expectations, well, I have really good days."

Ray Wylie Hubbard in his song "Mother Blues"
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

Glenn Schroeder wrote: Thu Nov 10, 2022 11:29 am Yes, I can see why configurations wouldn't work. You are not out to lunch on how they work with multiple levels.

So from someone who is frequently out to lunch, and just barely smart enough to realize it happens, why do you need (or at least want) to mate elements of the sub-assemblies to each other in higher level assemblies? And if there are valid reasons that you don't want to take the time to explain I will be just fine with that.
I think I understand it.

Think of it this way.

Switch the assembly from rigid to flexible. The mates get "promoted" upwards. You can then toggle which you want and don't want from the current assembly to allow the desired level of flexibility rather then defining it at first and then having to adjust it every now and then to new situations.
User avatar
josh
Posts: 261
Joined: Thu Mar 11, 2021 1:05 pm
Answers: 11
x 19
x 453

Re: How to make an assembly flexible by default?

Unread post by josh »

If possible, I would recommend not using flexible subassemblies for this... It sounds like the components you're using as flexible are sort of two halves that move relative to one another. One strategy I have used for this in the past is to actually break these assemblies into two separate parts (or assemblies). Apply the properties etc. that drive your BOM to one half, and then hide the other half in the BOM. There's an option in Configuration Properties for "Set 'Exclude from bill of materials' when inserted into assembly", so you don't have to worry about them actually showing up. I use this frequently for things like THK linear blocks and rails. I assign the part number to the rail, and hide the blocks in the BOM. That way, one half can easily move relative to the other half, or even be put into separate assemblies. As long as you have some way of making sure that nobody uses the wrong "hidden" half and end up with an assembly that doesn't go together, this avoids having to nest flexible subassemblies.
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

Glenn Schroeder wrote: Thu Nov 10, 2022 11:29 am Yes, I can see why configurations wouldn't work. You are not out to lunch on how they work with multiple levels.

So from someone who is frequently out to lunch, and just barely smart enough to realize it happens, why do you need (or at least want) to mate elements of the sub-assemblies to each other in higher level assemblies? And if there are valid reasons that you don't want to take the time to explain I will be just fine with that.
I'm sorry, after all that I forgot to answer your main question. :oops:
When there are stops/limits built in at other levels or sibling levels we can make drawing views or export STEP files by mating to or simply dragging the mechanism up to those stops. But the default way to show most of these things are in the latching position closest to middle position. Many very important dimensions on the leagaly binding drawing that the customers approve are based on getting this position correct. Because the middle position changes with stops we would like to define it at the first assembly that has the stops. It has been my experience that the most intuitive place to put the mate to hold mid travel position is often between two components in that flexible sub assembly. Are there other ways? Yes, it's just the first goto for our users as that's what seems natural and it worked well in previous system, so it was the encouraged method. We're trying to find the new method to encourage. We're trying to cling to any opportunity for consistency that we can find. If we don't the 25 different users will find 100 different ways to do it. (It's not evenly spread at 4 per user, a few users are over achievers in implementing various methods to accomplish the same task.)
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

josh wrote: Thu Nov 10, 2022 11:55 am If possible, I would recommend not using flexible subassemblies for this... It sounds like the components you're using as flexible are sort of two halves that move relative to one another. One strategy I have used for this in the past is to actually break these assemblies into two separate parts (or assemblies). Apply the properties etc. that drive your BOM to one half, and then hide the other half in the BOM. There's an option in Configuration Properties for "Set 'Exclude from bill of materials' when inserted into assembly", so you don't have to worry about them actually showing up. I use this frequently for things like THK linear blocks and rails. I assign the part number to the rail, and hide the blocks in the BOM. That way, one half can easily move relative to the other half, or even be put into separate assemblies. As long as you have some way of making sure that nobody uses the wrong "hidden" half and end up with an assembly that doesn't go together, this avoids having to nest flexible subassemblies.
I'm not sure how that gets us flexibility up the tree. Unless you're suggesting putting them all in one top level assembly? As soon as there is a "mid-level" assembly that uses these two assemblies that make one part number, that mid-level assembly will need to be flexible in the where used (top levels) or also done as two assemblies. But it wouldn't be two assemblies as there are other degrees of freedom (user adjustments) the entire assembly structure would need to be completely different and have nothing to do with the part numbers they represent.

We have an ERP system that is the source of truth. We try to keep our assembly structure in line with the BOM structure in that system. There are a few places we deviate as the lesser of two evils but those cases cause headache in product maintenance. On several occasions we thought we would be better modeling it up best for CAD vs matching the ERP BOM only to have to go back and redo the structure later. We've looked at doing this in the past, several times, the fallout of not having our files match part numbers in ERP as closely as possible spirals out of control. We just do not live in an environment that will allow the modeling methods you suggest. This applies to SE or SW.
berg_lauritz
Posts: 423
Joined: Tue Mar 09, 2021 10:11 am
Answers: 6
x 441
x 235

Re: How to make an assembly flexible by default?

Unread post by berg_lauritz »

bnemec wrote: Thu Nov 10, 2022 11:18 am Discussed in another thread. I'd fail at trying to explain the full use case. We cannot use configs for each position because they are not known at the time of releasing the sub assembly model and more importantly there would be endless configs. New usages of old assemblies are added on a regular basis; not new where used, but a new use that would require new configs in the base assembly. Think of a seat assembly that has tracks/sliders for fore/aft adjustment. There are endless where used of the purchased track rails, so reduce inventor custom travel limits are implemented in upper levels, not at the base assembly level. So a right hand track rail very well winds up in a couple thousand different top level SKUs and at minimum that purchased track assembly model is three sub assemblies deep; purchased track assembly, then handle added to track assembly, then right and left tracks kit assembly then top level assembly. That is the most simple case, others may be six or seven layers deep. The travel limiters are either added at the right and left track kit assembly level or more often added as another kit along side the right and left track kit at the top level; it all depends on various requirements. Back to why not just use configurations? I think because we would need configs in the bottom track assembly for every single latch position to allow for every possible track limiting option in the upper levels.

I still don't understand if the where used assembly then needs to have a config for every config in the sub assembly. It seems that if the bottom assembly has three configs for example, then the next assembly must have a config for each of the configs in the bottom assembly for upper levels to make use of them. In other words every config in a lower assembly must be implemented up through every other assembly level until it is no longer needed. Then if there's a degree of freedom added in another configured assembly then they multiply. This would turn into hundreds or thousands of configs in the mid-tree assemblies to accommodate all the possible motions in the upper levels. Or am I totally out to lunch? Which is quite likely I admit.
I understand the frustration with "kit" parts that you have to split up into various assemblies. Is there maybe a good way around it for you where you play around with configurations, promoting assemblies & excluding parts i.e. from the BOM in that assembly?

Example from our side:
This kit comes with 4+4+8+2+2+1 parts and they will be used on different stages and on different positions across various assemblies.

You CAN place this whole assembly and mate all the parts individually if you want to i.e. test things:
2022-11-10 10_49_10-Window.png
We also have i.e. a configuration in there that has only 1 part (the pin) unsuppressed. If you insert this configuration the pin will be promoted onto the BOM (I could also i.e. hide the pin from showing up AT ALL on the BOM if I chose to):
2022-11-10 10_54_05-Window.png
The running gear & housing & screws will be placed individually onto the door (same thing there, a configuration for it):
2022-11-10 10_48_33-Window.png
The distance between two of those running gears varies for each door:
2022-11-10 11_05_26-Window.png
The other parts go onto other assemblies etc.

Through this trickery with promoting, hiding or showing the parts in various configurations we are able to place them easily while only showing the whole kit ONCE on the whole BOM.
In this case we also do have some temporary assemblies in our design library which are usually promoted or in which the BOM quantity is modified (i.e. we have a temporary assembly that has the track & the track stopper in it. We assign a new part # to this each time we put it into our assemblies which will never show up, because it is always a promoted assembly).
For this sliding door running gear we have a temporary assembly: Rename after you put it in; adjust the distance to be correct & mate into place (BOM quantity is modified within that assembly)
2022-11-10 11_19_57-Window.png
It's a whole lot of trickery that we use but it significantly improved stability & performance for us.

Does that help you?
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

berg_lauritz wrote: Thu Nov 10, 2022 12:16 pm I understand the frustration with "kit" parts that you have to split up into various assemblies. Is there maybe a good way around it for you where you play around with configurations, promoting assemblies & excluding parts i.e. from the BOM in that assembly?

Example from our side:
This kit comes with 4+4+8+2+2+1 parts and they will be used on different stages and on different positions across various assemblies.

You CAN place this whole assembly and mate all the parts individually if you want to i.e. test things:
2022-11-10 10_49_10-Window.png

We also have i.e. a configuration in there that has only 1 part (the pin) unsuppressed. If you insert this configuration the pin will be promoted onto the BOM (I could also i.e. hide the pin from showing up AT ALL on the BOM if I chose to):
2022-11-10 10_54_05-Window.png

The running gear & housing & screws will be placed individually onto the door (same thing there, a configuration for it):
2022-11-10 10_48_33-Window.png

The distance between two of those running gears varies for each door:
2022-11-10 11_05_26-Window.png

The other parts go onto other assemblies etc.

Through this trickery with promoting, hiding or showing the parts in various configurations we are able to place them easily while only showing the whole kit ONCE on the whole BOM.
In this case we also do have some temporary assemblies in our design library which are usually promoted or in which the BOM quantity is modified (i.e. we have a temporary assembly that has the track & the track stopper in it. We assign a new part # to this each time we put it into our assemblies which will never show up, because it is always a promoted assembly).

It's a whole lot of trickery that we use but it significantly improved stability & performance for us.

Does that help you?
I don't know if that helps or not. I have to work through it more.

I'm hearing BOM a lot. There's a lot of threads in many forums about getting the BOMs to show up right. Are we talking about the parts list on the assembly drawing or a BOM that's exported to other systems?
berg_lauritz
Posts: 423
Joined: Tue Mar 09, 2021 10:11 am
Answers: 6
x 441
x 235

Re: How to make an assembly flexible by default?

Unread post by berg_lauritz »

bnemec wrote: Thu Nov 10, 2022 12:25 pm I don't know if that helps or not. I have to work through it more.

I'm hearing BOM a lot. There's a lot of threads in many forums about getting the BOMs to show up right. Are we talking about the parts list on the assembly drawing or a BOM that's exported to other systems?
Did I misunderstand your problem why you need the flexible assembly? It is not for showing movement, is it?
You want to have this "kit X" as one component in assembly A, but you want to place parts from X in assembly B,C,D,E. But you ONLY want to see it called out on A, correct?
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

berg_lauritz wrote: Thu Nov 10, 2022 12:38 pm Did I misunderstand your problem why you need the flexible assembly? It is not for showing movement, is it?
You want to have this "kit X" as one component in assembly A, but you want to place parts from X in assembly B,C,D,E. But you ONLY want to see it called out on A, correct?
Not really. I think some suggest that type of thing in a work around (that winds up with several files for one part number) to the original problem. If we have a "kit" that kit and all of it's parts are used together. If the kit needs broken apart or different/other parts (hardware for example) then the kit gets a different part number in ERP which means is a different assembly file in CAD.

Original problem is exactly for showing movement, as well as showing the correct "mid travel" location on prints. Mid travel of the bottom level flexible assembly is not the mid travel of that system in the upper-level assemblies as many different usages implement travel stops at various locations and methods as needed by requirements that have nothing to do with CAD.
TTevolve
Posts: 226
Joined: Wed Jan 05, 2022 10:15 am
Answers: 3
x 78
x 143

Re: How to make an assembly flexible by default?

Unread post by TTevolve »

Flexible assemblies are useful when you want to show a range of motion, think a door opening and closing on hinges, or a air/hydraulic cylinder moving like Alex posed above, but if you want to show it in specific positions then you have to make it rigid, which is where configurations come in. Advanced mates help a lot so you don't have to leave parts unconstrained, but at the end of the day there is unlimited movement in a flexible assembly unless you constrain it.
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

TTevolve wrote: Mon Nov 14, 2022 11:50 am Flexible assemblies are useful when you want to show a range of motion, think a door opening and closing on hinges, or a air/hydraulic cylinder moving like Alex posed above, but if you want to show it in specific positions then you have to make it rigid, which is where configurations come in. Advanced mates help a lot so you don't have to leave parts unconstrained, but at the end of the day there is unlimited movement in a flexible assembly unless you constrain it.
I think I can see what you're saying. The specific positions part is why we need to use flexible assemblies and not configurations. Yes there are specific positions that the model should be at for drawings default behavior, but that position is defined in upper levels, which is why we need the bottom level assemblies to be places as flexible by default and then in the upper level assemblies (where those positions are defined by usage) would like to apply mates to components in the same flexible sub assembly.
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

Here's an example of a flexible assembly we use. The position of the central plate varies depending on crossbeam positions, so therefor it requires to be "set" accordingly to the assembly it is inserted in, hence the flexibility.


This is a GIF. Click me!
FLEXIBLE.gif
Image of my featuremanager in case you wonder.
image.png
User avatar
bnemec
Posts: 1869
Joined: Tue Mar 09, 2021 9:22 am
Answers: 10
Location: Wisconsin USA
x 2466
x 1344

Re: How to make an assembly flexible by default?

Unread post by bnemec »

AlexLachance wrote: Mon Nov 14, 2022 4:45 pm Here's an example of a flexible assembly we use. The position of the central plate varies depending on crossbeam positions, so therefor it requires to be "set" accordingly to the assembly it is inserted in, hence the flexibility.


This is a GIF. Click me!
FLEXIBLE.gif

Image of my featuremanager in case you wonder.
image.png
That's a great example, thanks for sharing! Also add different types of limiters to the jack travel for different trailers, have several different jack post widths and about 25 different types of handles. Also handle on left, right or both. o[

The telescoping tubes, are those welded into position at assembly time or how is that length set?
User avatar
AlexLachance
Posts: 2035
Joined: Thu Mar 11, 2021 8:14 am
Answers: 17
Location: Quebec
x 2191
x 1890

Re: How to make an assembly flexible by default?

Unread post by AlexLachance »

bnemec wrote: Mon Nov 14, 2022 5:07 pm That's a great example, thanks for sharing! Also add different types of limiters to the jack travel for different trailers, have several different jack post widths and about 25 different types of handles. Also handle on left, right or both. o[

The telescoping tubes, are those welded into position at assembly time or how is that length set?
The ones on each side of the jack are bolted onto the support. If the support becomes larger then they adapt to it. They're set to flexible, I don't remember their exact stretching length but it's something like from 20" to 40" CC" is their travel limit.
Post Reply