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.

Add a Part Studio as Sub-Assembly or Group?

ArmindiloArmindilo Member Posts: 31 ✭✭
edited December 2016 in Community Support
I am modelling my future kitchen. I have created various sized cabinets in individual Part Studios, each one composed of approx 10 parts. When I bring them into my main assembly, they are completely floating individual pieces; they don't stay together as a cabinet.

The solution to that is simply to Group them once I bring them into the assembly. However, that still just shows it as individual parts on the left side, which becomes a pain when there are a lot of cabinets.

The solution to that is to create a sub-assembly for each cabinet. However, now I have created a complete Part Studio and Sub-Assembly for each cabinet size, which seems a bit redundant. I could live with that, but if I make a change in the Part Studio, it isn't updated in the Sub-Assembly. Updating the Sub-Assembly is a bit of a hassle with all the mates required to get it right. The solution is to just re-create the Sub-Assembly from the Part Studio, however then I need to re-insert it into the main Assembly.

Is there a way to bring in a Part Studio and have it behave like a Sub-Assembly?

For reference: https://cad.onshape.com/documents/dd5f09a4481b265866a2126a/w/652e135c7014f766e718ad25/e/bee7328366ef429c0233cc4c


Edit: As you can see, the updates to the 18" Base in Part Studio have not updated to the Sub-Assembly.

Best Answers

