rella - Revit/AECOSim etc etc) then scripting is the only way to do business. In fact Dynamo/Generative Components would be your main parametric app ... but GH can offer a thing or two as well.
Other than that here's a very brief explanation upon the "steps":
1. Using connectivity trees (faces to edges, edges to faces, faces to faces) ...
2. ... Find the "internal" edges (meaning edges that are connected to more than ONE face) and store them in a tree. Doing this find the smallest edge as well (for defining the "module" of the pts divisions minus the start/end offset). Used an object type tree since I store the indices of the adjacent faces as well (an object type is a "general" container that can hold cats, dogs, numbers, bananas etc etc ... with the cost of un-boxing when an item is to be used [Note: un-boxing costs time but in this very simple case we can afford the "luxury"]).
NOTE: if you observe the paths on that tree you'll notice that they correspond 1:1 to the indices of the related edges in the EList List (of type Curve).
3. Loop withing the "interior" edges and define the coplanar vectors per edge related with the 2 adjacent faces. These vectors are the Cross Product (Google that) between the edge direction and the normal per face (at u/v: 0,0). Divide the edge (taking into account the start offset AND the ratio of the edge length/ minEdge [as derived from phase 2 as above]). Using these points create a "zing-zag" polyline and store it in the same path as the OEM edge.
NOTE: The polyline is not planar since each teeth is laying to the corresponding adjacent face plane (if the Brep Faces are not planar more "smart" stuff is required).
From this point (not included in V1):
4. Using Face to Edge connectivity data: IF a path exists (in the polyline tree as in 3 above) with the given index sample this polyline as Curve ... if not get the OEM Curve (case: "boundary"/perimeter Brep Faces). Join the Curves (take provision to report failures) and project them to the corresponding Brep Face plane (case: planar face) or ... to some suitable "mean" plane. Define a planar Brep out of the newly created closed planar Curve and extrude it (actually the Brep Face of it) both sides at once for doing a "solid". If Brep Faces are not planar ... well things are a bit more complicated (not nuclear science ... just another approach is required).
In fact ... is a bit more challenging than that since there's assembly tolerance AND clash issues around ... but this is the "general" idea anyway. …
ion of surfaces and/or "solids" : it's a very complex assembly of "components" either bespoke or widely available in the market. This demo combo summarizes the "common" cases (but the insulation for the opaque parts is WRONG 100%):
2. Contemporary trends (a bit of nonsense) point towards "liquid" forms. These ARE NOT made via "classic" linear systems. Very few actually can do it (I mean: do it yielding a building that doesn't leak]). Here's a totally wrong take on that matter from a very reputable Swiss facade maker:
And er ... hmm ... this :
3. Facade systems (curtain walls, that is) are classified in 4 classes: (a) the good old known humble stuff like the one shown in the first image (b) semi structural [yes], (c) structural [NO] and (d) planar frame-less systems.
4. Designing any proper facade is impossible with Rhino/GH: you'll need totally different software apps to do it - in real life - despite what most people believe/hope/wish.
5. Designing anything without a proper bottom-top approach (I.e. : first do the pistons then the engine) is the best recipe for not becoming (ever) a pro .…
ts connectors and slots that allow CNC machining the facets and connectors for assembly.
https://www.youtube.com/watch?v=34OvgflJEmI
We developed this construction methodology earlier this year while working on a large scale parametric structure for Midburn, the Israeli Burning Man. While doing so I used grasshopper to generate the facets for the geometry, while a friend on the team (Matan Zohar) wrote a javascript app that translated the mesh into connectors and slots for CNC manufacturing. You can see more about the project here:
http://www.shlomimir.com/triped/
I wrote this component as an exercise in learning rhinoscript and python, with the purpose of bringing the functionality into the grasshopper workflow. It's now to the point where it is working for triangle and square welded meshes while outputting the connectors and slots as an unorganized list.
Questions and To Do List
1. I'm new to object oriented coding and functions, and basically just wrote the whole thing as a series of conditional loops with two dimensional arrays holding the data. Planning on restructuring this better, would love any tips.
2. Right now outputting the connectors and slots on the input mesh itself in 3D, planning on setting this up layed out on one plane to organize for cutting. I was wondering if there are any existing tools for this or if I need to do this manually.
3. Labeling connectors and slots. Is there anyway to output text from python that can be later baked into the rhino for labeling?…
hopper) and High Definition visualizations (V-Ray) and exploring its scientific innovations supporting the users' platform philosophical ideas.
SESSIONS: 5 sessions of 8 hours (40 hours total)
E-MAIL: educacion@chconsultores.net
REGISTRATION: (55) 56 62 57 93
TECHNICAL INFO: 044 (55) 31 22 71 83
INSTRUCTORS: Have past experience working at Gehry Technologies, and participated at studios with Eric Owen Moss and Tom Wiscombe at SCI-Arc (Southern California Institute of Architecture).
Day 1: Introduction to MAYA tools, 3D exercise start.
Day 2: Continue 3D exercise.
Day 3: Original 3D architecture design.
Day 4: Grasshopper optional application on 3D architecture design.
Day 5: V-Ray Application on 3D architecture design.
30 DAY TRIAL SOFTWARE DOWNLOAD:MAYA 2012: http://www.autodesk.com/products/autodesk-maya/free-triaRHINO 4: http://s3.amazonaws.com/files.na.mcneel.com/rhino/4.0/2011-02-11/eval/rh40eval_en_20110211.exe3DS MAX 2010: http://www.autodesk.com/products/autodesk-3ds-max/free-trialVRAY FOR 3DS MAX: http://www.vray.com/vray_for_3ds_max/demo/thankyou.shtml#thankyouPHOTOSHOP e ILLUSTRATOR: https://creative.adobe.com/apps?trial=PHSP&promoid=JZXPS
www.helenico.edu.mx
www.scifi-architecture.com/#!workshops/c1wua
LIKE US ON: www.facebook.com/scifiarchitecture
…
st shortest path. The guiding splines would work like a forcefield so that paths are "drawn" towards them with a user defined strength and radius of influence.Since each path is basically independent, it should be relatively straight forward to multithread. I downloaded the C# code for the pathfinding node and have to see if I'm up to it.
Would also be interesting to know how far away the first beta of a multithreaded GH 2 is.
I also had some hopes when "Fabric Engine" showed a demo of a Rhino exporter, since its "Canvas" is an extremely optimized node system that's fully multithreaded and optionally uses the GPU, which could be interesting to explore for some heavy lifting if they for instance would attach it to GH. But I guess it does not make much sense for them as a target.
Above image uses 20000 random points. In Softimage XSI ICE this would not be much, since it's nodes are fully multithreaded and optimized for huge numbers of particles and point deformation. In GH, with anything above 500 points, things get rather "meditative".
Illustrator takes up to half an hour after each and every change to colour, line style, blending mode etc. I have one even more complex file with over 3 GB size and there Illustrator (CS6 x64) goes into some kind of trance and after some hours of thinking moves on to some advanced psychotic, catatonic state to never fully return... ;-)So usually I run it in the background while doing something else...
I recently tried different other vector graphics apps (Inkscape, Affinity Designer, Xara) but they were even worse if they were able to open the files at all. Maybe I should give Corel a try too.
Cheers and thanks for your offer! Your work is a major inspiration for me while learning Grasshopper!
Tom…
file. A TSpline made thing in fact.
2. This atroci ... er ... hmm ... I mean unspeakable beauty uses an exo-skeletal load bearing structure hence is THAT big (BTW: Apparently nobody knows what thermal bridge is nor thermal expansion nor vapor condensation ... but these are "minor" details these holly blob days, he he).
3. 2 means that some nodes of that "grid" MUST "meet" floors in order to support them and (hopefully) withstand some seismic forces. BTW: A Richter scale 9 (for an hour) is all what this building actually needs (that's acid "humor").
4. The "smarter" way to do this is to spread "some" (i.e a lot) random points (Note: David's algo yields "evenly-spaced-points" within the limits of the possible) on the guide blob (a polysurface in fact).
5. Then ... you need some algo that tests proximity AND "adjusts" the Z in order to have some node points "co-planar" (Z) with the floors.
6. Then you triangulate all that stuff (the points, that is) using some decent Ball Pivot Algorithm (NOT Delauney) and you get a triangulated mesh that "engulfs" the guide blob. If you want some quads (as shown) this is also possible.
7. So you have edges ... i.e poly lines (per mesh face) and if you offset them ... you have "drilling" profiles that you must use against a second guide "thickened" blob for creating a continuously smooth exo-skeletal LBS (as shown). Of course Rhino (being a surface modeller) could require years to do this solid difference opp (or an eternity).
8. Rounding the "lips" of that LBS Brep is out of question with Rhino or GH (but it can been done very easily using other apps). Then you must "split" the Brep (in modules? in nodes + "rodes"? you tell me) in order to make it in real-life (what about forgetting all that?, he he).
9. Then, there's the glazing thingy that is made via quads meaning planarity. This is achievable with Kangaroo2 but is a bit tricky.
Moral: WHAT a gigantic pile of worms is this thread of yours...
more soon.
…
ake a network of lines (i.e. a graph) and make a Plankton Mesh, from which you can use Cytoskeleton to make a solid mesh (and then smooth it with Weaverbird).
Works with ngons (polygons with 3 or more sides). Other examples I found only worked with tris and quads.
Works on open or closed surfaces
While these examples start with a surface, you could start with a network of lines and make a patch surface
This is meant for 2D networks/surfaces. I haven't attempted filling a 3D volume. My guess is this wouldn't work as it would require a non-manifold mesh that Plankton wouldn't handle.
Note similar results could be achieved with the following:
TSplines
MeshDual (dual of a tri mesh, not as much freedom/control)
Working backwards, here is the GhPython script from Will Pearson that builds a Plankton Mesh from vertices and faces. The vertices are a list of 3D coordinates, the faces are a tree a lists, with each list containing the indices of vertices that form a closed loop. From Will, "Plankton only handles manifold meshes, i.e. meshes which have a front and a back. This orientation is determined by the "right-hand rule" i.e. if the vertices of a face are ordered counter-clockwise then the face normal will be out of the page/screen."
# V: list of Point3d # F: tree of int
import Grasshopper appdata = Grasshopper.Folders.DefaultAssemblyFolder
import clr clr.AddReferenceToFileAndPath(appdata + "Plankton.dll")
import Plankton
pmesh = Plankton.PlanktonMesh()
for pt in V: pmesh.Vertices.Add(pt.X, pt.Y, pt.Z)
for face in F.Branches: face = list(face)[:-1] pmesh.Faces.AddFace(face)
These vertices and faces are precisely the output from Starling. Starling takes in a list of Polylines which form the (properly oriented) face loops.
The polyline face loops can be generated...
Directly from Panels on a surface using LunchBox
Using any network of lines/curves on a surface (curves will need to be converted to polylines before Starling)
The latter was achieved using the Surface Split command, then converting the face edges (converted to curves) into polyline loops to represent faces.
…
). It deals with the potential possibility to port GH into AEC fields (real-life AEC fields, nothing to do with academic thinking). The bad news are that the smart AEC sector is occupied solely by Bentley/GenComp – expect soon Revit/Dynamo as well (not to mention CATIA). The good news are that there’s millions of designers/engineers/industrial designers out there who could be interested for a 3rd alternative.
Intro: Well, in the old days (when men had mustache and muttonchops) AEC design performed in a nice top-to-bottom sequence (kinda like a vector) : the Big Man (aka The Brain) did some sketches (with crayons) and the rest (known as the “others”) struggled to make The Idea a reality. Today things are different, mind. Or they should be different. Or may be different. Or whatever. The big easy:For a zillion o reasons (AEC matures, PLM, cost, outsourcing, sustainable engineering…add several more) this vector like process of the past is like a Brown motion these days: Right down the moment that you (or your team) “sketch” The Big Idea … another team design simultaneously (i.e. in parallel) the components (parts) that compose the whole. This is the so called bottom-to-top design mentality. So the whole and the parts meet in some "middle point" instead the later being dictated by the former. In quite a few occasions parts dictate the whole (cost, cost and cost being the main reasons). The more a design is contemporary the more this bottom-to-top thing plays a critical role. Ignore it and have a very big time (sooner or later).The bad news:If you accept the above…well GH – at present phase - is not ready for contemporary AEC work. At.All.3 Main reasons for that:1.You can’t use parametric parts (i.e. nested blocks to speak Rhino language) into a given definition (in this case attached : truss nodes, connection flanges, mount plates, cable tensioners, planar glazing components, roof skin components…etc etc). This is obviously a Rhino domain.2.You can’t bake a given solution in such a way that the Rhino file is structured (i.e. assemblies of nested blocks). Or you can do it theoretically writing some VB/C code – but the core of the matter is that corresponding components are MIA. That means that you can’t export anything useful actually into established AEC oriented apps and/or established MCAD apps (for doing/calculating the parts for real-life production).3.The GH process can’t being interrupted. Imagine defining, say, a building “envelope” in GH and then …er…use Evolute tools in order to optimize things (say quad planarization and the likes). Then …continue in GH for more detailed work. Then design the parts as in 1 above. Then back to Evolute. Then back to GH.So…if anyone is interested I would be glad to start the mother of all debates and/or some kind of crusade (GH for President, that is).PS: This definition is a WIP thing – more refined stuff to follow (in particular a complex canopy tubes pre-stress system).
PS: Tree8 components are used sporadically.
PS: Use Saved Views
May the Dark Force be with us.Best, Peter …
ion, extract structural data, produce 2d drawings, and exchange data with other external software. Nemo also includes free tools to create parametric shapes, such as Naca profiles, hydrofoils, keels, rudders, blade propellers, and sail plans.
Born in 2018 as an academic research project at ENSTA Bretagne, Nemo grew up since, immersed in professional naval architecture practice with L2Onaval.
From 2021, Nemo is now available for purchase with commercial or educational licenses. Following license levels are provided to fit every needs depending of user activity :
Free (Designer)
Level 1 (Section + Hydrostatics + Visualization)
Level 1 + 2 (Section + Hydrostatics + Visualization + Resistance + Structure)
We can also help you make best use of our software, provide project guidance, establish specific workflow and create custom tools.
Requirements
Microsoft Windows 10 or Apple Mac OS 12 Monterey :
McNeel Rhinoceros 7 SR26
(Other Rhinoceros, Windows and Mac OS versions have not been tested but may work)
Additional info
Food4Rhino Download
Discourse Forum
Facebook Page
Linkedin Page
Nemo Website
Credits
Authors : Mathieu VENOT
Contributors : Paul POINET, Laurent DELRIEU
…