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.

Part Studio Methodology

tim_probytim_proby Member Posts: 8
edited April 2020 in Community Support
I am working on building a deck addition on my house and have been using OnShape the last couple of days to come up with some designs.
https://cad.onshape.com/documents/c81a2bf27975d44e7c132e75/w/4f3056aaa0badaeaa582f09c/e/16b9e3b5c432f8ca521da0c6

I thought I was doing pretty good
  1. Created "skeleton" to define some of the critical features and design space
  2. Roughed in the "back of house"
  3. <then problems>
  4. Created "current deck"
  5. Tried to insert "current deck" into assembly and offset from the ground 3 ft
  6. I tried to use mate connectors but I get the feeling I am not using them correctly. I ran into problems when I was trying to modify the width of the "current deck" and could not find a way to link the mate connectors to reference geometry like planes or axes. 
After reading some guidance online - it seems like you are supposed to model all your parts in a single part studio and then reassemble them in the assembly. But I would prefer to not model my entire assembly in one single part studio. I would like to model discrete parts using local coordinate systems and then assemble them together. I plan on generating a few different design ideas and want to make them swapable.

Is my understanding of the part studio correct? Is there a better way to approach this project? I am experienced CAD user but new to onshape so advice on how to approach this is welcome!

[Edit] Forgot to mention: I am also confused by the need to create composite parts. I do not understand how to tell onshape when adding a part studio to an assembly to just grab all the parts in that assembly and add them in. And if additional parts added to the part studio, bring them into the assembly...

The same goes for sketches that I add to my skeleton model. Everytime I define a new sketch in my skeleton part studio, I have to import it into the assembly. 
Mechanical Engineer | PE
Blue Origin by Day
CAD Enthusiast at Night

