algorithmic modeling for Rhino
By "array" you mean creating collections of things (Lists/DataTrees). If so, and provided that you have got the gist of data structures in GH ... here's 2 cases where a variety of ways are exposed in order to master "collections" (Lists/DataTrees) for viz purposes and/or for work:
https://www.google.com/url?q=http://www.grasshopper3d.com/forum/top...
https://www.google.com/url?q=http://www.grasshopper3d.com/forum/top...
of course you can find a zillion other similar cases in this Forum.
please look this image i attach
Shark gills is your goal? Pretty easy: get this then (I completely misunderstood the "Array" bit > this usually means ... manage collections of things etc etc etc).
PS: I do hope that GH internalized the sample/demo data (it fails in most of cases).
thank you so much you are so kind but my problem is generate panel on that surface and i think you draw that surface not panel
thanks again
Hmm...from your first image I suspect that you need these "gills" to act as mounting frames for some roof panels...
...but...
... better provide some image(s) more that describe your goal.
PS: is this academic (meaning "abstract" things more or less) or something that is part of a real-life study?
it's academic for my final project ,and expo pavilion ,i want to set panel in this roof surface
OK, your stuff arrived and I've got finally the gist of your issue.
It's very easy but ... some questions first (forget the panels for the moment):
1. What is the level of experience that you have with that GH thing? (send me the most "complex" definition that you ever made for a test).
2. Do you have an abstract definition for these wooden "stripes"? If so posted here (rule of thumb in this Noble Forum : give to take, he he). If you don't ... making this is 10 times more challenging than placing some stupid instances of the same thing. Why may you ask? Well...because the "deformation" of the "stripes" is variable (and therefor some rules must be defined: using attractors? using Karma? using Hope? using ...).
3. I could very easily place instance definitions (blocks) of "panels" between these "stripes" but ... hmm ... using solely C# (i don't like much doing things with components). OK, it's also doable with the orient thing and some other stuff (provided that suitable coordinate systems -planes- are properly defined)... but directly controlling things with code it's far superior. Here's an example that does exactly what you want:
4. If 3 is done and you don't know C#, then ... the "core thing" that does the job could be terra firma for you (and how to explain this to your professor if he asks some questions: what is this thing? what it does? explain to me the code logic ... blah blah).
BTW: I did a fast cut (from a real project of mine) and paste thing. Is this a louver that's OK for the scope? It's a custom aluminum modular thing kinda "like" a standard Alumil M5660 shading system beefed "a bit" to withstand very heavy snow (and workers walking on them, where possible). Modules are rotating via stepped motors (per module) making this a rather absurdly costly way to say hello to Eco-Architecture. Of course you can do a similar system with polycarbonate (in China) as well (but looks and feels cheapo). Notice the double railing system (the top is "removable") for easy installation.
Notice that only one of these things consumes 1.6Mb (Rhino is NOT a solid modeler, nor this is modeled in Rhino anyway) ... thus imagine putting 1K of these things in your roof. Of course the level of detail is way too far from what are you asking ... a simplified "sketch" of that should being used instead. But as an engineer you should ALWAYS solve the details PRIOR thinking the big image (it's called Bottom to Top design approach and the only way to survive these days - compare with the inverse naive way used in the dark ages of Architecture).
I'll prepare a small demo-case (only C# not components) for you (using an "outline" of this demo louver as a block) in order to clarify the technique:
(a) properly create the wooden load bearing pairs by offsetting the curves, lofting them ... and then ... making a BrepFace that can being extruded both sides (see Rhino SDK).
(b) define suitable coordinate systems (planes) sampled (obviously) in DataTree(s) - not Lists. This is not nuclear science but requires some minutes of thinking.
(c) control the rotation of these things (the planes NOT the louvers) potentially on a per stripe-set basis.
(d) place N instance definitions of ONE louver with a PlaneToPlane simple transformation potentially on a controlled amount of wooden pairs (I hate doing things "at-once").
more soon
UPDATE: The Ugly Louver Placer, Part 1
Ugly news: Today is Sunday. Peter (The Merciless) said: why help that girl? Get the 1199 (Google that) and go for a ride.
Bad news: Today is Sunday. Peter (The Good Samaritan) said: well ... since the Ducati won't start (not my fault officer) help that girl.
Good news: Almost ready, well for a pair of curves ... but the rest are bureaucracy than any(?) intelligence(?). Took me 27 minutes, 23 seconds and 45,78 milliseconds using the famous cut and paste method of mine - US patent pending (from other C# stuff, that is).
I hear you: but the planes don't rotate. Well, that's exactly "almost" is used: the rotation logic IS NOT that simple (can you guess the reason?).
How to use it (up to that point - FULL detail Louvers used, he he):
(a) Load the Rhino file first. It doesn't display anything but the Block Manager can tell you a different story.
(b) Load the definition (it doesn't look that impressive at least as regards the graphics, he he) AND read all the comments.
(c) Go there and enable the second script (turn false to true, DO NOT turn false the second boolean flag because the simplified Louver is not yet imported).
(d) Prior changing the geometry via the first C#, disable the script (or keep it active if your computer is fast). But ... if you change the widthOfPanel value ... you'll need CATIA for that I'm afraid (create on the fly the parametric Louver assembly in full detail, in REAL-TIME).
I hear you: where are the wooden things? Well ... that's kid's stuff my dear just extruding a BrepFace both sides (V2 does this).
I hear you: are you saying that you'll make ALL the curves with C# (control their shape individually PER pair) and not just place the louvers into the existing curves provided? Yes that is what V3 does (it's ready but some minor things remain).
I hear you: and what V4 does then? Well ... have faith, he he
All that provided that ... that |$@%@$ Ducati could start (what's wrong with this thing? that's the 1M question).
best, The Troll
UPDATE: The Ugly Louver Placer, Part 2
Good news: Whilst I'm in V5, get the good old V2: it's rather finished as regards the items on a per se basis (this means the basic methods that put this and that in place). Wooden things are made (one thing anyway, but the rest are piece of cake). Panels rotate now (in real time, don't disable the block placer at least as regards the rotation angle). Note: turn OFF Levels that disturb you (like the one related with Axis).
Bad news: the panel rotation policy sucks (because the panels are initially designed in order "to click" each other). Clash issues within the "click areas" appear as well related with the side covers (easy fix: I'll do some redesign ASAP). More soon.
Ugly news: regarding controlling the whole topology (i.e. the fully parametric deployment of ALL beamAxis Curves (edit C# ) ) ... well that's challenging because GH is not designed having in mind individual control of items in collections (Lists, Trees etc). 99% of the posted cases/questions/examples that I see here are cases where people are applying some kind of "global" logic - like using some attractors or some other kind of stuff. In this case (and in 99% of typical purely engineering cases, that's not good enough).
Anyway, It's doable but requires some re-thinking.
PS: Obviously this case address the other question of yours related with the vertical panels - the one that David R replied as well (but can Rhino "stretch" blocks in one direction? I'll investigate that one).
PS: of course the carriage (and the wheels) rotates with the panels as well (rather stupid) ... but that is fixed in V5 by using a far more elaborated block structure , he he
best, Peter
UPDATE: The Ugly Louver Placer, Part 3
Some steps before V6 (this weekend, I do hope so). A lot of variables (and the 2 design modes: create/modify) added (but they don't work, he he).
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by