How to properly do dumb numbering for configs and multibody parts?
Posted: Fri Oct 04, 2024 10:45 am
I know this topic has been beaten to death, but I wanted to ask something very specific that has not been covered yet as far as I was able to find. I'm working without PDM for my personal/hobby/contracted projects, and I've recently abandoned descriptive file naming for semi-dumb numeric convention for physical products - a simple counter, for example A000150.SLDPRT, A000151.SLDASM, etc. This works great for basic stuff.
First consideration is part/assembly configurations - they make things a bit messy. If a part/assembly has multiple configs representing physical products, ideally I'd like to assign the next number in the counter. For example, if part file name is A000150.SLDPRT, then first/default config would also be A000150, second config would be A000151, etc. Unfortunately this makes tracking very difficult, since there is no real way of knowing that product A000151 is actually inside part file A000150.SLDPRT unless I store that info somewhere manually.
So instead I had to resort to naming configurations A000150-0, A000150-1, A000150-2, etc. Which avoids the traceability issue, but now the numbering is not as dumb as I want it to be, and it exposes the numbering logic to the drawings, which makes things more confusing. This is my first question - is there a way to avoid that second layer of numbering while still retaining traceability?
Second consideration is multibody parts, where each (unique) body represents a separate physical product and should have it's own number. These bodies may or may not be exported with Save Bodies/Insert Part/Insert into New Part to a separate file, but if they are, then the numbering inside multibody part should match the exported file names. The end goal is to have the same numbering convention for traditional assemblies and multibody parts, meaning they would appear the same on the drawing and allow the freedom to choose either modelling strategy.
There are several issues here:
1. If a part has only one body, it doesn't make sense to assign a new number to that body, because the part is not mocking an assembly in this case. The body should have no number, or a number that matches the file name. However, if there are two or more bodies, then this part is mocking an assembly, and now bodies should have different numbers. For example part is A000150.SLDPRT, body 1 is A000151, body 2 is A000152, etc. This change in numbering scheme when the number of bodies becomes >1 feels dirty. Often when designing the product you don't know if you'll be able to keep it as 1 body, or if it will need splitting for manufacturability.
2. If there are geometrically identical bodies in a multibody part, then it doesn't make sense to number bodies; it is probably better to use Weldment feature to group them, and assign numbers to cut-list items instead. However, this again begs the question of what to do when part has only 1 body. Still use Weldment feature for the sake of uniformity? Even if so, this still retains the #1 issue.
3. Every now and then, SW decides that the bodies / Cut-List items need to be re-created upon rebuild, which loses their names and all associated cut-list properties. In this case, it includes the assigned number. Restoring these numbers is a headache.
4. Things get pretty complex if multibody part has multiple configurations, where each config has a different number of bodies/cut-list items. Say, part is A000150.SLDPRT, config 1 is A000151 and it has 2 cut-list items, A000152 and A000153. Config 2 is A000154 has the same first item A000151, but also a unique item A000155. Config 3 is A000156, and also has the same first cut-list item, but no other items/bodies - so it is not mocking an assembly, and it means that cut-list item number should match the config number (A000156). But it already has a number (A000151) from the other config, it obviously cannot have two numbers.
(I know this last point is very confusing, but it illustrates the flaw with my scheme)
I would love your input on this, I feel I am a bit re-inventing the wheel here, and I'm sure someone else has already figured out the best way to handle these cases, but like I said, I wasn't able to find much info on this forum or elsewhere.
I know some companies just don't use multibody/master modelling and configurations to avoid this complexity, but for me that would be sacrificing some of the most powerful functionality that SW has to offer. I definitely want to keep using configs and multibodies, but I'd like to build a robust numbering scheme that covers all potential pitfalls, so I can then automate all this numbering with API.
Looking forward to your thoughts
First consideration is part/assembly configurations - they make things a bit messy. If a part/assembly has multiple configs representing physical products, ideally I'd like to assign the next number in the counter. For example, if part file name is A000150.SLDPRT, then first/default config would also be A000150, second config would be A000151, etc. Unfortunately this makes tracking very difficult, since there is no real way of knowing that product A000151 is actually inside part file A000150.SLDPRT unless I store that info somewhere manually.
So instead I had to resort to naming configurations A000150-0, A000150-1, A000150-2, etc. Which avoids the traceability issue, but now the numbering is not as dumb as I want it to be, and it exposes the numbering logic to the drawings, which makes things more confusing. This is my first question - is there a way to avoid that second layer of numbering while still retaining traceability?
Second consideration is multibody parts, where each (unique) body represents a separate physical product and should have it's own number. These bodies may or may not be exported with Save Bodies/Insert Part/Insert into New Part to a separate file, but if they are, then the numbering inside multibody part should match the exported file names. The end goal is to have the same numbering convention for traditional assemblies and multibody parts, meaning they would appear the same on the drawing and allow the freedom to choose either modelling strategy.
There are several issues here:
1. If a part has only one body, it doesn't make sense to assign a new number to that body, because the part is not mocking an assembly in this case. The body should have no number, or a number that matches the file name. However, if there are two or more bodies, then this part is mocking an assembly, and now bodies should have different numbers. For example part is A000150.SLDPRT, body 1 is A000151, body 2 is A000152, etc. This change in numbering scheme when the number of bodies becomes >1 feels dirty. Often when designing the product you don't know if you'll be able to keep it as 1 body, or if it will need splitting for manufacturability.
2. If there are geometrically identical bodies in a multibody part, then it doesn't make sense to number bodies; it is probably better to use Weldment feature to group them, and assign numbers to cut-list items instead. However, this again begs the question of what to do when part has only 1 body. Still use Weldment feature for the sake of uniformity? Even if so, this still retains the #1 issue.
3. Every now and then, SW decides that the bodies / Cut-List items need to be re-created upon rebuild, which loses their names and all associated cut-list properties. In this case, it includes the assigned number. Restoring these numbers is a headache.
4. Things get pretty complex if multibody part has multiple configurations, where each config has a different number of bodies/cut-list items. Say, part is A000150.SLDPRT, config 1 is A000151 and it has 2 cut-list items, A000152 and A000153. Config 2 is A000154 has the same first item A000151, but also a unique item A000155. Config 3 is A000156, and also has the same first cut-list item, but no other items/bodies - so it is not mocking an assembly, and it means that cut-list item number should match the config number (A000156). But it already has a number (A000151) from the other config, it obviously cannot have two numbers.
(I know this last point is very confusing, but it illustrates the flaw with my scheme)
I would love your input on this, I feel I am a bit re-inventing the wheel here, and I'm sure someone else has already figured out the best way to handle these cases, but like I said, I wasn't able to find much info on this forum or elsewhere.
I know some companies just don't use multibody/master modelling and configurations to avoid this complexity, but for me that would be sacrificing some of the most powerful functionality that SW has to offer. I definitely want to keep using configs and multibodies, but I'd like to build a robust numbering scheme that covers all potential pitfalls, so I can then automate all this numbering with API.
Looking forward to your thoughts