Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. 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_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!!

Best Answers

Answers

  • Tony_C_Tony_C_ Member Posts: 273 PRO
    @Tony_C_  I will make sure these get covered.
    Thanks @cody_armstrong.

    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


  • dean_atkinsondean_atkinson Member Posts: 2 PRO
    edited March 2017
     

  • Tony_C_Tony_C_ Member Posts: 273 PRO
    @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?
    @cody_armstrong  - I guess the reason I do it like that is mostly for BOM and production once the guys on the floor start building the unit.  And I'm able to pull a BOM of parts just from that sub-assembly.

    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. 
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    Tony_C

    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.


  • Tony_C_Tony_C_ Member Posts: 273 PRO
    edited March 2017
    @billy2

    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. 

  • malay_kumarmalay_kumar Onshape Employees, Developers Posts: 93
    @Tony_C_ Thanks for posting an excellent use case.

    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.
  • Tony_C_Tony_C_ Member Posts: 273 PRO
    edited March 2017
     One of the issue you will have both cases that the subassembly positions will be wrong unless mated again.  
    @malay_kumar  Yes. This is main issue. 

    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.


      
  • Tony_C_Tony_C_ Member Posts: 273 PRO
    And I've just tried to move to sub-assembly pipes created in-context at the top level, I lose the ability to update the context. 

    https://cad.onshape.com/documents/58c212d2aad5b80f7b00e21b/v/bac44c1a6ad359ecbd7ec836/e/d797384300b87a9635657592
  • malay_kumarmalay_kumar Onshape Employees, Developers Posts: 93
    I think in this case not only in-context part need to be updated correctly to top-level position but subassembly position also need to be updated if you want subassembly parts to fit and look correctly. If you model in top-level in-context part and move to subassembly and mate correctly it should work provided subassembly has correct degree of freedom (in general only one part fixed or mated to assembly origin referenced mate connector).

    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. 
  • malay_kumarmalay_kumar Onshape Employees, Developers Posts: 93
    edited March 2017
    Tony_C_ said:
    And I've just tried to move to sub-assembly pipes created in-context at the top level, I lose the ability to update the context. 

    https://cad.onshape.com/documents/58c212d2aad5b80f7b00e21b/v/bac44c1a6ad359ecbd7ec836/e/d797384300b87a9635657592
    You will need to create at top level and move to subassembly. In this case context was always top level even when they are moved to subassembly. When you move you just say part now lives in subassembly. The context graphics that you see in part studio will always be of top-level assembly in order to update from top-level assembly positions. 

    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. 
  • Tony_C_Tony_C_ Member Posts: 273 PRO
    @malay_kumar  - I'll create some more specific examples of what I'm talking about and looking for. Might not be till the weekend though.  
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2017
    @Tony_C_

    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.



  • Tony_C_Tony_C_ Member Posts: 273 PRO
    @billy2

    All the the items, except the pipe, are already drawn and in libraries.  I just link them in.
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    Are you assembling the downloaded parts into an assy with a fastener mate?


  • Tony_C_Tony_C_ Member Posts: 273 PRO
    billy2 said:
    Are you assembling the downloaded parts into an assy with a fastener mate?


    No, I haven't been.
  • Tony_C_Tony_C_ Member Posts: 273 PRO
    edited March 2017
    Here are 3 examples of pipe I created. The only one that work is one in with no sub assemblies.   If I'm doing something wrong or missing a step please let me know. 

    There's a few comments in the file too. 

    https://cad.onshape.com/documents/58c3508c910b980f78df03fc/v/57422c03e59e48e555a231ca/e/60f7376590dfd2403ebfd1fe
  • Tony_C_Tony_C_ Member Posts: 273 PRO
    @malay_kumar

    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...
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited March 2017
    I've been buried with other things, sorry. 

    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. 




  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    2017-3-21 9:2 created
    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:
    image



    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:
    image



    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:
    image



    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:
    image



    Cleaned up muffler data using same techniques used above:
    image


    Top level assy
    So here's my 1st top level structure I'd like to build:
    image



    But instead, if a partstudio has multiple parts, I prefer to assign these to sub-assy's:
    image



    The top level assy:
    image



    Mated the pump & muffler to the top rail of rack (planar mate connector):
    image


    In-context
    Created a part in the assy using top level origin to produce an assy coordinate part:
    image



    Sketch on the part's front plane, notice the part's origin matches the top level origin. This is assembling by coordinates:
    image


    Extrude a surface to pump inlet and add another sketch for pipe trajectory:
    image



    From a combination of surface edges & sketch entities, sweep the pumps face along trajectory:
    image


    Top level assy with an in-context pipe:
    image



    Move the pump & update in-context:
    image



    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


  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 2,068 PRO
    edited April 2017
    Tony_C

    I've got it working:



    Change position of cyclonic and pipe lengths update:





Sign In or Register to comment.