Rest on Ground


(Joaquin Laborda) #1

Hi, I want to know if there is any script, command or special workflow to move an object and guarantee it’s resting on the ground as a phisic object.
I need to know this because I’m lately modeling organic creatures and then I have to export all the parts as STL.
Most of the times the objects are easily moved to the ground plane, but sometimes is not that easy to know if everything is right.
I know that with an animation program you can use features like collision and gravity to do the job, but even if bongo has this kind of tool I think there could be a cheaper option :).
At the moment what I’m using for the complex objects is the orient 3 points tool, but the result is not always perfect.
Any ideas?


(Pascal Golay) #2

Hi laborda - for now, take look [- here -][1] for the MoveProject script. The command/alias you’ll want from that is ‘MoveProjectEach’. Usage instructions at the top of that page.

-Pascal
[1]: http://wiki.mcneel.com/people/pascalgolay


(Joaquin Laborda) #3

Thanks Pascal, but it seems like this script is similar to align with bottom option.
Is there anythin I’m missing?
I

This is an example (not a real part) of the kind of objects I need to place on ground. The main problem is that apart from aligning in z, I need to rotate the parts in different angles.


(Pascal Golay) #4

I see- that is much harder of course- you need some kind of physics simulation I suppose. No good ideas here, really, but what I do is make a Silhouette curve in the current view to help me see what part of the object is likely to hit the ground plane and I move/rotate from locations on those curves.

-Pascal


(Joaquin Laborda) #5

Thanks Pascal, it seems there is no fast solution for this.
Joaquín


#6

I guess the best would be to find the minimum bounding box for the object (there is a script out there, can also be done with Grasshopper/Galapagos) and then orient the desired box face plus the object to the World XY plane. The minimum bounding box may take some time, it’s an iterative function.

–MItch


#7
  1. Download Blender (from www.blender3d.org)
  2. Create ground plane object.
  3. Import object from Rhino.
  4. Set imported object to somewhere above the groundplane.
  5. Enable Physics
  6. Set Imported object collision detection to Convex Hull.
  7. Make sure ground plane is also a collision object.
  8. Run physics
  9. Move timeslider to a point in time where object is now resting on ground.
  10. Select and export object?

:slight_smile:


(Joaquin Laborda) #8

Thanks to all, I’ll keep testing the best workflow on monday.
Have a nice weekend!
Joaquín


(Joaquin Laborda) #9

Nates, thanks for the Blender solution, I guess I’ll have to convert the objects to stl first, I’ll give it a try.

Helvetosaur, I’m not familiar with grasshopper, but I’ll try the minimun bounding box for this case, thanks.

Joaquín


#10

Seems Kangaroo would be a good solution for this. I just started poking at it, I don’t have enough time on it to speak informatively yet.


#11

I made a simple buoyancy script that could probably be rewritten to handle a task like that, but it would take me a few hours and I would have to charge a little bit for that.

Or you can do it it visually by first rotating in 2D until you have two points on the ground and then use rotate3D to get the third point.