algorithmic modeling for Rhino
The next release of Grasshopper is now available for download.
You need Rhino4 SR9 or a recent Rhino5 Beta to run Grasshopper.
Note that you need the most recent Microsoft Runtimes to be able to run Grasshopper. You can download the latest runtimes from the Microsoft Website and be sure to get the 32-bit ones (vcredist_x86.EXE).
This release features fairly minor fixes and updates, to wit:
Enjoy,
David
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Tags:
Great stuff David as usual. Can I add a plug to do a bit of a revamp of the area/brep moments of inertia calculation components?
Disclaimer – some maths below...
Currently the ‘I’ (moment of inertia) is somewhat confused with the ‘S’ (secondary moments of inertia). The Rhino help topic is a bit confusing, but for a planar surface what you've called 'S' and 'I' appear to be calculated according to the principles illustrated under respectively 'Second Moment' and 'Moments of Inertia About Centroid Coordinate'. The 'Second Moment' values are generally useless in practice.
Can I suggest the outputs for these components are as follows (these would be the most useful set of area/volume properties in my opinion as an engineer):
Area/Volume (as a number)
Centroid (as a Plane / axis system, not a point). A point is not enough, as the following inertia values need reference axes about which they are taken (this plane should just be the xy base plane translated to the centroid).
Moments of Inertia about Centroid (as a vector). This comprises three components of the moment of inertia matrix given here.
Isecond = [Ix,Iy,Iz]
Here Ix = Integral of [(y-y0)^2 + (z-z0)^2] over the area/volume
Product Moments about Centroid (as a vector). This comprises the other three components of the moment of inertia matrix given here.
Iproduct = [Ixy,Ixz,Iyz]
Here Ixy = Integral of (x-x0)(y-y0) over the area/volume
Radii of Gyration about Centroid (as a vector).
Rcentroid = [Rx,Ry,Rz]
Here Rx = Sqrt [Ix / Area or Volume]
Principal Axes of Inertia (as a Plane). These principal axes of inertia can be found by the determining the eigenvectors (see here) of the 3x3 symmetric moment of inertia matrix given here by the combination of the Moments of Inertia and Product Moments about Centroid:
[Ix Ixy Ixz
Ixy Iy Iyz
Ixz Iyz Iz ]
Principal Moments of Inertia about Principal Axes (as a vector). These are given by the eigenvalues of the 3x3 symmetric matrix given above.
Iprincipal = [I1,I2,I3]
Radii of Gyration about Principal Axes (as a vector).
Rprincipal = [R1,R2,R3]
Here R1 = Sqrt [I1 / Area or Volume]
Any other thoughts?
Luke
Hi Luke,
unfortunately I don't really understand how moments of inertia work. It's the math guys in Seattle who write this stuff. I just try to expose whatever they give me as component outputs. You should talk to Steve about this, he's a marine design engineer (as far as I know) so he gets this stuff.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Will do, thanks David. The maths shouldn't be too difficult to implement, and this would provide a much more structured and useful approach to presenting the moments of inertia (which are useful all the time in engineering).
Luke/David,
Has there been any progress with this? I heartily agree with Luke that this is where the tool should go, as it would be incredibly useful for structural engineers. And as Luke says, the maths is no more complicated than what must be caluclated already to get to this state...
D.
(P.S. Luke - hope all is well in BC!)
Hi there.
I didn't find any improvement for this set of methods in th sdk. The tools probably exist in the core as the rhino command yet output the principal axes directors (see this comment).
It would be very useful to implement the following suggestion from Luke:
Centroid (as a Plane / axis system, not a point). A point is not enough, as the following inertia values need reference axes about which they are taken (this plane should just be the xy base plane translated to the centroid AND ORIENTED TO THE PRINCIPAL AXES).
Anyway, I came up with my own C# component to compute principal axes and moments of inertia before it becomes an embedded functionality !
My component is in the attached definition. The comments explain the required maths.
Lionel
Awesome!
can you offer an example of what you mean by this:
"Expressions now automatically evaluate strings that are used as variables."
If you're trying to add two numbers, but one of them is actually a string (text), then it used to fail. Now it should work:
5 + "3.4"
should now equal 8.4, whereas before it would just throw an error.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by