r-tools/
the hack is found here: http://fancywires.com/?p=499
it doesn't function the same as it used to, and i wonder if somethings have changed in the functions underlying the VB script or maybe some other updates to GH that are relevant.
furthurmore, i ask if anyone has made advancements on labeling techniques for cnc/laser cutting?
is there anything more built into GH to do this task?
Permalink Reply by Giulio Piacentino on Thursday
Yesterday I was asked a modified version of the script. Now it supports planes, so it should be easier to use.
- Giulio
Permalink Reply by gotjosh on Thursday
Delete
cool! I also recently adapted the old version to use an input plane instead of a point... i'll have to look at your script to see if we made the same solution.
thanks for your reply... is there anyway that your script could take care of the hack that fancywires has made afterwards? it would be great to have each letter returned cleaned and joined, so there were exactly the same number of curves in the output as characters in the input...
i am basically clueless with VB and .net scripting so far, but i can code in AS3 and php, so a small push in the right direction might get me far...
How can one return one single curve in a letter like "O"? Do you mean using single-stroke fonts? Or maybe returning a brep (polysurface) as output?
- Giulio
…
nd B) daylight autonomy for a single room. A and B are therefore the conflicting objectives, and are connected to the O of octopus component. The geometry iterated is that of a window, on one of the rooms' facades.
I have a grasshopper definition that iterates the window by changing:
1. Window height
2. Window sill height
3. Window width
4. Window position from one side of the wall
1,2,3,4 are therefore the genes. A combination of these genes is a complete window, which is the chromoshome, that i will from now on call solution. All genes are connected to the G of octopus component.
Now regarding the octopus settings, i have these questions so that i can properly calibrate the settings (mutarion rate, crossover rate etc):
1.In the beginning of the octopus simulation, how many are the random solutions generated? (By random i mean totally random, not resulting solutions from mutation or crossover of previous solutions, i am talking about the very first generation). Is this number connected to the population size? Is it 6? How is it defined by octopus? Can somebody control it?
2.The first generation finishes when the number of "individuals to be evaluated" is reached. Then octopus jumps to the second generation. To do so, it keeps a specific number of solutions of the first generation, the so called elite. What is the number of these elite? Is it elitism x population size?
3.The SPEA2 original paper describes step wise the algorithm loop. During the loop, a number of solutions is stored in the elite domain, and from that domain, a number of solutions is used for mating. There are therefore two numbers, one that defines the number of solutions to enter the elite domain, and one that defines the number of solutions to be inserted in the mating pool. In octopus i only see elitism as a setting, which i am guessing is what defines the number of solutions to enter the elite domain. Is that true? How do i define the number of solutions to be copied in the mating pool, where mutation and crossover will occur? This number should be called tournament size, but i can't seem to find it..
4.Why is it that DURING one generation, the number of "individuals to be evaluated" can decrease? Is it because octopus finds out that there are no more possible solutions? (i am using discrete values for the genes)
5.The gene of window width, represented by a grasshopper slider, has 4 possible values: 0,1,2,3. Assuming that the mutation rate is 0.5. Does this mean that mutation of the gene can happen to an extent of 0.5 x 4 = 2? Meaning that the slider position can change for 0 to 2 or from 3 to 1 etc?
6.The mutation probability is dictating whether or not a gene will be mutated, or whether or not the whole solution will be mutated? So for instance, with a mutation probability of 0.5, does it mean that 2 out of the 4 genes are going to be mutated, or 2 out of 4 solutions is going to be mutated. If its the second case, then how is mutation divided between the different genes? Meaning, which of the 4 genes is going to get mutated? Is it random? Is it for all 4 genes?
7.Crossover can occur between 2 subsequent solutions. Crossover rate dictates whether or not crossover will take place? If so, then, assuming that it was chosen for crossover to take place between 2 solutions, which of the genes are going to be exchanged. I mean how many, out of the 4 genes (height, sill height, width, position). Is it random?
8.After clarifying the previous 7 questions, i can run a simulation. Then, is there an indicative number that i can be monitoring, to see that no more generations are required? I know that a good pareto has to be short, with a lot of solutions and with a uniform distribution. But is there a specific number output somewhere, that can inform me that a good pareto has more or less been generated? If there is such indicator...
Thank you all,
i hope this can help others as well,
Iason
…
e. We know you want to concentrate on your design, rethink the spaces, the material and more other beautiful and important topics. You will learn the power of parametric design in examples, challenges and develop your own systems to optimize your work, make changes, variations and convert your design into a full BIM model in real time : )
Who should take the course?
Everybody who is new, beginner or excited about Algorithmic design and the Rhino Inside Revit game changer development. The skill level of the workshop is BEGINNER.
The Workshop finish with a Discussion + Virtual Beers with PAZ Academy ;D !
https://pazacademy.com/workshops/rhino-inside-revit-3h-online/…
in just 123 easy steps:
Step 1: get the cookies
The bible PlanA: C# In depth (Jon Skeet).
The bible PlanB: C# Step by step (John Sharp).
The bible PlanC: C# 5.0 (J/B Albahari) > my favorite
The reference: C# Language specs ECMA-334
The candidates:
C# Fundamentals (Nakov/Kolev & Co)
C# Head First (Stellman/Greene)
C# Language (Jones)
Step 2: read the cookies (computer OFF)
Step 3: re-read the cookies (computer OFF)
...
Step 121: open computer
Step 122: get the 30 steps to heaven (i.e. hell)
Step 123: shut down computer > change planet
May The Force (the Dark Option) be with you.
…
cribes a set of machine movements in X, Y and Z (Z being Pen Up and Pen Down) directions. It very closely related to G-code in this way - just slightly more simple than G-code overall.
For tool selection you use the Select Pen - SPx - command, x is the number of the pen you are using. As I'm using a vinyl cutter without a pen/tool changer I just use SP1 in the file header/ini of the cutter.
Without knowing the full spec of your machine it is hard to say for certain BUT all of my experience with CNC machines - of all sizes and spec levels - the actual control files are pretty much the same. Very simple text based HPGL or G-code text files run all motion control - even on things like 7 axis robot arms etc. For plotting I'd expect you'd be able to get a usable HPGL/PLT file without a lot of work - its just a matter of matching the file to what the machine is expecting.
To answer your question about getting the file to the printer its maybe best to explain it this way: there are two parts to this project1/ Create the correctly formatted text/hpgl/plt file ready to send to the printer2/ Send the file to printer
For part 1/ the procedure is:
Select the curves you want to printConvert the curves into a set of pointsFormat these points into HPGL Save this HPGL as a text file
For 2/ we need a way to stream the text file to a printer port
To do this I've used an old dos command line technique that allows allow you to 'copy' a text file to a printer LPT or COM port:
copy /b c:\spool\ini.plt LPT1
Type the above into a DOS command line and it will send a text file called ini.plt to the printer on LPT1 port. As you'll see in my attached code I use os.system calls in my python code to send files when needed.
So your original code was doing some strange things with the conversion from curves to points. Lines/Polylines were OK - with the code just using the line end points. For curves and polycurves the code code was exploding these into segments and then dividing into set of points. However this led to two issues: - curves that started off as closed polycurves would end up being plotted as open curve segments - which is not very good for a cut file and not very smooth for a plot file.- the division of the curves to points was by distance - and if this wasn't an exact division of the length of the curve the end point would not match up with the next line - again not ideal for a cutting file which needs to be a closed curve.
To solve the above I changed to using rs.ConvertCurveToPolyline - with the tolerance set to match the HPGL resolution of 0.025mm - this converts all curves needed to plot to polylines, leaves everything closed and ends points line up perfectly.
I had one other problem with my setup - I ran into a file size/curve number/plotting points upper limit. A small number of curves would cut/plot fine, however at a certain number in one file the print driver would throw an error and the plotter would not even start plotting the file. I could not work out where is the system this limit was being imposed. The current working version of my code is attached - it gets around this file size limit by creating a separate print file for each curve required and sending them to the plotter in sequence. Not as completely tidy as I'd like as it flashes up a cmd window on every loop - but plots/cuts are perfect.
The final 'nice touch' for the project is I've created a custom tool bar button to run the script - all I have to do to cut a file is hit the button on the tool bar, select the curves and hit enter = SO EASY!
I've attached my latest code, a sample HPGL file to plot a rectangle, and a screen shot of setting up the custom toolbar button.
Cheers
DK…
ional form into a new innovated one respecting each one identity, focusing on customized and multifunctional units using adaptive design strategy.A competitive workshop for participants to have the ability to win a competition, how to deal with its requirements and submission specifications also how to work in a group at a deadline submission under pressure and reaching the maximum level of qualifications.The workshop will provide the participants with a knowledge through lectures talking about imagination thinking, design strategies, presentation new techniques and others reflecting these knowledge into a real project using parametric tooling techniques with presentation skills to facilitate participants to do their design.For Detailed Program: niitstudio.com/Recode.pdfEligibility:- Current architecture, interior and product design students or professionals.- Basic knowledge of Photoshop and 3D modelling.- Bringing own laptop.Software- Rhino: Nurbs / Modeling / T-Spline.- Grasshopper: Forming / List arrangement / Simulations .- Photoshop: Photomontage / Post production / layout composition.TutorsNIITStudio Design TeamDuration7 Days / 56 hoursFeesProfessionals: 1500 LEStudents: 1200 LENiiters*: 900 LE//Limited SeatsRegistration : http://goo.gl/forms/NECYhniZzWWebsite : www.NIITStudio.comE-mail : info@niitstudio.comMob: +2 010 027 254 57 | +2 012 825 225 44Niiters*: Previous participants of NIITStudio's workshops…
low cost fabrication techniques developed by RC6, a research laboratory based at UCL / The Bartlett School of Architecture. A part of Bartlett's BPro programme, RC6 traditionally engages in the development of design methodologies positioned at the overlap of digital and analogue computation, primarily investigating concepts which merge traditional, low-tech manufacturing processes and advanced technological concepts.Topic of this workshop - Composite Bodies - represents RC6’s ongoing research into hybridised material systems consisting of soft membrane materials and light-weight infill aggregates. In this particular case, from a material point of view, we will be looking into custom designed lycra pieces, filled with styrofoam beads and spheres and constrained with series of performative stitches. The resulting parts will be coated with latex and used to create series of interlocking components and surfaces.The workshop itself will consist of 2 stages. The first two days will be dedicated to intensive software training sessions. Students will be introduced to multiple digital platforms focusing on scripting in Processing and 3D modelling/sculpting in Maya/ZBrush. Aim is to enable students to understand algorithmic design processes and procedural modelling techniques and to help them to learn how to customize pre-made scripts and how to embed them in their individual workflows.The remaining five days will be dedicated to the fabrication of a spatial installation. Students will learn how to translate digital models into prototypical components and work alongside tutors to aggregate those into one large-scale architectural object which will be exhibited as part of SBODIO32 Exhibition for Milan Design Week 2017.Dates: March - April 2017 RC6 Program Director:DANIEL WIDRIGwith IGOR PANTICSTEFAN BASSINGSOOMEEN HAHMWorkshop Tutor:IGOR PANTICLead Designer at Zaha Hadid ArchitectsVisiting Lecturer at UCL Bartlett School of ArchitectureTeaching Assistants:Thomas Bagnoli, Evgenia Makroglou, Kalliopi Mouzaki, Darshan Singhaniaucl bartlett rc6 graduate studentsSoftwares: Maya, Rhino, Grasshopper, Processing*Previous knowledge of the softwares is not compulsory. Fabrication Tools: Lycra, Styrofoam beads, Latex, Sewing machines…
Added by Amrvitaloni at 9:38am on February 25, 2017
azione parametrica e generativa attraverso Grasshopper, plug-in di programmazione visuale per Rhinoceros 3D (uno dei più diffusi modellatori NURBS per l‘architettura e il design). Il workshop mira a gestire e sviluppare il rapporto tra informazione e geometria lavorando sui sistemi ad involucro in condizioni specifiche.La discretizzazione di superfici (pannellizazione Nurbs o Mesh), la modellazione delle geometrie attraverso informazioni (siano esse provenienti da analisi ambientali, mappe o database) e l’estrazione e la gestione di queste informazioni, richiede la comprensione di strutture di dati al fine di gestire completamente processo che va dalla progettazione alla costruzione.I partecipanti impareranno come costruire e sviluppare strutture di dati parametrici per informare geometrie ‘data-driven’ e come estrarre le informazioni rilevanti da tali modelli per il processo di costruzione.
Modulo 2 – Il workshop, volto a promuovere le nuove tecnologie digitali di supporto alla progettazione e alla fabbricazione, esplorerà l’integrazione tra design e prototipazione tramite processi di stampa 3d di materiale ceramico al fine di comprenderne allo stesso tempo sia il comportamento del materiale che i vincoli e le opportunità offerte dall’utilizzo di tali tecnologie.Infatti utilizzando grasshopper ed una macchina a controllo numerico i partecipanti apprenderanno le modalità per la generazione parametrica dei modelli e la creazione del codice per la loro prototipazione (Gcode creato direttamente in Grasshopper). Il workshop darà quindi ai partecipanti la possibilità di testare direttamente i loro elaborati digitali stampandoli in modo da comprendere come le informazioni articolate tramite tali strumenti di design producano specifici effetti sia morfologici che estetici.…
ame Rate, Stop Watch, and Is Key Pressed. You can read more about all the new tools here.
A lot of additional work has gone into the Arduino Code Generator and the new Firefly Code Editor (which can be invoked by double-clicking on the Code Generator component). Many new functions have been added to the function library for the Code Generator (including almost all of the latest Firefly components). In addition, the Code Editor has gone through a major overhaul to add many more features. There are still plenty of other features that have to be added to the Code Editor to make it a fully functional IDE, but the current changes are a big step in the right direction.
Today also marks the first release of the Firefly Kinect related components. Microsoft has placed certain restrictions on applications that want to use their official SDK, and as such this version will only work with Rhino 5.0 beta 32-bit version. In addition, you must have Windows 7 installed on your machine. Because of these restrictions, I have decided to release the Firefly Kinect build as a separate download. There are installation instructions included in the download file with step-by-step instructions on how to get up and running with the Kinect for Grasshopper. Currently, there is only one component, the Skeleton Tracker which will track up to two people moving in front of the sensor. Videos of the Skeleton Tracker in action can be seen here and here. I intend to add more functionality and new Kinect related components in the near future. Suggestions are always welcome. And, because this is the first release, please let me know if you find any bugs or problems with the component (hopefully there wont be many of these, but please be patient).
You can download the latest version of Firefly (1.0063) and the beta release of Firefly Kinect either of these two sources:
http://www.fireflyexperiments.com/download/
http://www.food4rhino.com/project/firefly
…
If you were not there, you can email me and have me give you a written desk crit.
-The assignment due this week will focus in on one of your ideas and dig in deeper. Please compose a 24"x24" pdf of one final project idea including some of the following:
Specific grasshopper examples
Sketches
Images
Text defining your design limitations, variables, the project at large, and parametric qualities
Please name this LastName_FirstName_FinalProject_PartB.pdf and complete by Monday at 7:00 PM.
-There will be a more complete sheet in the upcoming weeks describing the final project, but here is a sneak peek:
Project Brief: Up until now, you have been using grasshopper to develop, analyze, and fabricate architectural ideas in a very controlled format. The final project is a chance to combine this knowledge with your own design intent and aspirations. The project will use specific deliverables to spur growth, but also allow for you, the designer, to do what you please within the following boundaries.
Requirements:
# open project# must be a design project # story of what you are designing and why you are using grasshopper - specific design intent# must have physical scale model # must have 24” x 36” board - made in Adobe InDesign or Photoshop # grasshopper definition image # 1 artistic rendering - any format - with scale figures # 5 iterations of your project must be presented # 1 diagram to visually describe your project # text describing project # process drawings - photos/sketches/models/other iterations# this is the bare minimum - to have an excellent project, one must go above and beyond these requirements# talk to me if you have out of the box ideas of presenting/ teams / etc...
That is all, have a good week!…