y interesting and smart way to construct surface. I tried some experiments out using a similar idea - take a developable surface which has a series of holes cut through it now offset that surface and unroll both of them, once both have been cut out insert a dowel into the holes (the dowel represents the offset distance). In the end the shape is recreated via tension and in that way there are some similarities. With your concept the thing I have trouble figuring out is how do you cut the variable angle kerfs. Are you using a 5-axis swarf cut, a cnc panel saw - how do you control this? It would be great to have a set of constraints which limit the number of possible angled cuts - these limits would equal the number of v-groove bits you have in the cnc - and then you could just cut the lines with the programmed tool which matches the given angle. Or maybe I am completely wrong, now I think I am wrong, about the execution and you are only changing the gap between each kerf and the angle of the side wall stays constant.
Anyway to answer your question catia can analyze the characteristics of a piece of formed material (this analysis is usually applied to sheet metal and to design forming tools)it's just a matter or defining the material to match that which you are using. Another possibility although not as numerically clear is using a simulation tool like Maya cloth or Virtools. I know this maybe less likely but you can define all sorts of materials in Maya and then simulate their behavior under numerous forces and constraints. I think it would work it's just how do you extrapolate the values Maya needs and then correlate them back into the cloth parameters. Once it yields the final formed mesh then further analysis could be performed in cosmos, ansys, or catia.
I have one other suggestion. In solidworks if you perform a lofted bend on a sheet metal part and then generate a flat pattern it creates a large set of bend lines representing how to perform the bending of an unusual shape using a metal brake. It seems like those bend lines could be machined with you technique to create lofted forms instead of extrusions.
What materials seem to work best so far, have you only been using wood (the purple stuff is probably not wood)?
If you are ever in Los Angeles I have a shop with a 3 axis and 5 axis router, a large vacuum bag, and all the other things to experiment on this and would be open to this.…
which needs to go in the first line only.
Each value K is one element of the knot vector
XYZ is an individual control point. Each point gets its own line/string in the output list
R is the weight of the XYZ point defined in the same line
I can get all these data into separate lists easily enough using the buttons etc. But getting them into the proper order and moving stepwise down the data to generate the desired output string list is eluding me so far.
My thought is to make an array of columns.
Column one is a list of knot values.
Column two is a list of X values.
Column 3 = list of Y values
Column 4=z values
Column 5 is weight values
etc
The idea would be to read the first value in each list into a list of five elements, then make a string out of it. The second value of each column into a separate string on the next line, then the third value from each column into the third string in the output list and so on.The last few values in the output list will contain knot vector elements only, as there are more of these than there are control points. Some of these curves are very long, with many control points, like hundreds and hundreds.
It seems I should be able to pull the lists of interest and combine them into a tree somehow; so far all I have been able to manage is to get them into a single list by starting with control points, then weaving each list of interest successively into the growing list. I'm thinking I need to get the list for each parameter into an individual branch, then read a path across the branches at each index value. But I am missing something about the terminology. I have watched a few videos and it makes sense when people are pulling nested geometry out of models, but this is a little different. More of a data management issue. I'm sure if I wrestle with it I will get it, but it may not be pretty. Any pointers appreciated. A couple of approaches are attached. Not sure whether to loop a list subset through the data or do something else. Thanks,
Karl in LA…
t you're trying to do something which is not possible. Some solutions spring to mind other than changing the messaging behaviour of the Tree Item component:
Have an option for all objects (not just Tree Item) that allows you to disregard warning and error feedback. Sometimes a component has warnings (or indeed errors) and yet it still functions as planned. This often also happens with auto-casting, for example if you're trying to find all the curves in some data. Pros: solves the same problem in the same way everywhere, Cons: yet another menu item and yet another thing to watch for.
A global switch that disables the warning and error colouration. Pros: easy fix, easy unfix. Cons: if you also disable message balloons then you can't see where errors are happening.
Add a component which filters valid paths and item indices which you could insert in front of the Tree Item component. Pros: a very Grasshopper standard solution, Cons: yet another esoteric component.
I've been thinking about changing the way branches and items are accessed. Basically wondering whether it makes more sense to combine the tree path and the item index into a single data-type "{0;0;2} (0 to 9)" which defines both the path and a range of items in that path. It could be made to work almost identical to current Tree Branch and Tree Item components but it could also do some other cool stuff in addition to that. For example you could have:
{0;0;1} which defines all the items in that branch
{0;0;1} (2) which defines the third item in that branch
{0;0;1} (0,1,2,4) which defines the first, second, third and fifth items in that branch
{0;0;1} (0 to 4) which defines the first 5 items in that branch
{0;0;1} (!3) which defines all items except the fourth in that branch
And I'm sure people can think of even more combinations of symbols and numbers that can be added. Most of this logic is already in place in the [Replace Branches] and [Split Tree] components.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 12:58am on January 27, 2013
e in Euclidean space then the distance metric can be discontinuous:
Discontinuous means that a tiny change in input may result in a large change in output. Observe the image above, we start measuring euclidean distances from point A. At first the process appears to be continuous. We measure at distance b and we get point B. We increase the distance slightly to c and we get point C, which is very close to point B. We increase the distance slightly again to d, but now suddenly we're in a completely different location. This jumping behaviour can mean that certain questions (such as: "how do I divide this curve into 4 points, all equally far apart?") do not have an answer. It could be possible for 3 and 5, but not 4.
Another problem is that there may be multiple solutions. In the image above the point D isn't the only point that is d units away from A and coincident with the curve. There may be any number of those points depending on the shape of the curve, the location of A and the value of d. And of course once you have two (or more) solutions, you can have two (or more) answers. Then each of those solutions may yet again have more than one outcome for the next point in the chain and before you know it the question you asked has 35295 different answers and good luck trying to find one you like.
Now of course sometimes it is possible to answer your question unambiguously. I made a solution that uses Galapagos. It's pretty slow, and it'll get slower the more segments you want:
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 4:26am on September 9, 2013
rid that works on the left and/or right edge of the components, so that it's easier to align them (similarly to the align functions that show up when multiple objects are selected)
Overall, I think we'd just need a basic grid for alignment, so whatever is easy/quick to implement might be good enough.
4) great, I didn't know about aliases - that pretty much answers my question.
Related to this, when I press F4 and search for a component, if the mouse/pen pointer is above the list, when I press enter Grasshopper will insert the component under the pointer, and not the one I have found with the keyboard. Am I missing something? In case could it be fixed?
As a side note, at the moment the keyboard focus is always on the Rhino Command Line. Would it be possible to optionally change the focus when the Grasshopper window is active so that we can insert new components just by typing, without pressing F4 or doubleclicking? I just find myself constantly using the keyboard to insert components, so that'd be a very nice timesaving.
5) Your idea would be great to manage complex panels and I think would be very nice to have.
However I was thinking of a different workflow, that could be useful - for instance - when working with several objects in Rhino that are referenced in Grasshopper as basis to create more complex objects.
For example: I have three different surfaces that are used to create framed grille elements. It would make sense to select these surfaces in Rhino and access to a panel that shows the element properties (for example frame dimensions, type of grille, etc.) - similarly to the property panel in Rhino.
Additionally, If I need to create a new grille element from another Rhino surface, I could just duplicate the RPC component along with the definition without the need of manually publishing all the parameters to a new RPC group. I hope this makes sense.
I understand this may not be an "urgent" feature, however I find that working with RPCs is very pleasant so I'd really like to see this feature expanded in some way :-)
6) Just perfect :-)
Thanks again David!
Marco
…
r planet Utopia?
2. In what sort of animal these "shaders" are to be used? Meaning that designing a "Viz" control for 2345,67 mini-membranes is one thing and doing it for your house is a totally different challenge. In plain English: it's more than possible to hit the Wall if lot's and lot's of items are invited to the party (you bring the girls and I'll provide the Vodka).
3. Do you like the idea of completely separating (on a spatial basis) input/viz control (what is on display and on what level of "detail") from the core logic (i.e. components). Pros: obvious, Cons: obvious.
4. Is this def planned as a "constant" evolution thing? Meaning that using, say, the mapper isn't the best idea if your input goes from {a;b;c} to {a;b;c;d;g;...;z}.
5. Have you any - even academic - plans (see 1) to walk the walk up to the end?. Meaning talking to Birdair/Taiyo Kogyo etc etc ( http://www.birdair.br.com/ ). If yes be prepared because these fellas work a bit differently as regards potential collaboration and feedback at design phase.
BTW: the thing that would change the world as you know it:
http://www.birdair.br.com/tensileArchitecture/tensotherm.aspx
best, Peter
…
rder to deal with the contents of the MERO structure (like glass, panels, polycarbonate). That is what the C# does already.
3. Vectors (a la "Umbrella" sticks) in order to place correctly your MERO nodes (the "hexagon" brackets - so to speak). That is what the big C# (the one that I've send to you some time ago) does already.
4. Calculations (lengths, angles) for each node against the other related nodes and the points derived from dividing the MERO square "tubes". For a given node these points are variable (from 2 [when in the "bounds" of mesh] to 6 ["typical" middle point, so to speak].
5. Demo block instances in order to see first hand what GH can actually do (that's WOW stuff: you slide a slider and "several" real-life components are placed in 3d space in real-time, he he).
6. Node connectivity data for the obvious (assembling the MERO on site).
7. Some assembly "simulation" capability (we do this today and this tomorrow ...)
So forget the single carrot (plenty carrots for you soon) for a while and answer to the most critical question: Based on what you've displayed to me (Skype) what is your policy against the MERO node itself?
I mean: we don't deal with a classic MERO ball type here (meaning variable drilling axis per ball). Meaning that the "hexagon" bracket (if I may use the term) IS VARIABLE. Meaning: you need a "module" that can being adapted against "every" possible (logical) angle value? (and compose the bracket?) Or you gonna fabricate the "brackets" on a per node basis?
And what if we had a planar glazing system? (same principle, more expensive, 100 times more WOW).
BTW: The best man in the world to do "similar things" with "hinged" custom aluminum systems (like doing the blue facade that you've displayed to me with some semi structural/structural system) he's a very close friend of mine. He's based in Dubai UAE.…
ts (other than Kangaroo - if required). Anyway notify if you want some taste of them (but they are a bit "chaotic" : too many parameters etc etc ...). Warning: Almost all are written with MCAD apps in mind: GH is used SOLELY as a graphical editor/topology solver and just makes the simplest instance definitions possible in order to send them (via STEP) to some MCAD (Frank G uses CATIA/Digital Project as you may probably know, CATIA is my favorite toy as well) for actually designing the components and composing the whole.
2. "Equality" in modules (panels/glass/lexan) it's not an issue (other than aesthetics). I mean cost wise since modules are prepared via CNC these days. I wouldn't suggest to waste your time with "equality" puzzles and completely ignoring the big picture (real-life) that is FAR and AWAY from aesthetics. I mean: assume that I of someone else or Daniel can "equalize" things (up to a point): Is this sufficient for designing a similar real-life solution? In plain English: don't get occupied by the tree and ignore the forest.
3. As regards the frame in most of cases some MERO type of modular system is used: either a "flat" dome-like arrangement or a classic spaceframe or a hybrid system [push: tubes, pull: cables]. Hybrids are the most WOW (and costly) for obvious reasons. When properly done (and combined with a planar glazing system) THIS is the star of the show.
4. As regards the skin we use either "hinged" custom stuctural/semi structural aluminum extrusions (they can adapt to different dihedrals up to a point) or classic custom planar SS16L systems that also can adapt to dihedrals. A custom planar glazing solution is hideously expensive, mind (say: 1K Euros per m2).
5. Smart Glass tech (changes light transmission properties under the application of voltage) is gradually penetrating the market especially in future bespoke designs.
So in a nutshell: these are "pro" territory - if I may use the term, thus I don't expect to find ANY similar "turn-key" solution in the very same sense that you can't find a tensile membrane turn-key solution.
Meaning that practices that can do it ... er ... they keep the cookies for themselves. …
rder in which these polylines are drawn is not important (correct me if this is not the case).
2. We explode the polylines. This outputs all the line segments and all the endpoints (both groups with duplicates inside them). So we have 204 lines (including duplicates) and 246 points (including duplicates). We flatten both outputs in order to get 2 simple lists.
3. We use [dupPt] to remove all duplicates from the points list. So we get a list of all the nodes with each node contained one time, so we have 108 points.
3a. We can use [pointList] to display the index of each node on screen.
4. For each line segment we find the 2 endpoints and put them together in a list. So we have 204 lists with 2 points each. (We graft the list of lines so that the endpoints of each one will be in a different branch/list)
5. We use [closestPoint] and so for each endpoint we get the index number of the corresponding node. So we have 204 lists with 2 indices each.
6. We get each couple of indices and join them as text with a comma separator. (We flatten the data so that we have a single list with 204 texts)
7. BUT some of these 204 texts are duplicates (because they originate from duplicate lines), so we use [cSet] which returns the unique values from a list. So we end up with a list of 180 texts (one for each unique line). Instead of using [cSet] you could also eliminate duplicate lines using kangaroo's [dupLn] (which is the equivalent of [dupPt] but for lines) before step 4.
Hope it is more clear like this. I am not sure I understand what you mean by "But they are not connected in the order to form the tessellation.". If you still have problems with the definition please explain this a little better.
cheers, Nikos
…
ts (NOT meshes) using my (still WIP) BallPivot thingy (still highly temperamental despite wast quantities of Vodka consumed - in the Name Of Science, what else?):
Watch this Forum for the forthcoming mother of all threads : Get Points > Do Something.
On the other hand (real-life):
1. A truss without connectivity is nothing.
2. A truss without clash defection is nothing.
3. A truss without instance definition(s) is more than nothing.
4. A truss without (rather very complex that one, mind) roof/envelope stuff is nothing + pointless.
5. Mesh from points without a 1000% working ball pivot thingy is like 3rd marriage.
And as you'll discover this Monday ... well ... "some" things would be MIA from the definition.
Other than that:
For Chap, David, Angel and anyone else interested on these freaky things (get points do something, that is).
Do you people think that this (mode: dense [yellow stuff] ) has any meaning?
VS that (mode: hex):
I mean for the truss itself not the roofing paraphernalia. Notice that in this handsome hex mode we've already achieved max rigidity since we deal with tetrahedral stuff.
PS: My aunt Drusilla finds the dense mode ... utterly pointless (and a bit disgusting).
That's friends is the 1M question.
…