Answers

  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,475 PRO
    Without opening your document (don't wan't it in my recents list) my suggestion is:

    1. If you only need to test the look of your future kitchen, create part studio with single part cabinet (boolean everything together) and use variables to control the size. Then create version for each size you need. Then create assembly and mate cabinets side by side and choose right version (size) for each. This is not intended use for versions and everything is busted if you hit 'update all' at any time, but it will work.

    2. Wait for configurations which is THE function for creating a library of kitchen cabinets and using different instances in any assembly.

    3. If you need actual part data, create single part studio with that 10 part cabinet (use variables for sizing). Then duplicate that part studio for each size and create group mate sub-assembly for each. Then mate them side by side using fastened in main assy. Everything should update automatically UNLESS recent update forces us to create new version everytime you make a change to push it into assembly? If so, use feedback to request 'enabling the use of current version in assemblies' and bang your head against to keyboard (or tablet) while creating dozens of versions for every minor change to keep the assembly up-to-date..
    //rami
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    @3dcad I appreciate your response. I don't think I explained my issue very well, and without opening the file it's tough to describe any better. Your suggestions only partially address it.

    3dcad said:

    1. If you only need to test the look of your future kitchen, create part studio with single part cabinet (boolean everything together) and use variables to control the size. Then create version for each size you need. Then create assembly and mate cabinets side by side and choose right version (size) for each. This is not intended use for versions and everything is busted if you hit 'update all' at any time, but it will work.
    1. I don't want have them as a single part if I can avoid it.

    3dcad said:

    2. Wait for configurations which is THE function for creating a library of kitchen cabinets and using different instances in any assembly.

    2. I don't know if configurations would solve the issue, since it would still import all the parts into the main assembly as floating individual parts; Unless of course a configurations feature changed the way parts are shown in the handled in assembly tree.

    3dcad said:

    3. If you need actual part data, create single part studio with that 10 part cabinet (use variables for sizing). Then duplicate that part studio for each size and create group mate sub-assembly for each. Then mate them side by side using fastened in main assy. Everything should update automatically UNLESS recent update forces us to create new version everytime you make a change to push it into assembly? If so, use feedback to request 'enabling the use of current version in assemblies' and bang your head against to keyboard (or tablet) while creating dozens of versions for every minor change to keep the assembly up-to-date..
    3. This is roughly what I am doing now. I am creating separate Part Studios for each cabinet (using duplicate as you suggested). With this approach I am creating a Sub-Assembly for each cabinet, which is a hassle but reasonable. Now when I make a change to a particular cabinet that results in another Part in the Part Studio (for example: changing from a single door to a double door style), the new Part (the second door) doesn't automatically update into the Sub-Assembly. Now I have to insert it into the sub assembly and try to position it correctly, which isn't really simple since it doesn't line up with any edges for reference.

    I guess what I would like to do is have the Sub-Assembly exactly match my Part Studio, including any changes and new Parts in the Part Studio. Maybe there is a way to do this that I'm not aware of.

  • ArmindiloArmindilo Member Posts: 31 ✭✭
    edited December 2016
    Another thought: Is there a way to group Parts in the Assembly's Instances tree into folders (a feature available in Solidworks) to make it easier to see the separate cabinets in there? This would avoid having to create Sub-Assemblies (at least for my current purposes).

    Another other thought: Is there an option to Insert the Part Studio into the Assembly with all Parts automatically Grouped?
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,475 PRO
    @Armindilo
    Have you noticed that you can select certain group of parts, right click and create new subassembly from selection (in main assembly)? I think this will solve your problem if it's only related to having confusing feature tree..

    The main problem I see in this case is that for example side panels are duplicated and treated as different parts and in reality there is some quantity of same parts. And I don't know if you wan't to test different cabinets or if you just need to model something you have already decided but to be able to create 'kitchen planner' we definitely need configurations.
    //rami
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    3dcad said:
    @Armindilo
    Have you noticed that you can select certain group of parts, right click and create new subassembly from selection (in main assembly)? I think this will solve your problem if it's only related to having confusing feature tree..
    This still won't update the assembly when I add something in the Part Studio.

    While Configurations will be nice to have, I'm designing each cabinet as it's own part studio anyway, so it won't make a difference for that. I would just like to be able to Insert the Part Studio without having the added issues that the Sub-Assembly method brings.
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    3dcad said:
    So if you change something on existing part - that does update to your assembly but if you add part into part studio that won't appear into assembly?

    If so this is normal behavior, at the moment there is no automation on updating assembly to follow part studio. Inserting part studio into assembly in simply a shortcut to inserting parts one by one.
    Exactly. I understand this is normal behavior and the benefit of not having to add each item individually.

    My point is that the Part Studio is basically the entire sub-assembly already in one place; It would be nice if it could be inserted as a Part Studio, not as a collection of Parts, so that it did in fact update when things are changed or added in the Part Studio.

    And maybe it is not even possible based on the background mechanics of Onshape.
    3dcad said:

    I usually try to keep part studios in default position when I create sub-assemblies so it's easy to add new part and include it into existing group.
    I can't seem to find a way to insert the part into an existing Sub-Assembly in the default location. If I could do that then I'd be happy; I would just manually update the Sub-Assembly with new Parts as needed. I still end up having a Sub-Assembly for every cabinet, which is cumbersome but acceptable. Is there a way to insert the Parts into the Sub-Assembly in their default location & position? I couldn't find a way to do it; I would always end up with newly inserted parts in random places.
    3dcad said:
    It would be nice addition if one could insert whole part studio to assembly with follow-up so that it would create mates according to ps dimensions / constraints and would auto update any changes from part studio including new parts.
    Ya, that's sort of what I'm thinking. If it could be inserted with a Group mate, and automatically put into a Folder in the Feature Tree that would be a nice capability.
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,475 PRO
    Armindilo said:
    I can't seem to find a way to insert the part into an existing Sub-Assembly in the default location. If I could do that then I'd be happy; I would just manually update the Sub-Assembly with new Parts as needed. I still end up having a Sub-Assembly for every cabinet, which is cumbersome but acceptable. Is there a way to insert the Parts into the Sub-Assembly in their default location & position? I couldn't find a way to do it; I would always end up with newly inserted parts in random places.
    If you click part in insert dialog and keep your mouse pointer within the insert dialog, it should mount the part in default position ie. same as where it is in part studio. Then just hit ok and edit your group to include newly inserted part.


    //rami
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    I tried that, and didn't seem to have success. I'll have another go at it later. It is possible that some of my first parts weren't in the default position, and so it appeared not to work; I honestly didn't play with that aspect much sinceve I was hoping to not go the Sub-Assembly route.

    Thanks for the info.
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    I had another look at Inserting. It works just as you said. I looked at my previous  Assemblies and I sort of suspected, I had them just somewhere random, so of course inserting new Parts in the default location didn't do me any favours!
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    I've run into another issue. I have created a Sub-Assembly for a cabinet, leaving everything in the default position. I Fixed all the parts so they would not move around in the Sub-Assembly. I Insert the Sub-Assembly into the Main Assembly. So far all is well.

    But now, when I try to move around the Sub-Assembly in the Main Assembly, the individual Parts get moved around, not the entire Sub-Assembly. Does Fix not propagate up through the Assemblies?

    Document here:
    https://cad.onshape.com/documents/58605718ef12fe1027f16fe6/w/000108002af7cb56bec7a933/e/c3291b0603192ea937a889a7
  • bruce_williamsbruce_williams Member, Developers Posts: 842 EDU
    @3dcad  is correct on fix being just local.  Group or other mates will transfer when you insert the sub-assembly.  HOWEVER - you may have another issue also.  When you Insert make sure you change the dialog box to assembly and insert the whole assembly.  If you leave the dialog set to parts, you will loose the mates

    www.accuratepattern.com
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    Seems kinda strange to me that fix is just local; when I insert an assembly I expect is mates and such to transfer as well. 

    @bruce_williams I inserted as assembly, thanks for pointing it out anyway though.
  • raj_Onshaperaj_Onshape Onshape Employees Posts: 110
    Armindilo said:
    Seems kinda strange to me that fix is just local; when I insert an assembly I expect is mates and such to transfer as well. 

    @bruce_williams I inserted as assembly, thanks for pointing it out anyway though.
    Imagine you are assembling a table lamp. In this case you would fix the base and mate everything else to it.  But when you create a view of a table lamp
    sitting on a table in a separate assembly the base would need to be moved to an appropriate place on the table. This would be impossible if the fixed status was inherited.  This is the reason why fix is just local.
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    I'm coming from a SolidWorks background. In SW that would not be an issue, since the origin of a child does not need to be in the same location as the parent. I'm assuming by your response that in Onshape that is not the case; origins are all in the same place always.

    If that is the case, I see the reasoning, but then again I would question why you'd need to fix the base of the lamp anyway in the Sub Assembly.
  • raj_Onshaperaj_Onshape Onshape Employees Posts: 110
    Most assemblies are designed best with one of the parts fixed otherwise any dragging will move the entire assembly and you will not be able to visualize any relative motion.   I think SolidWorks fixes the first instance that you insert into an assembly by default so this might not be an explicit action the user takes.    As you said the origin of the child does not need to be in the same location as the parent so if the child starts off fixed how does one move it without unfixing it ?


  • ArmindiloArmindilo Member Posts: 31 ✭✭
    The child is fixed inside is own Sub Assembly. In SW, if you want it fixed in the parent you must fix the child Assembly (or otherwise mate it) in the parent, but any parts that are fixed in the child will stay fixed relative to everything else in the child regardless of mates in the parent.
  • raj_Onshaperaj_Onshape Onshape Employees Posts: 110
    edited January 2017
    To the best of my knowledge it is so in SolidWorks because assemblies are rigid by default. So if you fix the subassembly instance in top-level assembly it fixes everything in it so even if you unfix it in the subassembly it has no bearing.  

    Onshape assemblies are flexible by default. So if you want subassemblies to behave like solidworks you have the create a group in the top-level assembly and fix any of the instances in the subassembly.
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    I forgot about rigid and flexible assemblies. But even so, in SW, items fixed in a child would not move freely even as a flexible assembly in a parent. 

    I understand the difference in Onshape, it just didn't seem intuitive to me and will take some getting used to for me.
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,475 PRO
    I think fix & group functions are easy to understand and maintain in Onshape.

    If I create say a robot + machine cell, in robot assy I use fix for base plate to be able to move robot arm without moving the whole thing. Then when I add that into main assy, I use one mate between base and machine in main assy and that's it - then robot is fully functional with machine.

    In my previous life with Alibre/Geomagic I had to make things flexible in main assy and add dozens of mates - usually I lost my nerves before got the movement right..
    //rami
  • ArmindiloArmindilo Member Posts: 31 ✭✭
    edited January 2017
    Ya, not hard to understand, just takes some getting used to since Terminology is the same across various software, but functionality is not. (ie. Fix, Group)
Sign In or Register to comment.