ther math and logic. i can usually conceptualise what i want to do and cobble some semi working thing together but don't know which components to use and how to patch it. so i'm super happy to have someone who knows what he's doing to find this interesting.
and i'm glad you mention the fanned frets again, there is one input parameter that's still missing for the multiscale frets to be fully parametric, it's the angle of the nut or which fret should be straight. it depends a bit on personal preferences and playing posture what is more comfortable. so being able to adjust this easily would be cool. again i have no idea how the maths for that work or if you can just rotate each fret the same amount around it's middle point. The input either as fret number (for the straight fret) or as a simple slider from bridge to nut should do as input setting.
Here are the two extremes and the middle ground:
i've been thinkin today while analysing your patches and cleaning up my mess what exactly the monster should do.
Here are the input parameters needed, i think it's the complete list
scale length low E string
scale length high e string
fret angle/straight fret
string width at nut
string width at bridge
number of frets
fretboard overhang at nut (distance from string to fretboard bounds)
fretboard overhang at last fret
string gauges
string tensions
fretboard radius at nut (for compound radius fretboard radius at bridge is calculated with the stewmac formula)
fretwire crown width
fretwire crown height
action height at nut (distance between bottom of string and fretwire crown top)
action height at last fret
pickup 1 neck position
pickup 2 middle position
pickup 3 bridge position
nut width
the pickup positions should be used to draw circles for the magnet poles on each string so they are perfectly aligned and can be used for the pickup flatwork construction. ideally they would need a rotation control aligning the center line of the pickup so it's somewher between the last fret angle and bridge angle. personally i do this visually depending on the design i'm looking for, some people have huge theories on pickup positioning but personally i don't believe in it.
that should result in everything needed to quickly generate all the necessary construction curves or geometry for nut/fingerboard/frets/pickups. this is the core of what makes a guitar work, the more precise this dynamic system is the better the guitar plays and sounds.
i posted another thread trying to understand how i could use datasets form spreadsheets,databse, csv to organize the input parameters. What would make sense for the strings for example is hook into a spreadsheet with the different string sets, i attached one for the d'Addario NYXL string line which basically covers all combos that make sense.
The string tension is an interesting one, and implmenting it would sure be overkill albeit super interesting to try. it should be possible to extrapolate from the scale length of each string what the tension for a given string gauge of that string would be so that you could say 'i want a fully balanced set' or 'heavy top light bottom) and it would calculate which SKU from d'addario would best match the required tension. All the strings listed in the spreadsheet are available as single strings to buy.
i'm trying to reorganize everything which helps me understand it. i just discovered the 'hidden wires' feature which is great since once i understood what a certain block does or have finished one of my own, i can get the wires out of the way to carry on undistracted. a bit risky to hide so many wires but it makes it so much easier not to get completely lost :-)
btw, the 'fanned fret' term is trademarked, some guy tried to patent it in the 80's which is a bit silly since it has been done for centuries. there is a level of sophistication above this as well, check out http://www.truetemperament.com/ and that really is something else. it really is astounding how superior the tuning is on those wigglefrets, the problem is that it's rather awkward for string bending and also you can't easily recrown or level the frets when they are used. …
e matching with a dedicated component which creates combinations of items. You can find the [Cross Reference] component in the Sets.List panel.
When Grasshopper iterates over lists of items, it will match the first item in list A with the first item in list B. Then the second item in list A with the second item in list B and so on and so forth. Sometimes however you want all items in list A to combine with all items in list B, the [Cross Reference] component allows you to do this.
Here we have two input lists {A,B,C} and {X,Y,Z}. Normally Grasshopper would iterate over these lists and only consider the combinations {A,X}, {B,Y} and {C,Z}. There are however six more combinations that are not typically considered, to wit: {A,Y}, {A,Z}, {B,X}, {B,Z}, {C,X} and {C,Y}. As you can see the output of the [Cross Reference] component is such that all nine permutations are indeed present.
We can denote the behaviour of data cross referencing using a table. The rows represent the first list of items, the columns the second. If we create all possible permutations, the table will have a dot in every single cell, as every cell represents a unique combination of two source list indices:
Sometimes however you don't want all possible permutations. Sometimes you wish to exclude certain areas because they would result in meaningless or invalid computations. A common exclusion principle is to ignore all cells that are on the diagonal of the table. The image above shows a 'holistic' matching, whereas the 'diagonal' option (available from the [Cross Reference] component menu) has gaps for {0,0}, {1,1}, {2,2} and {3,3}:
If we apply this to our {A,B,C}, {X,Y,Z} example, we should expect to not see the combinations for {A,X}, {B,Y} and {C,Z}:
The rule that is applied to 'diagonal' matching is: "Skip all permutations where all items have the same list index". 'Coincident' matching is the same as 'diagonal' matching in the case of two input lists which is why I won't show an example of it here (since we are only dealing with 2-list examples), but the rule is subtly different: "Skip all permutations where any two items have the same list index".
The four remaining matching algorithms are all variations on the same theme. 'Lower triangle' matching applies the rule: "Skip all permutations where the index of an item is less than the index of the item in the next list", resulting in an empty triangle but with items on the diagonal.
'Lower triangle (strict)' matching goes one step further and also eliminates the items on the diagonal:
'Upper Triangle' and 'Upper Triangle (strict)' are mirror images of the previous two algorithms, resulting in empty triangles on the other side of the diagonal line:
…
mmon.sdk ,but i herad its used in rhino5.
or example: the book grasshopper primer second edition ,page 98
i dont know what is the "doc.absolutetolerance" and where i can find about it....i dont kow it should be a class or a fuction,i tried to search the rhino4. net sdk,i cant find it ....maybe its my searching problem.
but according to the grasshopper primer, i indeed know many kind of Variables,many functions,basic structure, loops, and conditions,and what is onutil.xxxx and rhutil.xxxx.but i found all this imformation is not helpful enough to me when reading the examples downloaded from many disscussions.when i found a new variable or new funcion,i dont know where i can find the introduction about them,such as the upper coding:"doc.absolutetolerance".i tried to use the auto complete such as
dim xxxx as oncurve
xxxx. to find the class oncurve's funtions and variables ,but its too uneffcient.
-----------------------------------------------
And,i dont know the difference between the components vb script and dotnet vb script....
because i found when i type onutil. the auto complete has noting appear...and the variables declaring is not the same. in vb script dim xxxx as curve but in dotnet vb script its dim xxxx as oncurve,which is the same as the grasshopper primer teached me...but i guess.... the vb script component is just like the rhinoscript(not the same),and the dotnet vb script is more powerful than it. am i right?
------------------------------------------------
at last i dont know these.
Imports System Imports System.IO Imports System.Xml Imports System.Data Imports System.Drawing Imports System.Reflection Imports System.Collections Imports System.Windows.Forms Imports Microsoft.VisualBasic Imports System.Collections.Generic Imports System.Runtime.InteropServices
when i search google about them,the introduction about them is too professinal for me to understand......i just want to know what i can do by using them ...
-------------------------
sorry for disturbing you so much!!!
best regards!
yours truly
YUAN.T
…
che di modellazione algoritmica per la generazione di forme complesse. Il corso è rivolto a studenti e professionisti con esperienza minima nella modellazione 3D e si articolerà in lezioni teoriche, esercitazioni e sviluppo di un progetto finale.
tutor: Arturo Tedeschi - autore di "Progettazione Parametrica", il primo manuale italiano su Grasshopper
lecturer: Davide Del Giudice | Zaha Hadid Architects | Co-De -iT
guest: Maurizio Arturo Degni
assistant: Matteo Gobbi
info e programma:
http://www.comese.me.it
…
del diseño, el curso cubrirá los conceptos básicos para abordar proyectos de diseño a través del desarrollo de herramientas algorítmicas mediante un proceso de programación visual , utilizaremos el software Rhino 3d y el plugin Grasshopper como nuestras herramientas de trabajo.
Detalles:
Instructores: Rodrigo Medina | Daniel Camiro
Lugar: Plataforma de Arquitectura http://plataforma.com.mx/
Senda del Amanecer No. 151 Milenio III, Querétaro, Qro. México
Fechas: 29,30,31 de julio
Cupo: Limitado a 15 plazas
Costos:
Estudiantes:$2,800
Profesionales:$3,400
Fecha límite de pago: miércoles 27 de julio 2011
Importante:
Todos los niveles de experiencia son bienvenidos el único requisito es tener un entendimiento básico de los programas CAD y una actitud positiva hacia el aprendizaje de dichas herramientas.
*Los participantes deberán traer su propia laptop con todo el software y actualizaciones (originales o versiones de demostración oficiales)previamente instaladas.(se fijara una fecha unos días antes para revisar que todos los equipos estén en orden y listos para trabajar).Si planeas venir de fuera de la ciudad avisanos y te pondremos en contacto con otras personas que también vayan a hacerlo para en caso de desearlo puedan compartir su lugar de estancia.
Contacto
info@chidostudio.com
jesus mendez 4421869813
camiro 4422472424…
, 2013)
The most popular year was 2008 (5 responses)
Note: According to Wikipedia: "The first version of Grasshopper, called Explicit History at the time, was originally publicly released in September 2007." Interesting coincidence.
The response to question #2 by those that began before 2007 (How long did it take for you to feel comfortable with designing computationally?):
- Years
- Don't remember, but it felt like a natural way to relate to cad.
- After a few projects
- A month.
Compared to some of the responses of those that began since 2007:
- A month
- A few months
- After 6 weeks
- About 8 weeks
- Within my second design project with GH
- five to six months
- after 1 years of self learning + over 2 years of multiple projects and continuous self learning = Computation skill is comfortable but Computational Design can not be comfortable, Crazy learning curve.
There is much diversity, but some patterns begin to emerge.
Looking forward to more responses!…
be fast and accurate. They will however have to be written for every new problem which is not exactly the same as an old problem. Hence, as an end-user you may have to write one yourself. Generic solvers on the other hand can tackle a wide variety of problems and the end-user merely has to set up the goals and constraints. However, this flexibility comes at a price, usually speed.
There's literally thousands upon thousands of academic papers about specific algorithms out there, covering anything from networking to databases to geometry to natural language to visualisation to whatever. The list of generic solvers however is much smaller. The most famous ones being Divide-and-Conquer (fast for low dimensional cases, doesn't scale well to high dimensionality), Uphill Search (good for quickly finding local maxima, strong dependence on starting point), Evolutionary **** (works well in high dimensions, slow but flexible), Annealing (works well in high dimensions, good for exploring the entire problem space, good for finding quick approximate solutions), Machine Learning (very big category, lots of strengths and weaknesses).
You may also want to look into physical simulators, which can be very effective solvers if the problem can be formulated in terms of forces acting on vertices. Kangaroo specifically was designed with architecture in mind.
If you want to know about algorithms specific to geometry, a good read is; 'Discrete and Computational Geometry' by Satyan L. Devadoss and Joseph O'Rourke, Princeton University Press (2011), ISBN 978-0-691-14553-2
A detailed (and in my opinion not very readable) account of evolutionary algorithms can be found in; 'Evolutionary Algorithms in Theory and Practice' by Thomas Bäck, Oxford University Press (1996), ISBN 0-19-509971-0
Decent introduction to algorithmics; 'Algorithm Design' by Jon Kleinberg and Éva Tardos, Pearson Education (2006), ISBN 0-321-37291-3
and; 'Introduction to Algorithms (second edition)' by Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein, MIT Press (2001), ISBN 0-262-03293-7…
unning Rhino 5 WIP released 18-01-2011 and grasshopper 0.8.0004 released december 10th 2011.
This is (part of) the script I'm running:
If Activate = True Then Dim i As Integer Dim iCount As Integer iCount = SrfId.Count Dim y As Integer Dim yCount As Integer Dim mObjects As Guid Dim ylist As New list (Of Integer) For i = 0 To iCount - 1 doc.Objects.UnselectAll yCount = SrfLines.Branch(i).Count For y = 0 To yCount - 1 mObjects = doc.Objects.AddCurve(SrfLines(SrfId(i), y)) doc.Objects.Select(mObjects) Next RhinoApp.RunScript("_-export " & FilePath(i) & " _Enter", True) RhinoApp.RunScript("_-delete", True) Next End If
The error I get is this:
'select' is not a member of 'rhino.docobjects.tables.objecttable'
The silly thing is that I didn't get the error on a different computer (which probably has some different versions installed...), but that I also cannot find any other way to select and export the geometry I create...
Does anybody have a good idea how to solve this problem?
Thank you very much!
Pieter Schreurs
…