orkshop will give students a functional understanding of Grasshopper and Parametric design. This will allow them to build on this understanding into more advanced projects of their own including design optimization with RhinoCAM-NEST and creating their models on a laser machine. Basic knowledge of Rhino 5 is required to be able to take this training. Details...
Location: McNeel Miami 1538 NW 89th Court Miami, FL 33172 United States
More Info: e-mail: Jackie Nasser phone: 305 513 4445
Note: The course must reach a minimum of 5 enrolled students. If the course does not meet the minimum, it will be canceled.
*If you live outside the Americas and you wish to purchase this product, you should choose the United States as country of residence. The rest of the information should be correct.
*Si usted vive fuera de las Americas y desea comprar este producto, deberá escoger como país de residencia United States. El resto de la información debe ser la correcta.
McNeel Miami's RhinoFabStudio - Miami, Florida
.
…
and designers who want to algorithmically process geometric entities by means of own methods or functions. It is an introductory workshop on the borderline where the architecture-engineering-construction-branch meets the basics of programming.
Participants will learn concepts of object oriented programming and essential syntax of C# to endeavour into personally extending parametric toolsets. The workshop will focus on introducing the .NET language C# and the Software Development Kit (SDK) RhinoCommon to the participants.
Throughout the workshop we will switch between step-by-step explained code samples, compact summaries of underlying concepts and simple but effective geometry generation and manipulation tasks. By the end of the workshop participants will have learnt the essentials to write, debug and compile Custom Components for Grasshopper utilizing both own code as well as available libraries.
Topics
- use of Script Component within Grasshopper
- explanation to the .NET Framework
- introduction to RhinoCommon SDK
- fundamentals of imperative / object-oriented programming (OOP)
- data types, operators, properties
- variables, arrays, lists, enumerations
- methods
- objects, classes
- control structures: conditional statements (if, else, switch)
- control structures: loops (for, foreach, while, do)
- walk-through iterative und recursive code-samples
- use of RhinoCommon Geometry class library: creation, sorting, editing of Geometry (Points, Vectors, Curves, Surfaces)
- adding (baking) geometry to the active Rhino 3DM Document, including attributes (Name, Layer, Colors etc...)
- introduction to the IDE (Integrated Development Environment) MS Visual Studio Express Edition
- compiling code to dll/gha files (plug-ins) / making your own Grasshopper custom components
Requirements for participants
Participants bring their own laptop with Rhino 5.0 32-bit edition (commercial, student or trial version), Grasshopper3d latest build - currently 0.9.0056 (free), and Microsoft Visual C# 2010 Express or Version 2012 (free) pre-installed on an Operating System with .NET Framework 4.0.
Language: English
Link to conference homepage:
http://cf2013.tongji-caup.org
Link to workshops at conference:
http://cf2013.tongji-caup.org/?call=Workshop…
ython patching via Rhinocommon CreatePatch being 7 of those seconds.
Currently, to avoid failed splits to remove the backgrounds, due to super shallow areas in skinny features that kiss the construction plane, I'm plane cutting a small amount below that construction plane, then moving the result back up.
I'm not using a Patch starting surface, as you can play with in the normal Rhino command, since it just sort of squashes broad curved mounds in ugly fashion, or else pulls them down to make ugly doughnuts everywhere around the input curves.
Details on how to use the CreateSurface command of Rhinocommon, hassles solved, is discussed here, with great all hours help from Peter Fotiadis, and I also discovered some clues from Djordje via Google, where he was massaging points into proper format:
http://www.grasshopper3d.com/forum/topics/python-longer-version-of-rhino-geometry-createpatch-expected
The highest level CreatePatch command doesn't accept a normal Python list of objects in a variable like the two more simple versions of the same command does. You have to regather them into a Rhino container, which is really a .NET container. I still don't know yet how to upgrade the Python parallel patch component to input the whole panoply of objects you can patch over in Rhino because I don't know what container exists to hold them all that won't break the command.
The point of this overall script is to now be able to arrange lots of mere flat surfaces, surfaces because those can define holes versus borders easily, and create real 3D single surface NURBS geometry that can then be surface morphed (equivalent of Rhino Flow Along Surface) onto other 3D models.
…
Added by Nik Willmore at 1:04am on February 27, 2016
Rhino (groups of curves) and I want to distribute them with the pattern in the ABBCABC format (I want to change the pattern later so I need it in string format).
I have managed to write the code to read the string (using case command) but I dont know how to copy and move the objects. How do I reference the curves? As BRep, curves, polylines or objects? This is what I have done so far:
Dim move As New Vector3d Dim textLen As Integer Dim i As Integer Dim ch As Char
Dim proba As String
Proba = " "
move.X = 0 move.Y = 0 move.Z = 0
textLen = Len(text)
For i = 1 To textLen Dim t(i) As curve ch = Mid (text, i, 1) move.Y = i * d Select Case ch Case "A" t(i) = A.duplicate A.Transform(transform.Translation(move)) proba = proba + "*A" Case "B" proba = proba + "*B" Case "C" proba = proba + "*C" End Select
print(proba)
Next
I have to add that this function (transform.translation(move)) didn't give any results.
Thanks in advance …
h a loft operation later on.
I've read some topics in the forum regarding offsetting, but it seems that no one have had this problem (very surprisingly I'd say).
This is what I'm doing:
a) I have a non-convex, closed polyline in the XY plane (the native curve being referenced from rhino). Let's call it CURVE A
b) I rotate and move CURVE A to a different plane (obtaining CURVE B).
c) I offset CURVE B, and now it has more segments and points than CURVE A (basically, it creates the segments that would be required to close the shape if it had been offset segment by segment instead than as a whole)
d) when I loft these curves - CURVE A and CURVE B, it gets messy (since the different curves have different segment count)
I've tried a lot of workarounds:
1 - Offset CURVE A on XY a certain amount, and then offset it back, obtaining CURVE A 2.0. It doesn't work, since CURVE A and CURVE A 2.0 have the same topology, so the final loft is still messy
2 - Offset CURVE A on XY without offsetting it back: It works, but I need to maintain the original shape at the base of the resulting surface (after the loft operation described earlier). I thought that just scaling the resulting brep would do the trick, but then I realized it doesn't.
3 - Using CURVE B (the curve that later will be lofted with CURVE A) to finds its closest point on CURVE A, and then re-creating the original curve with this new points (CURVE A 3.0): Doesn't work on all cases...
So that's it I think. I'm really lost with this, so any help will be very much appreciated. …
surface between 2 cross-listed series of points which happen to be "Divides" of the edges of the 3D surface (some kind of planar geodesics if you want).
To do so, I am extracting the intersections between the 3D surface and a series of planes that are rotated (with an angular increment defined as precision) around an axis defined by the straight line between the points.
Hence I end up with a bunch of planar curves. I need to extract them and order them into lists (1 list per pair of points) to extract the shortest curve between each pair of points.
If the first list of point is numbered: 1, 2, 3, 4..... & the second list is lablelled a, b, c, d.....
I can't find a way to extract the shortest point curve of the list between
1 and a, and between 1 and b, and between 1 and c, ... and between 2 and a, and between 2 and b, ...
I think the problem would be fairly easy to solve if I could use VB or Python or any code but I dont know how to code and I am in quite a rush to hand the project in..
Also, I have been using a Python component downloaded from this forum which evaluates if a point is on a curve and returns the point. I modified the code so that it returns the Curve instead of the pt.
If you guys have an idea how to solve this, you would clearly be my saviour :)
Here are a 3dm, the gh and the python component. I have also been using the Kangaroo component that kills duplicate curves..
…
almost 60 seconds to compute, 50x50 points x 35 samples each x 3 rectangles = more than a quarter million curve|curve intersections), but at least not fossilised dog slow.
The inputs of the component are:
P = Plane in which to shoot the isovist sample rays, plane origin equals sample point
N = Number of rays per sample point
R = Maximum radius of sample rays. Any obstacles beyond the radius are ignored
O = List of obstacles (curves only). They will not be projected onto the sample plane, so you can have curves that are only partially 'active'.
Outputs:
P = Point at end of ray (at distance R from sample point) or point at closest obstacle along ray view direction.
D = Distance from sample point to P
H = Boolean indicating whether the ray hit an obstacle or not
--
David Rutten
david@mcneel.com
Poprad, Slovakia
…
r planet Utopia?
2. In what sort of animal these "shaders" are to be used? Meaning that designing a "Viz" control for 2345,67 mini-membranes is one thing and doing it for your house is a totally different challenge. In plain English: it's more than possible to hit the Wall if lot's and lot's of items are invited to the party (you bring the girls and I'll provide the Vodka).
3. Do you like the idea of completely separating (on a spatial basis) input/viz control (what is on display and on what level of "detail") from the core logic (i.e. components). Pros: obvious, Cons: obvious.
4. Is this def planned as a "constant" evolution thing? Meaning that using, say, the mapper isn't the best idea if your input goes from {a;b;c} to {a;b;c;d;g;...;z}.
5. Have you any - even academic - plans (see 1) to walk the walk up to the end?. Meaning talking to Birdair/Taiyo Kogyo etc etc ( http://www.birdair.br.com/ ). If yes be prepared because these fellas work a bit differently as regards potential collaboration and feedback at design phase.
BTW: the thing that would change the world as you know it:
http://www.birdair.br.com/tensileArchitecture/tensotherm.aspx
best, Peter
…
ilion.
Then i sketched the outline curves in rhino with a few control points. The building is symetric so i only draw one side. But i'm not sure what is better for a voroni. a sharp or a soft surface? Or dose i need points?
So i have some questions:
1. how can i loft the curves correctly? My problem is that if i divide my curves for more control points, grasshopper automatically change my curve. thats ok but than i've the problem with a short curve, which fit bevor with the large one, but after the devision it can't connect.
So i tryed to duplicate the long curve and split it but with the shatter battery it dosen't work. It always cut the curve somewhere.
2. my next problem is, the curves in rhino should be my main construction, which is always visible. so i decided to offset the curves that i got a colum. but i don't know how to orient the offset curves in the xyz axis.
3. hopefully if i have the surfaces, how can i build a voroni which is offsetet, and has maybe some different thicknesses? :D
Would be really great if s.o. can help me. I tried a lot but not every thing is simple.
Sorry for my bad english.
Thx max
Here are my files:
FCP_MAX_GH_konstruktion_1.3dm
FCP_MAX_GH_konstruktion_1.gh
…
h. For a while I have been thinking about the possibility of gpu computing for leveraging computation but I am still scratching the surface mostly. I know its a kind of hot topic in scientific computing. and I know there is a community of parallel programming with python... but that's more down the line of my development...
anyways, I ended up just sorting all the points by their z value.
So I have been able to use the vertex to extract color gradient and draw lines aligned to the vertex normals. However the normals at the edges of the slabs I get diagonal normals, and they seem to be somewhat inconsistent. I would need to either round them up to a certain angle or cull them out... not sure how to do this right now.
and I feel there should be a convenient way to organize and branch points by what faces, mesh, or close curve they are included. and I found this thread where I can test points by their surface inclusion. I have never used the "D" output of surface evaluate but this might work.
Well anyhow the fun begins - facade design!
I want to detail rainscreen panels and offset them where there is more radiation falling over the course of the year.
I also want the southern facade to work like a solar chimney (in the lower half, like a climbing solar chimney) that channels hot air building up the facade from the sun all the way to the roof, and pull air cross the interior out of vents. So I need to further divide the facade surface breps to fixed rainscreens and operable shades.
my goal is to move the information over to detail and specificate to revit. and this would make a good occasion to test out the brand new mantis shrimp. I hope I can run revit + dynamo and this analysis together :)
So I think I might be at the end of this particular thread - the answer to the RAM bottleneck is - DOWNSIZE YOUR SAMPLES!
…