Page 1 of 1
How to make an assembly flexible by default?
Posted: Wed Nov 09, 2022 3:42 pm
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?
Re: How to make an assembly flexible by default?
Posted: Wed Nov 09, 2022 6:20 pm
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."?
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 8:32 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 8:59 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 9:24 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 9:38 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 10:02 am
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.
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.
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 10:10 am
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.
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 10:57 am
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?
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 11:18 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 11:29 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 11:45 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 11:55 am
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 11:57 am
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.
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.)
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 12:08 pm
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.
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 12:16 pm
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:
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):
The running gear & housing & screws will be placed individually onto the door (same thing there, a configuration for it):
The distance between two of those running gears varies for each door:
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)
It's a whole lot of trickery that we use but it significantly improved stability & performance for us.
Does that help you?
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 12:25 pm
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?
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 12:38 pm
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?
Re: How to make an assembly flexible by default?
Posted: Thu Nov 10, 2022 1:17 pm
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.
Re: How to make an assembly flexible by default?
Posted: Mon Nov 14, 2022 11:50 am
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.
Re: How to make an assembly flexible by default?
Posted: Mon Nov 14, 2022 12:25 pm
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.
Re: How to make an assembly flexible by default?
Posted: Mon Nov 14, 2022 4:45 pm
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!
Image of my featuremanager in case you wonder.
Re: How to make an assembly flexible by default?
Posted: Mon Nov 14, 2022 5:07 pm
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.
The telescoping tubes, are those welded into position at assembly time or how is that length set?
Re: How to make an assembly flexible by default?
Posted: Tue Nov 15, 2022 7:37 am
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.
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.