large scale prototyping techniques. The programme continues to build on its expertise on complex architectural design and fabrication processes, relying heavily on materiality and performance. Autumn DLAB brings together a range of experts – tutors and lecturers – from internationally acclaimed academic institutions and practices, Architectural Association, Zaha Hadid Architects, among others.
The research generated at Autumn DLAB has been published in international media – ArchDaily, Archinect, Bustler – and peer-reviewed conference papers, including SimAUD (Simulation in Architecture and Urban Design), eCAADe (Education and research in Computer Aided Architectural Design in Europe).
Autumn DLAB investigates on the correlations between form, material, and structure through the rigorous implementation of computational methods for design, analysis, and fabrication, coupled with analog modes of physical experimentation and prototype making. Each cycle of the programme devises custom-made architectural processes through the creation of novel associations between conventional and contemporary design and fabrication techniques. The research culminates in the design and fabrication of a one-to-one scale prototype realized by the use of robotic fabrication techniques, with the aim of integrating of form-finding, material computation, and structural performance.
The programme is structured in two stages:
PART 1 – participants are introduced to core concepts of material processes, computational methods and digital fabrication techniques. Basic and advanced tutorials on computational design and analysis tools are provided. The programme performs as a team-based workshop promoting collaboration, research and ‘learning-by-experimentation’.
PART 2 – participants propose design interventions based on the skills and knowledge gained during phase 1 and supported by scaled study models and prototypes. The fabrication and assembly of a full-scale architectural intervention with the use of robotic fabrication techniques will then unify the design goals of the programme.
Applications
1) A limited number of 10 places are available. To apply, please send a small portfolio (5MB) to the Visiting School Office.2) PARTIAL SCHOLARSHIPS ARE AVAILABLE. Please send a letter of intent and a small portfolio (5MB) to the Visiting School Office.3) As this programme has a limited number of places it requires a selection process, if you are offered a place on programme, the Visiting School Office will inform you of how you can complete the registration process.
The deadline for applications is 13 AUGUST 2021.
Eligibility
The workshop is open to current architecture and design students, PhD candidates and young professionals. Software Requirements: Adobe Creative Suite, Rhino 6. No prior knowledge of software tools is required for eligibility.
Fees
The AA Visiting School requires a fee of £975 per participant, which includes a £60 Digital Membership fee.Students need to bring their own laptops, digital equipment and model making tools.
…
his comes in the form of an HTML page with links to every component, so you will need to view it in your web browser. (I use Chrome and it doesn't seem to be working correctly, but when opened in IE its fine.)
2) Included in each help topic for each component is the Inputs and Outputs descriptions and data types.
3) You supply the data. What you supply and how you supply it is for you to decide. There are umpteen different ways. Are you asking for a list of those ways for each input?
4) Points can either be Rhino objects or 3D co-ordinates. To create a point you can use any of these methods, but it mostly comes down to user preference. I like using Panels as this displays outside of the component.
5) Because of the nature of vectors they represent magnitude and direction but they don't have an independent location, so there is a component that will display vectors in Rhino.
6) The user.
7) There is a Primer on the front page. Here you find the Basics, but because GH is ever evolving in its current beta state you might find things that aren't relevant any more or simply don't work the same. And here is the reason why nobody is writing an update because it could be soon out of date.
8) Importing images by either dragging them from explorer onto the canvas or right click context menu Image...
9) Single line = Single Item of Data. Double line = Multiple items of data on the same Branch. Dashed Double Line = Multiple Data on Multiple Branches.
10) User preference
11) Toolbar management is probably the bane of David's life. Most things are logically placed. For example the Curve Tab, Primitives are any simple curve types that you are creating from scratch. Similarly Splines is for more complex curve types created from scratch. Analysis is where you find components that are finding answers supplied by curves, control points, curvature, parameters, end points etc. Division is a subset of this category but has a group of its own. And Utilities is where you find curve related actions that you want to perform, offsetting, rebuilding projecting, exploding etc.
12) I would image it would have been the Point On Curve component in Curve>Analysis. Why that group? You are not putting a point on a curve you are analysing a curve for the location of a point based on some parameters that you are supplying. For example "what is the mid point?"
I hope this goes some way towards answering you questions. No doubt this will have generated more so don't be afraid to ask, it took me several releases of Explicit History (aka Grasshopper) before I realised what the egg did, it never occurred to me that I could put my objects into Rhino when I was finished. Or the fact that I could use panels to 'see' data outputs.
Al the best,
Danny…
Added by Danny Boyes at 3:48am on December 9, 2010
should follow the instruction which mostapha has wrote in https://github.com/mostaphaRoudsari/ladybug/blob/master/resources/I...
Instructions for Installing Ladybug + Honeybee: (Follow steps 1-6 for basic functionality and 1-11 for full functionality) 0. If you have an old version of LB+HB, download the file here (https://app.box.com/s/ds96em9l6stxpcw8kgtf) and open it in Grasshopper to remove your old Ladybug and Honeybee version. 1. Make sure that you have a working copy of both Rhino and Grasshopper installed. 2. Open Rhino and type "Grasshopper" into the command line (without quotations). Wait for grasshopper to load. 3. Install GHPython by downloading the file at this link (http://www.food4rhino.com/project/ghpython?ufh) and drag the .gha file onto the Grasshopper canvas. 4. Select and drag all of the files in the "userObjects" folder (downloaded with this instructions file) onto your Grasshopper canvas. You should see Ladybug and Honeybee appear as tabs on the grasshopper tool bar. (If you are reading this instruction on github you can download them from http://www.food4rhino.com/project/ladybug-honeybee) 5. Download the files at this link (https://app.box.com/s/bh9sbpgajdtmmystv3n4), unzip them and copy the contents to both C:\ladybug and C:\Users\[yourUsername]\AppData\Roaming\Ladybug. 6. Restart Rhino and Grasshopper. You now have a fully-functioning Ladybug. For Honeybee, continue to the following: 7. Install Radiance to C:\Radiance by downloading it from this link (https://github.com/NREL/Radiance/releases/download/4.2.2/radiance-4...) and running the exe. 6. Install Daysim to C:\DAYSIM by downloading it at this link (http://daysim.ning.com/page/download) and running the exe. 8. Install Energy Plus 8.1 to C:\EnergyPlusV8-1-0 by going to the DOE website (http://apps1.eere.energy.gov/buildings/energyplus/energyplus_downlo...), making an account, going to "download older versions of EnergyPlus, selecting 8.1 and running the exe. 9. Copy falsecolor2.exe (http://pyrat.googlecode.com/files/falsecolor2.exe) and evalglare.exe (http://www.ise.fraunhofer.de/en/downloads-englisch/software/evalgla...) to C:\Radiance\bin 10. Download the OpenStudio Libraries (https://app.box.com/s/y2sx16k98g1lfd3r47zi) and unzip them to C:\ladybug\OpenStudio. 11. You now have a fully-working version of Ladybug + Honeybee. Get started visualizing weather data with these video tutorials (https://www.youtube.com/playlist?list=PLruLh1AdY-Sj_XGz3kzHUoWmpWDX...).
It works for me..
Agus…
ly one (Cost of the structural material in my case) and penalize the individuals that not satisfy the structural verification by multipliyng the cost for that iteration for a factor 10. This seem to work really good, infact I obtained a convergence of the results in a specific area and number of beams.
Now, I've to modify something because the thickness of the insole, tend to minimum of the range (only because it's the most expensive material in my case), despite the validation of structural verification that is satisfied with the maximum height of the beams.
I'm expecting a insole thickness about 20-30 cm and beams height less that the maximum. I increase the range of the thickness insole to a minimum of 20 cm, but I hope the solution tend to a larger value.
Do you have some suggestion in this case?
Your post was really helpful, thank you so much again for the perfect explanation!
Leonardo…
() Sub Main()
' user input
Dim intHowManyTrees : intHowManyTrees = Rhino.GetInteger("how many trees is a forest",20,1,50) Dim intHowManyGenerations : intHowManyGenerations = Rhino.GetInteger("how many generations is a tree?",6,1,10) Dim dblForestLength : dblForestLength = Rhino.GetReal("was is the desired length of your forest",50) Dim dblForestWidth : dblForestWidth = Rhino.GetReal("was is the desired width of your forest",50) Dim dblInitLength : dblInitLength = Rhino.GetReal("was is the desired length of the first main Branch?",10) Dim ang : ang = Rhino.GetReal("angle of rotation", 30, 1, 180) Dim scale : scale = Rhino.GetReal("scale of branch", 0.9) 'loop for number of generations i 'ReDim arrgenerations (Ubound (intHowManyGenerations)) Dim layer_0 : layer_0 = Rhino.AddLayer("0") Dim i For i=0 To intHowManyTrees Dim arrSeed : arrSeed = Array(Rnd*dblForestLength, Rnd*dblForestWidth,0) Dim strLine : strLine = Rhino.AddLine(Array (arrSeed(0), arrSeed (1), arrSeed (2)+Rnd*3), Array(arrSeed(0), arrSeed(1),arrSeed(2)+Rnd*dblInitLength+3))
Call Rhino.ObjectLayer (strLine, "0" ) Call Rhino.ObjectName (strLine, i) Next Dim j,vec ReDim arrbranch (intHowManyGenerations) For i=1 To intHowManyGenerations 'select the elements arrbranch (i) = Rhino.ObjectsByLayer (i-1) Dim strBranch For j=0 To Ubound(arrBranch(i)) strBranch = arrBranch(i)(j) Dim strParentName : strParentName = Rhino.ObjectName(strBranch) ' get start and end points Dim arrStartPt : arrStartPt = Rhino.CurveStartPoint(strBranch) Dim arrEndPt : arrEndPt = Rhino.CurveEndPoint(strBranch)
' get a vector between start and end vec = Rhino.VectorCreate(arrEndPt, arrStartPt) ''''' vec(x,y,z)
' scale vector vec = Rhino.VectorScale(vec, scale)
' rotate vectors Dim arrPlane : arrPlane = Rhino.CurvePerpFrame (strBranch, Rhino.CurveDomain(strBranch)(1))
Dim arrRotAxis Dim layer layer = Rhino.AddLayer ( i )
arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec1 : vec1 = Rhino.VectorRotate(vec, ang, arrRotAxis) ' add the vector to the end point Dim newEndPt : newEndPt = Rhino.VectorAdd(arrEndPt, vec1)
Dim line1: line1 = Rhino.AddLine(arrEndPt, newEndPt) Call Rhino.ObjectLayer (line1, i) Call Rhino.ObjectName(line1, strParentName)
If rnd<0.8 Then arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec2 : vec2 = Rhino.VectorRotate(vec, -ang, arrRotAxis) Dim newEndPt2 : newEndPt2 = Rhino.VectorAdd(arrEndPt, vec2)
Dim line2: line2 = Rhino.AddLine(arrEndPt, newEndPt2) Call Rhino.ObjectLayer (line2, i) Call Rhino.ObjectName(line2, strParentName) End If
If rnd<0.2 Then arrRotAxis = arrPlane(Int(Rnd*3)) Dim vec3 : vec3 = Rhino.VectorRotate(vec, ang*(rnd-0.5)*2, arrRotAxis) Dim newEndPt3 : newEndPt3 = Rhino.VectorAdd(arrEndPt, vec3)
Dim line3: line3 = Rhino.AddLine(arrEndPt, newEndPt3) Call Rhino.ObjectLayer (line3, i) Call Rhino.ObjectName(line3, strParentName) End If Next Next End Sub
Any kind of help would be highly appreciated…
, that are specifically applicable to each site. We strive for intelligent abstractions of these local programmatic, climatic, and biotic conditions to inform the iterative development of digital models, resulting in a holistic and ecologically calibrated design. We are engaged in solo projects and multi-firm collaborations ranging in scale from experimental furniture to urban re-visioning.
We are located in Cincinnati, Ohio, a U.S. Rust Belt city currently experiencing rapid growth and strong momentum. The office is located in Cincinnati's Over-the-Rhine neighborhood, arguably the the largest, most intact urban historic district in the United States.
MMA is led by Michael McInturf, the current Interim Director of DAAP SAID, the University of Cincinnati's architecture school. DAAP SAID is hosting the 2015 ACADIA Conference.
We are looking for talented individuals to enrich our architectural practice, and to bring creative energy to our process of iterative design, computation, and 3D modeling!
The following position is available immediately:
COMPUTATIONAL EXPERT / ARCHITECTURAL DESIGNER
Desired Attributes:
Expert skills in Grasshopper (including Add-ons), familiarity with Rhino Plug-ins
Excellent conceptual and practical understanding of environmental analysis and parameters in architectural design
Experience defining geometric morphology with environmental inputs and climate analysis, in Grasshopper
Advanced modeling skills in Rhino NURBS
Excellent design sensibility and comfort with an iterative digital design process
Proficiency in Grasshopper data trees and various methods of tree mapping
Familiarity with Grasshopper optimization, evolutionary solvers, recursive definitions
Preferred knowledge of scripting/custom code within Grasshopper (using any of the following: VB.net, C#, or GhPython)
Familiarity with digital fabrication topics, such as understanding limitations (of materials, individual machines, axes, tool heads), generating tool paths, CAD/CAM, machine operation, etc
Requirements:
Architecture degree required, M.Arch preferred
1-3 years of architectural design experience required
Advanced knowledge of Rhino, expert knowledge of Grasshopper
Ability to effectively communicate with design team
Ability to efficiently design and 3D model iterative studies
Ability to efficiently prepare and use Grasshopper generative algorithms and their inputs
High proficiency in English
Please submit cv & portfolio (< 10 pages / 3MB) to: work@mcinturf.com
(We also have an opening for an Architectural Designer/3D Modeler. More information can be found on our website.)
_________…
rrect, the heat balance of a zone is always 0 = Qcool/heat + Qinf + Qvent + Qtrans + Qinternalgains + Qsol. These parameters also correspond with the readEPresult element. However, if i sum up these values there is a slight deviation.
The deviation is greater during daytimes and in winter, suggesting it has something to do with the heating values.
Attached you'll find an image of the energy plus outputs that I use and the resulting -.CSV file that I constructed. In this you'll see that the balance does not add up.
Am i missing some energy flows?
Thanks for the help.
Hour[H]
Qbal{kWh]
Qint[kWh]
Qsol[kWh]
Qinf[kWh]
Qvent[kWh]
Qtrans[kWh]
Tair[°C]
Tdrybulb[°C]
DIFFERENCE
1
3,039357
0,137702
0
-0,253218
-0,321929
-2,000028
20
5,1
0,601884
2
3,107099
0,125462
0
-0,247457
-0,315484
-1,881276
20
4,6
0,788344
3
3,181073
0,119342
0
-0,261765
-0,334485
-2,473788
20
4,3
0,230377
…
So it's not true that Bounds.X is only a getter. However it does behave as though it is. This is because RectangleF is a Value Type instead of a Reference Type. When you assign a variable of one value type to another variable of the same type, you always assign a copy of the first value. So when you request the Bounds from an attributes class, what you get is a copy of the actual bounds. Changing the X on this copy would be a useless operation which is why Visual Studio catches this mistake.
Let's assume that Dog is a class (a reference type) and it has a get/set property for fur type. Then, if I type:
Dog A = new Dog();
A.Coat = Long;
Dog B = A;
B.Coat = Short;
At the end of these lines, both A and B have a short coat, because the act of assigning A to B (line 3) means that both A and B now point to the same instance of Dog in memory. In effect, A and B are the same. If Dog were a struct (a value type), then at the end of this code A and B would have different coats, because assigning A to B means creating a copy of A. Any changes made to B will not affect A.
The one place where this causes annoying situations is exactly where you ran into it. If a property returns a value type then it's typically not useful to call properties and methods on that returned data, as it would only affect the copy of the actual data instead of the original data. That's why, if you want to change the Bounds of an attribute, you need code like this:
RectangleF box = Bounds;
box.X +=10;
Bounds = box;
On to the second problem, which is that doing it this way won't help you one bit. Laying out a component is a difficult job and the size of the Bounds depends on many things:
The display mode of the component (icon or text).
The size of the text (depending on which Font to use).
The maximum number of input and output parameters.
The maximum width of the longest input/output parameter name.
The maximum number of state icons to draw on the input/output parameters.
Changing the Bounds after the layout has occurred will basically just invalidate the parameter layout, resulting in parameter names and grips being drawn in the wrong places.
If you want to affect the size of the Bounds for a GH_Component class, you're going to have to dive in and do the laying out yourself. As mentioned before, this is not trivial.
There are static methods on GH_ComponentAttributes which are helpful when doing this, have a look at:
LayoutComponentBox()
LayoutInputParams()
LayoutOutputParams()
LayoutBounds()
Unfortunately they are undocumented.
--
David Rutten
david@mcneel.com…
Added by David Rutten at 1:39pm on January 31, 2014
both my plotter/cutter and wide format printer. I had been running the plotter from my main work laptop - a Win10 machine via the plotters USB port. As it turns out you can't get Win XP drivers for this USB connection so I needed another solution.
I tried to use the plotters DB25 serial port connection using an old DB9 to DB25 modem cable I had in my collection = no luck the plotter wouldn't talk. A bit more research and it turns out these plotters need a 'null modem' cross over cable to operate. I found a pic of the correct wiring online and made up my own with some cable and connectors from the local electronics hobby shop.
With this hooked up and using Hyperterminal I was able to fire some codes to the plotter directly and get a response back - winning!
At this point I got my original code working with the 'net use' redirect from LPT1 to COM1.
HOWEVER - being that the plotter was now on a COM port there are a few more interesting things you can do with it - one is being able to read the paper size/cut area from the printer.
So what I needed to to was find a way to send and receive data to/from the plotter using the serial port.
A bit of research into .NET's serial port interface and using a bunch of small pieces of test code I have manged to completely re-jig this driver.
Upgrades include:
- Direct Serial Port comms using Null Modem cable (a USB to serial adaptor + null modem should also work)
- Plot area read from the plotter - a rectangle the size of the plot area is placed on a separate layer and coloured red
- Testing to see if selected plotting curves are both closed and inside of the cutting area - with errors shown and exiting if they are not right.
- After plot 'parking' of the plot head at the end of the cut items + an adjustable offset (currently requires manual resetting of origin on the plotter before for next cut)
Great thing is it is now 100% running within Rhino Python - no DOS command line calls = no flashing up of the CMD wind. Also no temp files needed on the HDD and no limit to number of curves that can be plotted - tested with 200 or so with no issues.
Overall very happy with whole project - have learnt a LOT about Python and .NET interfacing AND ended up with a very handy/useful tool.
Cheers
DK
# This code is a WIP # It plots directly to a DGI Plotter# via the serial port
import System.IO.Ports as Portsimport rhinoscriptsyntax as rsimport time
#Some setup valuescom_port = 'COM1' #change to match plotter port baud_rate = 9600 #change to match plotter settingplotter_step = .025 #mmfinsh_offset = 10 #mm
#Delete old cutting area and cut objectsif rs.IsLayer('Cutting Area'): rs.PurgeLayer('Cutting Area')if rs.IsLayer('Cutting Objects'): rs.PurgeLayer('Cut Objects')
#Setup Serial PortMyport = Ports.SerialPort(com_port)Port_Write = Ports.SerialPort.WriteMyport.BaudRate = baud_rateMyport.ReadTimeout=5000 #5 secsMyport.Close()Myport.Open()
#Setup PlotterPort_Write(Myport, 'PU;PA0,0;IN;\n')Port_Write(Myport, 'SP1;\n')Port_Write(Myport, 'PA;\n')time.sleep(2)
#Read the Paper size from PlotterPort_Write(Myport, 'OH;') #HPGL read limits codetime.sleep(2)
return1 = ''papersize = ''count = 0char_in_buffer = 0chars_in_buffer = Ports.SerialPort.BytesToRead.GetValue(Myport)
if chars_in_buffer == 0: print 'Plotter not ready' Myport.Close() exit()
while (count < chars_in_buffer): return1 = Myport.ReadChar() papersize = papersize + chr(return1) count = count + 1
papersize = papersize.split(",")rect1 = (float(papersize[2])*plotter_step)rect2 = (float(papersize[3])*plotter_step)
print 'Cutting area = ' + str(rect1) + 'x' + str(rect2)
#place cutting area curve on its own layer, make it red and lock itplane = rs.WorldXYPlane()cutting_area = rs.AddRectangle( plane, (rect1), (rect2))rs.AddLayer (name='Cutting Area', color=(255,0,0), visible=True, locked=True, parent=None)rs.ObjectLayer(cutting_area, 'Cutting Area')
#get plotting objects
allCurves = rs.GetObjects("Select curves to plot", rs.filter.curve)
#test to see if these are closed curves - exit if not
for curve in allCurves: test_closed = rs.IsCurveClosed(curve) if test_closed == 0: print "One or move of these curves are not closed" Myport.Close() exit()
#test to see if these are inside cutting area - exit if not
for curve in allCurves: test_inside = rs.PlanarClosedCurveContainment(curve, cutting_area)
if test_inside==0 or test_inside==1: print "One or more of these curves are outside of cut area" Myport.Close() exit()
#All ok - convert to points and send data to printer
rs.AddLayer (name='Cut Objects', color=(0,255,0), visible=False, locked=True, parent=None)
for curve in allCurves: Port_Write(Myport, 'PU;PA;SP1;\n') polyline = rs.ConvertCurveToPolyline(curve,angle_tolerance=5.0, tolerance=0.025, delete_input=False, min_edge_length=0, max_edge_length=0) points = rs.CurveEditPoints(polyline) rs.ObjectLayer(polyline, 'Cut Objects')
# PU to the first point x = points[0][0] y = points[0][1] Port_Write(Myport, 'PU' + str(int(x / plotter_step)) + ',' + str(int(y / plotter_step)) + ';\n') # PD to every subsequent point i = 1 while i < len(points): x = points[i][0] y = points[i][1] Port_Write(Myport, 'PD' + str(int(x / plotter_step)) + ',' + str(int(y / plotter_step)) + ';\n') i += 1
Port_Write(Myport,'PU;\n')
#find the far end of the cutbox = rs.BoundingBox(allCurves)far_end = str(box[1])far_end = far_end.split(",")far_end = far_end[0]far_end = float(far_end)/plotter_stepfar_end = (int(far_end))+ finsh_offsetfar_end = str(far_end)print (far_end)
#return plotter home and close portPort_Write(Myport, 'PU;PA' + far_end + ',0;IN;\n')Port_Write(Myport, 'SP1;\n')Port_Write(Myport, 'PA;\n')Myport.Close()time.sleep(10)…
s meios acadêmicos e profissionais do Estado de Santa Catarina em parceira com a Escola de Design ELISAVA de Barcelona.
Metodologia: Mediante um exercício prático os participantes poderão ter em primeira mão uma aproximação às técnicas mais avançadas de design e fabricação digital.
Web: http://santacatarina.elisava.net/
e-mail: secretaria@sc.asbea.org.br
As atividades estão divididas em 3 etapas.
1ª etapa: Roadshow (Ciclo de Conferencias)
Palestrantes:
Affonso Orciuoli, arquiteto, professor da Escola de Design ELISAVA de Barcelona, Univesitat Ramon Llullp.d. As conferencias do Prof. Orciuoli serão através de videoconferência desde Espanha
Regiane Pupo, arquiteta, professora da UFSC, Florianópolis
As conferencias da Prof. Pupo são presenciais.
Datas:
Lages 01/11Chapecó 03/11Caçador 04/11Criciúma 07/11Baln. Camboriú 08/11Blumenau 09/11Joinville 10/11Florianópolis 11/11
Horário: 18:00 horas
Conferencia: Arquiteturas disruptivas. Design e fabricação na era digital.
Palestrante: Prof. Arq. Affonso Orciuoli | Professor ELISAVA | Barcelona
2ª etapa: Curso on-line de Rhinoceros
Durante o Roadshow será apresentado o curso on-line de Rhinoceros (http://www.rhino3d.com/).
Entre 01 e 22 de novembro serão subministrados tutoriais a todos os estudantes e professores participantes, a título de se prepararem para o workshop, ver sessão ”downloads”
3ª etapa: Workshop E-luminárias
Entre 23 e 27 de novembro de 2011, das 8:00 às 18:00 h (10 horas por dia)
Workshop Internacional (50 horas)
Diretor: Affonso Orciuoli
Professores: Regiane Pupo | Ernesto BuenoLocal: InovaLab | Sapiens Parque | Florianópolis | Santa CatarinaInvestimento: R$ 150 (estudantes) e R$ 300 (professores & profissionais)Vagas: 50Obs.: Materiais para a fabricação incluídos.
Objetivo: reunidos em grupos de 3 participantes, se desenvolverá um projeto completo de uma luminária, utilizando plataforma CAD. Posteriormente os participantes, com a ajuda dos instrutores, deverão preparar os arquivos para a fabricação na máquina fresadora e laser. Por último as luminárias serão montadas e expostas em conjunto.
Cada participante deverá trazer um laptop com os programas instalados (“demos” do Rhinoceros, RhinoNEST, outros programas de CAD também poderão ser utilizados). Todos estes programas estarão disponíveis para serem baixados a partir do site da Escola de Design ELISAVA de Barcelona.
Equipamentos presentes no workshop e à disposição dos participantes:
Máquina CNC tipo fresadora de 3 eixos
Máquina de corte a laser
Máquina de impressão 3D (a título de demonstração)…