eople use different methods and components was the way that I learnt most of what I know (and it might solve parts of other's problems)! It's always apparent from forum posts that everything is work in progress.
The "divide curve" components gives you tangents (T) to the curve at the points you've made. You want the perpendicular (right angle) to the curve, so need to rotate this vector around point on the curve (P) by 90 degrees or Pi/2 Radians .
It seems you're finding your lengths as required, but then passing them through a unit Y vector - so they are only ever going to move in the Y direction. You need to use an "Amplitude" component with the perpendicular vectors from above and the lengths you've calculated.
Before sweeping you'll need to properly align the rectangles such that they are also perpendicular to the curve.
…
Added by Joe Allberry at 10:33am on August 4, 2015
se the final panels that you want to rotate, or is this file just an example? Do you also have panels in other facades (in other planes)? Is the positioning of the panels random? Is it completely random, or are there some rules? Are the dimensions of the panels fixed or can they change, and how?
2. If I understand correctly, you want to have 2 different rotations, right?
2a. The first rotation is around the edge of the panel that lies on the facade and you want it to be between 0 and 90 degrees, right? How is the angle for each panel defined? Based on the sun's beams direction and, if yes, how exactly?
2b. The second rotation is around the X axis, on the right point of each panel (which is fixed on the facade) and you want the angle of rotation to be specified based on an attractor point, right? Is there a minimum and maximum angle or do the panels always align with the attractor point?
For a better understanding of these questions, see the attached definition (open it together with your 3dm file). Here the first rotation is the same for all panels and is controlled by a slider (until you explain how you want to define the angles). The second rotation doesn't have any constrains, so the panels always "look" at the attractor. But, as you can expect, strange thing happen this way: Panels hit into each other, rotate until their solar side is looking downwards, etc.
Still, I believe, if you answer the above questions we will get somewhere.
Cheers,
Nikos…
Added by nikos tzar at 5:42am on September 24, 2015
s. Now ... I want from you to do the proper combo of columns for the job: I want a dynamic solution worth the name not some stupid columns going vertically. Use the tree regions in order to avoid distorting the glass modular floor. Say like this:
The truss must engulf the trees. Killing a tree is a crime (even touching it should be a crime). How to do it? Same for the rotating fins. Assembling the truss must take provision of the branches (if they are fragile).
Plaza must being divided as follows: a perimeter ring (critical) separates the glass floor panels from the ugly buildings AND the tree regions. Fine grey pebbles are OK for that. Then the panels deploy in the remaining region. Panels must be all the same: 90*90cm. Solve this "arrangement" with GH. Measure the drainage slopes and calculate the Buzon pedestals with GH (how far we need to adjust them: critical for ordering).
Cover the existing pavement with a 5cm thick layer of black pebbles (bonus: hide the cables for the led arrays and the rings [no WiFi required]). Create variations of these arrays in GH.
Create something for servicing the whole thing.
Greenhouse effect can raise the temperature below the glass flooring (BTW: panels are at 1-2 cm distance [Buson spacers] each other [rain + escaping gases]).
…
ese seem to have one issue which I need to be addressed for my application.
The grids which are produced using the methods on here follow the surface and tend to be equally spaced in two dimensions. What I need is to create a grid which keeps the distance between the path lines equal whether the angle between the lines is 90 of 45 degrees. At the moment the grids act a bit like contours on an OS map but they bunch up in the lower parts of the curves and spread out in higher parts.
Below is a picture of what I produce via grasshopper so far but using a grid formula from elsewhere on the forums along with Rhino to connect up the paths. In this example they seem equally spaced but they differ by anywhere between 0.755mm and 0.785mm which if scaled up would be a problem.
Any Ideas how to help me split the surface up equally in all dimensions, meaning that if I were to sweep the tool path with a circle radius of half the distance between the lines/rails, there would be no gap between the beads/filaments?
I appreciate any help or advice hugely.
Philip
…
width of the other letter
find the intersecting shape with Solid Intersection
re-orient final shape
This process sometimes breaks when a letter has one or more "holes" in it (eg: B, O, R). When this happens, the Solid Intersection component experiences an error and says "Boolean intersection set is empty". I don't know what that means.
I have tried the quick-fixes of flattening and grafting to no avail.
Could somebody shed some light on this issue?
I have internalized the letters into the attached GH def, but am also attaching the illustrator file that I'm using.…
e any affect, but that's way too slow if 90% of the GH program is initialization and creation of source geometry to then simply alter a bit or array here and there. When I use Python directly to change output values that I plug into former slider inputs, again no new solution is triggered at all so I'd have to recalculate the entire Grasshopper program which is simply not how Grasshopper normally works. How do I actually emulate a human changing a slider value one slider at a time in a way that makes Grasshopper behave normally so that only downstream flow is affected in an efficient way?
An related example would be if you have several separate programs in a Grasshopper page and you wanted to only change one of them without triggering full recalculation of them all.
At this point it's almost like a Windows mouse scripting utility is needed but if I need to do combinatorial combinations of all possible slider values, that seems quite thorny too unless I set up a pre-arranged array of values that could then simply be incremented "manually" followed by a right click to bake and then typing commands into Rhino to save to a file. UGH. That would be quite difficult to pull off since I need to control file names, but it's what I seem to need.
I'm using Python since it avoids thorny Grasshopper schemes and it allows me to access Rhino to save baked objects files.…
ving a copy of the surface in the original position. Second, and more frustrating, not all of the surfaces orient properly. A few lay flat but then rotate 90 degrees horizontally.
Any help or insights would be greatly appreciated!
Images and files are below.
grasshopper screenshot 1gh%20problem%20part%201.png
grasshopper screenshot 2gh%20problem%20part%202.png
grasshopper file slat%20wall%20C2.gh…
Grasshopper. So, I once made an attempt to bind ms sqlServer in order to get frozen definitions at some states, to avoid managing baked objects in Rhino and also be able to retain whole results without using the GH state manager that rebuilds everything.
But at that time GH's VB.Net component didn't properly read referenced dlls and I forgot it since then.
At first, I was surprised by Slingshot's extensive interface : I was still having in mind my own old project, a tool that would have acted at the Rhino's geometry object level, and auto creating the needed tables.
The bd would have consisted of a main table, owning the objects ID and name, and related tables containing the necessary information relative to the main objects.
For example, a Brep is made of so and so underlying objects, passed to respective tables, according to GH objects definition layout (just the way they are written in the xml schema).
Then, on a db, query an object by name, and retrieve the whole object or underlying objects (e.g. at the bounding curves level, or points level for a Brep).
With Slingshot, I made a few attempts to cheat GH with BLOB data fields, but no way to get a whole object. It seems that GH simply provides an object.toString ... and GH is definitely not conceived to produce persistence outside of Rhino. If I have some spare time, I will try to extract
About points and colors, I am now simply using a single field with CHAR(asLargeAsNeeded...), as GH parses String to every Point (or Vector or Color) entry of any component.
I do so because it need less to display on the canvas...
Whatever I wrote before, I really like your conception, as opened to relational interactions between ...whatever you need or dream of !
One last thing : GH can't open the definition file "Genome_DB_Template.gh" that I've downloaded from your site : http://slingshot-dev.wikidot.com/database-genome. I was expecting to learn a lot from your very smart stuff ! (I am running GH 08.00.13 and Slingshot 0.7.2.0)
Slingshot is running great, opened to any use...Thanks again.
Best,
Stan
…
they may not always give you a clear picture of their precise functionality. I thought this may be an issue with many users so I decided to use this opportunity to list all the parameters with my quick take at describing their functionality. Here it goes:
DEFAULT VERTICAL SHIFT -- Number - Shifts panels vertically creating a custom-sized panel with height of the specified dimension at first row of skin.
DEFAULT HORIZONTAL SHIFT -- Number - Shifts panels horizontally creating a custom-sized panel with width of the specified dimension at first column of skin.
DEFAULT SKIN CHAMFERED CORNER--True/False - If "True" wraps panels around surface corners. If '"False" creates a custom-sized panel if necessary to complete the skin surface at the shared edge, defining this way a sharp corner.
RESET BAY AT POINTS-- True/False - When using Panel Bays (Group of Panels) this option restarts the panel bay at a surface corner.
FLOOR HEIGHT-- Number - The Floor To Floor value of the Skin generated. If Panels are shorter than this value, a leftover 'gap' will be seen at top of panels.
MINIMUM PANEL WIDTH -- Number - If the width of a panel (standard or customized) created during the skin generation is less than this value, the panel won't be created and the placement will be skipped.
MINIMUM PANEL HEIGHT -- Number - If the height of a panel (standard or customized) created during the skin generation is less than this value, the panel won't be created and the placement will be skipped.
MINIMUM PANEL AREA-- Number - If the area of a panel (standard or customized) created during the skin generation is less than this value, the panel won't be created and the placement will be skipped.
PANEL PROFILE TOLERANCE-- Number - If a resulting panel shape is within the specified tolerance value to any already created panel, this panel is used instead of creating a new panel shape. The tolerance specifically tracks the distance between each corner of the new panel and the corresponding corners of the existing panels. This parameter is mostly used in "SURFACE PANEL MODE'', where a large number of custom-shaped panels can be generated, to reduce the number of unique panels created.
GENERATE PANEL TYPES ONLY-- True/False - This parameter allows the Skin Generator to discard the creation of scene geometry but still have the grasshopper panel data being generated. The skin panels can be retrieved as grasshopper geometry using SkinDesinger's Display components.
RESET DF BETWEEN SURFACES-- True/False - When "True", the Design Controllers (Design Functions in v.01) resets to its initial values each time it starts a new skin surface. Used for instance to restart a layout pattern at every new surface.
SURFACE PANEL MODE-- True/False - The "SURFACE PANEL MODE" is used to generate panels matching the shape of the surfaces included in the "skinSurfaceList" input.
SURFACE PANEL ORIENTATION -- Orientation Type - When activating the "SURFACE PANEL MODE'', this parameter defines the orientation of the panel generated relative to the normal of the surface that defines its shape. The acceptable values (found in the "Surface-Panel Mode Orientations" dropdown) are:RESETFLIPROTATE 90ROTATE 90 FLIPROTATE 180ROTATE 180 FLIPROTATE 270ROTATE 270 FLIP
I hope this helps but feel free to reach out if you have any questions!
Santiago
…
cnicas y estrategias para resolver problemas que hoy se presentan en el diseño y fabricación digital de formas complejas y euclidianas. Se podrá entender mejor la diferencia entre el estilo Modernista y el Parametricismo que vivimos desde el 2000.
Tomando como plataforma básica Rhino, se explora y optimiza el diseño y fabricación de topologías complejas bajo los entornos de Rhino, Grasshopper y RhinoNest.
Instructores:
Andrés Gonzalez, McNeel Miami.
Director de RhinoFabLab.
MSc. María Mena Deferme, Directora de Arquitectura.
Tecnológico de Monterrey campus León, Mexico.
NOTA 1: Tendremos el patrocinio de LaserCUT.mx y podremos usar un Láser Industrial durante todo el taller, mas el laboratorio del iTesm.
NOTA 2: Estudiantes y docentes podrán adquirir Rhino 4.0 con un descuento del 50% sobre el precio de lista en USA.
Descarga el Outline del workshop PDF
http://www.screencast.com/t/M2FjOTBi…