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.

Intended behavior? Multiple fixed parts move independently in next assembly

charleycharley OS Professional Posts: 20 ✭✭
When more than one part is fixed in an assembly, and then that assembly is instanced in another, the parts move independently there (not the case if they are mated to each other, of course).  Is this intended behavior? 

Best Answers

«1

Answers

  • Narayan_KNarayan_K Member Posts: 379 ✭✭✭
  • juan_avilesjuan_aviles Member Posts: 78 ✭✭
    I've been noticing this too and it doesn't make sense to me.  A sub-assembly inserted into a top level assembly, should not be brought in with all of its parts loose.  I know you can group the parts of the sub-assembly after bringing it into the top level assembly, but that seems like an extra step...the whole idea of them being in a sub-assembly is because I want them grouped in the first place.  
  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 645
    I've been noticing this too and it doesn't make sense to me.  A sub-assembly inserted into a top level assembly, should not be brought in with all of its parts loose.  I know you can group the parts of the sub-assembly after bringing it into the top level assembly, but that seems like an extra step...the whole idea of them being in a sub-assembly is because I want them grouped in the first place.  
    I don't agree; this assumes that your sub-assembly is rigid which in many cases for me is not true.  

    For example, adding pistons and connecting rods to a crankshaft makes sense that a piston and connecting rod is a sub-assembly.  I wouldn't want this to move like it is fixed, but rather properly mated with revolutes and fastens.  Inserting this as a sub-assembly will have it behave properly in the master assembly.
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • juan_avilesjuan_aviles Member Posts: 78 ✭✭
    I wouldn't want this to move like it is fixed, but rather properly mated with revolutes and fastens.  
    Actually this is what I expect to happen.  I must be using the wrong mates or something, because my sub-assemblies are coming in with the mates broken.  If I move the sub-assembly, the part I click on moves, and the other parts in the sub-assembly stay in one place.  

    I just tried your connecting rod example and it works like I expect it should.  This makes me think I'm using the wrong mates in my other assemblies.
  • 3dcad3dcad Member, OS Professional, Mentor Posts: 2,467 PRO
    edited July 2015
    Just to clarify (didn't run any tests):

    - Using 'Fix' things are fixed just in that certain assembly
    - Using 'Group' things are constrained and kept that way when used in other assemblies

    ?? @jakeramsley

    This is what I would expect. I'm using fix usually just for the first part in assembly to keep orientation and to know what is going to move when adding constraints. If I wan't fastened constraints to say a whole part studio then I use Group.
    //rami
  • juan_avilesjuan_aviles Member Posts: 78 ✭✭
    I'm not sure if this is what the OP was talking about, but I figured out that my issue is actually a misunderstanding of parts and assemblies.  After looking at my issue again, it wasn't an assembly I was bringing in but rather a part studio.  My mistake, but maybe that is the issue that @charley  is also experiencing.  Sorry for adding my confusing post to this discussion.
  • charleycharley OS Professional Posts: 20 ✭✭
    I was actually referring to sub-assemblies.  I now understand that an assembly inserted into another assembly will behave exactly like it does at it's own level, mates-wise, but that fixes aren't included in this (and aren't considered mates).  It's not precisely the behavior I would expect, but knowing I can easily group things (among all the other mating possibilities) satisfies my need.
  • charleycharley OS Professional Posts: 20 ✭✭
    I actually like that if something moves at it's own level, it moves wherever it's used, without having to tell it to be "flexible".  
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    charley said:
    I actually like that if something moves at it's own level, it moves wherever it's used, without having to tell it to be "flexible".  
    Yes, in Solidworks ,"flexible" subassemblies always felt to me like a late addition, almost an afterthought, not well integrated.
  • Narayan_KNarayan_K Member Posts: 379 ✭✭✭
    charley said:
    I was actually referring to sub-assemblies.  I now understand that an assembly inserted into another assembly will behave exactly like it does at it's own level, mates-wise, but that fixes aren't included in this (and aren't considered mates).  It's not precisely the behavior I would expect, but knowing I can easily group things (among all the other mating possibilities) satisfies my need.
    This feature of assembly in Onshape gives all required motion in an assembly even some assemblies are made in another assembly(Sub-assembly).

  • ricky_jordanricky_jordan Member Posts: 9 ✭✭
    Glad I found this thread tonight.  I was wondering why none of the mates in my sub-assembly were working.  :smile: 

    Now that I've read the intent behind the mates not following to the upper level assembly, I can see why it is being approached this way.  Many users may expect this, so this could be a confusion point for users picking up Onshape.  

    With that said, seeing the cluster that has happened with rigid vs. flexible subassemblies in other systems, I can see the merit in this approach.

    Ricky J.
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    Some have expressed surprise that "Fixed" is not treated as a mate.

    To me that seems to make perfect intuitive sense: a mate dictates the relativity between two separate bodies, by narrowing the degrees of freedom for their relative motion.

    A "Fixed" constraint is a quick and dirty way of eliminating motion altogether, and deals with bodies alone and in isolation.
  • peter_hallpeter_hall Member Posts: 196 ✭✭✭
    edited August 2015
    Not something I have done yet but let me see if I have got this straight?!       If I have made a sub assembly which is made of lets say 10 parts with various fastened mates, revolute mate, slider mates etc with one part fixed in the sub assembly. Then If I import the whole sub assembly into another assembly document the mates between the parts will still work but the fixed part will no longer be fixed so I can move the whole sub assembly as a unit within the new 3D space and then either refix one part or use another mate to mate it with a part already in the next level assembly.
    Is that what is being explained here? Or am I being dense?
    Either way can someone explain the Group command and its uses? thanks

    PS: this is why I like the forum, a great way to learn, thanks!
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    edited August 2015
    To address your second question first, the Group command is intended for cases where the parts being imported come from a Part Studio, so they have not been previously mated.

    In Onshape, the function of mates (unlike previous modellers) is essentially to control relative motion. Parts which do not move relative to each other are intended have their relative locations captured by being modelled using constraints, in a part studio.

    The Group mate is essentially a one-step way of telling the assembly to respect the relative positions of parts as established in the Part Studio in which they originated. This is both quicker and simpler than mating them in an assembly, and it's a live connection, meaning that subsequent changes to those relativities in the PS will be flow through to the Group mate. I personally think it's an idea which is rather brilliant.

    As for your first question: as far as I understand it, and Onshape, it seems to me you have told the truth, the whole truth, and nothing but the truth. However others with more expertise will, I hope, contradict me if I have one of these wrong.
  • peter_hallpeter_hall Member Posts: 196 ✭✭✭
    thanks @andrew_troup  I can see me using the group command quite often to bring in parts from a part studio , now I understand it.
  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 645
    The group mate essentially treats everything in it as a single rigid body.  The relative position of the instances in the group are fixed based on their positions at the time of the grouping.  If you were to suppress the group, relocate some of the instances, then unsuppress the group, the instances won't snap back to where they previously were but now treat their relative positions as fixed.
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    edited August 2015
    This excerpt from "Help" makes it clear that "Group" is  intended to be live-linked to the relative locations in the Part Studio. (Muy fantastico!):

    <<You can change the relative positions of the parts in a Part Studio, and the Group in the Assembly updates accordingly.>>

    @jakeramsley: I presume the statement in your latest post "The relative position of the instances in the group are fixed based on their positions at the time of the grouping" describes the situation once the live link has been (permanently) broken* by the user "suppress(ing) the group, relocat(ing) some of the instances, then unsuppress(ing) the group"?  

    I say this because it seems otherwise that the two statements are in conflict.

    *(Short of using History to roll back the clock)

  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 645
    The behavior is both.  Moving the position of a part in the part studio will move the position in the group.  Likewise, if you suppress the group, move the instance, and unsuppress the group the relative positions will be moved as well.  At this point, the offset you've placed into the group by moving it will be included in the repositioning of the parts in the part studio.
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • _Ðave__Ðave_ Member, Developers Posts: 712 ✭✭✭✭
    @jakeramsley

      Apparently I'm not understanding. I can move a part in the part studio and the part will move in the group
    But if I suppress the group and move a part Then unsuppress the group, the part doesn't move in the part studio.

    Could you possibly demonstrate this.

    Thanks
     

  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 645
    So I have created two parts in my part studio that I want to group together.  I grouped them, didn't move them in the assembly, then changed their definition in the part studio.  Going back to the assembly their edges move.  I now suppress the group, move the second part, and then reapply the group.  The edge moves a certain distance.  I went back to the part studio, changed the definition of the part back to the original.  Going back to the assembly the part moves, but still has the offset I added into it while I had the group suppressed.

    1. Create my parts.  I fixed them to a rectangle that was centered on the origin.  I made the initial distance between them 1 inch.


    2. Go to the assembly, insert both and group them.  Measure the distance between them (see bottom right).

    3. Go to part studio and change the distance between parts to be 3 inches.

    4. Go to assembly and measure the distance between the edges (see bottom right).  It updates to be 3in.


    5. Suppress the group.


    6. Drag the second part away along the same axis.


    7. Unsuppress the group.  Notice that the part doesn't move at this point.  I've dragged an offset between the two parts which is now going to be included in the group (~2.3in).


    8. Go back to the part studio and change the definition to be back to 1in between the parts.


    9. Go back to the assembly.  The distance between the parts is the 1in + the 2.3in offset I added in.

    1.png 230.4K
    2.png 326K
    3.png 219.5K
    4.png 310K
    6.png 311.9K
    5.png 311.4K
    7.png 312.1K
    8.png 233.2K
    9.png 329.3K
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • _Ðave__Ðave_ Member, Developers Posts: 712 ✭✭✭✭
    @jakeramsley

     Thanks for the demo. This confirms the same action that I got. As I suspected I didn't understand your previous post and thought you said that by moving a part in the group it would result in moving the part in the part studio.

    Thanks
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    @jakeramsley : regarding your last sentence... I'm still not entirely clear. On first reading, it seemed to me you were saying that an offset to a body (translation + rotation, 1 to 6 axes?) applied in the assembly, would continue to be applied (as an offset) in addition to any subsequent repositions of that body in the part studio.

    But another possible interpretation is that a change in relative positions, applied in the assembly, would be matched in the Part Studio.

    In the first case, the relative positions of a Group of bodies in the assembly would continue to differ from those bodies in the PS, by the same amount, and in the second, the positions in the PS would be adjusted so they did not differ.

    The current "Help" Tips mention the two behaviours in isolation (in their points 2 & 3) but I think it would be good if "Help" had a further bullet point, to make it clear whether the two interventions (one in the Part Studio, the other in the Assembly) can act in combination, and clarify exactly how.
  • jakeramsleyjakeramsley Member, Moderator, Onshape Employees, Developers Posts: 645
    But another possible interpretation is that a change in relative positions, applied in the assembly, would be matched in the Part Studio.
    Changes to the assembly do not affect the part studio.
    Jake Ramsley

    Director of Quality Engineering & Release Manager              onshape.com
  • andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭
    edited August 2015
    @jakeramsley

    My latest request for clarification somehow got held up in cyberspace for two and a half hours, so I ended up appearing to asking question you had already answered. Thanks for answering the other in your latest post.
  • sebastien_fryssebastien_frys Member Posts: 3 PRO
    So I have created two parts in my part studio that I want to group together.  I grouped them, didn't move them in the assembly, then changed their definition in the part studio.  Going back to the assembly their edges move.  I now suppress the group, move the second part, and then reapply the group.  The edge moves a certain distance.  I went back to the part studio, changed the definition of the part back to the original.  Going back to the assembly the part moves, but still has the offset I added into it while I had the group suppressed.

    1. Create my parts.  I fixed them to a rectangle that was centered on the origin.  I made the initial distance between them 1 inch.


    2. Go to the assembly, insert both and group them.  Measure the distance between them (see bottom right).

    3. Go to part studio and change the distance between parts to be 3 inches.

    4. Go to assembly and measure the distance between the edges (see bottom right).  It updates to be 3in.


    5. Suppress the group.


    6. Drag the second part away along the same axis.


    7. Unsuppress the group.  Notice that the part doesn't move at this point.  I've dragged an offset between the two parts which is now going to be included in the group (~2.3in).


    8. Go back to the part studio and change the definition to be back to 1in between the parts.


    9. Go back to the assembly.  The distance between the parts is the 1in + the 2.3in offset I added in.

    Hi Jake,
    You might be able to help on an issue I have.
    Following on this example you gave. In step 6 you moved a part while the group is suppressed. Now how do you put them back in their original part studio position? (Without having to deleted, reinsert, reg-roup et potentially re-mate everything)

    Thanks
Sign In or Register to comment.