Assembling Parts In Rhino

Does anyone know an easy way to assemble parts in rhino? Like mating in SolidWorks? I found a software called LEDAS LGS or LDD that used driving dimensions to assemble but it doesn’t seem to exist anymore. Is there another plugin I can use or another easy way to achieve that?

Hello - in plain Rhino there is no provision for mates, no. It seems at least possibly-possible in Grasshopper however.

-Pascal

Thank you! Is grasshopper part of Rhino6 or do I need to download it?

Hello- Grasshopper is in V6.

-Pascal

Sweet. Thanks for the help!

you have to do it manually but osnaps and aligns will get you a long way. If it’s just a couple parts it might be easier than writing a grasshopper definition.

As Owen says, it’s no big deal to say, move a circle so it’s center is at the end of a line, but there is nothing to keep it there. This is Not a SolidWorks like “Assembly constraint”.
If you need the circle and line to stay mated, then select both and Group them. They will still be separate objects, they will be treated as a single object and move together.

Using native Rhino tools, you can not constrain a series of mechanical parts together and drive the constrained assembly by moving or rotating one part.

That’s what mechanical modelers do.

It’s a huge miss that Rhino does not have mechanical mating like in Solidworks.

Is not Bongo (the plug-in) capable of doing similar functionality?

1 Like

Bongo is not suitable for assembling parts because it does not understand their shapes. Bongo is strictly animation plugin.

1 Like

Yes.

Philip

1 Like

Well, of course you must realize that Rhino is designed by computer geeks for architects and the only moving assemblies they care about are doors.

It’s wonderful, however, that they let engineers use their software if they want to.

Happy New Year!

Along with the regular hinged doors and windows, modern architecture designs often use: sliding doors and windows (ether linear or around arc-shaped rails), sliding walls, “zig-zag”-shaped sliding doors and walls consisting multiple hinged pieces, power-operated garage sliding doors along rails with variable shape, elevators, etc. Not to mention all the furniture that also could benefit from having an assembly functionality in Rhino.

2 Likes

I would use it for designing auditorium chairs with complex mechanisms for the tilting seat (and armrests and backrest).

Philip

1 Like

In my opinion, the best way to assemble parts in Rhino is defining all parts as blocks which have hidden lines and user text (made with SetUserText command).

The hidden lines are drawn on hidden layer. They represent axes of ball bearings, axes of fasteners (mostly bolts and nuts), and axes of holes for the fasteners. When the hidden layer is turned on, the blocks/parts are assembled with the help of Orient command (Scale option is set to No). (I used similar hidden layer for decades in AutoCAD. Its color was dark green.)

The user text describes the blocks/parts. For example, each block may have several keys: fabrication, material, part_number, etc. The fabrication key may have one of several values, for example: made_in_china, made_by_our_machinist, etc. If you use one key only, you find the blocks with SelValue command. If you use many keys, you find the blocks with SelKeyValue command. (You cannot use spaces in the key names and their values.)

2 Likes

I do something similar to this, albeit in a much simplified way. When I need to snap complex mechanical parts (screws, nuts, rod ends, ball joints etc) I place points in their origin, plus two or more points at either end, then I group them together. However, that approach only helps with manual placement of individual parts and can’t be used to simulate the movement of car suspension or something that requires inverse kinematics.

2 Likes

Yes I do the same. It would be awesome if we can have something similar to Rhinoworks back in v5 or like spacaclaim which is not parametric but it does have assembly/matting tools and some basic IK.

2 Likes

In my opinion, RhinoWorks a.k.a. Driving dimensions was too unintuitive to use and required way too many mouse clicks. Mating primitives in SolidWorks via simple picking of the two surfaces to be connected is probably the best and most user-friendly way to create hinges and free joints. Here is how it’s done in SolidWorks:

  1. Click on the “Mate” icon.
  2. Pick a surface of the first model.
  3. Pick a surface on the second model.
  4. If they are both compatible (like: two spheres, two flat surfaces, two cylinders etc), they get linked together.
  5. Optionally, you could set numerical limits for the rotation in either direction, or sliding, etc. For example, mating two cylinders in SW will allow you to, both, rotate and slide each of them along their shared axis. From there, you can turn off the sliding, so that only the rotation will remain possible. Or, you can lock the rotation, so that only sliding between the cylinders will be possible. And then set limits for the distance in either direction they are allowed to slide.
4 Likes

I do very much the same and recently I started to use named positions with manual movements as somewhat of a proxy for kinematics.
I use this for office chair mechanisms and while it is a kind of handmade workaround it does the job for me.

Check the part after 1:07 where the close-up view shows the end limit of rotation done with an optional hit detection. This is extremely useful for figuring out possible dangerous movements of mechanical parts or architectural stuff.
Also, note that the linked movable parts could be freely rotated by simple dragging with the mouse after selecting any surface which is part of these parts. What SolidWorks is missing here is the ability to show the angle of rotation in real-time. Lets hope that Rhino 7 SR20 or Rhino 8 could do it better than Solidworks in this regard… :slight_smile:

2 Likes

This is obviously much more advanced than my rhino workarounds.
Funny thing: the 4 bar linkage holding the engine cover is very similar to how most “synchronised” office chair mechanisms work.

2 Likes