vided with U and V into line segments (i'd prefer to use that method instead of rectangular grid). These segments in U direction would then be rotated around V lines segments with min value of 0 and max value of 90 degrees, according to attractor (i'd like it to be image sampler in the end but for now im trying with point/multiple points). These lines would then be lofted
I post the definition below
Here are my problems (i marked them in definition):
1)i managed to get U direction line in every second row, i dont know how to get the lines between the rest (i tried shifting list, but didnt manage to get the right result).
2)Harder part - id like to measure distance between attractor point and a bottom point of lines. Than i would like to transfer it to rotation this way (distances used just as example): distance 0-20 - angle of rotation 0degrees; distance 20-30 - angle of rotation 1-90 degrees. I have no idea how to transfer it into definition. I also have problems remapping numbers to 0-90 value.
3)I'd like to do that later but i'd also like to use black-white image sampler as white - 0 angle of rotation, black - 90 degrees. I never experimented with image sampler and would be grateful for some advice how transfer colors into degree values.
I politely ask you to help me (especially with first two points i mentioned). I'm not asking for a ready definition - I would like to understand where my mistakes are.
Below i post a picture of something simmilar (although im trying to rotate it by edge, not by center line)
Pardon my english, thank you for your time and help.
Enjoy your weekend.…
ake this example. However, I still have minor bugs.
Whenever I save and reopen the file, I could not unclick the drop down menu to fold the additional input. See pictures below.
1. When I open the gh file.
2. The input is not folded.
3. When I click again, additional input is now duplicated with itself.
Does anyone know how to fix this situation? Any comment will be appreciated.
I attach the C# file below. Thanks! …
troducción a su plugin de modelado paramétrico, Grasshopper.
Con este tipo de herramientas podemos pensar formas más allá de las cajas para diseñar, porque seremos capaces controlar con total rigor geometrías muy complejas.
En el siguiente video, podemos ver un ejemplo realizado durante un curso impartido anteriormente en Madrid por el profesor, Francisco Tabanera, en el que se realiza una interpretación del proyecto de BIG para la Biblioteca Nacional de Kazajstán.
<a title="Interpretación de la Biblioteca Naiconal de Kazakstan, de BIG" href="http://www.youtube.com/watch?v=YLldO-SxgPw" target="_blank"></a>
A lo largo del curso se realizarán diferentes ejemplos que podrán ser realizados por todos los asistentes, ya que no es necesario ningún conocimiento previo para su seguimiento.
El curso se desarrollará en las oficinas de Arquitecton en Barcelona con el siguiente horario:
HORARIO
Sábado 1 de Marzo
De 9.30 a 13.30h.
Sábado 1 de Marzo
De 15.30 a 19.30h.
El curso está planteado para un máximo de 9 alumnos, para conseguir el máximo aprovechamiento posible por parte de los mismos.
El curso tiene un precio de 90€. Estudiantes y desempleados tienen un descuento del 10%. Es posible asegurarte una plaza con un primer pago de 25€ a modo de reserva.
Apúntate aquí…
1 assembly. I think something is mixed up with the refenced dll. but I do not know what.I am using 4.net with visualstudio 2010. It was possible fo example to bind opennurbs.dll as assembly in Rhino4 and older grasshopper about mid 2010. Now in Rhino5 and the new Grasshopper it throws errors. I think some assemblies are mixed up. I cannot use Rhino.IO.3dmfile.Read as it does not have all functions i need for building a proper database.
here is some buggy code snippet for getting the layertree.
// pre define OnTextLog dump_to_stdout = new OnTextLog(); dump_to_stdout.SetIndentSize(2); OnTextLog dump = dump_to_stdout; OnFileHandle dump_fp = null; OnXModel model = new OnXModel(); bool bVerboseTextDump = true; string sFileName = @"C:\test.3dm"; // open file containing opennurbs archive OnFileHandle archive_fp = OnUtil.OpenFile(sFileName, "rb"); if (archive_fp == null) { dump.Print(" Unable to open file.\n"); //continue; } dump.PushIndent(); // create archive object from file pointer OnBinaryArchive archive = new OnBinaryFile(IOn.archive_mode.read3dm, archive_fp); // read the contents of the file into "model" bool rc = model.Read(ref archive, dump); // close the file OnUtil.CloseFile(archive_fp); RMA.OpenNURBS.ArrayOnLayer layer_array = model.m_layer_table; // layerstruktur lesen List <System.Guid> list_int = new List<System.Guid>(); List <System.Guid> list_parent = new List<System.Guid>(); for (int i = 0;layer_array.Count() > i;i++) { list_int.Add(layer_array[i].m_layer_id); list_parent.Add(layer_array[i].m_parent_layer_id); } // calculate List <int> list_depth = new List<int>(); for (int i = 0;list_int.Count > i;i++) { list_depth.Add(tree_decompose(i, list_int, list_parent)); } A = list_depth;</item> <item name="AdditionalSource" type_name="gh_string" type_code="10">
int tree_decompose (int position, List<System.Guid> list_guuid, List<System.Guid> list_parent) { int temp_position = position; int send = 0; if (position != 0){ if (list_parent[position] != System.Guid.Empty) { temp_position = list_guuid.IndexOf(list_parent[position]); send = 1 + tree_decompose(temp_position, list_guuid, list_parent); } if (list_parent[position] == System.Guid.Empty){send = 0;} } if(position == 0){send = 0;} return send; }…
t, you can see 6 (+) signs with what you can add (A,B,C,P,Q,R).
Let's say you add A = 90 and B = 50.
Now you can't add the third angle (cause its 180-(50+90) = C output).
What you can add at the moment is P,Q,R.
You choose to add P = 10.
There is no more a possibility to add Q and R.
All component outputs now give us the data.
2. Triangle with P,Q,R
When you zoom the component, you can see 6 (+) signs with what you can add (A,B,C,P,Q,R).
Let's say you add P = 15, Q = 20.
Now if you add R, the component's outputs all the angles and edge lengths.
If R > P+Q then component throws warning. (> or >= ?)
You cannot add A,B or C anymone.
3.Triangle with P,Q and C
When you zoom the component, you can see 6 (+) signs with what you can add (A,B,C,P,Q,R).
Let's say you add P = 15, Q = 20.
Now if you add C (angle), the component's outputs all the angles and edge lengths.
You cannot add A,B or R anymone.
To make it all easier, disable the possibility to internalize the data.
Tolerance issue... Maybe round the angles always to floor , with 0.1 precision ?
…
ifically, in your picture, it looks like you're feeding two different pieces of data into the same Data input (D0) of the Anemone Loop Start component. If you zoom in on the component in Grasshopper, you'll see that you can add and subtract Data inputs via little +/- symbols, so you can have D0, D1, D2, etc. (Note: when you do this, Anemone Loop End will return an error if it doesn't have the same amount of Data inputs as the Loop Start, so be sure to add them there as well.) Attaching your original data to different inputs keeps them nicely separated during the looped Anemone process.
The nature (and usefulness) of Anemone is that it allows you to take data output by some functions and use it as the input for that same set of functions (normally forbidden under usual Grasshopper logic). So let's say that you want to take a sphere(Sphere0) and stack progressively smaller versions of that sphere on top of it. You feed the sphere into [Loop Start] as D0, and right away, it comes out of the [Loop Start] D0 output exactly the same, because nothing has happened to it yet. You take Sphere0 from the D0 output, let's say scale it by .8, and transform it up appropriately so it sits on top of the last sphere. Now you have Sphere1! Feed Sphere1 into the D0 input of [Loop End], and now (if the # of repeats allows) Sphere1 is the D0 output of [Loop Start]. So if it goes again, it'll scale and transform Sphere1, resulting in a smaller Sphere2, and so on and so forth for as long as you want. If you right-click on the [Loop End] component, you'll see some options labelled "Output after the last" and "Record Data". If neither option is checked, then you'll see the loop calculating in real time, and the only thing that will come out of the D0 output for [Loop End] is the smallest sphere. If you check only "Record Data," then D0 will contain all of the spheres made from the loops. If you check only "Output after the last," then you won't see anything output to D0 until it's entirely finished calculating all the loops. If you check both options, then D0 will output all the spheres, but only after it's finished calculating everything.
In my snake pictured here, there is a constant # of scales placed around each loop of the tube, let's say 10. But since the tube has variable circumferences, the size of the scales needs to vary based on the circumference of their loop. Furthermore, since the size of the scales varies, the distance between each loop must also vary so that there aren't unsightly gaps between loops. So you take the length of Loop0 and divide it by 20 (2 times the # of scales, since you only use every other scale to achieve this pattern), and use that as the distance between Loop0 and Loop1. But since Loop1 has a smaller circumference, Loop1 divided by 20 is going to yield a smaller number than the first one, and that's why you need to use Anemone to make a loop to find all of this out.
This might be more granular than you wanted, but I hope that some of it helps.
…
controlled by the brightness of the image and size of the diagrid panel is controlled by lunchbox). The frame surrounding each window is then extruded to shade the window within. The extrusion distance for the diamonds' 4 points are controlled by 4 sliders (one for each point).
My goal is to find the total radiation of the windows using Ladybug (or DIVA) and then use Galapagos to adjust the frame extrusions to optimize them to best shade the windows. However, in order to obtain an effective pattern for shading, I need to be able to move the 4 control points independently for each panel... So instead of adjusting all of the panels at once, I need to control each panel extrusion on its own.
First off, I'm not sure how to control each panel independently. Secondly, I'm afraid this will result in far too many sliders for Galapagos to handle (especially once it's applied to the scale of a facade). I tried using a random number generator for each point (which kept the slider count to only 4), but Galapagos was unable to identify any trends in this method (because it was entirely random) and thus could not optimize the extrusions. I think the most probable solution may be to limit the quantity of possible outcomes by making an index of pre-baked shapes (let's say 10 different frame types). Then, setting up a script that allows Galapagos to "plug-in" each different frame, at each different panel on a facade until it finds the ideal pattern. I'm not sure how to go about doing this either... specifically in a non-random way that will allow Galapagos to identify trends. Maybe by using hoopsnake?
I've attached my grasshopper definition. Any suggestions would be greatly appreciated!
…
Added by Caleb Wild at 12:20pm on February 14, 2015
n the z axis I can not, here's the problem, because the movement is not only on the z axis, I can't do a serie with this vector. I tried to do it by differents columns or rows but its impossible for me.
2. Another problem. How I can fill a surface like this with tetrahedrons? What about change the size of this tetrahedrons? Is it possible like a fractal? :Si'm still working...
Thank you!
Finally I have completed the cloud!! I am a little bit fool. With the help of some sketches it was not so difficult! :).
I found the movement pattern of my tetrahedrons
Then I found the points inside my surface!
But now I cant create lines between points like in the begining of the process, with the pattern with points 1, 2, 3, 4. What I have to do?
??????????
Bye!!!…
value=WINTERDESIGNDAY, in SIZINGPERIOD:DESIGNDAY=SINGAPORE ANN HTG 99.6% CONDNS DB ************* IDF Context for following error/warning message: ************* Note -- lines truncated at 300 characters, if necessary... ************* 53 SizingPeriod:DesignDay, ************* indicated Name=SINGAPORE Ann Htg 99% Condns DB ************* Only last 10 lines before error line shown..... ************* 57 23.5, !- Humidity Indicating Conditions at Maximum Dry-Bulb ************* 58 101133., !- Barometric Pressure {Pa} ************* 59 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) ************* 60 320, !- Wind Direction {Degrees; N=0, S=180} ************* 61 0.00, !- Clearness {0.0 to 1.1} ************* 62 0, !- Rain {0-no,1-yes} ************* 63 0, !- Snow on ground {0-no,1-yes} ************* 64 21, !- Day of Month ************* 65 12, !- Month ************* 66 WinterDesignDay,!- Day Type
The relevant lines in the IDF file is shown below:
SizingPeriod:DesignDay, SINGAPORE Ann Htg 99.6% Condns DB, !- Name 23, !- Maximum Dry-Bulb Temperature {C} 0.0, !- Daily Temp Range {C} 23, !- Humidity Indicating Conditions at Maximum Dry-Bulb 101133., !- Barometric Pressure {Pa} 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) 320, !- Wind Direction {Degrees; N=0, S=180} 0.00, !- Clearness {0.0 to 1.1} 0, !- Rain {0-no,1-yes} 0, !- Snow on ground {0-no,1-yes} 21, !- Day of Month 12, !- Month WinterDesignDay,!- Day Type 0, !- Daylight Savings Time Indicator WetBulb; !- Humidity Indicating Type ! SINGAPORE_SGP Annual Heating 99%, MaxDB=23.5°C SizingPeriod:DesignDay, SINGAPORE Ann Htg 99% Condns DB, !- Name 23.5, !- Maximum Dry-Bulb Temperature {C} 0.0, !- Daily Temp Range {C} 23.5, !- Humidity Indicating Conditions at Maximum Dry-Bulb 101133., !- Barometric Pressure {Pa} 2, !- Wind Speed {m/s} design conditions vs. traditional 6.71 m/s (15 mph) 320, !- Wind Direction {Degrees; N=0, S=180} 0.00, !- Clearness {0.0 to 1.1} 0, !- Rain {0-no,1-yes} 0, !- Snow on ground {0-no,1-yes} 21, !- Day of Month 12, !- Month WinterDesignDay,!- Day Type 0, !- Daylight Savings Time Indicator WetBulb; !- Humidity Indicating Type
It seems that there is an empty line after the line for "!- Humidity Indicating Type" field, and nothing is specified for "! SINGAPORE_SGP Annual Heating 99%, MaxDB=23.5°C" field.
May I ask why this happens and how to correct the error?
Thank you very much!…