GH, same as using sweep2 command in Rhino.
The one on the right is what I got so far (the output smooth our the kink of the original rails). Basically I am just following the methods provided by sdk sample: http://wiki.mcneel.com/developer/sdksamples/sweep2 .
The following is the function I copy and use directly from the SDK sample. By using this function, I can generate the sweep surface at right. But I want to have is the one in the middle with the kink edges. Can anyone show me how and where to modify he settings? I guess some sweep arguments need to be changed? I have try couples, such m_simplify, m_bSimpleSweep, m_bSameHeight, m_rebuild_count... but still cannot find a right combination for this function to output the sweep surface I want. Any suggestions or helps are very appreciated. Thanks for your help and time on this.
'Sweep2 function'----------------
Sub Sweep2( ByVal Rail1 As IOnCurve, _
ByVal Rail2 As IOnCurve, _
ByVal sCurves As List(Of IOnCurve), _
ByRef Sweep2_Breps As List(Of OnBrep))
'Define a new class that contains sweep2 arguments
Dim args As New MArgsRhinoSweep2
'Set the 2 rails
Dim Edge1 As New MRhinoPolyEdge
Dim Edge2 As New MRhinoPolyEdge
Edge1.Append(Rail1.DuplicateCurve())
Edge2.Append(Rail2.DuplicateCurve())
'Add rails to sweep arguments
args.m_rail_curves(0) = Edge1
args.m_rail_curves(1) = Edge2
args.m_bClosed = False
Dim section_curves As New List(Of OnCurve)
'Loop through sections to set parameters
For Each Section As IOnCurve In sCurves
Dim sCurve As OnCurve = Section.DuplicateCurve()
section_curves.Add(sCurve)
Dim t0 As Double = 0
If Not Edge1.GetClosestPoint(sCurve.PointAtStart(), t0) Then
If Not Edge1.GetClosestPoint(sCurve.PointAtEnd(), t0) Then
Dim s As Double = 0
sCurve.GetNormalizedArcLengthPoint(0.5, s)
Edge1.GetClosestPoint(sCurve.PointAt(s), t0)
End If
End If
args.m_rail_params(0).Append(t0)
Dim t1 As Double = 0
If Not Edge2.GetClosestPoint(sCurve.PointAtStart(), t1) Then
If Not Edge2.GetClosestPoint(sCurve.PointAtEnd(), t1) Then
Dim s As Double = 0
sCurve.GetNormalizedArcLengthPoint(0.5, s)
Edge2.GetClosestPoint(sCurve.PointAt(s), t1)
End If
End If
args.m_rail_params(1).Append(t1)
Next
'Set shapes
args.m_shape_curves = section_curves.ToArray
'Set the rest of parameters
args.m_simplify = 0
args.m_bSimpleSweep = False
args.m_bSameHeight = False
args.m_rebuild_count = -1 'Sample point count for rebuilding shapes
args.m_refit_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AbsoluteTolerance()
args.m_sweep_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AbsoluteTolerance()
args.m_angle_tolerance = RMA.Rhino.RhUtil.RhinoApp.ActiveDoc.AngleToleranceRadians()
Dim sBreps() As OnBrep = Nothing
If (RhUtil.RhinoSweep2(args, sBreps)) Then
For Each b As OnBrep In sBreps
Sweep2_Breps.Add(b)
Next
End If
Return
End Sub
…
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…
rves/holes. However, the Kangaroo script itself is prone to locking up so it seems like it might take forever. You can even double click stop the timer from the Windows task bar, I hadn't noticed that before:
You have to use that or right click disable the timer since even with the Reset toggle button input set to True the timer itself locks up the script a bit when you are changing things around.
Just setting the min/max numbers both to a desired mesh size gives a uniform mesh:
Oh weird, it's about if the timer is right click set to so small an interval that it gets ahead of Kangaroo! When you see how long each cycle is taking with the Display > Canvas Widgets > Profiler you just set the timer for above that and the interface comes back into being responsive. It only takes a few Kangaroo cycles to do the inflation, so a full second timer interval is even workable.
A finer mesh:
It's funny running it so slow since it overinflates at first, bulging out, before it equilibrates.
You have control over inflation pressure and mesh stiffness, for a variety of effects.
This is a good system once I realized the timer needed to be mellowed out.
What made it work was the fast custom meshing since a normal mesh is awful and MeshMachine wouldn't work with sharp corner holes at all, breaking out of the boundary even if I fixed curves or vertices or did the equivalent with NURBS surfaces instead of a starting mesh.
There is an initiation time for Kangaroo that doesn't show up on its Profiler time that happens even with the timer off.
There are some fine areas that can't inflate with a reasonable mesh setting:
Worth playing with but no match for ArtCAM since it suffers odd delays in between working fast. If I could get better 2D meshes, that were more adaptive it would be better, but MeshMachine is one of the only re-meshers I know and it's broken for even mildly sharp hole features.
Ah, how about a crude mesh that is then subdivided, guaranteeing inner vertices everywhere? Sort of works, but is still too dense. Way too dense to even do anything. The subdivision triangulates the quads, vastly increasing the mesh wire density. Better just to make a finer initial mesh with plenty of quads.…
Added by Nik Willmore at 12:57am on February 21, 2016
; GH, this one came out and rhinoceros is disappear...like this
it said " Rhinoceros5's working is stopped. because some problems occured so Rhinoceros5 can't work correctly no longer " then I have no choice but terminate Rhinoceros.
There are some discussion about RhinoIronPython installing numpy though, no one has same problem like me. so Please somebody tell me!!
and one more question...just in case, I tried to install numpy into ironPython2.7
C:\Program Files (x86)\IronPython 2.7>ipy "C:\Program Files (x86)\IronPython 2.7\ironpkg-1.0.0..py" --installBootstrapping: c:\users\owner\appdata\local\temp\tmp2nand1\ironpkg-1.0.0-1.egg 118 KB [.................................................................]
C:\Program Files (x86)\IronPython 2.7>ironpkg -hUsage: ironpkg-script.py [options] [name] [version]
.
.
.
C:\Program Files (x86)\IronPython 2.7>ironpkg scipyWrote configuration file: C:\Users\owner\.ironpkg=============================================================================Traceback (most recent call last): File "C:\Program Files (x86)\IronPython 2.7\ironpkg-script.py", line 10, in <module> File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\main.py", line 364, in main File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\indexed_repo\chain.py", line 27, in __init__ File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\indexed_repo\chain.py", line 67, in add_repo File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.py", line 92, in write_data_from_url File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 435, in open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 407, in _call_chain File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 654, in http_error_302 File "C:\Program Files (x86)\IronPython 2.7\Lib\httplib.py", line 1261, in __init__ File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\enstaller\utils.py", line 73, in open_url File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 154, in urlopen File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 547, in http_response File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 467, in error File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 429, in open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 446, in _open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 407, in _call_chain File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1240, in https_open File "C:\Program Files (x86)\IronPython 2.7\Lib\urllib2.py", line 1167, in do_openAttributeError: 'module' object has no attribute '_create_default_https_context'
C:\Program Files (x86)\IronPython 2.7>
how can I deal with this error?…
ed file and code below:
Color ColorAt(Mesh mesh, int faceIndex, double t0, double t1, double t2, double t3) { // int rc = -1; var color = Rhino.Display.Color4f.Black;
if( mesh.VertexColors.Count != 0) { // test to see if face exists if( faceIndex >= 0 && faceIndex < mesh.Faces.Count ) { /// Barycentric quad coordinates for the point on the mesh /// face mesh.Faces[FaceIndex].
/// If the face is a triangle /// disregard T[3] (it should be set to 0.0).
/// If the face is /// a quad and is split between vertexes 0 and 2, then T[3] /// will be 0.0 when point is on the triangle defined by vi[0], /// vi[1], vi[2]
/// T[1] will be 0.0 when point is on the /// triangle defined by vi[0], vi[2], vi[3].
/// If the face is a /// quad and is split between vertexes 1 and 3, then T[2] will /// be -1 when point is on the triangle defined by vi[0], /// vi[1], vi[3]
/// and m_t[0] will be -1 when point is on the /// triangle defined by vi[1], vi[2], vi[3].
MeshFace face = mesh.Faces[faceIndex];
// Collect data for barycentric evaluation. Color p0, p1, p2;
if(face.IsTriangle) { p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.C]; } else { if( t3 == 0 ) { // point is on subtriangle {0,1,2} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.C]; } else if( t1 == 0 ) { // point is on subtriangle {0,2,3} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.C]; p2 = mesh.VertexColors[face.D]; //t0 = t0; t1 = t2; t2 = t3; } else if( t2 == -1 ) { // point is on subtriangle {0,1,3} p0 = mesh.VertexColors[face.A]; p1 = mesh.VertexColors[face.B]; p2 = mesh.VertexColors[face.D]; //t0 = t0; //t1 = t1; t2 = t3; } else { // point must be on remaining subtriangle {1,2,3} p0 = mesh.VertexColors[face.B]; p1 = mesh.VertexColors[face.C]; p2 = mesh.VertexColors[face.D]; t0 = t1; t1 = t2; t2 = t3; } }
/** double r = t0 * p0.FractionRed() + t1 * p1.FractionRed() + t2 * p2.FractionRed(); double g = t0 * p0.FractionGreen() + t1 * p1.FractionGreen() + t2 * p2.FractionGreen(); double b = t0 * p0.FractionBlue() + t1 * p1.FractionBlue() + t2 * p2.FractionBlue();
ON_Color color; color.SetFractionalRGB(r, g, b);
unsigned int abgr = (unsigned int)color; rc = (int) ABGR_to_ARGB(abgr); **/ var c0 = new Rhino.Display.Color4f(p0); var c1 = new Rhino.Display.Color4f(p1); var c2 = new Rhino.Display.Color4f(p2); float s0 = (float) t0; float s1 = (float) t1; float s2 = (float) t2;
float R = s0 * c0.R + s1 * c1.R + s2 * c2.R; float G = s0 * c0.G + s1 * c1.G + s2 * c2.G; float B = s0 * c0.B + s1 * c1.B + s2 * c2.B; color = new Rhino.Display.Color4f(R, G, B, 1); } } return color.AsSystemColor(); }
…
ort and export from the images below and also from the HELP file of DB in attachments (Page 71: Importing Geometric Data; Page 78-80: Import 3 - D CAD Data). In their HELP file, they mention about "import geometric data".
However, regarding the input of schedules, loads, constructions and etc., DB normally uses "Component " and "Template" (Page 29: Templates And Components; Page 591: Templates; Page 533: Components). "Templates" are databases of typical generic data, including Activity templates, Construction templates, Glazing templates, Facade templates, HVAC templates, Location Templates, and etc. "Component " are databases of individual data items (e.g. a construction type, material, window pane).
Both "Component " and "Template" are allowed to be imported and exported by using "Import / Export library data" command (.ddf format - DB Database File; Page 734: Import Components/Templates, Export Components/Templates). DB also allows us to build up our own libraries of templates and components (Page 731: Library Management; Page 733: Template Library Management).
In order to import both geometric information and other information related to schedules, loads, constructions and etc. from GH to BD, we supposed the following two ways:
1. GH(HB+GB) --> gbXML (both geometric and "Component " and "Template" information) --> DB
This is the way we most prefer. We did see information related to schedules, loads, constructions encoded in the gbXML file generated by GB, but still do not know the reason why DB did not take this information (I also mentioned this in Q6 within the gh file). We assume this might because the gbXML file we create encodes the schedules based on a different template / schema than the one DB expects. We also post this question to the DB forum for help.
(http://www.designbuilder.co.uk/component/option,com_forum/Itemid,25/page,viewtopic/p,13755/#13755)
2. GH(HB+GB) --> gbXML (geometric information only) + .ddf ("Component " and "Template" information only) --> DB
If the first way doesn't work and DB only takes geometric information from the gbXML, then we might think of the other way - generating the .ddf files from GH(HB+GB) to pass the schedule, load and construction information to DB.
I was wondering if it is feasible for HB and GB to have this function? And what is your suggestion to achieve this?
In addition, we notice that DB can export XML files (not gbXML), so we are trying to figure out if DB also accepts / reads the XML file. If so, we might be able to convert the gbXML (with both geometric and schedule information) to XML. What do you think about that?
Thank you again for all your help!
Best,
Ding
DB import
DB export
Template libraries
Component libraries
…
Introduction to Grasshopper Videos by David Rutten.
Wondering how to get started with Grasshopper? Look no further. Spend an some time with the creator of Grasshopper, David Rutten, to learn the
Introduzione a Grasshopper", il primo manuale su Grasshopper.
.
I corsi PLUG IT nascono dalla volontà di promuovere le nuove tecnologie digitali di supporto alla progettazione e condividere il know-how maturato attraverso ricerca, collaborazione con i più importanti studi di architettura e pubblicazioni internazionali.
.
Verranno introdotte le nozioni base di Grasshopper approfondendo le metodologie della progettazione parametrica e le tecniche 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 ed esercitazioni.
. Argomenti trattati:
- Introduzione alla progettazione parametrica: teoria, esempi, casi studio - Grasshopper: concetti base, logica algoritmica, interfaccia grafica - Nozioni fondamentali: componenti, connessioni, data flow
- Funzioni matematiche e logiche, serie, gestione dei dati - Analisi e definizione di curve e superfici
- Definizione di griglie e pattern complessi - Trasformazioni geometriche, paneling - Attrattori, image sampler
- Data tree: gestione di dati complessi - Digital fabrication: teoria ed esempi - Nesting: scomposizione di oggetti tridimensionali in sezioni piane per macchine CNC
.
Verrà rilasciato un attestato finale.
.
Ulteriori info e programma completo su: www.arturotedeschi.com e su www.edizionilepenseur.it…
thing that MicroStation does (or doesn't). The eternal debate between us is that they focus to the so called BIM aspect of things (and obviously on interoperability matters - that said IFC2*4 is" implemented" in certain Bentley verticals like BA and others) whilst I'm after assembly/component puzzles (and on that matter ... MS ...hmm... to put it politely is not exactly CATIA and/or NX, he he).
On the other hand this paranoid obsession with Level/Layer driven CAD (I hate it) defines a red thick line between CAD and MCAD - because the most intelligent importer can't emulate the way that Siemens NX/CATIA classifies objects - and without control power means nothing.
On the other hand Microstation V9 (...soon) has interesting scripting capabilities (think Modo rather Generative Components) ... meaning that Grasshopper could work there in a rather nice way. I think that I must talk for that to Ray (he recently ditched the ancient legacy MS render engine in favor for the Luxology/Nexus engine). Ray still is negative to buy Act3D mind (hope that you know the mother of visual scripting - the Quest3D VR thing).
On the other hand - within the broad AEC aspect - things these days are different (especially in fast developing countries the likes of UAE, Saudi Arabia, certain ex USSR "democracies" etc etc). Studies are outsourced even at Preliminary Design stage to various sub-contractors (they undertake the Study completion per discipline as well). This means that N separate groups doing M aspects of the whole ... meaning entropy^(N*M) - that's chaos in plain English.
With this in mind I'm quite (a lot) skeptical about the practical meaning of the whole exchange thing in AEC - at least with regard the countries mentioned (not to mention that several portions of a modern AEC thing are made via MCAD apps - chaos^chaos.
I'll back with more focused issues on that matter.
But the big question is: Grasshopper of Generative Components? Well...let's talk serious SS bikes instead: think a Ducati 1198 and a BMW S1000RR (I have them both): which is "best"? The thing is that not always the best bunny is the fasted bunny and not always the fasted bunny is the best bunny.
Cheers,
Peter
…
ty to work in a new and exciting space, where design, art, technology and fashion meet.
If you guys are looking for a full- or part-time job, or know an expert who is - we're happy to with meet him/her. We're located in the Lower East Side, New York.
What the person will be doing:
- Provide technical vision for product and infrastructure features
- Work with Marketing/Product Management to enhance the user experience
- Develop (with our team) our e-commerce customization platform
- Manage our real time 3D modeling platform
- Mentor 3D modelers and developers, define and document development methods, and share best practices
- Review and recommend improvements to product architecture
What we require:
- BA/BS/ BARCH degree OR CS/EE/Engineering degree preferred
- EXTENSIVE 3d modeling, rhino and grasshopper experience
- Experience building online computer games
- Experience creating natural and fractal patterns and forms in 3d
- UV Texture Mapping bit mapping (texture mapping)
- Experience managing a development team in projects with tight SCHEDULES
- Architecture, programing, scripting, Media or Fashion industry experience preferred
- Experience implementing web interfaces using XHTML, CSS, Javascript, and AJAX
- Experience in recommendation engines and algorithms
- Interest in working in an early stage fast-paced environment…