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.

"Group" function for assembly

Song_YikunSong_Yikun Member Posts: 39 PRO
hi all, 
I found a bug with the "group" function.  here is my problem and suggestions.
Some parts created in part studio can be easily assembled by group function without any mate,
For me, I'd like to create all parts in one part studio then separate the parts to different assembly.
but sometimes, subassembly is needed for my model.
when I have an assembly consist of parts and subassembly(Assembly 3 in the illustration) , I need to put all the parts and the subassembly into a group to keep all the parts fixed, 
so I dont need to mate the parts which already in the right position. Then assembly 3 will be insert in assembly 4 as another subassembly.
my problem is, if I change the mates in subassembly(Assembly 2 in the illustration),  when I back to assembly 3, assembly 2 cannot  be updated automatically unless broke group 1.
all I want is the assembly which already in a group can be updated automatically either!
best regards!


Tagged:

Comments

  • lougallolougallo Member, Moderator, Onshape Employees, Developers, csevp Posts: 2,005
    @Yikun_Song Today Group is applied at the time of application. If a group contains mated parts and then those mates change you may see behavior that is not ideal.  Today you have to suppress and unsuppress that group mate to reflect those sub assembly changes.  Are you saying you would like that to happen automatically?  The issue with this today is what actually maintains that sub assembly position?
    Lou Gallo / PD/UX - Support - Community / Onshape, Inc.
  • billyzelsnackbillyzelsnack Member Posts: 84 PRO
    @Yikun_Song I've avoided onshape assemblies all together for this reason and end up doing everything within part studios (with variables and configurations) instead. Every couple months I'll try assemblies again but give up because it's just too frustrating for me to delete and start my assemblies from scratch over and over whenever a grouping changes. However I may have found a workaround workflow today.

    I create a group-only assembly and a regular assembly. In a group-only assembly I insert the parts from a part studio, immediately fix them in place without moving them, and create the groups. The regular assembly then inserts only from the group-only assembly. Updates to the part studio will be reflected in the group-only assembly and any new parts are easy to place into existing groups or create new ones. So far it seems to all work as expected with the downside being an extra tabbed document.

    I think the ideal way I'd like for onshape to work would be to allow mate creation (not just connector) within a part studio and use assemblies only for motion analysis and for contexts and not for building.
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,934 PRO
    @billyzelsnack
    Having everything in one part studio is far from ideal. If you have small projects that only have a small hand full of parts I would say sure.
    But you should really give assemblies a second look, they are much more powerful and faster than a part studio.

    For example: I imported a project with a few hundred unique parts and flattened them into a single part studio. It took Onshape 5 minutes (+10 crashes with chrome) to load that studio.
    I imported the same project without flattening it, and it loaded the main assembly in less than a minute (no crashes).

    Having multiple studios feeding an assembly will scale up your performance exponentially. Not to mention "BOM" and "standard content" only exists in an assembly, or the fact than any minor change on the top of the part studio tree will need to regen/rebuild every part and feature below it, increasing your modeling type dramatically.

    Even if the assembly only is connecting 2 or 3 parts (weldment/sub assembly) the benefits far outweigh the hassle of a couple broken mates.
    In-fact with Onshape's mating system by mate connector, creating an assembly only takes 1/3 or less time than with traditional CAD systems.

    Although I hope they implement better tools to reduce the need for re-inserting and re-mating broken part references, and more powerful patterns will be a major benefit (curve pattern, pattern driven component pattern, etc) further reducing the mate count and broken references on part studio regens by far.

    If you are having trouble learning assemblies, I could help you if you want to find a time and work on assembly practice.

    I'm going to assume most of your problems could be avoidable by a little mate theory. (Only "fix" ONE part per assembly, Only mate to geometry that is unlikely to change, If you need your part centered about a position you should create a mate connector in the part studio and use that to mate.. etc..) Seriously, hit me up, I'd be glad to help.

    Movement be damned, assemblies are for everyone.
  • owen_sparksowen_sparks Member, Developers Posts: 2,660 PRO
    Well said. Add in some basic in context design and your flying. 
    Business Systems and Configuration Controller
    HWM-Water Ltd
  • billyzelsnackbillyzelsnack Member Posts: 84 PRO

    I have enough experience with assemblies to use them in one day toy projects. I've just not figured out how to make them scale for larger projects. I don't have a lot of trouble managing a document with many complex configured part studios chain derived together to create what I want over time. What I can't seem to do is keep an assembly alive for more than an hour before I have to delete all the parts and reinsert because it would just be faster than fixing it.

    I've been using the group-only technique I mention above for a bit now and that goes a long way but I really need to figure out how to get complex assemblies into my workflow because my latest project is a beast. I have a foot in the door now at least so that's good.


  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,934 PRO
    Is there an example project you could share?
    Could it be broken into sub asseblies?
    How many parts are in each part studio?
    How many mates break on an assembly when you start over?
  • billyzelsnackbillyzelsnack Member Posts: 84 PRO
    edited August 2018

    This is a file I have been messing around with. My convention is P for Part Studio. G for Group-only assembly. A for motion analysis assembly. The articulations can be done via the configured part studios so that I can adjust clearances between the parts all the way down to the gears level.

    It's probably just asking for assembly contexts but I've just not figured out how to put them into a long term workflow.



  • billyzelsnackbillyzelsnack Member Posts: 84 PRO
    edited August 2018

    That file above is probably too big to get anywhere with. Here is a smaller file that I can more easily talk about specifics issues.

    My issue here is with organizing sub-assemblies. My typical workflow is to heavily use configured part studios which are then derived into other part studios and configured as needed. However if I insert an assembly it appears that I can not then configure that assembly which essentially limits the configured to that of how the assembly was created. The work around I can think to use is to create a custom assembly for each configured part variation I need within a document and then insert that custom assembly into a greater assembly. (wow that is probably difficult to parse out what I am getting at.)

    Is there a better way? Do you have a document that you might consider an exemplar of your workflow?

  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,934 PRO
    I am looking at G-Dual and A-Dual

    It appears you put all your parts into an assembly, then insert the assembly and mate it again.

    Unless you are using this assembly elsewhere that you want it locked in position (static) then I could see this work around (only because we don't have assembly configs yet)

    Also I see you have all your parts "fixed" in the G-Dual assembly, this really doesn't do anything as only one part will be fixed in a sub assembly (otherwise you wouldn't have any motion in A-Dual)
    So only fix the "main component / The one all other parts move in relation to"
    Then use mates as you did in A-Dual.

    see the example here : https://cad.onshape.com/documents/10a06412808fb86acc0344f3/w/4c672ca8d11da336ed7fb60b/e/2252fd71c991f78a7336529d

    Also you appear to be explicitly defining a mate connector within the part studio and assembly and mating to those.
    This is fine if you have an off offset or something you want to always be mated to for a part (example: a part's center of mass, or a reference point a few inches away from the part)
    Unless you find the geometry tends to get de-referenced often after updates in a part studio. You should consider saving yourself some time and stress by just using the mate command in the assembly and using the provided geometry of the part.

    I just got an email saying you posted here again as I type. Give me another sec to pour into that 
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,934 PRO
    edited August 2018
    So what is the specific issue you have with this second file?

    nevermind, didn't read...

    Ok got it,
    Sounds like you might be describing a need for assembly configurations, which Onshape is planning on (last I hear). And it is in high demand.
    But I may not fully understand your problem.

    If you need a configured part in an assembly, you should be able to insert it with that config.
    When you attempt to use the sub assembly elsewhere you are limited to the pre-configured parts of that assembly.
    (right?)
    From here, you would be correct to create a duplicate assembly and change configurations of the parts.

    If that's your problem, then you are doing the correct work around in my opinion. 

  • billyzelsnackbillyzelsnack Member Posts: 84 PRO

    I just ran into this and I think it's a good example of why I end up going back to part studios.

    So I've built up a collection of parts and they're going to need holes for bolts so it can stay together in the real world. If this was built from derived parts I could just put a sketch on the hub and put holes through all the parts. However as an assembly I get stuck and this is where I would give up and go back to assembling parts via derivation rather than assemblies. Is there a way to do this without manually putting the features in the parts ahead of time or what I usually do and just assembling using derivation?
  • john_mcclaryjohn_mcclary Member, Developers Posts: 3,934 PRO
    edited August 2018
    It depends,

    If your derived part studio is small, I would go ahead and derive.

    If you use incontext, it will require manual context update. So you still need to go back and update manually anyway, so may as well just configure the part studio instead.

    assuming the hole quantity changes for larger parts you would still need to dig back to the part studioes and add to your point selections for hole command. So again may as well configure it.

    Derive is nice, but can be slow.
    Incontext is nice, but requires manual updates.

    If you need to touch the final part anyway, it may not be worth the complexity of either for simple features in the long run.
Sign In or Register to comment.