he installation folder, Drag & drop SYNTACTIC(green one) over your grasshopper canvas.3. Close your rhino and reopen it. 4. Type GrasshopperDeveloperSettings5. Tick the Memory load *.GHA assemblies using COFF byte arrays option6. Run grasshopper and enjoy plugin…
picture:
... and on a PC without anything attached to the serial port. When you open the port, start the read component and its timer, do you then get a stream of <empty> values in the log output? (hmmm... I suppose that's only reasonable - but still, you are also seeing this?)
I suppose that, because of the mutually exclusive behavior of both the spider and grasshopper (i.e. only one at a time can access the COM port), we can deduce that we are listening on the correct port.
Am I listening on the correct pin (if such a notion makes sense at all)? If I look back to the spider software, I see that 9 channels are listed and that it's only the measured value on channel 0 that changes when I press the load cell. Channels 1, 2, and 3 report OVERFLOW; 4, 5, 6, and 7 are pretty much constant at 0.000 to 0.005 V; and channel 8 says FFFF. I do not know how things like that work so I do not know if they reflect reading from the 9 pins on the D-sub 9 connector.
As for your BTW question: no, I don't need to record all of the sensor values. I suppose that the Out value on the Read component will always reflect the most current value and that's all that I need to get on with life. In the end, the idea is that we have 4 load cells in the 4 corners of a plate onto which a vertical pipe is fixed. Loads are then put on the top end of the pipe and we'll have to visualize both direction and magnitude of the bending moment that is calculated from the compression - tension readings from the load cells... We've done this on a scaled model and streamed load cell information into MatLab. Now we'll have to use a different datalogger and I was hoping to be able to do the post processing in Rhino.
wim…
aph relaxation in 3D and more). There is much more already in our GitHub repos and more to be added. For getting an idea of our future direction check this lecture out. For getting a better understanding of graphs and graph theory watch this lecture and this lecture on a gamified spatial configuration process. Stay tuned for more and do not hesitate to post Python questions in the meantime.
ps. If you are having installation problems, please check the remedy suggested below:
Comment by Iman Sheikhansari on August 26, 2019 at 8:33amDelete Comment
HiIf you are encountering a problem with rhino 6 versions don't worryFollow these steps.1. Download SYNTACTIC from https://sites.google.com/site/pirouznourian/syntactic-design2. Install it and go to the installation folder, Drag & drop SYNTACTIC(green one) over your grasshopper canvas.3. Close your rhino and reopen it. 4. Type GrasshopperDeveloperSettings5. Tick the Memory load *.GHA assemblies using COFF byte arrays option6. Run grasshopper and enjoy plugin
…
s para acercarse al diseño paramétrico.
El curso esta dirigido a arquitectos diseñadores e ingenieros de diseño que pretendan implementar las técnicas del modelado por parámetros dentro de sus herramientas de proyectación.
La duración de dicho curso es de 20 horas, repartidas en 6 sesiones los días lunes y miércoles de 5pm a 8:20pm, en el espacio cultural calle nueve (calle 9 # 43b-75 abajo del parque del Poblado. https://www.facebook.com/calle.nueve). El curso dará inicio el día lunes 22 de Agosto de 2011. El máximo de inscritos por curso es de 15 personas para garantizar la calidad de la enseñanza.
Este curso estará dictado por los arquitectos Ana Maria Bustamante Y David Vanegas arquitectos de la oficina de arquitectura interior137 (www.interior137.blogspot.com) que cuentan con más de dos años de experiencia en el manejo de GRASSHOPPER, y tienen una trayectoria reconocida como docentes en la Facultad de Arquitectura de la U.P.B.
Para participar en el taller los estudiantes deberán tener un computador portátil para su uso personal, durante todo el curso, además deben tener instalado el software Rhino versión 4.0 con la actualización SR9, y un conocimiento mínimo del modelado y la interfaz de este software.
Contenidos:
Sesión 1: * Introducción al modelado por parámetros y al diseño mediante algoritmos.
* Grasshopper: datos + acciones. Interface.
Sesión 2: * Datos fijos, datos variables: Parámetros.
* Puntos, Curvas parametrizables.
* Transformaciones: Mover, Rotar.
Sesión 3: * Datos múltiples (listas): Series. Rangos.
* Funciones de 1 y 2 variables.
Sesión 4: * Gestiones de datos en listas: seleccionar items, ordenarlos, desordenarlos, eliminarlos.
Sesión 5: * Atractores.
Sesión 6: * Superficies: creación de superficies, panelizaciones.
Informes e inscripciones:
Para inscribirse en el curso deberá reservar su cupo abonando el costo total del curso al menos hasta el miércoles 17 de Agosto. Este valor se devolverá totalmente únicamente en caso de cancelación del curso.
Para mayor información, póngase en contacto a través del correo electrónico interior137@gmail.com asunto: CURSO GH…
its way into parametric design on 24th February – 2nd March 2014. The workshop is designed to fulfill students' as well as professionals' requirements. The exceptional 30 seat workshop is part of the regular series of events called Parametric Bratislava, which is itself a unique activity in the central-european space. One week long workshop focused on architectural form-making, usage of digital techniques of parametric design is going to lead participants to the new approaches in both, design and architecture. ECOTYPE workshop is going to take place on 24th February – 2nd March 2014 (1 day optional Crash course + 6 days main course) at the Faculty of architecture, Slovak University of Technology. Renowned Serbian experts from Grupa Arhitekata Jelica Jovanović and Dragana Petrović are going to join forces with Italian Noumena architects Aldo Sollazzo and Iker Mugarra Flores to bring together the natural and the digital. The workshop is going to look into digital sensing structure subsystems, constituted by associative simulations of the relations between tectonics and the environment in which human activities take place according to specific programs. It is going to provide and control a constant flow of information about the changing internal and external conditions which is processed by a computational subsystem articulated by Rhinoceros 5 ( NURBS-based 3D modeling software) + Grasshopper 3D & Sub-Plugins (generative computation tools). Through these means new design opportunities are going to be explored. The resulting proposal challenges conventions and the way that design is conceived, stepping away from linear process and embracing holistic approaches. ECOTYPE workshop is meant for intermediate Grasshopper users. For the newcomers there is going to be available an optional one day Rhinoceros 3D + Grasshopper Crash course with Ján Pernecký (rese arch) and Fabio Palvelli (3D-Dreaming.com). The beginners are going to learn basic NURBS modelling, import/export techniques, best drafting practices and basic Grasshopper scripting – workflow, parameters, components, data structures, attractors, surface subdivision, mathematical and logical operations. - Aldo Sollazzo focuses on exploring critical issues in architecture, design, and urbanism through parametric design, scripting, and fabrication strategies.
- Iker Mugarra Flores is mainly specialized in advanced geometries and logics, prototyping and fabrication, environmental morphologies and holistic approaches to large and small scale strategic design ecologies.
- Jelica Jovanović is within Docomomo working on proposals for the protection and sustainable preservation policies of the modern movement architecture in Serbia.
- Dragana Petrović specializes on Bioclimatic design in Architecture.
- Ján Pernecký - Architect, researcher, curator, programmer, organizer.
- Fabio Palvelli - Architect, designer, researcher and publisher of architectural projects, workshop organizer. ECOTYPE's approach is focused on the architectural view of the geometry. The participants are going to get acquainted with a vital tools for producing algorithm-driven shapes with a strong sustainable concept. More info at: www.parametricbratislava.sk FB event: https://www.facebook.com/events/1432557286975440/?source=1 …
neybee?commentId=2985220%3AComment%3A1257744&xg_source=msg_com_gr_forum
is useful to replace values (even if I cannot replace the same value for example "fraction radiant" in two different internal gains), but not to add new stuff, as in our case.
As you may recall, we were able to add our internal gains through the additional strings, but we have the problem of the default ones that we can not change or remove.
We've noticed that People, Lights and ElectricEquipment Internal gains are located inside the "runEnergySimulation" honeybee command inside the Python script.
We were thinking of two possible quick alternatives while waiting to be able to fully customize the internal gains with honeybee.
For the first one, if it is possible, you could make a "modified" "runEnergySimulation" command for us in which you cut off the Internal Gain parts, so that we can add them as text in the additional strings part. Alternatively you could show us where to add the additional strings we need inside the runEnergySimulation command so that we can add the values we need to run the simulation.
For clarity, these are the internal gains in idf file we need (that are inside de gh file in the panel just below the additional strings command)
Lights,, !- Name, !- Zone or ZoneList Name, !- Schedule Name Watts/Person, !- Design Level Calculation Method , !- Lighting Level {W} , !- Watts per Zone Floor Area {W/m2} 16, !- Watts per Person {W/person} 0.2, !- Return Air Fraction 0.59, !- Fraction Radiant 0.2, !- Fraction Visible 0, !- Fraction Replaceable GeneralLights; !- End-Use Subcategory
People,, !- Name, !- Zone or ZoneList Name, !- Number of People Schedule Name People, !- Number of People Calculation Method 4, !- Number of People , !- People per Zone Floor Area {person/m2} , !- Zone Floor Area per Person {m2/person} 0.3, !- Fraction Radiant , !- Sensible Heat Fraction attività metabolica, !- Activity Level Schedule Name 0.0000000382, !- Carbon Dioxide Generation Rate {m3/s-W} , !- Enable ASHRAE 55 Comfort Warnings ZoneAveraged, !- Mean Radiant Temperature Calculation Type , !- Surface Name/Angle Factor List Name, !- Work Efficiency Schedule Name ClothingInsulationSchedule, !- Clothing Insulation Calculation Method , !- Clothing Insulation Calculation Method Schedule Name, !- Clothing Insulation Schedule Name, !- Air Velocity Schedule Name AdaptiveCEN15251; !- Thermal Comfort Model 1 Type
ElectricEquipment,, !- Name, !- Zone or ZoneList Name, !- Schedule Name Watts/Area, !- Design Level Calculation Method , !- Design Level {W} 5, !- Watts per Zone Floor Area {W/m2} , !- Watts per Person {W/person} 0, !- Fraction Latent 0.3, !- Fraction Radiant 0, !- Fraction Lost General; !- End-Use Subcategory
Thank you very much!Filippo
…
mp; fabrication and construction into a new era of architecture.
Register HERE
We follow three lines of thought to translate structural design in material fabrication. The first ultra lightweight, rethinking shape and material, the second dealing with same single material components, aggregated within a network, working with directionality of the elements and their connections to perform stability and for the third we will rethink definition of the brick.
Our Translations will be designed, analysed and presented in both digital and physical prototypes; from table top models, to 2m high structures.
The use of Grasshopper, Karamba and Digital Fabrication tools drive our evolutions of design. Structural design allows us to play with the type of forces in elements, orientation, force flow, geometry, restraints and connection. We use this structural behaviour to inform the search for new links between materiality, form and construction, progressing towards a unique relationship of structure, construction and fabrication.
Our Translations will be presented, through digital and physical prototyping showcasing the process of linking digital and physical inputs as a continuous feedback loop, rethinking structural design and material fabrication.
…
ne diverse digital design methodologies and the use of different tools such as Autodesk Maya, Rhinoceros and Grasshopper.
Building up technical skills will provide the attendees with a solid platform from which to start rethinking and exploring innovative architectural ideas in collaboration with the team and the tutors.
URBAN FIELDS
Phase I
In the first part of the workshop attendees will be looking at field conditions and how to generate and design such fields that can help structure a possible urban condition in Florence.
We will be exploring dynamic systems, geometric systems and network theories to generate and design an abstract field condi- tion that extends the urban experience of the city onto the vertical dimensions of towers. Simple operations that would span variations from an initial state will give rise to high level of com- plexity.
The goal of this exercise is to create a rich and diversified intel- ligible urban space that can be later on subjected to local inter- ventions and zooming in to locally enhance each design.
AGENT - BODIES POLYMORPHISM
Phase II
The second part of the workshop will build upon first phase; par- ticipants will select one archetype (high rise tower) as a study model for further development.
Besides engaging with multi agent algorithms design strategies, attendees will address strategic utilisation of structurally and environmentally generated morphologies to design coherent and highly differentiated tower exo-skeletons.
Tutors will introduce agent-bodies polymorphism in order to explore the generation of structural aware and capable geom- etries through agent based formation of non-linear hierarchies and emergent patterns. These agent-bodies will operate in a complex spatial manner to form structure, partitions or enclo- sure and will operate across scales, creating a poly-scalar level of detail.
Attendees will speculate how autonomous systems can cre- ate new structures and intelligent distribution of structural elements, about new collaborative strategies of construction and the performativity they will evoke (performance, effects, responsiveness, interaction).
Fees
Early registration (before 1st June)
Students 390€ - Professionals 440€
Late registration (after 1st June)
Students 490€ - Professionals 540€
More info and Applications
https://www.ax-om.com/edu/polymorphism/
…
ariations, but each seems to lack the sophistication to generate a ‘zip’ that retains its general shape over the whole curve.
Basically I’m trying to understand the process behind this: http://www.schindlersalmeron.com/index.php?option=com_content&task=view&id=27&Itemid=29
Here is an image of the latest definition.
1. I draw a curve in Rhino, and then define it in grasshopper. I also define the point as the beginning of the curve.
2. I offset the curve to a specified depth, based on structural member
3. I generate a line from the point at a tangent to the curve, then rotate it a
defined angle.
4. I find the intersection between the rotated line and the offset curve. Then generate a tangential line from this new point
5. Line is rotated at the same angle as before.
6. Process repeated.
The idea is to then generate a circle of defined diameter at each of the intersection points, then find the intersection of the circles with the curves, which are then joined up with straight lines to create the ‘zip’. This would mean a lot of copy-pasting and list management that I’m not really capable of with my limited grasshopper experience.
I had tried generating points at intervals along the curve and then eventually generating lines from one line to another with a shifted listed to form the tooth angle, but it wouldn’t retain its shape over the entirety of the curve.
Does anyone have any advice for how to tighten up this definition? I imagine that I will need to delve into vb.net scripting to address the recursive nature of the process.
I fear that I’m going about this in entirely the wrong way...
Of course the next step is to flatten out the curve for CNC manufacture.
Any help would be greatly appreciated! The potential for using grasshopper in design is amazing, and I would love to gain a deeper understanding of it!…
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)…