will work slightly different from before. Sorry about breaking this, but it proved impossible to improve the selection logic with the fairly ambiguous notation that was implemented already.
Not every change is breaking though and I hope that most simple matching rules will work as before. There will be a McNeel webinar on Wednesday the 6th of November where I discuss the new selection rules (as well as path mapping syntax and relative offsets within one or more data trees). This will be a pretty hard-core webinar aimed at expert users. The event will be recorded so you can always go and watch it later. I figured I'd briefly explain the new selection rules on Ning before I release the update though.
-------------------------------------------------------------------------------
Imagine we have the following data tree, containing a bunch of textual characters:
{0;0} = [a,e,i,o,u,y] {0;1} = [ä,ë,ê,ï,î,ö,ô,õ,ü,û,ÿ,ý] {1;0} = [b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z] {1;1} = [ç,ĉ,č,ĝ,ř,š,ş,ž]
There are a total of four branches {0;0}, {0;1}, {1;0} and {1;1}. The first branch contains all the vowels that are part of the standard English alphabet. The second branch contains all non-standard vowels and branches three and four contain the standard and non-standard consonants respectively.
So what if we want to select from this tree only the standard vowels? Basically include everything in the first branch and disregard everything else. We can use the [Tree Split] component with a selection rule to achieve this:
{0;0}
This selection rule hard-codes the number zero in both tree path locations. It doesn't define an item index rule, so all items in {0;0} will be selected.
If we want all the vowels (both standard and non-standard), then we have several options:
{0;?} = select all branches that start with 0
{0;(0,1)} = select all branches that start with 0 and end in either 0 or 1
{0;(0 to 1)} = ......................................... and end in the range 0 to 1.
Conversely, selecting all standard vowels and consonants while disregarding all non-standard character can be achieved with rules as follows:
{?;0}
{(0,1);0}
{(0 to 1);0}
It is also possible to select items from each branch in addition to limiting the selection to specific branches. In this case another rule stated in square brackets needs to be appended:
{0;?}[0 to 2]
The above rule will select the first three vowels from the standard and the non-standard lists.
Basically, rules work in a very consistent way, but there are some syntax conventions you need to know. The first thing to realize is that every individual piece of data in a data-tree can be uniquely and unambiguously identified by a collection of integers. One integer describes its index within the branch and the others are used to identify the branch within the tree. As a result a rule for selection items always looks the same:
{A;B;C;...;Z}[i] where A, B, C, Z and i represent rules.
It's very similar to the Path Mapper syntax except it uses square brackets instead of parenthesis for the index (the Path Mapper will follow suit soon, but that won't be a breaking change). You always have to define the path selector rule in between curly brackets. You can supply any number of rules as long as you separate them with semi-colons.
The index rule is optional, but -when provided- it has to be encased in square brackets after the path selection rule(s).
The following rule notations are allowed:
* Any number of integers in a path
? Any single integer
6 Any specific integer
!6 Anything except a specific integer
(2,6,7) Any one of the specific integers in this group.
!(2,6,7) Anything except one of the integers in this group.
(2 to 20) Any integer in this range (including both 2 and 20).
!(2 to 20) Any integer outside this range.
(0,2,...) Any integer part of this infinite sequence. Sequences have to be at least two integers long, and every subsequent integer has to be bigger than the previous one (sorry, that may be a temporary limitation, don't know yet).
(0,2,...,48) Any integer part of this finite sequence. You can optionally provide a single sequence limit after the three dots.
!(3,5,...) Any integer not part of this infinite sequence. The sequence doesn't extend to the left, only towards the right. So this rule would select the numbers 0, 1, 2, 4, 6, 8, 10, 12 and all remaining even numbers.
!(7,10,21,...,425) Any integer not part of this finite sequence.
Furthermore, it is possible to combine two or more rules using the boolean and/or operators. If you want to select the first five items in every list of a datatree and also the items 7, 12 and 42, then the selection rule would look as follows:
{*}[(0 to 4) or (6,11,41)]
The asterisk allows you to include all branches, no matter what their paths looks like.
It is at present not possible to use the parenthesis to define rule precedence, rules are always evaluated from left to right. It is at present also not possible to use negative integers to identify items from the end of a list.
If you want to know more, join the Webinar on Wednesday!
--
David Rutten
david@mcneel.com
Seattle, WA…
Added by David Rutten at 8:57pm on November 3, 2013
mp; fabrication and construction into a new era of architecture.
Register HERE
We follow three lines of thought to translate structural design in material fabrication. The first ultra lightweight, rethinking shape and material, the second dealing with same single material components, aggregated within a network, working with directionality of the elements and their connections to perform stability and for the third we will rethink definition of the brick.
Our Translations will be designed, analysed and presented in both digital and physical prototypes; from table top models, to 2m high structures.
The use of Grasshopper, Karamba and Digital Fabrication tools drive our evolutions of design. Structural design allows us to play with the type of forces in elements, orientation, force flow, geometry, restraints and connection. We use this structural behaviour to inform the search for new links between materiality, form and construction, progressing towards a unique relationship of structure, construction and fabrication.
Our Translations will be presented, through digital and physical prototyping showcasing the process of linking digital and physical inputs as a continuous feedback loop, rethinking structural design and material fabrication.
…
e HelloWorld function should need no argument but return the string “Hello World”.
Help on method-descriptor HelloWorld
| HelloWorld(...)
| HelloWorld(self: MyClassLibrary) -> str
Can anybody help?
Sourcecode MyClassLibrary.vb:
Simple Class Library Project in Visual Studio 2015
Function has no parameters and Returns String „Hello World“
Compiled *.dll works fine in other Visual Studio Projects as reference
Project Properties
Checkbox „COM Interop“ has no impact
…
r Material Science and Ligaproduction.
The exhibition started on May 12th and will be presented until August 19th 2012.
What is the meaning of »modular«? Essentially, everything in the world consists of a com- bination of elements, thus, of modules. As the basic building block of the elements, an atom forms the smallest unit in a structure’s totality. It is part of a whole, serving as a model for decoding and making comprehensible complex systems. In many disciplines, for instance in music, the sequence of smallest common units derives from an ordering prin- ciple, a rhythmic spacing, and from an aesthetic whose modular structure has both regular and irregular proportions.
In architecture, the module and modular construction have been governing principles for thousands of years. Primates use twigs as construction components for their dwellings, si- milar to the more familiar birds’ nests. During the course of biological and cultural evolution, refined methods of connecting components have been developed. Increasingly sophisticated construction techniques have evolved parallel to the tools, construction equipment and weapons available, as well as to the construction materials and support systems that were chanced upon or invented.
Ever since the earliest settlements thousands of years ago, the module has defined construction. Its dimensions, production and assembly have developed from preindustrial craft techniques to the construction of buildings, arising with the invention of the steam engine and leading into the Industrial Era. The first computer in the 1930s marked another technological leap. So what possibilities does the computer offer today’s architects for de- sign and construction?
While industrial manufacturing methods still require a critical amount of similar elements for mass production, the use of computers increasingly facilitates construction based on customized production of short-run elements with individual formats and complex geome- tries. At least that’s the theory. Computer-controlled machines and robots cut and stack structural components according to drawings – i.e. data sets – developed by designers and producers. Thanks to these technologies, architecture in the digital age is experiencing an evolution in construction and modules. The pioneers in this area are the projects developed at academic parametric design research units.
This exhibition features various examples from the development of digital technologies, presented in their historical context and categorized according to material: wood, stone, concrete, metal and synthetics. The »Housing Modules« excursion presents a selection of special urban planning systems as a series of space modules.
The historical modules each represent a paradigm shift in the evolution of an individual material. Since modules offer a tremendous wealth of opportunity, this section does not attempt to deliver the full picture: rather it intends to serve as an inspiration for further exploration.
In keeping with the Architectural Particles theme, the exhibition’s architecture consists of a modular system of tetrahedrons and octahedrons. The resulting crystalline shapes high- light the connection to nature while recalling modular construction systems from various architectural eras.…
greatly appreciate it!!
You can write the number of the question and write your answer next to it, example:
1) a
2) c
3) a) Washington University in St. Louis
4) 2 weeks (1week+1week shipping)
5) 130
6) b
7) b
The survey questions are as follows:
1)
Did you 3D print before?
5)
How much did it cost (in dollars)?
a.
Yes, for a school project
a.
Between 20 & 50
b.
Yes, for a personal project
b.
Between 50 & 80
c.
Between 80 & 120
2)
Print size
d.
Please specify if otherwise: _____ dollars
a.
Between 2 & 6 cubic inches
b.
Between 6 & 12 cubic inches
6)
Do you think the price was expensive?
c.
Between 12 & 20 cubic inches
a.
Not at all
d.
Please specify if otherwise: ____cubic inches
b.
A little bit expensive
c.
Very expensive
3)
Where did you print your object?
a.
School
7)
Were you satisfied with the printed object?
b.
Outside school: _________________
a.
Yes, it was a great print without problems
b.
Not bad, some issues
4)
How long did it take to print?
c.
I was not satisfied, very bad quality
a.
___ days
b.
___ weeks
Thank you very much to all!!
PS: If you did many 3D prints, you can post multiple answers.
Wassef…
whole design intent, but this is what Inventor is good at. The way it packages bits of 'scripted' components into 'little models' that can be stored and re-assembled is central to MCAD working.
The Inventor model shown is almost 5 years old. We don't model like that any more, however it does offer a good idea of general MCAD modeling approaches.
iParts is useful in certain situations, it could've been useful in the above model, its usefulness is often in function of the quantity of variants/configurations.
So much is scripted in GH, maybe it should also be possible to script/define/constrain/assist the placement/gluing of the results?
...
Starting point: I think we are talking across purposes. AFAIK, the solving sequence of GH's scripted components is fixed. It won't do circular dependencies... without a fight. The inter-component dependencies not 'managed' like constraints solvers do for MCAD apps.
Components and assemblies are individual files in MCAD.
Placement of these within assemblies in MCAD is a product of matrix transforms and persistent constraints. There is no bi-directional link, the link is unidirectional (downflow only), because of the use of proxies.
Consequently, scripting the placement of components is irrelevant in GH, unless you decide that each component needs to be contained in its own separate file.
This also brings up the point that generating components and assemblies in MCAD is not as straightforward. In iParts and iAssemblies, each configuration needs to be generated as a "child" (the individual file needs to be created for each child) before those children can be used elsewhere.
You notice the dilemma, if you generate 100 parts, and then you realize you only need 20, you've created 80 extra parts which you have no need for, thus generating wasteful data that may cause file management issues later on.
GH remains in a transient world, and when you decide to bake geometry (if you need to at all), you can do that in one Rhino file, and save it as the state of the design at that given moment. Very convenient for design, though unacceptable for most non-digital manufacturing methods, which greatly limits Rhino's use for manufacturing unless you combine it with an MCAD app.
One of the reasons why the distributed file approach makes perfect sense in MCAD, is that in industry you deal with a finite set of objects. Generative tools are usually not a requirement. Most mechanical engineers, product engineers and machinists would never have any use for that.
The other thing that MCAD apps like Inventor have, is the 'structured' interface that offers up all that setting out information like the coordinate systems, work planes, parameters etc in a concise fashion in the 'history tree'. This will translate into user speed. GH's canvas is a bit more freeform. I suppose the info is all there and linked, so a bit of re-jigging is easy. Also, see how T-Flex can even embed sliders and other parameter input boxes into the model itself. Pretty handy/fast to understand, which also means more speed.
True. As long as you keep the browser pane/specification tree organized and easy to query.
:)
Would love to understand what you did by sketching.
I'll start by showing what was done years ago in the Inventor model, and then share with you what I did in GH, but in another post.
Let's use one of the beams as an example:
We can isolate this component for clarity.
Notice that I've highlighted the sectional sketch with dimensions, and the point of reference, which is in relation to the CL of the column which the beam bears on. The orientation and location of the beam is already set by underlying geometry.
Here's a perspective view of the same:
The extent of the beam was also driven by reference geometry, 2 planes offset from the beam's XY plane, driven by parameters from another underlying file which serves as a parameter container:
Reference axes and points are present for all other components, here are some of them:
It starts getting cluttered if you see the reference planes as well:
Is I mentioned earlier, over time we've found better ways to define and associate geometry, parameters, manage design change, improving the efficiency of parametric models. But this model is a fair representation of a basic modeling approach, and since an Inventor-GH comparison is like comparing apples and oranges anyways, this model can be used to understand the differences and similarities, for those interested.
I haven't even gotten to your latest post yet, I will eventually.…
Added by Santiago Diaz at 10:36am on February 26, 2011
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!…
of the new challenges presented to the society and architecture in Portugal. With technological developments, tools once limited to not creative areas begin to be part of the everyday life of students in University Architecture Laboratories and change its design processes. The architecture design methods are changing rapidly with the introduction of CAD-CAM software’s. In recent years, new software’s have been available for 3D representation and digital fabrication, which have allowed creating new ways of interacting with the computer and architecture. Contemporary architecture in its various scales, seeks greater flexibility, adaptability and interactivity taking into account both the means and goals of kinetic systems. Thus, it is essential to the creative industry players to acquire new knowledge about the latest technological innovations and how they can solve some of the problems and challenges of today’s society.
The workshop will explore the use of Grasshopper, Firefly and Arduino as creative and technical tools in all the design process, to simulation and prototype 3D interactive architecture solutions.
The theoretical and practical workshop (64 hours) taught in English and Portuguese, will be composed of two modules: (1) LS_01: Firefly +Grasshopper + Arduino and Scale Model Fabrication; (2) LS_02: Design Studio – Discursive Wall.
This workshop is intended for students and professionals from different areas of knowledge, (architecture, design, fine arts, engineering, music and programming) who are interested in the process of design: from ideation to prototyping. The participants will generate scale models.
Registration is limited to 20 participants with or without software knowledge. Participants will work individually and in group. Participants must take their own laptops to the workshop. Registrants should complete the form by 28 February 2012. Once registered, you will receive an email confirming your acceptance.
Questions or doubts contact us:
alivingsystem@gmail.com
…
Added by Brimet Silva at 7:07pm on January 16, 2012
rendo posizioni lavorative fino a qualche tempo fa impensabili. Questo nuovo approccio ha infatti la caratteristica di avvicinarsi alla programmazione informatica, ma con un approccio facilitato grazie ai componenti visuali.Hai bisogno di un motivo in più per usare Grasshopper? Eccolo! Trattandosi di uno strumento ancora in fase di testing (anche se perfettamente funzionante) l’applicativo è completamente gratuitoScarica la tua versione e inizia subito ad usarlo!Corsi certificatiLe lezioni sono tenute da Antoni(n)o Marsala, docente certicato McNeel, con alle spalle oltre 5 anni di esperienza nell’insegnamento di Rhinoceros. Negli ultimi anni abbiamo tenuto in grande considerazione l’evolversi di questo plugin e abbiamo deciso di investire sulle sue potenzialità.Nel Febbraio del 2011, grazie ad Antoni(n)o Marsala, è uscito Algoritmi Generativi, edizione italiana del libro di Zubin Khabazi Generative Algorithms with Grasshopper. Entrami sono scaricabili gratuitamente e rappresentano dei validi strumenti per capire il mondo di Grasshopper.Da diversi mesi inoltre, il Mandarino BLU, ha attivato una collaborazione con La Bottega di Galileo di Pisa, officina del libero scambio di idee, presentando dei progetti formativi post universitari, per coloro che vogliono entrare nel mondo della progettazione di nuova generazione.Dalla collaborazione con Multiverso, nasce invece un progetto formativo più ampio sviluppato a Firenze in via Campo d’Arrigo 40rLeggi il nostro programma didattico o scarica la versione in pdf…
2:
-Developing the winning design into a working application -Testing -Beers and BBQ
Details:
-Tutors: Gregory Epps, RoboFold founder, Florent Michel RoboFold software developer. -See previous workshops here. -Download Poster here.
-Please install Rhino5 and Grasshopper and Godzilla before this event.
-No previous experience with Grasshopper necessary. -Hours: 10am-6pm. -Location details: here.
***COMPETITION: THE BEST USE OF GODZILLA GETS A FREE PLACE***
Judged on creativity and practicality. Submit your name, association and a link to your video to robots@robofold.com We add an additional place for the winner. Flights, accommodation etc are not free...
Join us for the first Godzilla robot workshop - experiment with the easiest robot software on the Grasshopper platform.
More details and resources on: http://www.grasshopper3d.com/group/godzilla
Workshop Fee:
Student: £ 399
Professional: £ 599…