I have the IES files from the manufacturers. I am able to get the IES files to load and run in Honeybee. However the light levels being produced are low and very localized to the light source. I am trying to determine if it’s some scaling, etc that needs to be modified. Within Honeybee there is a “CandelaMultiplier” which allows me to increase the values, but I don’t want to do it arbitrarily nor am I sure this is truly solving my problem.
If anyone has any insight as to importing IES files into Honeybee and things that need to be factored and considered that would be appreciated. I'm experiencing the situation with other IES files as well.
Thank you!
Screenshots: 1 candela multiplier, 5 candela multiplier, 5 candela multiplier 2 lum web, legend and screenshot of grasshopper interface:
Files attached: SunCentral IES file, Rhino, and Grasshopper
…
s: the nut's width is divided in equal segments resulting in queal spacing from string center to string center but the spacing bewteen the top strings is smaller than between the lower strings. It's not very comfortable to play, on bass guitar it's really awkward
2. equal spaces: the nut is divided so that the spacing between the outer edges of all 6 strings is the same. Since eachstring has a different width (gauge) this requires some calculations but is much more comfortable to play
i have attached my pathetic simple attempt at creating this. It works for 'equal centres' but i can't really figure out several things:
A. how to use a table or list of values as an input for the string gauges. Ideally i would like to select from different 'sets' of strings so that i can create different nut templates for different thickness strings easily. So ideally i would like to select a preset like: 'light', 'ultra light', 'medium', 'light top heavy bottom' and then it would adjust everything according to the different string gauges defined in those sets/lists.
B. how to use metric units for the spacing of the top and bottom strings to the fretboard/neck edge. I have tried to do it by eyeballing it with the 'point on curve' element which i'm pretty sure is not the way to do it properly. I want to be able to simply input this in mm, so for example a 4mm distance from the strings to the fretboard edge.
C. how to figure out the 'equal spaces' and divide the bridge and nut curves accordingly so that the distance from the outside edge of the top and bottom strings to the fretboard is equal, and the spacing between the strings outer edges (not the centres) is equal.
would really appreciate any help or tips to point me into the right direction :)
…
, Arq. Daniel Gelardi
Año: 2013
Memoria Descriptiva
La primera etapa del proyecto final se enfocó en la participación del concurso International Velux Award 2012: Concurso que anima y desafía a los estudiantes de arquitectura a ‘explorar el tema de la luz del día en su sentido más amplio’. Se adoptó una postura centrada en el manejo de la luz natural en el espacio interior, pero aplicada específicamente para el contexto natural y cultural de la provincia de Mendoza - Argentina.
El proyecto enviado al concurso se enfoca en tomar la luz natural del medio, como elemento protagonista dentro del espacio de uso múltiple y social diseñado y configurado para el desierto de Mendoza. En la cubierta se desarrolla una ‘piel responsiva’ que varía según los cambios climáticos de temperatura: la cubierta se divide en diversas piezas que evocan a la piel porosa de un cactus: cuando la radiación solar es alta o baja, estas piezas empiezan a adquirir movimiento, tamizando o dejando pasar la luz del sol.
La idea del proyecto, después de un extenso proceso de investigación, evolucionó para convertirse en una ‘Reserva Genética de Vegetación’ que toma como inspiración los factores naturales del medio local: el desierto; sustentados por la identidad cultural de nuestra ciudad oasis.
En la Reserva Genética de Vegetación se pretende realizar dos actividades principales que tienen el fin de aportar a nuestra provincia aquello que la destaca culturalmente como un Oasis :
1. Centro especializado de cultivo, donde se producen una cantidad ilimitada de especies vegetales (técnica de Cultivo In-Vitro) para forestar lugares de la provincia donde se necesite urbanizar.
2. Centro de investigación y experimentación de la flora autóctona xerófila, que pretende incorporarla como potenciales especies para forestación y uso público: Como ya sabemos, estas plantas son las que más se adaptan a nuestro medio.
La reserva genética pretende ser el exponente de una arquitectura que toma parámetros concretos del medio y su cultura, para así prestar un servicio que forma parte de la escencia de nuestra ciudad de Mendoza: el cultivo vinculado con la forestación.…
what they really mean by that, as in what buttons to push, so I assume it's a Windows Path entry?
2.) Modify PATH
Add the install location on the path, this is usually: C:\Program File\IronPython 2.7
But on 64-bit Windows systems it is: C:\Program File (x86)\IronPython 2.7
As a check, open a Windows command prompt and go to a directory (which is not the above) and type:
> ipy -V PythonContext 2.7.0.40 on .NET 4.0.30319.225
Tutorial on setting a Windows environmental variable (path):
http://www.computerhope.com/issues/ch000549.htm
But this fails to point out that path contains many entries already separated by semicolons so if I merely add a new variable called "path" it's likely that I will destroy existing program function. There's no info on how to just tack on another entry, and the Windows 7 edit box doesn't even show the whole collection, but one item (!), so I copied the existing path into a text editor to see the whole collection successfully and added the C:\Program Files (x86)\IronPython 2.7 entry after an added semicolon, correcting for an Enthought page typo of no 's' on the end of "Program Files". I also checked the others and many pointed to old missing directories so I deleted those entries.
...and the test fails and "ipy" is not recognized as a command, even though the path now shows up using "path" in the Windows CMD window, that is if I copy all by right clicking and pasting the stuff into a text editor to really view it all. I can run it from the source directory just fine.
The rabbit hole was indeed deep. Using the Task Manager (control-alt-delete) to kill Explorer and then Run in the menu to restart "Explorer," along with restarting the Windows CMD window however, worked. I can now invoke Iron Python ("ipy") via command line from any directory. For the "path" I edited path in the System Variables and not the User Variables. No, you don't have to type that whole crazy line above just to test the path variable, just "ipy" (and control-Z to quite IronPython) in the CMD window invoked by typing "cmd" into the Start menu search box.
From the CMD line this step did work fine:
3.) ironpkg
Bootstrap ironpkg, which is a package install manager for binary (egg based) Python packages. Download ironpkg-1.0.0.py and type:
> ipy ironpkg-1.0.0.py --install
Now the ironpkg command should be available:
> ironpkg -h(some useful help text is displayed here)
But of course Step 4 fails, giving pages of what seem to be error messages;
C:\Users\Nik>ironpkg scipy
Traceback (most recent call last):
File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.
py", line 92, in write_data_from_url
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 126, in urlo
pen
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 397, in open
File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 509, in http
_response
...
Why can't I just download Numpy as a normal file and thus also have it easy for other users to install it when they use my scripts? This is just crazy and lazy. The Enthought developer has turned this into a computer game, with a missing registration link and then the last step spits out errors with utterly no information on how to fix it manually.
This Step 4 error is covered here:
http://discourse.mcneel.com/t/trying-to-import-numpy-in-rhino-python-but-im-getting-this-error-cannot-import-multiarray-from-numpy-core/12912/16…
Added by Nik Willmore at 2:36pm on October 11, 2015
what else?]. I do hope that in Assen (Note: race is in Saturday, not Sunday) Hero could deliver the goods as well.
2. Trivial matters follow:
2.1 The orange thingy is a 2 part ball pivot "base" meaning that the struts rotate (up to a point) via the ball that is attached at each end (some share the same ball, mind).
Repeat with me: I WOULD NEVER WELD ANYTHING in any current or future project. Additionally I'll start searching the proper Ducati ASAP (a baby Panigale what else?, avoid the lethal big one).
2.2. NO strut is capable to exist without the related cables: meaning no torque at all around. This is the only way to do things like these. In fact ... well ... the roof alignment grid (classic Jansen type of steel rect tubes) contributes to that as well ... meaning that not all the possible cable combos are present/required.
2.3 Due to ball pivot angle limitations the as above linkage is a classic U-Joint (the upper thingy that connects struts with the roofing alignment grid - PRIOR the planar glazing "layer").
2.4. Thus ... with this, this (and that) we can proudly claim that the wrong thingy MAY have a chance to exist without ...er ... ironic comments.
Note: Use this attached, recycle the rest
Moral: Ducati Uber Alles…
he field of digital design, fabrication, emerging technology and makers. the experts spend two weeks in bratislava, developing their research project and at the end of their residency we invite eager and interested people – fellows – to form a think-tank and take part in the pinnacle of the project.the event will be highly experimental and no specific result is guaranteed. the event will be accessible also to people who want to observe and learn, however the purpose of the gathering is not to teach, but rather to experiment, consult, make and network. the rese arch lab is not a tutorial workshop, it’s a platform for common development.
download a pdf
research project
the project questions the current condition of the large scale 3d printing capabilities. while small scale, desktop 3d printers emerge each day with better and better quality of the output, large scale printing is based mostly on low fidelity concrete printing, or in few cases not-so-high-quality metal printing.we will try to develop new solutions for large scale, rapid 3d printing by merging different technologies. those will constitute the main structure of the designed output, while the 3d printing will be seen only as the solidifying agent.we will utilize the kuka robot with an attached abs/pla extruder as the main production tool.
call for fellows
the fellows will join the last 4 days of the research, consult the current state, come up with new ideas and help verify and test the outputs. the fellows are being called for through a portfolio and cv selection process. the exceptional individuals who can both, benefit from and contribute to the project will be selected by mateusz zwierzycki and jan pernecky. no specific number of open positions are available and it is possible that no one will be chosen.
call for trainees
it will be possible to attend the rese arch lab to the people with no expertise or previous experience. they will take a role of observers or trainees. it has to be explicitly stated though, that the event is not meant to teach any specific software or skills and the experiments can fail in achieving an output.
application
to apply send an email at lab@rese-arch.org. the deadline for the submissions is monday, 6 april 2015 at noon 12pm.
costs
the participation fee is fixed 150€ for the fellows and 200€ for the trainees. this covers only the participation at the rese arch lab event. the traveling expenses and accommodation costs need to be covered by the participants themselves.
equipment
various equipment will be available – including 3d printers, 3d scanners, milling machines, laser cutters, vinyl cutters.most of all, rese arch and partners have to their full disposal a robotic arm kuka kr15/2.
the requirements
if you find yourself proficient in: parametric design (viewed as aesthetics), 3d printing, robotics, scripting, architectural geometry, cam technologies or woodworking then the event will be surely interesting for you. at the same time we seek for people with exceptional sense for aesthetics, as the final output will be designed together (not just by the project leader).on the hardware/software side, we need you to bring your own laptop. we will work mainly with rhino/grasshopper.…
shopper later uses but for the life of me cannot see the problem.
Component
using System;using System.Collections.Generic;using Grasshopper.Kernel;using Rhino.Geometry;namespace Load_Take_Down_Tool.Components{ // This componenet takes care of creating ordered lists to pass to the column component // Searches for points within tributary areas public class Column_Organiser : GH_Component { /// <summary> /// Initializes a new instance of the Column_Organiser class. /// </summary> public Column_Organiser() : base("Column Organiser", "CO", "Orders lists of points and areas", "Load Take Down Tool", "Pre-Processing") { } /// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddPointParameter("Column", "C", "Unsorted points at location of column (required)", GH_ParamAccess.list); pManager.AddBrepParameter("Tributary Area", "T", "Unsorted tributary areas for column (required)", GH_ParamAccess.list); } /// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddPointParameter("Column", "C", "Sorted points at location of column", GH_ParamAccess.list); pManager.AddBrepParameter("Tributary Area", "T", "Sorted tributary areas for column", GH_ParamAccess.list); pManager.AddPointParameter("Failing Points", "FP", "Points that are not within any tributary area", GH_ParamAccess.list); } /// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { //Declare lists to hold data //uo = un-ordered //o = ordered List<Point3d> uocolumnpoints = new List<Point3d>(); List<Brep> uotribareas = new List<Brep>(); List<Point3d> failpoints = new List<Point3d>(); //Get data from inputs if (!DA.GetDataList(0, uocolumnpoints)) return; if (!DA.GetDataList(1, uotribareas)) return; //Error if number of points and areas are not equal if (uocolumnpoints.Count != uotribareas.Count) { AddRuntimeMessage(GH_RuntimeMessageLevel.Warning, "Unequal number of columns and tributary areas"); return; } List<Point3d> ocolumnpoints = new List<Point3d>(); List<Curve> ocurves = new List<Curve>(); List<Brep> otribareas = new List<Brep>(); double m_tol = 0.001; string unitSystem = Rhino.RhinoDoc.ActiveDoc.GetUnitSystemName(true, true, true, true); if (unitSystem == "m") m_tol = 0.000001; if (unitSystem == "mm") m_tol = 0.011; PointsInsideCurves pic = new PointsInsideCurves(); try { pic = new PointsInsideCurves(uocolumnpoints, uotribareas, m_tol); } catch (Exception ex) { AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, ex.Message); } failpoints = pic.FailedPoints; ocurves = pic.OrganisedCurves; if (failpoints.Count > 0) AddRuntimeMessage(GH_RuntimeMessageLevel.Remark, "Some point(s) did not lie within a tributary area, were on the boundary/tolerance limit of of a tributary area, or multiple points were within the same tributary area. See output FP for the points that have failed"); foreach (Curve c in ocurves) { Brep b = Brep.TryConvertBrep(c); otribareas.Add(b); } //Pass data to outputs DA.SetDataList(0, ocolumnpoints); DA.SetDataList(1, otribareas); DA.SetDataList(2, failpoints); } //Grasshopper icon for component protected override System.Drawing.Bitmap Icon { get { return Properties.Resources.ColumnOrganiser; } } /// <summary> /// Gets the unique ID for this component. Do not change this ID after release. /// </summary> public override Guid ComponentGuid { get { return new Guid("{3259e465-5400-48e3-907b-fcb7455b12aa}"); } } }}
Helper class
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Rhino.Geometry;namespace Load_Take_Down_Tool{ class PointsInsideCurves { private List<Point3d> Points { get; set; } private List<Curve> ClosedCurves { get; set; } private double Tolerance { get; set; } public List<Point3d> FailedPoints { get; set; } public List<Curve> OrganisedCurves { get; set; } public PointsInsideCurves() { } public PointsInsideCurves(List<Point3d> Points, List<Curve> ClosedCurves, double Tolerance) { this.Points = Points; this.ClosedCurves = ClosedCurves; this.Tolerance = Tolerance; Evaluate(); } public PointsInsideCurves(List<Point3d> Points, List<Brep> ClosedBreps, double Tolerance) { this.Points = Points; this.Tolerance = Tolerance; List<Curve> Curves = new List<Curve>(); foreach (Brep b in ClosedBreps) { Curve[] c = b.DuplicateEdgeCurves(); c = Curve.JoinCurves(c, Tolerance); Curves.Add(c[0]); } this.ClosedCurves = Curves; Evaluate(); } private void Evaluate() { //Sorts in order of points //Naive implementation //Can update to KD tree if necessary List<Curve> OrderedCurves = new List<Curve>(); List<Point3d> fPoints = new List<Point3d>(); //Have to duplicate the input list of curves to modify as we go List<Curve> CCDup = this.ClosedCurves; foreach (Point3d Point in this.Points) { //Backwards loop to allow removal bool assigned = false; for (int i = CCDup.Count - 1; i >= 0; i--) { if (CCDup[i].IsClosed == false) { throw new Exception("Curve is not closed"); } if (CCDup[i].Contains(Point) == PointContainment.Inside) { OrderedCurves.Add(CCDup[i]); CCDup.RemoveAt(i); assigned = true; break; } } //If point not within any of the given breps put null in the list if (assigned == false) { OrderedCurves.Add(null); fPoints.Add(Point); } } this.FailedPoints = fPoints; this.OrganisedCurves = OrderedCurves; } }}
…
Added by Hugh Groves at 3:43am on September 30, 2014
hours/day (40 hours) Future University in Egypt (FUE) Department of Continuing Education(DCE) ________________________________________ The aim of this workshop is to teach participants how to create a parametric housing model which can be associated with day lighting and thermal analysis. Moreover, participant will get the opportunity to develop passively design envelope. The workshop is highly interactive giving different examples that develop a strong understanding of Grasshopper Workflow & different passive strategies using the performance simulation tool (DIVA). The participants are divided into groups to study the different orientations and the final outcomes of each group are presented thus concluding the recommendation strategies for each orientation. At the end of the workshop, each participant will receive a Certificate of Attendance from Future University in Egypt. Target Participants: ‐Professional architects. ‐Master and PhD students. ‐ Last year of undergraduate students (ONLY). Prerequisite: -None, however, a basic Grasshopper & Rhinoceros knowledge is preferred. Used Software:(will be provided by the instructor). ‐Rhino 5 SR 3 ‐Grasshopper 0.90066 ‐DIVA Version 2.1.0.3 ________________________________________ Workshop Outline: 1st DAY (Wednesday 29 Jan): 1.Introduction to passive design strategies (efficient envelope) 2.Introduction to parametric design logic 2nd DAY (Thursday 30 Jan) : 1.Developing technical tools based on reverse engineering technology. 2.Examples for parametric facade design 3rd DAY (Saturday 1 Feb): 1.Enforcing the parametric logics with Grasshopper 2.Introducing the performance simulation tool (DIVA) 4th DAY (Sunday 2 Feb): 1.Facade design using grasshopper ‐Studio work. 2.Associative techniques – Day lighting and thermal simulation 5th DAY (Monday 3 Feb): 1.Final optimization and final results 2.Group work presentation ________________________________________ Participants are required to bring their own laptops. To register: 1.Fill in the application form found in this link: https://docs.google.com/forms/d/18OrcwwDks5-vd0irZITC430bjMVb8I8pdw0i5OefyMg/viewform 2.Kindly pay the workshop fees at FUE DCE Admission or in the Bank account Number of participants is a minimum of 20 and a maximum of 24 ________________________________________ Workshop Trainers: Ayman Wagdy Mohamed Ibrahim Researcher at Sustainable Design research group | AUC Lecturer at Parametric design | AUC M.Sc. Architecture – Architecture and Building Technology| Politecnico Di Milano Haitham Salah Ali Mahmoud Teaching Assistant of Design course | AASTMT Head of design team | YBA Architect Principal and cofounder | Arkan Architect ________________________________________ For any questions or info please do not hesitate to contact us at : Mob. : 01003220017 - 01008551772 Email : Fue_ppd@outlook.com…
Added by ayman wagdy at 12:12pm on January 17, 2014
how to call excel vb commands from within rhino
The idea is that data from grasshopper could produce a very basic diagram or certain conditions, in this case floor plates and stairwell locations. The user could then "draw" using the formatting tools. In this case the dark colors would represent a change in the fenestration pattern Code in excel would search for the formatting (easy enough to do through Excel Vb) and output the resulting data into another workbook.
Basically you would be using excel as a CAD tool. The advantage of this is that it gives you a flexibility that pure code can't. Which I think is very exciting, because code can't deal with exceptions very well. For example, another possible use I could think of would be the manipulation of a brick wall. Since excel has multiple worksheets, you could LAYER code for one object. One worksheet could give instructions on brick rotation the other on a cull pattern. . . . The advantage of excel is that you can vary these patterns based on the location of your program for example, so that the density would decrease at a certain point. With the vb script, you could also get quite sophisticated with the patterning. In essence each cell is a pixel.
image by danielle aubert "excel artist"
The difference with excel, which makes it a very POWERFULL tool in my opinion is that you are not trapped into what your code outputs, which often is incredibly difficult to have respond to various condition, program, sunlight etc. With excel you can use code to generate a basic pattern, but then modify it. You can also layer code, just like you do in photoshop to produce different effects on the same geometry. You could even execute different code in different areas. . . . Anyway, I thought that it was potentially a game changer. Let me know what you think. And if you have any pointer on , how to start running excel code from rhino or importing rhino data to excel please share so I can start playing with these ideas.…
Added by Ben Fortunato at 8:15am on February 28, 2010
ours looks like). Anyway, you'll probably want to start with a Fader 1-way. I set mine up to go from 0 to 300 over the course of 6 seconds. Then I just wrote a very quick C# component to check the output of the Fader component and whether it met one of three conditions. Here's the code (very simple). Note: you'll need to use the input manager to remove one of the Y input and the output manager to add 2 more outputs (B & C).
if (x <= 100) { A = true; B = false; C = false; } if (x > 100 && x <= 200) { A = false; B = true; C = false; } if (x > 200) { A = false; B = false; C = true; }
Now, we know if at any given Fader value if it's in the first phase, second phase, or third phase. I output a boolean value which can also be considered a 0 or 1 if converted to an integer. So, if I multiply those boolean values by 255, then the one that is true will be 255, and the others will always be 0. Now, you should have your color scheme which switches depending on what phase its in. Simply connect that to the Uno Write component (with the Firefly Firmata sketch loaded on your board) and send the color values to the board as PWM values.
Some things I should note... You probably notice the Fader component looks a little different (it's missing the start input and I'm using the GH_Timer). I've decided (for good reason) to abandon the Form Timer I was using in a lot of the Firefly components in favor of the newly re-written GH_Timer component. So, in order to get the Fader component to update in the next version, you have to connect a Timer and turn it on (not that much different). But, it's significantly faster. Part of the reason is that the form timer just wasn't fast enough to get really smooth results... Now, it's blazing fast. I've incorporated this Timer scheme in a lot of the Firefly components and the results are roughly 10x faster. Since, you're only switching values (and not trying to quickly modulate the PWM values) the current version of Firefly should be just fine (just use the Start input to start the Fader component). But, when we release the next version (hopefully very soon), this may change a bit. Anyway, I hope that clarifies it a bit. I've attached a screenshot below. I didn't include the file because I've got a newer version of Firefly that would just crash on you (or not open properly)... but hopefully you can get how to do it.
…