ariations, but each seems to lack the sophistication to generate a ‘zip’ that retains its general shape over the whole curve.
Basically I’m trying to understand the process behind this: http://www.schindlersalmeron.com/index.php?option=com_content&task=view&id=27&Itemid=29
Here is an image of the latest definition.
1. I draw a curve in Rhino, and then define it in grasshopper. I also define the point as the beginning of the curve.
2. I offset the curve to a specified depth, based on structural member
3. I generate a line from the point at a tangent to the curve, then rotate it a
defined angle.
4. I find the intersection between the rotated line and the offset curve. Then generate a tangential line from this new point
5. Line is rotated at the same angle as before.
6. Process repeated.
The idea is to then generate a circle of defined diameter at each of the intersection points, then find the intersection of the circles with the curves, which are then joined up with straight lines to create the ‘zip’. This would mean a lot of copy-pasting and list management that I’m not really capable of with my limited grasshopper experience.
I had tried generating points at intervals along the curve and then eventually generating lines from one line to another with a shifted listed to form the tooth angle, but it wouldn’t retain its shape over the entirety of the curve.
Does anyone have any advice for how to tighten up this definition? I imagine that I will need to delve into vb.net scripting to address the recursive nature of the process.
I fear that I’m going about this in entirely the wrong way...
Of course the next step is to flatten out the curve for CNC manufacture.
Any help would be greatly appreciated! The potential for using grasshopper in design is amazing, and I would love to gain a deeper understanding of it!…
eration!
See an example work flow for designing, simulating and analysing a Photovoltaic system below.
Download a Grasshopper and Rhino example file:
https://www.dropbox.com/s/krbszlplj5i40dz/017_HBgeneration%20Rhino%20model.3dm?dl=0
https://www.dropbox.com/s/lxneuzal3mipd2q/017_HBgeneration.gh?dl=0
See a quick introduction and tutorial videos here: https://www.youtube.com/playlist?list=PLrx2KnyhaJ5YXo5hpk8Q9q4Vy99O5IegK
1. Select a building to mount a photovoltaic generator on (seen in Rhino in green).
2. Select a surface within that building to mount a photovoltaic generator on (seen in Rhino in green).
3. Create a Honeybee context surface from that surface.
4. Place a photovoltaic generator on that Honeybee context surface by using the Honeybee generation component. Honeybee_Generator_PV and connecting the context surface to it's input _HBSurfaces. Then you can specify both the performance and the financial data of the photovoltaic generator.
5. Create a Honeybee generation system which consists of the photovoltaic generator in 4. By using the component Honeybee_generationsystem and connecting 4 to its input PVHBSurfaces_. Then you can specify the annual maintenance cost of this system.
6. Run the simulation in Energy Plus by connecting 5. to the input HBGenerators_.
7. Read the results of the simulation:
- The electricity produced by the Honeybee generation system in 5.
- The net purchased electricity of the facility (the Honeybee zone) to which the Honeybee generation system is attached to. This is the electricity consumed by the facility less the electricity generated by the Honeybee generation system.
- The financial costs of the Honeybee generation system; capital, maintenance and replacement costs.
8. Calculate the net present cost of the Honeybee generation system in 5 assuming a 25 year lifetime.
9. Visualise the net present cost.
…
neybee?commentId=2985220%3AComment%3A1257744&xg_source=msg_com_gr_forum
is useful to replace values (even if I cannot replace the same value for example "fraction radiant" in two different internal gains), but not to add new stuff, as in our case.
As you may recall, we were able to add our internal gains through the additional strings, but we have the problem of the default ones that we can not change or remove.
We've noticed that People, Lights and ElectricEquipment Internal gains are located inside the "runEnergySimulation" honeybee command inside the Python script.
We were thinking of two possible quick alternatives while waiting to be able to fully customize the internal gains with honeybee.
For the first one, if it is possible, you could make a "modified" "runEnergySimulation" command for us in which you cut off the Internal Gain parts, so that we can add them as text in the additional strings part. Alternatively you could show us where to add the additional strings we need inside the runEnergySimulation command so that we can add the values we need to run the simulation.
For clarity, these are the internal gains in idf file we need (that are inside de gh file in the panel just below the additional strings command)
Lights,, !- Name, !- Zone or ZoneList Name, !- Schedule Name Watts/Person, !- Design Level Calculation Method , !- Lighting Level {W} , !- Watts per Zone Floor Area {W/m2} 16, !- Watts per Person {W/person} 0.2, !- Return Air Fraction 0.59, !- Fraction Radiant 0.2, !- Fraction Visible 0, !- Fraction Replaceable GeneralLights; !- End-Use Subcategory
People,, !- Name, !- Zone or ZoneList Name, !- Number of People Schedule Name People, !- Number of People Calculation Method 4, !- Number of People , !- People per Zone Floor Area {person/m2} , !- Zone Floor Area per Person {m2/person} 0.3, !- Fraction Radiant , !- Sensible Heat Fraction attività metabolica, !- Activity Level Schedule Name 0.0000000382, !- Carbon Dioxide Generation Rate {m3/s-W} , !- Enable ASHRAE 55 Comfort Warnings ZoneAveraged, !- Mean Radiant Temperature Calculation Type , !- Surface Name/Angle Factor List Name, !- Work Efficiency Schedule Name ClothingInsulationSchedule, !- Clothing Insulation Calculation Method , !- Clothing Insulation Calculation Method Schedule Name, !- Clothing Insulation Schedule Name, !- Air Velocity Schedule Name AdaptiveCEN15251; !- Thermal Comfort Model 1 Type
ElectricEquipment,, !- Name, !- Zone or ZoneList Name, !- Schedule Name Watts/Area, !- Design Level Calculation Method , !- Design Level {W} 5, !- Watts per Zone Floor Area {W/m2} , !- Watts per Person {W/person} 0, !- Fraction Latent 0.3, !- Fraction Radiant 0, !- Fraction Lost General; !- End-Use Subcategory
Thank you very much!Filippo
…
ntación en distintos procesos del Diseño. Se abordaran los conceptos basicos y la metodologia para abordar problemas de diseño a traves del desarrollo de Herramientas Algorítmicas mediante un proceso de programacion visual.
Como nuestras herramientas de trabajo se utilizara Rhinoceros+Grasshopper+Wea verBird
Instructor: Leonardo Nuevo Arenas[Complex Geometry]
Fechas: 5 y 6 de Noviembre 2011
Lugar: Sebastian Bach 5411, Col. La Estancia, Zapopan Jalisco.http://g.co/maps/nc7g6
Cupo: Limitado a 10 plazas
Costo:
Profesionistas: $3,300.00
Estudiantes: $2,800.00
Fecha limite de pago: Viernes 28 de Octubre
Importante:
Los participantes deberán traer su propia Laptop con todo el software y actualizaciones (originales o versiones de demostración oficiales) previamente instaladas. (Se fijara una fecha unos días antes para revisar que todos los equipos estén en orden y listos para trabajar). Si planeas venir de fuera de la ciudad contactanos y te pondremos en contacto con otras personas que también vayan a hacerlo para en caso de desearlo puedan compartir su lugar de estancia.
Contacto:
Complex Geometry
Leo[33 3956 9209]
[nuarle@msn.com]
FARA.Architectural Lab
Aye[33 1050 3482]
[ayeritza.fara@gmail.com]
Para hacer tu pago via deposito o transferencia electronica:
Banamex
No. Cta. 6035264
Sucursal. 0644
CLABE interbancaria: 002671064460352648
Beneficiario: Leonardo Nuevo Arenas
Al hacer el movimiento bancario favor de enviarnos el comprobante (scanner del boucher o captura de pantalla de la transferencia) a los correos de contacto que aparecen mas arriba.
http://cgeometry.blogspot.com/…
ipe Pecegueiro Type of participants Students, graduate students, researchers, professionals Duration 2 days, Sat – Sun Prerequisites 1 / participants skills Experience in Rhino and Grasshopper; programming experience with Processing or Arduino IDE is recommended but not necessary Prerequisites 2 / hardware Participants should bring their own computer with Windows XP or 7 64 bit OS Prerequisites 3 / software Rhinoceros Version 4 sr9, Grasshopper 0.8.0050, Arduino IDE, Processing, Google Earth* *Software versions should be the most updated versions at the time of the workshop. Rhino 5 is also acceptable. Description An associative model is only as relevant as the information it seeks to manage. This workshop will engage the associative model by feeding it with real time and real world data captured through prefabricated sensor nodes known as the Ambient Sensor Kit (ASKit). The ASKit is an Open Hardware platform for personal data collection and sharing. The ASKit project is based on the premise that a personal understanding of the information around us is key to a sustainable and informed habitation of our environment. http://uask.it. Workshop participants will be working with Grasshopper, a generative,logic based design environment where participants will be able associate real world data to their models. Several other tools will be employed including Processing, Pachube, Google Earth, and gHowl (a set of custom components which extend the functionality of Grasshopper). This two day workshop will focus on a specific area in Berlin to understand, through data, the differences between the physical barriers and invisible forces which define certain urban functions. The participants will engage in: - environmental data collection - site surveying with open hardware/DIY electronics - data visualization and analysis - associative modeling with collected data Day 1: Demonstration of ASKit hardware platform for data collection and associative modeling. Data capture session in specific zones in Berlin. Data visualization and associative modeling in Grasshopper. Day 2: Focused Data Capture Session Directed projects applying associative modeling with collected data.…
Added by Luis Fraguada at 11:34am on August 23, 2011
ll the wires gone. Now you'll have to hook them up again. This is the sort of thing that gets annoying after the third time.
Problem #2. The solution in Grasshopper iterates over all objects and solves each one in turn. Of course a lot of objects depend on other objects, so it usually becomes a cascade of objects solving themselves for the benefit of other objects. It is therefore very difficult to predict the order in which objects are solved.
The root iteration is the same as the display order (back to front), but the topology of the network complicates matters greatly. If you change the topology of the network during a solution, you might end up with whole portions of the network not being solved at all, or, worse, a conflict in the topology checker that makes Grasshopper think a network is self-referencing.
Problem #3. Grasshopper caches all manner of things about a network that can be recomputed from basic principles, but take a long** time to do so. If you start to expire caches where I don't expect you to, we'll either run into null reference errors, or stale cache data, or invalid cache data. Problems like these are very difficult to track down.
Problem #4. File IO. Components get deserialized from ghx files based on their default layout. In your case, we need to solve a component before we know how many outputs it needs. This cannot be done until the file has been completely deserialized. It's a chicken and egg problem, which will result in missing wires every time you open a file.
If you want to have a flexible number of outputs on your component, I'd suggest you add a menu item to your component that will change the output list when clicked, then causes a recompute. This way you won't mess with the network topology during solutions and people don't get their connections pulled out from under them. You'll need to do quite a few things to make this work, but I'll be happy to help you out there:
- Adding menu items and menu click handlers
- Properly removing parameters from a component
- Properly adding parameters to a component
- Recording undo for parameter changes
- Writing custom settings to a ghx archive
- Reading custom settings from a ghx archive and making sure your component is compatible with the ghx layout before it tries to deserialize itself.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
* This sort of thing has cropped up before and it has always been due to human error.
** 2ms or more…
Added by David Rutten at 9:28am on October 19, 2010
r visual programming tools in the games world. MS's Kodu, looks interesting. Kismet and Visual3d look even more interesting..... mainly because they are more 'interactive' or 'reactive', rather than DAG-based.
Seems like the evolution path for GH-similar apps is:
1. base 3d or CAD app based on C/C++ code.
2. Add scripting language interface
3. Add some kind of visual interface
4. Add graph sorting / propagation engine
5. Re-jig base 3d or CADD app to make managed/interpreted scripts run faster, multi-threaded.
6. Add dynamic typed language, DLR stuff
6. ....
6. Add constraints solver...?
7. Rebuild CAD display engine to be procedural at the GPU level?
Seems like there are available tools for converting scripts into some kind of flowchart. There are even visual debuggers. MS even has something called the 'Debugger Canvas'. Spreadsheet constraints.
Seems like the time is ripe for lots of new apps like GH.
…
strictly with code (BTW: did you crossed Rubicon?).
1. See this: Imagine a curve (say a "rail") that is divided N times and then circles are created with random radii. Circle control points (9, that is) are sampled (obviously) into a DataTree where branches are the rail divisions. Let's call the control points: "start" seed points.
2. Imagine a capability ... that stores all these (the original "seed" control points) into a "parameter" and then each time that a change occurs to them (varying the x/y, on a per point on a per branch on a per plane basis[that provides the Z]) stores the "modified point" into the parameter (at the same index with the old: meaning "deleting" the old) ... and then some other code gets that data and makes curves and lofts them. Reset means: sample again the original "seed" points into that "parameter". Closing are reopening the definition has no effect: the lofted stuff is derived from the (internalized, so to speak) modified points (from the "parameter").
3. A variety of "automation" is available: for instance if you jump from branch to branch and from item to item the value of the selected point is inquired and the sliders that control the new x/y are "set" to 0,0 (meaning no change - yet) values. There's mo "store" mode: it works automatically as far as you modify points or you hit the reset button
4. This does that (only achievable with code):
5. Obviously points can been replaced with anything ... and thus ... we can individually modify items in collections ... and forget for ever attractor points and all that (OK where appropriate, he he).
I'll post 30 similar examples soon in the forthcoming mother of all threads: "GH goes (at last) interactive". Watch this space.
BTW: study the "animation" where points with index 6 are "sequentially" modified. I've added some delay in order to give you time to get the gist of the whole thingy.
best, Lord of Darkness
…
4 explode the text
5 select the exploded text, which are now curves, and the border from step 2 and use the planarsrf command again
6 make your surface using the two curves at top and bottom and a section. Use the sweep2 command
7 select your negative text surfaces and use the flowalongsrf command
maybe the scale of the text can be edited by the size of the surface or of the text but I bet you can figure that out! good luck!…