st sampled into data trees (if not we must "add" them "manually" == code: get this item from Rhino and put it there) into collections.
2. Then we must perform some kind of selection(s) on a per individual item basis and THAT is in 99% of cases "manual" (== code) or on a per "global basis" (hard or soft clusters et all == code). If clusters are hierarchical and some kind of dendrogram is required ... this obviously means ... er ... more code.
3. Doing the 2 we use some kind of input by means of sliders (say pairs of 2: for branches and items) and therefor MAY their values cause slider control issues (== code). For instance IF this slider yields a x event > do this and that to some other sliders.
4. Then perform the "histogram" required and obviously treat this as just a variant (i.e. a possible solution out of a given collection witch is variable) meaning ways to "store" this into parameter(s) (as persistent data). This also requires code.
In a nutshell (and oversimplified): given a collection of "shapes" pick some make the histogram, store the result (or do something with that and store the outcome as well) recall some other for any reason, modify it, stored it ... and then repeat until the end of time (or worst: until you are out of espresso).
As I said: NOT a task for a novice AND NOT a task for someone not familiar with code matters (But I guess that you qualify in both areas, he he).
I do this type of things day in day out (but for real-life AEC purposes) therefor I could make a "simple demo" (add some "" more) but ... well ... you are warned, he he
But in case that you take the wrong decision (you are warned) we must use Skype a bit.…
, ed è la zona in cui si manifestano in modo più evidente i temi di soglia, gradiente, variazione, catastrofe, dove le condizioni di limite e transizione possono essere esplorate trasformandole in configurazioni formali e architettoniche interessanti. Il workshop mira ad indagare strategie attraverso cui si manifestano le condizioni di transizione tra ecosistemi, sia in termini spaziali (dalla scala territoriale alla scala dei componenti) che in termini di evoluzione o ciclicità temporale (condizioni critiche come i cicli notte/giorno nelle zone desertiche). Il tema dell'eleganza riguarda il modo in cui il sistema produce un campo armonicamente articolato e differenziato di fenotipi a partire dal genotipo attraverso un processo di "estetica delle forze" guidata attraverso lo strumento digitale.
Il tema sarà dipanato attraverso le giornate del workshop sviluppando aspetti teorici e tecnici dell'approccio parametrico generativo, con particolare attenzione a strategie di design basate su caratteristiche endogene (vincoli interni del sistema) ed esogene (fattori ambientali) allo scopo di stimolare l'esplorazione di soluzioni sistemiche innovative.
Il numero dei partecipanti è fissato a 16 per offrire un tutoraggio proficuo ed una effettiva esperienza di learning ad ogni iscritto.
Temi:
Teoria
. transizione
. eleganza
. efficienza
. ridondanza
. sensibilità
. ornamento
. spazio
tecnica
. dati:gestione, manipolazione, visualizzazione
. generazione di geometria da dati
. logiche parametriche applicate al design
. genotipo/fenotipi
. attrattori, drivers e tecniche di modulazione
Dettagli:
Istruttori: Giulio Piacentino - McNeel (GH intro), Alessio Erioli + Andrea Graziano - Co-de-iT (GH & design tutors).
Si richiede esperienza di base nella modellazione in Rhino.
Saranno disponibili computers con preinstallate versioni di prova del software; i partecipanti potranno, a loro discrezione, utilizzare il proprio notebook.
Quota d'iscrizione (max 16 posti) : € 400 + IVA - la quota non comprende vitto e alloggio
Luogo : Pentacom - Via Petroni 18/4, Bologna
Orario : 10.00-18.00.
Info e iscrizioni:
www.co-de-it.com
andrea@co-de-it.com…
rogettisti, artisti di vari media, paesaggisti, studenti.
Orario_ 9.00-18.00 ( 1 ora pausa pranzo). 16 ore_2 giorni da 8 ore.
Descrizione_Il livello base di Grasshopper serve come introduzione al plugin parametrico Grasshopper per Rhino 3d. I partecipanti saranno esposti a flussi di lavoro di livello principiante /intermedio ed a strategie di progettazione per la MODELLAZIONE PARAMETRICA. L'accento sarà posto sulle tecniche di flusso di dati, la visualizzazione e l'analisi in grado di fornire una solida base per la futura ricerca e sviluppo.
Le lezioni saranno composte da una parte teorica ed una pratica in cui si svilupperanno esercizi basati su elementi di Design ed Architetture contemporanee.
Iscrizioni_ generativef@gmail.com
+info_Grasshopper Workshop_Livello base
Organizza_generativeflow.com
Chi_ I docenti saranno Marco Bonucci & Fernando Rial
___________________________________________
When?_ 27/28 October 2012 (Saturday and Sunday)
Where?_ AD Comunicazione. Via di Sant'Anna, 3, Roma. (Centro Storico)
Schedule_ 9:00 to 18:00 (1 hour lunch break). Ore_2 days_16 hours_8 h/day
Who is the target Audience?_Architects, Engineers, Industrial Designers, Interior Designers, Product Designers, Artists of various media, Landscapers.
Abstract_ The basic level of Grasshopper serves as an introduction to Grasshopper, the parametric plugin for Rhino 3d. Participants will be exposed to beginner / intermediate workflows and design strategies for PARAMETRIC MODELING. The focus will be on techniques of data flow, visualization and analysis that will provide a solid basis for future research and development.
Registration_ generativef@gmail.com
+ info_Grasshopper Workshop_Basic Level
Organizes_generativeflow.com
Who_ I docenti saranno Marco Bonucci & Fernando Rial
…
Added by Fernando Rial at 10:48am on October 18, 2012
what they really mean by that, as in what buttons to push, so I assume it's a Windows Path entry?
2.) Modify PATH
Add the install location on the path, this is usually: C:\Program File\IronPython 2.7
But on 64-bit Windows systems it is: C:\Program File (x86)\IronPython 2.7
As a check, open a Windows command prompt and go to a directory (which is not the above) and type:
> ipy -V PythonContext 2.7.0.40 on .NET 4.0.30319.225
Tutorial on setting a Windows environmental variable (path):
http://www.computerhope.com/issues/ch000549.htm
But this fails to point out that path contains many entries already separated by semicolons so if I merely add a new variable called "path" it's likely that I will destroy existing program function. There's no info on how to just tack on another entry, and the Windows 7 edit box doesn't even show the whole collection, but one item (!), so I copied the existing path into a text editor to see the whole collection successfully and added the C:\Program Files (x86)\IronPython 2.7 entry after an added semicolon, correcting for an Enthought page typo of no 's' on the end of "Program Files". I also checked the others and many pointed to old missing directories so I deleted those entries.
...and the test fails and "ipy" is not recognized as a command, even though the path now shows up using "path" in the Windows CMD window, that is if I copy all by right clicking and pasting the stuff into a text editor to really view it all. I can run it from the source directory just fine.
The rabbit hole was indeed deep. Using the Task Manager (control-alt-delete) to kill Explorer and then Run in the menu to restart "Explorer," along with restarting the Windows CMD window however, worked. I can now invoke Iron Python ("ipy") via command line from any directory. For the "path" I edited path in the System Variables and not the User Variables. No, you don't have to type that whole crazy line above just to test the path variable, just "ipy" (and control-Z to quite IronPython) in the CMD window invoked by typing "cmd" into the Start menu search box.
From the CMD line this step did work fine:
3.) ironpkg
Bootstrap ironpkg, which is a package install manager for binary (egg based) Python packages. Download ironpkg-1.0.0.py and type:
> ipy ironpkg-1.0.0.py --install
Now the ironpkg command should be available:
> ironpkg -h(some useful help text is displayed here)
But of course Step 4 fails, giving pages of what seem to be error messages;
C:\Users\Nik>ironpkg scipy
Traceback (most recent call last):
File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.
py", line 92, in write_data_from_url
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 126, in urlo
pen
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 397, in open
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 509, in http
_response
...
Why can't I just download Numpy as a normal file and thus also have it easy for other users to install it when they use my scripts? This is just crazy and lazy. The Enthought developer has turned this into a computer game, with a missing registration link and then the last step spits out errors with utterly no information on how to fix it manually.
This Step 4 error is covered here:
http://discourse.mcneel.com/t/trying-to-import-numpy-in-rhino-python-but-im-getting-this-error-cannot-import-multiarray-from-numpy-core/12912/16…
Added by Nik Willmore at 2:36pm on October 11, 2015
even (0, 2, 4) then that means the point either never hit it, or went in and out again, meaning it's outside. If it hits an odd number of times, then it must have come from within originally.
The method implements this approach using the mesh bounding box, and then striking a polyline from your test point along a vector that is defined by the upper right corner of the bounding box + a vector of (100,100,100). In the case of your failing points, this is a result of their striking an edge very precisely, which gets counted as 2 hits instead of 1 (as it should be getting captured) and passing false:
Your best bet is probably to roll your own implementation, that tests for multiple vectors:
private void RunScript(List<Point3d> P, Mesh M, ref object A, ref object B, ref object C) {
BoundingBox bb = M.GetBoundingBox(false);
List<bool> inside = new List<bool>();
for (int i = 0; i < P.Count; i++) {
Polyline a = new Polyline(); Polyline b = new Polyline();
a.Add(P[i]); b.Add(P[i]);
a.Add(bb.Max + new Vector3d(100, 100, 100)); b.Add(bb.Max + new Vector3d(100, 150, 150));
int[] fa; int[] fb;
Point3d[] xa = Rhino.Geometry.Intersect.Intersection.MeshPolyline(M, new PolylineCurve(a), out fa); Point3d[] xb = Rhino.Geometry.Intersect.Intersection.MeshPolyline(M, new PolylineCurve(b), out fb);
inside.Add(xa.Length % 2 == 1 || xb.Length % 2 == 1);
checkA.AddRange(xa, new GH_Path(i)); checkB.AddRange(xb, new GH_Path(i));
}
A = inside;
}
…
Added by David Stasiuk at 10:20am on October 10, 2017
Parametrica.Con grasshopper puoi gestire progetti complessi dal punto di vista della forma e dell'organizzazione con un solo strumento , dal design dell'oggetto , allo spazio dell'architetture , all'organizzazione urbanistica.Grasshopper è un software open source , in continuo aggiornamento da parte degli utenti , TRA POCO POTRESTI CONTRIBUIRE ANCHE TU AL SUO SVILUPPO !!!Sabato 11 MAGGIO 2013durata di 6 ore : dalle 10:00 alle 17:00presso : STUDIO REMODESIGN (via dei marsi n° 41)per prenotare chiama il numero : 3498381249oppure manda una mail all'indirizzo : contact@ivoambrosi.itvisita il sito: www.ivoambrosi.it…
hilst settings concern only the currently selected instance.
For instance assume that you are in the Bermuda Shorts business and you want various ideas concerning a new ad campaign:
Or assume that the 4 horsemen want from you to quickly present some concept proposals related with a terminal event that they have in mind:
…
Integer = 0 To 9
val *= 2
lst.Add(val)
Next
Since val is a ValueType, when we assign it to the list we actually put a copy of val into the list. Thus, the list contains the following memory layout:
[0] = 2
[1] = 4
[2] = 8
[3] = 16
[4] = 32
[5] = 64
[6] = 128
[7] = 256
[8] = 512
[9] = 1024
Now let's assume we do the same, but with OnLines:
Dim ln As New OnLine(A, B)
Dim lst As New List(Of OnLine)
For i As Integer = 0 To 9
ln.Transform(xform)
lst.Add(ln)
Next
When we declare ln on line 1, it is assigned an address in memory, say "24 Bell Ave." Then we modify that one line over and over, and keep on adding the same address to lst. Thus, the memory layout of lst is now:
[0] = "24 Bell Ave."
[1] = "24 Bell Ave."
[2] = "24 Bell Ave."
[3] = "24 Bell Ave."
[4] = "24 Bell Ave."
[5] = "24 Bell Ave."
[6] = "24 Bell Ave."
[7] = "24 Bell Ave."
[8] = "24 Bell Ave."
[9] = "24 Bell Ave."
To do this properly, we need to create a unique line for every element in lst:
Dim lst As New List(Of OnLine)
For i As Integer = 0 To 9
Dim ln As New OnLine(A, B)
ln.Transform(xform)
lst.Add(ln)
Next
Now, ln is constructed not just once, but whenever the loop runs. And every time it is constructed, a new piece of memory is reserved for it and a new address is created. So now the list memory layout is:
[0] = "24 Bell Ave."
[1] = "12 Pike St."
[2] = "377 The Pines"
[3] = "3670 Woodland Park Ave."
[4] = "99 Zoo Ln."
[5] = "13a District Rd."
[6] = "2 Penny Lane"
[7] = "10 Broadway"
[8] = "225 Franklin Ave."
[9] = "420 Paper St."
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 6:26am on September 9, 2010
ra' nella finestra di Grasshopper, in alto, insieme agli altri set di componenti come 'Params', 'Maths', ecc.
Si tratta di un esperimento per cercare di ampliare in qualche modo l'ambito di utilizzo di Grasshopper.
Come sappiamo Grasshopper e' nato per consentire l'utilizzo parametrico di Rhino. Le definizioni di Grasshopper permettono di registrare i passi necessari per costruire gli oggetti, nonche' di variare i dati utilizzati dalla definizione, ad esempio oggetti geometrici, lunghezze, angoli, ecc.
Quando modifichiamo i valori utilizzati dalla definizione Grasshopper automaticamente ricalcola il tutto e ci mostra la preview del risultato.
A questo punto, se il risultato e' soddisfacente, possiamo dire a Grasshopper di inserire gli oggetti in questione nel documento di Rhino, cosicche' li vedremo apparire nelle viste come veri e proprii oggetti Rhino.
Questo modo di lavorare ha avuto un grande successo tra gli utilizzatoti di Rhino, rendendo molto piu' agevole la costruzione di oggetti nel caso in cui sia necessario procedere per tentativi, verificando il risultato prima di stabilire la forma finale da ottenere.
Il successo di Grasshopper pero' ha anche mostrato quanto sia comodo poter definire graficamente le procedure di costruzione, e in generale poter utilizzare Rhino tramite i componenti, ad esempio gli slider, che tutti noi, suppongo, vorremmo avere a disposizione anche quando usiamo Rhino nel modo classico tramite pulsanti e comandi.
Quindi col passare del tempo sono apparsi sempre piu' Add-on per Grasshopper che permettono di eseguire operazioni particolari o anche di utilizzare Grasshopper in ambiti diversi dal concetto originale di 'History programmabile'. Accodandosi a questa tendenza, edoc prova a costruire dei componenti che permettano di operare direttamente sugli oggetti Rhino, cioe' curve, superfici, layer ecc. appartenenti al documento Rhino su cui stiamo lavorando. L'idea e' permettere di utilizzare la comoda interfaccia utente di Grasshopper anche per operazioni che solitamente sono eseguite in modo tradizionale con pulsanti e comandi, o anche tramite script.
Come gia' detto, e' un esperimento. I componenti nascono, muoioni e cambiano molto spesso, nel tentativo di capire cosa puo' essere utile e cosa puo' fuzionare o meno.
Segnalazioni di bug, suggerimenti, considerazioni ecc. sono benvenuti.
se qualche anima pia volesse tradurre questa presentazione gli faremo un monumento equestre!
grazie e scusate
gg
…