B, as needed). I read lot of topics on forum and as I know it definetely works perfectly in older versions of grasshopper. In recent version is that problem, that´s not possible take data A and make difference with all of the data B. The choice which you mentioned works, but it takes data A and every one item make diference with all data from B - so it makes duplicates with holes on different places (see picture, its from example model from post before, you can try it)
I found 3 possible solutions:
1) C# script (made by S.Schiefer )
2) Python script (made by Ionut Anton)
3) get older version of GH
If am I right, it´s a pitty. Thank you , again
regards
J.…
ction) and apply symmetry at some point. The question is when. I would like to operate a "loft with rails", or a "sweep3". It is really important for me to stay perfectly close to the rails (outlines apex), avoiding having a polysurface or more control points. I need advises and help about the logic and order of construction. How should I tackle the problem ? I can't merge a simple symmetry into a single surface. Is it a question of degree (curves or surface) ? Thank you very much. Best Laurent
…
/free/downloads
http://www.youtube.com/watch?v=YGOpitpKpps
This software is great but you can only create symmetric lights, and it's a bit difficult to draw smooth curves. Just miss a refit command...
So I thought I could generate a mesh with gh. Should be easy. Didn't have much time to work on this yet...
There are crucial choices to make in regard to the way you interact with the curve. I just made a try with attractors but I'm not really satisfied. Any ideas would be welcome.
IES-GH.3dm
IES-GH.gh
Cheers
Fred.
\edit..
By the way, can you include the material id color and the object id color? It's really a nightmare I always forget to set them right and there can be so many of them!…
he "View" tab, check if "File name extensions" options is checked. If it is not, then check it:
2) rename your main_ file as TerrainGenerator v20200827.gh.3) Open that TerrainGenerator v20200827.gh file as any other grasshopper file.
…
Added by djordje to Gismo at 11:42pm on August 27, 2020
holes on each so speed increases). Zero radius circles are skipped.
The image dimensions in pixels are defined in small panels (X=485, Y=759) and used to calculate height/width ratio. That is used to define height based on the 'X' slider (500), which defines width overall.
The 'cell size' slider is also in units and determines resolution indirectly. For any given X value, increasing 'cell size' reduces the number of grid cells (resolution) and vice-versa.
Independent of other parameters, 'Isotrim (SubSrf)' splits the base surface into sub-surfaces, onto which the circles are projected. The 'SrfSplit' does the heavy lifting (can be SLOW!) and finally, 'Sort' is used to select the resulting surfaces that contain the holes.
Benchmarks:
X = 500, cell size = 10, 3161 circlesnine subsurfaces: 'SrfSplit' = 6.6 minutes, 'Project' = 13 secs.16 subsurfaces: 'SrfSplit' = 2.3 minutes, 'Project' = 17 secs.
X = 500, cell size = 5, 12542 circles (shown)35 surfaces: 'SrfSplit' = 30.6 minutes, 'Project' = 57 secs.
As noted before, a very long-standing, well-known bug in Grasshopper fails to save the Image Sampler component when I save a copy of your file. Very annoying, but there is a work-around. Copy/paste and connect the Image Sampler from the code you posted above into the place I reserved for it.
"Pro Tip": Always work at low-resolution until your algorithms are proven before cranking up to 10K+ geometry counts!
Attached file has low resolution settings with 'Project' and 'SrfSplit' (red group) disabled.…
or a couple of thingies.
Pattern.gh
I defined parametrically a triangle which I then smoothed out to become more like a blob shape. After that I created a pretty simple pattern that I had in my mind (costed me a lot of time to make this in GH) and finally wanted to rotate each element as it goes higher . The dispatching part seems to be working pretty slow, so it might need an optimization, but I’m still happy with the result as it shows exactly what I wanted, so this is a minor issue in my case.
I then decided to try tessellating my extrusions. You’ll see the voronoi script which is a blob-group in the same Pattern.gh:
I had an idea of something and started the code from scratch, then decided to watch tutorials and implement the code shown there. I somehow coped to combine my code with this in the tutorials, but since my knowledge of Grasshopper is zero to basic my code seems to be very unoptimized and lagging.. When dragging the sliders, it takes a lot of time to compute the changes, although, I’m working on a 24gigs 6th gen i7 machine. It might also need optimization.
Here comes the first tricky part that I couldn’t sort out in an elegant way neither in Grasshopper nor in Rhino. I want a smooth transition between the wall and the ceiling, so that the voronoi tessellation doesn’t get interrupted. If I was to do it in Rhino I’d make a curve with a filleted edge which I’d then revolve/sweep along a rail.
Pattern.gh:
Second thing is – I’ve defined a shape which I want to rotate at a certain degree as it goes higher, however, I don’t have the knowledge to make this happen automatically and just copy the script over and over again. Is there a chance to somehow “loop” the code and parametrically define the degree of rotation and amount of units in the loop?
Next thing is I want to somehow be able to rotate each “6-storey-building” dependently on its surrounding buildings, so that their “terraces” never overlap. I’m using quotes, since they’re still some silly shapes that have nothing to do with buildings and terraces. The principle has to be something like gear wheels or the so-called rack wheels . There has to be some pace which I could set parametrically, but I’m still unsure how to do that in Grasshopper.
The pre-last thing is that I want to control the height of each “building” based on let’s say a topography. I presume this could be done somehow with height maps or some gradient mapper connected to curvature analysis. Not really sure how something like this would work, but I’ve seen such codes that control height depending on a variable.
The last one is more or less similar to the previous. I want to be able to “dissolve” the pattern that I initially created and make it irregular. I suppose this could be done with attractor curve, but again this is just a guess. Please note that this is a top view and the shapes on the upper-left corner have got more "wings" which means there is more floors in the according building. Let's say the buildings in the upper-left corner are 6-7 floors high, in the middle are 4-5 and to the right they're only 3 floors high.
Sorry for that many questions in a single thread. Please let me know if I have to split them in separate threads. All this information is needed for learning purposes. I’m now preparing myself for my bachelor thesis and try as much things as I could, so that I’ll be ready for the final stage of my bachelor’s degree.
Many thanks in advance! Cheers!…
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.…
from 0 to 1 and multiply those two lists.
So if a point is close to the attractors (building and blocks outlines) then its Z value is multiplied by 0 (or something close to 0) and so the surface becomes flat at this point.
Likewise, if a point is away from the attractors it's Z value is multiplied by 1 and so the surface is left unchanged at this point.
Now, if you already have a surface, you can do (more or less) the same. But instead of having all your starting points at z=0 and move them on Z, you now have to get each point's coordinates, multiply it's Z value with the same list (from 0 to 1) and rebuild the points with this new Z value:
Now, if you want some more control over the "flattening" effect, you could add a single expression component after the Distance output of [Pull], with 3 inputs (X=Distance, Y=slider for min distance, Z=slider for max distance) and the expression: If(x<y, y, if(x>z, z, x))
This is similar to what both you and Joseph did at some part of your definitions.
So with the expression component you keep the areas near the attractor curves flat and the areas away from them unchanged and with the graph mapper you create a smooth transition in between.
Hope this is clear,
cheers,
Nikos
…
r -1.
Here is my attempt, using anemone:
please note the following:
1. I had to change your definition a little bit so that each column of bricks is created by array.
2. There will be a height difference between the first and last column. If this bothers you you could try creating half the numbers you need with anemone and then mirroring them (hope this makes sense, if not let me know).
3. For some reason that is beyond my understanding, the first time you open the file anemone will not create a "correct" list of numbers. This can be fixed by moving the [Data_0] slider and let anemone calculate the loop again.
cheers, nikos
ps. yes, the gh file is usually called "definition".…