whole design intent, but this is what Inventor is good at. The way it packages bits of 'scripted' components into 'little models' that can be stored and re-assembled is central to MCAD working.
The Inventor model shown is almost 5 years old. We don't model like that any more, however it does offer a good idea of general MCAD modeling approaches.
iParts is useful in certain situations, it could've been useful in the above model, its usefulness is often in function of the quantity of variants/configurations.
So much is scripted in GH, maybe it should also be possible to script/define/constrain/assist the placement/gluing of the results?
...
Starting point: I think we are talking across purposes. AFAIK, the solving sequence of GH's scripted components is fixed. It won't do circular dependencies... without a fight. The inter-component dependencies not 'managed' like constraints solvers do for MCAD apps.
Components and assemblies are individual files in MCAD.
Placement of these within assemblies in MCAD is a product of matrix transforms and persistent constraints. There is no bi-directional link, the link is unidirectional (downflow only), because of the use of proxies.
Consequently, scripting the placement of components is irrelevant in GH, unless you decide that each component needs to be contained in its own separate file.
This also brings up the point that generating components and assemblies in MCAD is not as straightforward. In iParts and iAssemblies, each configuration needs to be generated as a "child" (the individual file needs to be created for each child) before those children can be used elsewhere.
You notice the dilemma, if you generate 100 parts, and then you realize you only need 20, you've created 80 extra parts which you have no need for, thus generating wasteful data that may cause file management issues later on.
GH remains in a transient world, and when you decide to bake geometry (if you need to at all), you can do that in one Rhino file, and save it as the state of the design at that given moment. Very convenient for design, though unacceptable for most non-digital manufacturing methods, which greatly limits Rhino's use for manufacturing unless you combine it with an MCAD app.
One of the reasons why the distributed file approach makes perfect sense in MCAD, is that in industry you deal with a finite set of objects. Generative tools are usually not a requirement. Most mechanical engineers, product engineers and machinists would never have any use for that.
The other thing that MCAD apps like Inventor have, is the 'structured' interface that offers up all that setting out information like the coordinate systems, work planes, parameters etc in a concise fashion in the 'history tree'. This will translate into user speed. GH's canvas is a bit more freeform. I suppose the info is all there and linked, so a bit of re-jigging is easy. Also, see how T-Flex can even embed sliders and other parameter input boxes into the model itself. Pretty handy/fast to understand, which also means more speed.
True. As long as you keep the browser pane/specification tree organized and easy to query.
:)
Would love to understand what you did by sketching.
I'll start by showing what was done years ago in the Inventor model, and then share with you what I did in GH, but in another post.
Let's use one of the beams as an example:
We can isolate this component for clarity.
Notice that I've highlighted the sectional sketch with dimensions, and the point of reference, which is in relation to the CL of the column which the beam bears on. The orientation and location of the beam is already set by underlying geometry.
Here's a perspective view of the same:
The extent of the beam was also driven by reference geometry, 2 planes offset from the beam's XY plane, driven by parameters from another underlying file which serves as a parameter container:
Reference axes and points are present for all other components, here are some of them:
It starts getting cluttered if you see the reference planes as well:
Is I mentioned earlier, over time we've found better ways to define and associate geometry, parameters, manage design change, improving the efficiency of parametric models. But this model is a fair representation of a basic modeling approach, and since an Inventor-GH comparison is like comparing apples and oranges anyways, this model can be used to understand the differences and similarities, for those interested.
I haven't even gotten to your latest post yet, I will eventually.…
Added by Santiago Diaz at 10:36am on February 26, 2011
he picture (4).
Previously, I had a problem with generating intersections between the two directions of the beams, but a colleague helped me by extending beams, so there was no problem with lines of intersection. But this solution has generated curl (5) at the highest vertex geometry, which I ignored in order to repair it before printing, perhaps this mean my problem with my beam spread properly. Only when the beams is 19, does not jump no problem, but I still can not distribute them properly.
(1)
(2)
(3)
(4)
(5)
I tried to show as simply as possible by removing or signing my code in GHX file.
Thank you in advance for your help
…
work with color to fit it into this logic (porous structure)?the range of colors: from white to yellow, orange, red. to blackis not so nice, saying, does not match to the design of the house.So there for it should only show the material what carries this pattern.So my question in yours case:i think that the picture of you must be thought as invert, so that it's become functional as well. if you thought this as invert,than you musst icrease the surface division,so that the rays of the sun can be disturbed to penetrate the house.that is a good the example:http://www.detail.de/inspiration/fuenf-hoefe-in-muenchen-100701.htmlin your case, the function of the patterns would get parametric significance. where more sunlight, consequently a denser pattern, and of course vice versa.therefore, the attractor should be the solar/sun system.http://digitalsubstance.wordpress.com/2011/12/07/facade-porosity-ad...What do you mean, i still see a version of you?http://www.youtube.com/watch?v=JoqDYcCDOTgThanks…
roduced the same error.
I tried to run them again with the file already open and I got this (I imagine predictable) error:
Sorry! But the number of available CPUs on your machine is 4.
Honeybee set the number of CPUs to 4.
Grid-based Radiance simulation
The component is checking ad, as, ar and aa values. This is just to make sure that the results are accurate enough.
Good to go!
Current working directory is set to: C:\ladybug\Parametric_Shading_Wall\psw_z0.25_t.025_y.2_r90_m3_lux\gridBasedSimulation\
Failed to remove the old directory.
WindowsError(32, 'The process cannot access the file because it is being used by another process')
Failed to read the results!
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
Runtime error (PythonException): Failed to read the results!
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
rtrace: fatal - (psw_z0.25_t.025_y.2_r90_m3_lux_RAD.oct): truncated octree
Traceback:
line 336, in script
@Mostapha, if it is indeed a different issue, what do you think it could be?
Thanks again,
-Nicholas…
ect + Geco
TUTORS:
Arturo Tedeschi (Authorized Rhino Trainer) + Maurizio Arturo Degni
Il workshop avanzato ECOLOGIC PATTERNS affronta l’impiego di strategie parametriche all’interno del processo progettuale, approfondendo l’utilizzo di Grasshopper in sinergia con plug-in, software di analisi ambientale e simulazione fisica. Obiettivo fondamentale è la generazione della forma come risultato di tecniche di form-finding e di input ambientali (solari, termici e acustici). Verranno acquisiti nuovi strumenti operativi e di simulazione al fine di costruire modelli parametrici ottimizzati in grado di adattarsi a diverse condizioni di contesto.
MORE INFO…
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.…
ut in the next few days.
I've found getting really good handling of static vs kinetic friction to be a pain though.
Distinguishing between collisions and resting contact generally becomes more complicated than it might first appear.
If the collision with the mesh or ground is 'hard' I project the particle positions, so they can never penetrate, and reverse the component of their velocity normal to the surface (multiplied by the restitution factor). This means that whenever you have some structure of springs resting on a hard surface, there is usually still some tiny imperceptible bouncing. This makes it hard to properly apply static friction (which would zero the tangential velocity if the tangential force was below some threshold and it is not already sliding), because particles are generally not perfectly on the surface, even when apparently at rest. Obviously it's not good to have friction affecting things that aren't touching the surface.
This is the origin of the 'settle' parameter in the settings. The idea was that when the motion of a particle normal to the surface drops below that limit, it will be totally zeroed, and the particle becomes properly resting on the surface. I never really like having to use these kind of weird ad hoc fixes though.
Alternatively, if the collision is 'soft' I use a spring-like force to push particles out of the ground/mesh.
This can cause problems because in many cases you just want a simple constraint that they never go below ground level, and there is a limit to how stiff you can make these spring-like forces.
The advantage though, is that because any particle resting 'on' the ground/surface will actually be slightly below/inside it, and one can use this to decide whether to apply contact friction.
With bouncing collisions, it is a little simpler. There is just the question of what to do with the velocity component tangential to the surface. See the bottom comment by me here, for more on the 'tumble' setting:
http://www.grasshopper3d.com/video/kangaroo-traction-test
So you see, it is challenging to get one consistent model that will give correct behaviour for all cases (eg a simple static 'leaning ladder' type problem, a bouncing particle, and vehicle wheel traction), without having several of these odd seeming and non-intuitive settings.
…
Added by Daniel Piker at 11:11am on October 18, 2012
m is different from email spam.
Email spammers want you to buy their product. You are the target of the ad contained in each email spam you receive. Comment/web spammers want your readers to buy their product. You (the blogger, author, moderator) are not the target.
2. Web spammers are social engineers.
Email spammers write messages to get your attention. Comment spammers write messages to escape your attention. They want you to believe they are real bloggers, real people, writing real comments, so you’ll approve the comment and publish it on your site. They use flattery, appeal to your good nature, and simply lie in order to convince you to give them the benefit of the doubt.
3. Web spammers are basically advertising on your blog..
..and they're keeping all of the profits. They’re not even asking your permission first. Right now someone is offering to sell links from your blog to anyone willing to pay a few dollars (or a few cents). If your blog is well known, it may even be listed by name, with backlinks for sale at a set price.
4. It’s all about the backlinks.
Web spammers are selling links from your blog to their clients. They do this to game the search engines and trick your readers into visiting dubious web sites. Their clients are sometimes seemingly harmless, but are often peddling fake pills, porn, scams and malware. Sometimes they’ll use “buffer sites” – that is, innocent looking web pages intended to disguise the fact that they’re really advertising something more sinister.
5. Spammers employ humans.
Not all spam is delivered by spambots. Spammers are increasingly using humans to write and post comments by hand. Typically they are exploiting low-paid workers in internet cafes, schools and factories. Sometimes they are viral marketers paid to promote a new product. Either way they are trying to exploit your blog for their profit – and hoping to do it without you noticing.
…
Added by Danny Boyes at 4:51am on October 24, 2013
he results are accurate enough.Good to go!Current working directory is set to: C:\002_VIDEO\02_UNI\TU_GRAZ\01_DISSERTATION\02_RESEARCH\08_POMODORO\01_SIMULATION_MODEL/03_HONEYBEE\VF_00\gridBasedSimulation\start cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get Commandlinestart cmd /c C:\Users\paratufello\AppData\Roaming\Ladybug\unnamed\annualSimulation\unnamed_7_DS.batWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineWMIC PROCESS get CommandlineRuntime error (IndexOutOfRangeException): index out of range: 0Traceback: line 271, in script…