he time to work with it.
the project is about facade strips which turns along height. the top angle is
parallel to the facade and the bottom is max. 90 degrees twisted, but the strips
should turn diffrently to achieve more dinamic look.
first i have tried to achieve this by calculating distance between the rotation angle from points of the grid and a single point.
then i have tried to ad some more effecting points and used the distance to the divided surface (the circles are just to control the area of effection):
i manually lofted it.
the result is a bit annoying becouse the points that effect the angle are always visible:
i have triend to solve this by drawing a line and divided it to recieve points along the bottom of the geometry. the result is not working properly:
Anyway,
there must be a better/smoother way to achieve this. i would like to effect the twist of the surfaces by distance to a spline, but im just lost. can you help me please?
the problems im encountering:
0- distance spline to grid to effect the angle
1- list of x/y coordinates and angle of rotation for each point of the grid
2- export points to excel
3- lofting lines in one direction only (x1, x2, x3...)
4- reduce the list data to 2 decimal (0,00)
5- maybe angle from radian to degrees
thx…
have some spare time please fill in my 3D Printing Open Survey - If you could make almost anything, what would it be ? Updated results are publicly available after completing questionnaire (Please press "Wyślij" - Send button and "Wyniki ankiety" - Results button at the end). This survey will be used to evaluate demand for 3d printing services globally. It consist of 30 questions about: - open-source 3d printers - future of additive manufacturing - 3d printing services - ecology in 3d printing - copyright issues and 3d printing Three example questions: 2. Which of the following 3d printing applications is the most interesting? * - Things personalization - Printing food - Attempts to print structures resembles in functioning living tissues or blood vessels - Creating impossible or difficult to create by using conventional technology things - Printing rooms or buildings on earth/moon - Printing chemical compounds (for example drugs) - Using in renewable energy sources - Printing parts and/or mechanical vehicles 3 . Have you ever heard about cheap DIY 3D Printers (for example RepRap, PrintrBot, MakiBox A6) ? * DIY - Do It Yourself - Yes - No 4 . When 3D Printers will become one of the typical household appliances ? * - After 5 years - After 10 years - After 15 years - After 20 years or later - Never - I don't know Feel free to ask questions!…
assume we want to format two numbers, one integer and a floating point value. The integer represents an index and it should appear inside square brackets, then we want the floating point number rounded to a maximum of 4 decimal places (but always using at least one decimal place, even if it's zero), and then, in parentheses a scientific notation representation using 8 decimal digits of the number.
So, assuming the index is 16 and the value is 47.280006208, what we are after is:
[16] 47.28 (4.72800062E+001)
To make this work, we need a formatting pattern that looks like:
[{0}] {1:0.0###} ({1:E8})
The square brackets, spaces and parenthesis are just part of the output, they have no meaning whilst formatting. Everything inside the curly brackets though will be replaced with a specific formatting of one of the values.
When using the Format component as shown above, the formatting pattern is just text data. The component knows that it is supposed to use the Format() function using the pattern text and whatever additional data is provided.
When you invoke the Format() method in an expression, you do need to make sure that the pattern is actually text:
So here the pattern needs to be encased in double quotes, otherwise it will be treated as code, rather than text.
You cannot use the formatting method in the internal expression of a number parameter, because this method returns text, whereas the number parameter is only capable of storing numbers. Any expression that you put into a number parameter had better return numbers as a result.…
finite element line with
start point
end point
id
cross-section (optional)
local coordinate system (optional)
some property (optional)
some other property (optional)
additional settings (optional)
etc
Now in 99% of the cases, users will only specify the first 4 parameters and leave the others blank. I'm not a huge fan of to many inputs so to clean up the canvas/components, I thought about exposing the optional parameters only upon zooming in on the component.
So far I've sometimes added a secondary component with more inputs to specify a list of additional settings (similar to the "settings" panel that exists/existed in Kangaroo), but this I find rather messy.
Alternatively I guess I could quite happily live with exposing the additional parameters at the click of a button. This I can do with the ZUI as it is written? I still need to get my head round what's what in this happy world of the canvas' third dimension...
…
e the meaning or posting "ready" (kinda) solutions in response to something asked in the code related forum? (that could be rather ridiculous: Greetings code freaks: a user - that you've never heard of - asked this and I did that ... utterly ridiculous).
Now .. if a request comes from a novice either a component based solution or a freaky one ... well ... they have a very limited usage (if any usage at all) on a per se basis: because only time combined with a certain experience could yield the required ability to deal with issues before happening.
On the other hand ...to tell you the truth I believe that's far easier for a novice to get some "basic" programming skills and deal with his/her issues (who are in 99% of cases data management related ones) than to attack them via components.
On the other hand I believe that in the future (not the distant one) ... anyone involved in this ugly business AND not speaking some freaky language he could be rated as class D citizen (brave new world: here we are).
But that's a highly personal opinion (extreme to the max, as usual, he he).
PS: I don't think that the majority of posts here come from novices (yesterday a fellow user asked a very challenging thing: the one with the max rectangle).
take care …
u are posting in the wrong place.
99% of the posted questions in the general discussion forum are from novice grasshopper users who have lack of very basic knowledge.
In my opinion, the best response to these posts is providing the simplest (easiest to understand) solution to the problem, plus an explanation of why the definition wasn't working, plus some suggested fields of study.
On the other hand, you provide a very fancy solution, which gets the job done (and usually a bunch of other jobs as well), but there is 0% chance it will be comprehended or further developed by the OP...
This is the typical giving_fish_VS_teaching_how_to_fish debate.
As for the "please ignore me if you enjoy being primitive" argument, I am afraid it is not as simple as that. A post with 3-4 replies (which, in this case, would be 3 subsequent versions of your solution, plus an awkward "ehm, tyvm" from the OP) has a great chance of going unnoticed by anyone who could provide a gh solution...
And finally I have to point out that the right place for coding discussion is just a doorstep away.
cheers,
a not-pissed-off co-member of this forum …
Added by nikos tzar at 8:29am on February 15, 2015
ostly via C# because ... er ... the remaining 99% (how to do some real-life canopy and/or a real-life truss out of the relaxed line graph) is only doable via code - no ExoW/IL (so ... the 1% is indeed doable).
At first ... just double click the Kangaroo1 engine, halt the simulation AND ONLY THEN redirect the resulting line list to the ExoW/IL. As delivered neither is active.
Note: ExoW and/or IntraLattice MAY or MAY NOT work (each one has his own issues, but ExoW despite the glitches yields way better looking liquid stuff). So the liquid root may or may not be the holly grail that you expect (life sucks).
Note: As is delivered this only does a liquid node load bearing structure (ideal for Planet Utopia). Paint the thing black, do some proper pavement, populate with birds of pray, wait for the envelope def (that's freaky), put humans inside, lock the doors > massacre.
…
narity constrains as well. Let's over-simplify the case. Using that planar test data set shown we create a classic Adjacency Matrix that tells us what node is connected with what (you can use Sandbox for making the connectivity required in order to make the Matrix) :
Some other freaky thingy gets the Matrix, does freaky things (using recursion) and finally yields node indices that belong to a closed loop/cycle (see the forefront and the back). The other indices shown (describing "bigger" loops) are used for other type of stuff/checks:
More soon…
to perform the kind of merge I want. Basically:
I have a series of three integers, each representing a radius measure:
Radii[0-2]
I have a three sets of series of 3Dpoints, each set with ~100-400 vals:
PListOne[0-333]
PListTwo[0-333]
PListThree[0-333]
I want to link the data paths up so that the Radii form the first dimension of the array, and that the second dimension is the corresponding points set. So
Radii[0] = 500 (the radius)
Radii[0][0] = 50,75,0 (the first point in PListOne)
...
Radii[2][99] = 44,66,0 (the 100th point in PListThree)
This should be really simple, but I cant seem tog et my head around the right components to do it. I've attached a file with number series in place of the radii/points lists. If someone could show me how to merge the components in the manner above, it would be extremely appreciated.…
all the other rules.
2. No Flattening! use path shift / trim tree instead of flattening.
3. No Path Mapper! I have never met a data operation with the path mapper that could not be achieved through relative means.
4. No Simplify! It makes things *look* nicer but believe it or not those zeros are meaningful and shouldn't just be eliminated. If you are OCD about the way your paths look, then Path shift after every operation that introduces a new branch level (a new "0" at the end) IF AND ONLY IF you are sure that in the case of your definition the component will always function "1 to 1" - that is, for every single input there is only one output.
5. If you absolutely must flatten (to take a global bounds, or generate random values for every item, or whatever) be sure to Unflatten before continuing.
6. Design for the worst case - start with primary inputs in the most complex data structure your definition is likely to need to be able to handle (a tree for instance) rather than a single item.
If you follow the above rules, 99% of the time your definitions will respond appropriately to any change in upstream data structure. If you want an example of how this works in practice, post your definition and I can help find "relative" approaches to the "absolute" things you are currently doing. …