Answers

  • tim_probytim_proby Member Posts: 8
    edited April 2020
    <put in my original comment>
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    There is no need to use composite parts. That is for a few specific purposes.

    You should beable to insert your entire part studio into an assembly by selecting the partstudio rather than the individual parts. Using the insert dialog. Make sure you have sketch filters on and you can get those at the same time too.

    I don't recommend drawing everything in one part studio unless you only have a handful of parts. You are correct to want separate part studios and one assembly if that helps you understand the design workflow. That is how I like to do it also. 

    When you insert a partstudio into the assembly. You only are grabbing every part that exists at the time. If you create new sketches or parts. Those will need to be added later. 
    Part studio is not an object that can be referenced directly in an assembly. It is a container of parts/surfaces/sketches etc. Imagine a box of Legos. When you insert into an assembly, you are dumping all the Legos on the floor. It just so happens the box is the part studio, and is more like marry poppins purse than a box...

    You can however insert a partstudio like a live part in a drawing, so i can see how that would be confusing. (just like my analogy probably.. 😂) 

    I can't see your model right now to check your mates. I already packed up my laptop for the night. I'll peek into that tomorrow. 
  • tim_probytim_proby Member Posts: 8
    Thanks for responding! Understood on the separate part studios

    I am using the beam feature so when I don't do a composite feature, it dumps every single beam into the assembly as a separate part. This is cumbersome to manage and mate. I want to treat the deck I created as one object which is why I was using composite feature. But then when I change deck size and increase number of stringers, I have to go back and add or subtract parts from the composite feature.



    Sort of related - I am struggling how to mate things properly. I want to set the deck ~2.5 ft above the top plane. I defined a mate connector within the deck but when I resize the deck, the mate connector is no longer properly defined because the number of stringers is increasing with some equations I have setup in the deck part studio. 

    Just to be clear - there is no way to define a part with multiple solid bodies and use that part in an assembly regardless of how many solid bodies are add/subtracted from the part itself. Anytime the number of solid bodies change - those solid bodies have to be reinserted into the assembly?
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    if you have parts in position in a part studio, and you want them in an assembly as separate parts. You should use a Group mate and window select all your parts from the same part studio.
    Or use FIX on everything if you don't plan on inserting this assembly into another assembly
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    To mate your part off of your layout sketch, This would be a good place for a fastened mate with a 3ft offset. (See below)



    Usually when you have multiple instances like your deck boards. It is usually better to create an assembly, and pattern inside the assembly.
    Unfortunately you lose the ability to use variables. but it will make it so you don't need to re-insert the parts in the main assembly, just update the pattern in the sub assembly.

    https://cad.onshape.com/documents/619cc2e30e877bc72d562fd0/w/eca1f1d45f02b1289011fd84/e/b747f6140229b6b9c9f0d4b4
    If that square area needs to be cut out. Then I'd create the cut out as a configuration, then change the configuration of those boards in the pattern.
    You will however need to insert the short boards on the opposite side and insert them into the sub assembly too.
    It isn't pretty, but it will knock down the amount of duplicate parts you have.


  • tim_probytim_proby Member Posts: 8
    Thanks for the detailed response and animation!

    I'll play around with putting the deck inside an assembly. The fastened mate definitely helps, I was trying to use the parallel mate which was a bit confusing to define. The fastened mate is much easier. 

    I am still confused by the onshape methodology of part definition. Onshape seems to want you to create multiple parts in a few number of part studios which I understand if you have a lot of custom parts inter-related... but it's not very conducive for creating universal/standard parts that you want to use multiple times in an assembly.
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    edited April 2020
    Really there is no preference. Just flexibility. You can  create multibody parts in other CAD like Solidworks. In very similar and powerful ways.
    BUT, the challenge is separating and using those parts in individual drawings or as separate parts in an assembly. In fact it is highly discouraged because of how buggy it is. (at least in my experience with it)

    Onshape just points this out because creating one part studio with many parts that build off of each other can be a very simple and robust way of modeling.

    But you will get better performance and flexibility if you draw in separate part studios. But they will require a little more effort to make them parametric to each other. So it all comes down to your specific design. It is nice having the choice without the handicaps.

    That is one of the things that can be hard to explain to someone after they learn about how to draw many parts in one studio.
    They think they "need" to make it a habit. Or they use that as an excuse to not learn Onshape. I just  say "model it as you would in your normal CAD" it is just as much work here as it is there. But after time and some more experience, you can start to think, "gee, it would be nice to make a chain guard as a solid block then skin it in sheet metal. Oh wait, you can, without ANY downside..." I do that method in solidworks now (as I still need to use SW due to stubborn peers.) but holy hell is that a pain in the arse to NOT break the links to the parent part. Especially if you need to rename the part or pack and go.. I think they made the reference links out of wet toilet paper.. and gods luck getting the flat pattern and a stock size...
  • tim_probytim_proby Member Posts: 8
    That methodology you describe makes sense. What is frustrating me is I have to constantly keep track of what bodies I have inserted into my main assembly and when I update my part studio. This seems really counter intuitive. 

    I started a new model and started modeling the deck.
    https://cad.onshape.com/documents/ca6790362fc53c7971e108fb/v/eede4676c8ec6b09053b4d8d/e/d55ad60546c660fe71ee307d

    I got the staircase in and want to see how it looked with ergo person I inserted in assembly. I then started add the railing on the side but my assembly doesn't update with those new solids. I have to manually tell the assembly to go grab the additional bodies by manually selecting them? That makse no sense to me. I do not understand why the assembly cannot just "call" all the bodies in that part studio and update as you go.

    This is similar to having a plate within an assembly and then going into the plate part and adding a boss and then having to go manually tell the assembly to recognize the new boss... 
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    edited April 2020
    It is because the part studio is not an object in the assembly. It is a container of parts and surfaces etc. You can't reference the part studio, only the parts inside.

    so when you add features in a part studio, you will be creating new parts. Similar to creating a new part file in solidworks. You wouldn't expect solidworks to scan your hard drive and automatically add parts into your assembly when you save a new part to your hard drive would you?
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,890 PRO
    edited April 2020
    They way you are modeling, you can just skip making an assembly all together. You aren't using it. Just duplicating your part studio.
    Which ignoring an assembly is a valid option too in Onshape. Just I would tend to stray away from that because it doesn't fit my company's documentation structure.
  • romeograhamromeograham Member Posts: 656 PRO
    One other option for you might be to use a Composite part

    in your part studio. Then instance the Composite Part in your Assembly, not the individual parts.
    You still have to keep that part updated with all your new parts each time you change your pattern, and the number of bodies, but at least the Composite part should update in the assembly when you make changes.

    You can also drive a Pattern in your assembly using configuration variables - you can even use a Variable that you enter in the Assembly to drive the configuration of parts in the part studio. This is an amazing workflow that can be very powerful. 
    Here's a webinar that shows this functionality in action - it might give you some ideas: https://learn.onshape.com/courses/introducing-assembly-configurations-in-onshape


  • tim_probytim_proby Member Posts: 8
    It is because the part studio is not an object in the assembly. It is a container of parts and surfaces etc. You can't reference the part studio, only the parts inside.

    so when you add features in a part studio, you will be creating new parts. Similar to creating a new part file in solidworks. You wouldn't expect solidworks to scan your hard drive and automatically add parts into your assembly when you save a new part to your hard drive would you?
    And that is counter-intuitive to me that onshape assembly cannot support single parts with multiple bodies contained within that part without doing the composite part which is overly complicated and extra work. 

    I would expect SolidWorks (or any other CAD program) to import all the bodies I had defined in a single part and treat that part as one entity.
    They way you are modeling, you can just skip making an assembly all together. You aren't using it. Just duplicating your part studio.
    Which ignoring an assembly is a valid option too in Onshape. Just I would tend to stray away from that because it doesn't fit my company's documentation structure.
    I agree I am duplicating, but trying to manage all those bodies and all those features in one single studio is a pain and cumbersome. It's nice to be able to model all my "background" in one part and then model different deck design as separate parts so you can easily swap and compare.
    One other option for you might be to use a Composite part

    in your part studio. Then instance the Composite Part in your Assembly, not the individual parts.
    You still have to keep that part updated with all your new parts each time you change your pattern, and the number of bodies, but at least the Composite part should update in the assembly when you make changes.

    You can also drive a Pattern in your assembly using configuration variables - you can even use a Variable that you enter in the Assembly to drive the configuration of parts in the part studio. This is an amazing workflow that can be very powerful. 
    Here's a webinar that shows this functionality in action - it might give you some ideas: https://learn.onshape.com/courses/introducing-assembly-configurations-in-onshape


    Thanks for how to on the composite feature. I have started using already. It's working great, I just wish it would automatically grab new bodies that have been added.


    Thanks for the advice and support. I definitely understand the approach and capabitilies of part studio now (even though I am frustrated with some). But I dig onshape overall and appreciate that the community helps new users.
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • tim_hess427tim_hess427 Member Posts: 648 ✭✭✭✭
    @tim_proby -  In regards to this comment:

    And that is counter-intuitive to me that onshape assembly cannot support single parts with multiple bodies contained within that part without doing the composite part which is overly complicated and extra work. 

    This got me thinking... Would you think that behavior would be a default? Or would essentially function like a "composite part" defined at the time when you insert the part studio into the assembly? I envision an option when you're importing things into an assembly that asks if you'd like to automatically create a sub-assembly or composite part that includes all elements of a part studio. That could be neat. However, I think you'd still need to have the ability to explicitly define a composite part in a part studio in the even you need to derive it into another part studio or use it in a stand-alone manner. 

    There really are many things in Onshape that are strange for a while, but they've grown on me over time. There are some things that may require a couple extra steps, but it seems like the way part studios, composite parts, and assemblies work together really do give a lot of flexibility to define references and links between entities in whichever way best captures design intent. 
  • tim_probytim_proby Member Posts: 8
    Hey- apologies for not responding, my 9-5 job got in the way :wink:
    This got me thinking... Would you think that behavior would be a default? Or would essentially function like a "composite part" defined at the time when you insert the part studio into the assembly?
    My preference would be having the option to insert "entire part studio" into assembly. This would option would be associative so if any parts were added to the studio, they would automatically by updated in the assembly. But if this wasn't default behavior, I think it's fine, it just needs to be an option.
    I envision an option when you're importing things into an assembly that asks if you'd like to automatically create a sub-assembly or composite part that includes all elements of a part studio.
    That would be pretty cool - but it really needs to be a sub-assembly or composite part that AUTOMATICALLY subtracts/adds solid bodies when the part studio is pulling from is updated. 
    However, I think you'd still need to have the ability to explicitly define a composite part in a part studio in the even you need to derive it into another part studio or use it in a stand-alone manner.
    I disagree. I feel like composite parts are kind of useless and overcomplicating the workflow. Why not just have parts that allow users to do one of two things
    1. Insert solid bodies within part studio into assemblies or other parts just like OnShape does now
    2. Insert entire part studio as one single part into assembly (tree part studio as your more traditional part/assembly workflow). The name of the part would be the same as the name for the part studio.
    There are some things that may require a couple extra steps, but it seems like the way part studios, composite parts, and assemblies work together really do give a lot of flexibility to define references and links between entities in whichever way best captures design intent.
    And I agree about flexibility and defining references. OnShape definitely has a great approach for managing references. But they seem to have sacrificed part defintion and naming of parts into a much more complicated and error prone workflow. I have found it extremely frustrating to have to go back to sub-assembly and constantly click and choose because I have added solid bodies to my part studio.

    And the response I seem to be getting to that, is
    Just do everything in part studio, you don't need assemblies
    And while I understand that, large assemblies with lots of complex parts have long feature trees. It becomes really cumbersome to have to navigate part studios with huge amounts of features and parts with 100s of solid bodies.

    My own op-ed
    It seems that onshape has decided to disable the option of classic part/assembly workflow to be different from other CAD packages when in fact they have simply limited the ability of the user to control their design intent.
    Mechanical Engineer | PE
    Blue Origin by Day
    CAD Enthusiast at Night
  • dave_cdave_c Onshape Employees Posts: 42
    To make Onshape's approach clearer: 

    A Part Studio allows you to define the shape of multiple parts using one parametric history.  Most other systems allow you to create the shape of one part using a parametric history.  Onshape does not in any way prevent you from defining one part per part studio and then assembling it in an assembly like other systems.  Some other systems allow you to define a part with multiple bodies - but it is a single rigid "part" in the assembly.   So for example, it is difficult in other systems to define three hinge parts with one parametric history and then have it mated to open and close in an assembly.   In Onshape this is very easy.  As noted in earlier comments, Onshape has "composite parts" for when you truly want a rigid multibody part.  So I'd argue Onshape does more, not less.  And I'd argue Onshape has increased the user's ability to control their design intent - because they can use parametric history to define the shape of multiple true independent parts, not just one, and those true parts can move relative to one and other in an assembly (in fact in multiple assemblies - and could move in different ways as well) and those parts can also be configured in multiple different ways in different part configurations.

    I do agree that Onshape  requires more consideration to decide how much to do in one Part Studio.  The general Onshape advice is to define the *shapes* of *unique* parts that significantly benefit from a shared parametric history in one Part Studio, and then instance those parts in an assembly when you have multiple instances of the same part.  In other words, define multiple parts in a Part Studio when a single parametric history to define those parts captures *meaningful* design intent.   Tend to avoid designing multiple parts in a single Part Studio if you are doing it just for convenience and they don't share a meaningful design intent.  A simple example here is a fastener like a nail or a bolt or a hinge.  But, for example, it would in general make sense to design a motor as an assembly to be reused in multiple lawn mowers.  And it would make sense that sub-portions of the motor are defined in sub-assemblies.  But it also makes sense that there are sets of parts in the motor that could benefit from having a single parametric history where one change to a sketch or an extrude can change multiple parts.

    A deck is kind of unique in the manufacturing world - because there are no moving parts.  But there are other benefits to using instancing in assemblies instead of doing everything in a Part Studio beyond movement- such as re-use of subassemblies, automatic BOM generation, re-use of parts across multiple assemblies, assembly configurations, etc., etc.

    I also agree that there is some functionality such as variables and equations that today are easier to use to drive things in Part Studios than in assemblies.  Onshape is still a young system compared to many others.  But Onshape is adding functionality rapidly and it is a matter of time until Onshape does everything that other systems do, and Onshape already does many fundamental things other systems cannot do.

    If it is a one time design and everything is rigid, doing "everything" in one part studio vs. using assemblies can make sense.  There are tradeoffs as discussed above. You have to decide which approach makes the most sense for you.  But I'd say those tradeoffs are mostly a result of more ability to control design intent, not less.

    That said, we greatly appreciate your usage of Onshape and your comments.  It is clear that greater flexibility can lead to more power but it can also lead to more confusion.  Your comments give us a lot to think about for the future.

Sign In or Register to comment.