h 11 returns two values, and the lists with 10 and 6 return one. In any case, I changed the logic a bit.
Check it out in the other vb component. The idea is just to check if the list is odd or even first with the Mod operator. If the lsit is odd, return the middle item in the list as you have set it up. If the list is even, return the mid items also in the same way as you have set it up. I am attaching the edited .gh file, a Class1.cs file which shows in C# how I set up the component (translated vb code will follow), and the .gha I built from it.
The logic should be a bit easier to follow in this version. Check out the edited vb component in the definition for a 'translated version.'
Apologies for the C# ness...I currently do not have Visual Studio Express installed, just Visual C# express. This one is converting just fine to:
Dim list As New List(Of Object)()Dim out_v As New List(Of Object)()Dim out_i As New List(Of Integer)()If Not DA.GetDataList(0, list) Then ReturnEnd IfDim val As Object = list(Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2))))Dim i As Integer = Convert.ToInt32(Math.Floor(Convert.ToDouble(list.Count / 2)))If (list.Count Mod 2) Then out_v.Add(val) out_i.Add(i)Else out_v.Add(val) out_i.Add(i) out_v.Add(list(i + 1)) out_i.Add(i + 1)End IfDA.SetDataList(0, out_v)DA.SetDataList(1, out_i)…
Added by Luis Fraguada at 11:43am on September 2, 2011
思った感じになりません。
balls の代わりにplanarカーブを直接入れてみましたがエラーが出ます。
ファンクションにしてみたところ、forループので作った数値が反映されていません。
ファンクションのインスタンス?を出力していないと思い上記のようにしましたがエラーが出てしまいます。
以上の事から自分の認識が正しいのかよくわからなくなりました・・・
python自体の深いところをわかっているわけではないので余計こんがらがりました。
そこで、for b in ballsはどのような条件または使い方であれば使えるのでしょうか?
そして、上記のように別のオブジェクトに対しての使い方はどのようにすればできるのでしょうか?
2:同じファンクション内のdist = rs.Distance(self.pos,b.pos)についてですが
この文章も for b in balls によってbはBallのインスタンスであると定義?されたためb.posがbの位置であると分かるのでしょうか?
pythonは定義しなくても動いてしまうのでどのような時に使えるのか文章見ただけではよくわかりません・・・
大変細かいことかもしれませんが、よりpythonをしっかりと理解するためにも、どなたかわかる方ご教授いただけると幸いです。…
sinergetici associati alla compresenza simultanea di differenti strumenti di analisi e digital design all'interno di un processo di progettazione in svolgimento. I partecipanti utilizzeranno Grasshopper (modellatore parametrico per Rhino): l'uso di questo editor grafico di algoritmi si integra alla perfezione con gli strumenti di modellazione di Rhinoceros 3D espandendo le possibilità di corstruire modelli parametrici altamente complessi. Per generare una complessità simile saranno utilizzati collegamenti live ai diversi programmi elencati di seguito: . Autodesk Ecotect Analysis via GECO . FEA software GSA via SSI Durante questi intensi 3 giorni, i partecipanti impareranno il workflow dei plug-ins con l'aiuto di esempi esplorando una panoramica dei differenti software, le possibilità di testare le performances di un progetto o l'uso di strumenti addizionali non legati ad un singolo sistema (es. accentuazione, formazione, reazione parametrica) [english text] The focus of the workshop is to integrate and correlate the synergistic effect associated with simultaneous presence of different digital design- and analysis tools in an ongoing design process. The main attention is set on easy to handle interface , which should be used at a early stage of conceptual design to respond to external and internal influences in a intelligent and sustainable way. Participants will use the software Grasshopper as a parametric modeling plug-in for Rhino. The usage of this graphical algorithm editor tightly integrated with Rhino's 3-D modeling tools open up the possibility to construct highly parametrical complex models. To generate this complexity we will use live linkages to several programs listed below: . Autodesk Ecotect Analysis via GECO . FEA software GSA via SSI In this 3 intense days, the participants should learn the workflow of the plug-ins with the help of examples and get an overview of the different software's, there possibilities for evaluating the performance of a design or the usage of additional tools to be not chained to a single system . (e.g. parametrical accentuation, parametrical formation, parametrical reaction) [.] Dettagli : Istruttori: Thomas Grabner & Ursula Frick from [uto]. lingua del corso: inglese (saranno disponibili tutor di supporto ma è richiesta una conoscenza di base della lingua unglese).
Quote d'iscrizione (min 12 max 20 posti): educational* : € 280.00 + iva professional: € 450.00 + iva * studenti, docenti, ricercatori, dottorandi e laureati fino a un anno dalla data di laurea OFFERTA EARLY BIRD SPECIAL: le prime 5 domande di iscrizione pervenute entro il 31 Dicembre 2011 avranno diritto ad una quota di iscrizione scontata del 20% Quote d'iscrizione E.B. SPECIAL: E.B. SPECIAL educational* : € 224.00+ iva E.B. SPECIAL professional: € 360.00+ iva. ulteriori info, dettagli e iscrizioni: http://www.co-de-it.com/wordpress/nexus-advanced-grasshopper-workshop-with-uto.html…
ocessed once Grasshopper is done with whatever it's doing now.
3) Grasshopper tells the Slider object that the mouse moved and the slider works out the new value as implied by the new cursor position.
4) The slider then expires itself and its dependencies ([VB Step 1] in this case, but there can be any number of dependent objects).
5) When [VB Step 1] is expired by the slider, it will in turn expire its dependencies (VB Step 2), and so on, recursively until all indirect dependencies of the slider have been expired.
6) When the expiration shockwave has subsided, runtime control is returned to the slider object, which tells the parent document that stuff has changed and that a new solution is much sought after.
7) The Document class then iterates over all its objects (they are stored in View order, not from left to right), solving each one in turn. (Assuming the object needs solving, but since in your example ALL objects will be expired by a slider change, I shall assume that here).
8) It's hard to tell which object will get triggered first. You'd have to superimpose them in order to see which one is visually the bottom-most object, but let's assume for purposes of completeness that it's the [VB Step 1] object which is solved first.
9) [VB Step 1] is triggered by the document, which causes it to collect all the input data.
10) The input parameter [x] is asked to collect all its data, which in turn will trigger the Slider to solve itself (it got expired in step 4 remember?). This is not a tricky operation, it merely copies the slider value into the slider data structure and shouts "DONE!".
11) [x] then collects the number, stores it into its own data structure and returns priority to the [VB Step 1] object.
12) [VB Step 1] now has sufficient data to get started, so it will trigger the script inside of it. When the script completes, the component is all ready and it will tell the parent document it can move on to the next object (the iteration loop from step 7).
13) Let us assume that the slider object is next on the list, but since it has already been solved (it was solved because [VB Step 1] needed the value) it can be skipped right away, which leaves us with the last object in the document which is still unsolved.
14) [VB Step 2] will be triggered by the document in very much the same way as [VB Step 1] was triggered in step 9. It will also start by collecting all input data.
15) Since all the input data for [VB Step 2] is either defined locally or provided by an object which has already been solved, this process is now swift and simple.
16) Upon collecting all data and running the user script, the component will surrender priority and the document becomes active again.
17) The document triggers a redraw of the Grasshopper Canvas and the Rhino viewports and then surrenders priority again and so on and so forth all the way up the hierarchy until Grasshopper becomes idle again.
[end boring]
Pretty involved for a small 3-component setup, but there you have it.
To answer somewhat more directly your questions:
- The order in which objects are solved is the same as the order in which they are drawn. This is only the case at present, this behaviour may change in the future.
- Adding a delay will not solve anything, since the execution of all components is serial, not parallel. Adding a delay simply means putting everything on hold for N milliseconds.
- [VB Step 1] MUST be solved prior to [VB Step 2] because otherwise there'd be no data to travel from [GO] to [Activate]. The only tricky part here is that sometimes [VB Step 1] will be solved as part of the process of [VB Step 2], while at other times it may be solved purely on its own merits. This should not make a difference to you as it does not affect the order in which your scripts are called.
--
The Man from Scene 24…
Added by David Rutten at 4:43pm on December 10, 2009
l use Rhino 4.0 and corresponding GH version, as a result i could not open your Rhino file.
Hence in your definition as i see,
1) Spring Force-1 -Connection has 11 'inter' components. The inter components do not have any input data and hence 'orange'. What are the inputs for 'inter'?
2) Spring Force - 2 -'Connection'has 1 point component. Rest length & Cut off has 'mass addition' data. This force is also orange, could u throw a light on this please?
3) Pull to surface - both forces has no point input, hence it is orange too. could u throw a light on this too please?
4) There are 2 x Cartesian product components not connected to anything.
I realise that partially it could be because i'm using lower version of Rhino. However, ur input will be highly appreciated.
Kind Regards,
Agneesh…
each circle's border, let us say 1.0
3) So, the curve will end up with 5 points, in each point will have a circle, each circle will have a different Radius, but the distance in between the borders of each circle is always the same = 1.0 in this case.
4) The end result list here would be like this to evaluate a curve with these values and find the points on the curve:
List = 1, 5, 11, 19 etc If I use these values to eval a line, I will get the perfect points where I can draw the circles.
…
e now contains (40x3x11=)1320 points with a branch structure of {0-39,0-2} i.e
{0;0}
{0;1}
{0;2}
{1;0}
...
{39;2}
with each branch containing 11 points.
I now want to create lines from the points on line {x;0} to {x;1}, {x;1} to {x;2}, and {x;2} to {x;0}, which will give me a triangular grid on each triangle. How do i do this? I think I need to split the tree 40 times to give me 40 single layered trees but I imagine there's a cleverer way of doing this!
This feel like it should be simple, but I;m having trouble working with the double-layered branch structure. Any help would be greatly appreciated!
Thanks,
Matt…
keep the same number of branches.
The way I'm doing it now has the inconvenience of only working for this particular number of branches, and I would like a more general way. Do I need a script or can I solve it with components, path mapper, etc?
-Also, and this one is probably simple but I can't seem to figure it out: I have a tree structure as in fig B, and I want to pick out certain series of branches from it, for example {1;0} to {2;11}. (PathGen seems to only go from {0;0} to a specified item?) So I want to be able to plug in a choice of numbers, and dispatch those branches into separate trees/cull them somehow. What am I missing? In general, I've failed to find a way to pick out all of the "uppermost" level of branches, eg {3;x}.
Any help greatly appreciated!…