se enseñan los principios de modelado básico y orgánico en Rhinoceros. En Grasshopper se estudian los principios de Parametrización, panelización y análisis en Grasshopper, así como el proceso de manufactura digital para maquinaria de corte Láser y CNC.
UN solo pago anticipado $5,000.00
Pagos diferidos $5,500.00*
*reserva tu lugar con el 50%
De lunes a viernes de 10 am a 18 pm
Del 23 al 27 de julio de 2012
DURACION: 40 HORAS
SESIONES: 5 DE 8 HORAS
o info@dimensiontallerdigital.com
informes al 55 (50 16 0634) con Mayri Gallegos (o al cel. 55 28 85 24 73)
Incluye material para corte digital.…
ction only generic double glazing 72 (first in my list) and two others in opposition to the 8 different which are in the Geko mat component. If i select in Geko lets say type of object 6 (window) and no matter which material of object I choose it always selects the generic double glazing 72. I guess that makes sense that Ecotect switches its material object to 0 in the list because the lists are not corresponding and the material Geko calls does not exist in Ecotect? What puzzles me more is the fact if I change a given material property within Ecotect in a list where both mat lists (Ecotect & Geko) are corresponding after switching on Geko my changes of the material properties within Ecotect are gone and set back to its original values. Any idea?
For the other issue:
We would like to create new materials. Here we would like to experiment with fabric materials. I'm currently trying to figure out how the given material values of the fabric manufacturer (Ts, Rs, As, Tv, SHGC, Colour) to be translated into Ecotect material properties.
But anyway, what would be better? Defining a set of new materials within Ecotect and being able to assign them from Geko or being able to change material properties within Geko and transfer them to Ecotect for incident solar radiation and DF tests?
The first option if possible could give users the freedom to have a different material library then that one in Geko. Then the user only has to know how to asign which object type number and material number to get the right ecotect material. It would be also more easy to connect one slider to galapagos, meaning object type could stay constant but only switching through different materials which could be easily be found back since those correspond with the manufactures data (if properly done).
The second option would create more freedom I guess but one would have to connect several sliders to galapagos switching the material properties themselves which means one would end up with new (utopian) materials rather than existing materials which are on the market.
If you have any suggestions we would be happy to hear them. Thanks a lot.
best,
Florian
…
interested in a certain area or floor of a scanned building.
Having access to the Scan positions, without the need to load tens of Gigabytes, allows to quickly select and import only scans in a certain height and range.
Here a small GH definition, which uses the A-House Scan June E57 file from data.duraark.eu (10.4GB in size, 16 scans covering two levels) The GH definition allows to select and subsequently import:
a) only scans from a certain range in height - lower scans
upper
b) only scans in a certain range in XYZ direction
The definition is not very sophisticated, but demonstrates how Volvox and Point Clouds can integrate into Grasshopper workflows. The GH definition can be found here
The scan can be directly downloaded from here
Here a full view on the A-house scan with 8% of points loaded:
…
used of 180 being for the northern hemisphere and 0 for the southern hemisphere.For the optimal tilt, to my knowledge, they are mostly based on correcting location's latitude through a single formula.TOF component is more sophisticated. It essentially replicates the Solmetric's Annual Insolation Lookup tool.What it does is that it creates a grid of points. Each point represents the calculated annual insolation on the surface (PV module, SWH collector, facade, any kind of surface) for a single tilt and azimuth angle.Each point is then elevated according to the annual insolation values. The mesh is created from that grid of points. The portion of the mesh which is the highest, represents the optimal tilt and azimuth angles. So the higher your "precision_" input is, the more points in a mesh you'll have - thus the more precise final optimal tilt and azimuth will be.For the diffuse component of the annual incident solar radiation for each point the Perez 1990 modified model is used. Direct is from classical cosine law, and Ground reflected component from Liu and Jordan (1963).So TOF component calculates the optimal tilt and azimuth based on annual incident solar radiation, not AC energy....…
e graphmapper with graph type:Bezier mathematically so I can input the coordinates of the 4 control points of the bezier curve "quadratic bezier curve" and a domain of number so we can get the opposite range.
*graph mapper vs math. mapper
The main pro of this method is that I can generate curved mapped range of numbers via the Galapagos component by attaching it to the 4 points "8 sliders"
*Curve from the generated numbers & the 4 control points
Quadratic Bezier curve fucntion obtained from here:
http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B.C3.A9zier_curves
and here:
http://html5tutorial.com/how-to-draw-n-grade-bezier-curve-with-canvas-api/
*.gh file attached
…
he tools provided by System.Drawing (I know, there is a module called PIL that works in Python but I couldn't get it properly working so I just jumped to System namespace...).
The first problem that I found is that there is no a direct way to store colours into saved images in other format different than 8 bits per channel...
PixelFormat48bppRGB, PixelFormat64bppARGB, and PixelFormat64bppPARGB use 16 bits per color component (channel). GDI+ version 1.0 and 1.1 can read 16-bits-per-channel images, but such images are converted to an 8-bits-per-channel format for processing, displaying, and saving. Each 16-bit color channel can hold a value in the range 0 through 2^13.
From -> here.
...so the accuracy of the information stored is very very low (as much as 256 possible values per channel, ≈ 16M of different values per pixel) if I need to store the data in the hard-drive (thing that I would anxiously like to do for further processing).
So, is there any efficient way of storing at least 16bits (it's not an ideal solution but...it could work) per channel data into an image file using System namespace instead of an external library?.
...the thing is that I know that using:
imageTest = System.Drawing.Bitmap(mX,mY,System.Drawing.Imaging.PixelFormat.Format48bppRgb)
...I can create a 16bits per channel image, but how could I specify the 16bit color if System.Drawing.Color limit the range to 8bits values?
And ideally, does anyone knows how to work with and save directly floating point colours into image files using python?
Thanks in advance ;)
Ángel.
Sevilla, Spain.
…
complicated than it seems as I have an event and a subscriber method receiving data from a serial port.
In the code below, the strings received within myReceivedLines appear when connecting with the serial port (when connecttodevice is true). However they disapear when I launch another command (when homeallis true).
As you recommended in your reply, I have added the field called myReceivedLineswithin the class so that I could use the method String.Add() to all the feedback received and commands sent.
Why does the feedback dispear when a command is sent? Is the string going to myReceivedLine disappearing because they happen within a subscriber method or is it related to the DA.SetDataList() method used to assign myReceivedLinesto the output?
Many thanks!
public class SendToPrintComponent : GH_Component { //Fields List<string> myReceivedLines = new List<string>(); SerialPort port; //subscriber method for the port.DataReceived Event private void DataReceivedHandler(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { SerialPort sp = (SerialPort)sender; while (sp.BytesToRead > 0) { try { myReceivedLines.Add(sp.ReadLine()); } catch (TimeoutException) { break; } } } protected override void SolveInstance(IGH_DataAccess DA) { //Opening the port if (port == null) { string selectedportname = default(string); DA.GetData(1, ref selectedportname); int selectedbaudrate = default(int); DA.GetData(2, ref selectedbaudrate); //Assigning an object to the field within the SolveInstance method() port = new SerialPort(selectedportname, selectedbaudrate, Parity.None, 8, StopBits.One); //Enables the data terminal ready (dtr) signal during serial communication (handshaking) port.DtrEnable = true; port.WriteTimeout = 500; port.ReadTimeout = 500; } //Event Handling Method bool connecttodevice = default(bool); DA.GetData(3, ref connecttodevice); if (connecttodevice == true) { if (!port.IsOpen) { port.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); DA.SetDataList(0, myReceivedLines); port.Open(); } } else if (port.IsOpen) { port.DataReceived -= new SerialDataReceivedEventHandler(DataReceivedHandler); port.Close(); } if (port.IsOpen) { DA.SetData(1, "Port Open"); } //If the port is open do all the rest if (port.IsOpen) { bool homeall = default(bool); DA.GetData(5, ref homeall); //Home all sends all the axis to the origin if (homeall == true) { port.Write("G28" + "\n"); myReceivedLines.Add("G28" + "\n"); DA.SetDataList(2, myReceivedLines); } } else { DA.SetData(1, "Port Closed"); } }}…