Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Top-Down Design webinar pre-questions?
Tony_C_
Member Posts: 273 PRO
I'm really interested in tomorrow's webinar about "multi-part Part Studios, In-Context Assembly design and more." but am not sure if I'll be able to attend.
I've got a few quick things I'd love to see covered if Cody can hit on them.
1) How/when to use the "move to new subassembly" and "create new subassembly." I can't really find much about how these features work.
2) When creating ICE parts within an assembly(1), how to update those ICE parts when the assembly(1) is inserted into another assembly(2).
Thanks!!
I've got a few quick things I'd love to see covered if Cody can hit on them.
1) How/when to use the "move to new subassembly" and "create new subassembly." I can't really find much about how these features work.
2) When creating ICE parts within an assembly(1), how to update those ICE parts when the assembly(1) is inserted into another assembly(2).
Thanks!!
0
Best Answers
-
cody_armstrong Moderator, Onshape Employees, Developers, csevp Posts: 215@Tony_C_ I will make sure these get covered.5
-
cody_armstrong Moderator, Onshape Employees, Developers, csevp Posts: 215@Tony_C_ Is there a reason these need to be in separate sub-assemblies? You can have more than one context for your pipes, but creating a separate context for a sub-assembly and then top-level assembly seems unnecessary if the pipes position is ultimately decided in the top-level?5
-
malay_kumar Onshape Employees, Developers Posts: 93Sure. Please post it here or report using feedback tool (if you want to share model only with support) whenever you get time and thanks for providing valuable feedback and insights into your use case.5
-
malay_kumar Onshape Employees, Developers Posts: 93@Tony_C_ Thanks for these examples. Designing in-context pipes in top level assemblies and then moving to subassemblies work to some extent but it won't be easy to keep the sub-assembly position correct. Closest I could get to is in following doc where after updating subassembly in-context part (from top-level assembly) I will have to goto sub and reset Slider mates.
https://cad.onshape.com/documents/58c44903f3b7fe0f7f175d4d/w/c864c7effd33d13b3bc036d0/e/e843163ef1b5701dcc8de754
Obviously you don't want to update subassembly manually each time. What you would really want is to update subassembly position whenever a part is updated from context?
There may be some enhancement request we can create to capture this need: One enhancement could be to have mate properties that is different at different level of assembly like mate value so you could lock sliders at 0 position in sub but in top level it is free to move. Or you can have extra fastened mates in sub which can be suppressed at top level. If you are only interested in BOM there may be another enhancement possibility to have virtual subassembly which are never to viewed on its own but shows up correctly in BOM. Do you have any thoughts on these future possibilities?
I will create couple of enhancement request to capture this workflow.5
Answers
I thought I might give you an example of what I was talking about in question #2.
This is something I'd typically do. Everything in red is an assembly but I have to make the pipes, in blue, within the main assembly (in the pit).
If I make them in-context to the red assembly they are working off the reference placement in the (red) sub-assembly, not where the parts are in the main assembly (pit). I can't update them to the correct length once I place that assembly into my main assembly (in the pit). Hope that makes sense.
Thanks again
I was able to watch the webinar today. I had no idea you could just drag and drop parts in the tree into a sub-assembly.
I think I've been doing it bassackwards by creating the sub-assembly 1st then inserting it into the main assembly.
I think knowing now how to create a new sub-assembly will help. I'll do the assembling of the fittings 1st, THEN create the sub-assembly
I'll try that method on my next build.
I've been monitoring this post and have watched Cody's video putting together a top level for projects.
These piping top-levels are hard to do, probably the hardest from the wide range of projects an engineer encounters.
Do you have a breakdown of how many levels deep this top level will have? Where's the origin for the top level? Are you going to use in-context any where? when will you utilize part studios? Do BOM & drawings matter? Will there be more than one person working on this? What kind of changes are you anticipating and will your top level be able to handle these changes.
I'm curious how you're planning to put this all together.
Thanks for the interest.
I'll try and answer as much as I can.
Do you have a breakdown of how many levels deep this top level will have? Where's the origin for the top level? - Not sure what these means. But if you're asking how many assemblies I have, it's typically everything from the pump suction all the way out. This could multiple pumps/filters sub assemblies. The pit, elec panel, gauges, other stuff is just mated in.
Are you going to use in-context any where? - Yes. That's how I make my pipe. I've been mating my fittings where I know they'll connect/align in the sub assembly and then once inserted in the main assembly I move them around into their final position then make the pipe. This is what I am looking to change knowing now how to create the sub assemblies. I can position the parts then make the sub assembly.
when will you utilize part studios? - Pretty much just the pipes.
Do BOM & drawings matter? - For the fittings, pumps, gauges..etc only (which are linked part studios). Pipe isn't really a factor.
Will there be more than one person working on this? - Typically not
What kind of changes are you anticipating and will your top level be able to handle these changes.- That depends on how many times the customer adds/changes things. It could be as simple as adding another discharge line to completely starting over because of flow changes.
Let me make sure I understand it correctly. Are you trying to create these pipes in blue area in red subassembly using the component as placed in top level assembly? I am assuming these pipes are to be created as new in context part after everything else is placed in top-level and you want these new pipes in subassembly so your BOM and drawings(???) of subassembly is correct? Are there other reasons to keep them in subassembly? How are things positioned in subassembly?
You should be able to build at top and move to subassembly. We can allow in future to create a in-context new part in subassembly. One of the issue you will have both cases that the subassembly positions will be wrong unless mated again. I would still think it will be easier to keep pipe in top level in context or not have blue subassembly if it not really needed. In this scheme if you want your subassembly to look correct then their reference position should be same as top level assembly which is difficult to achieve in top-down design. There may be some alternative solutions in future if you want the grouping just for BOM.
If I create the pipe within the sub-assembly the references that the in-context parts are "looking at" are the faces and their locations in the sub-assembly level, not where they are once inserted into the main assembly and re-positioned.
There is no option to update a sub-assembly in-context part while within the main assembly using the new locations of the reference faces as they have been re-positioned in the main assembly.
https://cad.onshape.com/documents/58c212d2aad5b80f7b00e21b/v/bac44c1a6ad359ecbd7ec836/e/d797384300b87a9635657592
I am still not sure if the final relationship between part, subassembly, top-assembly, mate is better this way or not in terms of changes in design, collaboration etc. If you want you can try and see if works throughout the design cycle. If final design is sound for design intent and future changes then we can add enhancement request to provide a way to create new part in subassembly in the context of top-level assembly. This is already supported for existing part. If you try let us know how it goes.
When you create the subassembly as context and move to top level it won't work as that is switching context which is not supported yet and is more complex.
EDIT: It is possible you actually did create in top level and moved to subassembly. Sorry if i misunderstood. In that case I am not sure what did you mean by "lose the ability to update". I think you should still be able to update from top level. We don't provide a way to update from subassembly as it could be misleading as it really needs all parts and positions from top level.
A few years ago I helped a friend build this same assembly. I've asked him if I could share with you the construct but haven't heard back.
My system is about 30 of your systems all included inside a rack that'll fit through a door way. Your system and my system look a lot a like. The assembly level would be something like this: I take 30 of your constructs and add them into a higher level assembly. I now have a more sophisticated top level which is just 30 of yours. You could take mine and add another level which would represent a room full of racks. And then, add another level and represent multiple rooms in a building. Add another level and represent buildings on the planet. Is the sun the ultimate origin?
I believe I'd build yours as a part studio. Positioning your components in a part studio would be a PITA but I could use a sketch not only as a routing trajectory but also as a mate connnector holder that defines where the components are located. This would be referred to as the 'layout' for the partstudio and define where the components are located and the trajectory of the piping. Why a 'layout'? Because if I ever had to work on your model, I'd look for it and now in minutes I know how to control your design. You can control pipe lengths with a partstudio and you should be able to have the BOM tell you the cut lengths. If (false) {then we'll make it; return(true)}
We used 3D sketches to define piping trajectories. In OS I'd use multiple sketches (compound sketches) to achieve the same effect. I've been thinking of a featurescript that'll create these 3D trajectories. There's a routing app that does 3D, might look at that for some inspiration. I don't think they keep the 'x-direction' consistent while transforming though space (look you want elbows in your trajectory right?).
In my case, Ryan, a master assembler, could package things tighter than I could. He worked in the real world and I worked in the virtual world. My construct allowed me to rip up my design and match his. I couldn't say 'hey stick to the print dude'. In the end you'd have a hard time sticking a broom handle through the rack. It was packaged that dense. Of course we're always driven by a customer, but in my case, I was driven by manufacturing.
I wouldn't drive everything in assemblies. I know that's how we think, but it's not how we construct. At some time you need to drop into a partstudio.
If I hear back from my friend today, I'll build this system in OS and share the construct with you.
All the the items, except the pipe, are already drawn and in libraries. I just link them in.
There's a few comments in the file too.
https://cad.onshape.com/documents/58c3508c910b980f78df03fc/v/57422c03e59e48e555a231ca/e/60f7376590dfd2403ebfd1fe
https://cad.onshape.com/documents/58c44903f3b7fe0f7f175d4d/w/c864c7effd33d13b3bc036d0/e/e843163ef1b5701dcc8de754
Obviously you don't want to update subassembly manually each time. What you would really want is to update subassembly position whenever a part is updated from context?
There may be some enhancement request we can create to capture this need: One enhancement could be to have mate properties that is different at different level of assembly like mate value so you could lock sliders at 0 position in sub but in top level it is free to move. Or you can have extra fastened mates in sub which can be suppressed at top level. If you are only interested in BOM there may be another enhancement possibility to have virtual subassembly which are never to viewed on its own but shows up correctly in BOM. Do you have any thoughts on these future possibilities?
I will create couple of enhancement request to capture this workflow.
The BOM part of it is less of a factor than the ability to be able to update in-context parts in sub-assemblies as they are positioned in the main(top) assembly. I guess I was expecting OS's in-context parts to behave similarly to my other para-solid programs and it's a bit of a learning curve figuring out what does and doesn't work and how OS handles in-context parts.
Obviously you don't want to update subassembly manually each time. What you would really want is to update subassembly position whenever a part is updated from context?
What I'd like to be able to do is modify a sub-assembly in-context of the main assembly. Or somehow be able to link, or update, where the sub-assembly parts are located in the main assembly.
Thanks again for looking into this.
I may start a new thread on this as this has gone in a different direction for where it started...
OS takes the assembly to the part studio vs. editing inside the assembly. I like this because most assemblies have way to much stuff in them and picking what makes up the in-context then switching to the part studio is a nice feature. It's like having isolate tied to the an assembly context making the in-context only containing what's necessary. Other than that, it works the same as other "design in the assy" paradigms. The multiple context and independent update is nice. Also named placement is nice. I think this would work best in an automated assy line.
I've noticed you have your origin centered on the tub bottom:
That's my 2nd choice and I have a weak argument for my placement.
We placed our origin at the hook-ups:
The idea is the rack could be placed inside a room with many facility hook-ups.
I never use the ground as a reference. It changes way too much.
One of the major difficulties when dealing with plumping top levels is the origin. Other top levels seem to be easier to define the origin. Each plumping run is going to need a layout/origin/in-context that doesn't relate to the top. This is what your problem interesting.
Since you're dragging part studios into an assembly, I suspect you'll be building in-context.
In-context & a Top Level Assy
I'm trying to put together a top level assembly for a plumbing system. These systems are fairly difficult to assemble for reasons we'll be discussing in detail. It's been decided that this structure will be in-context involving an assembly.
Cleaning up existing geometry
The rack will be defined as a partstudio and consists of 8020 components. This is not an assy:
The first task is to format existing data into proper chunks before beginning the top level. Many problems exist with the current data set and before I proceed, I need to correct these errors.
The existing pump was assembled based on coordinates and then exported. Need to return pump to origin:
I'm going to fix the pump's origin using OS by defining 2 mate connectors and then translating the pump using the transformation using mate connectors command:
Now I don't want these features included in my data so I round-robin it through a parasolids export/import to clean up the feature tree. Keep your data clean and well defined:
Cleaned up muffler data using same techniques used above:
Top level assy
So here's my 1st top level structure I'd like to build:
But instead, if a partstudio has multiple parts, I prefer to assign these to sub-assy's:
The top level assy:
Mated the pump & muffler to the top rail of rack (planar mate connector):
In-context
Created a part in the assy using top level origin to produce an assy coordinate part:
Sketch on the part's front plane, notice the part's origin matches the top level origin. This is assembling by coordinates:
Extrude a surface to pump inlet and add another sketch for pipe trajectory:
From a combination of surface edges & sketch entities, sweep the pumps face along trajectory:
Top level assy with an in-context pipe:
Move the pump & update in-context:
This is an engineering model showing components and pipe routings. It allows you to position everything with piping and pack the rack tightly.
After the components where placed by both myself & Ryan, we added the details like elbows, valves and other details.
Not everything worked smoothly, these are my notes:
un-edited in-context & top level assy setup
un-edited in-context & top level assy routing pipe
I've got it working:
Change position of cyclonic and pipe lengths update: