tions or components.
Participants will learn concepts of object oriented programming and essential syntax of C# to endeavour into personally extending cad toolsets. The workshop will focus on introducing the .NET language C# and the Software Development Kit (SDK) RhinoCommon.
Topics
- use of Script Component within Grasshopper
- explanation to the .NET Framework
- introduction to RhinoCommon SDK
- basics of imperative / object-oriented programming
- data types, operators, properties
- variables, arrays, lists, enumerations
- methods
- objects, classes
- control structures: conditional statements (if, else, switch)
- control structures: loops (for, foreach, while, do)
- walk-through iterative und recursive code-samples
- use of RhinoCommon Geometry class library: creation, sorting, editing of Geometry (Points, Vectors, Curves, Surfaces)
- adding (baking) geometry to the active Rhino 3DM Document, including attributes (Name, Layer, Colors etc.)
- introduction to the Integrated Development Environment MS Visual Studio Express Edition
- compiling code to dll/gha files (plug-ins) / making your own Grasshopper custom components
Grasshopper wird auf der .NET Softwareplattform entwickelt, und kann ebenso wie das CAD Programm Rhinoceros mit "RhinoCommon", einem Software Development Kit, erweitert werden.
Dieser Kurs richtet sich an Designer, Architekten, Ingenieure und Techniker, welche mit dem grafischen Algorithmus-Modellierer "Grasshopper3d" sowie dem CAD-Programm "Rhinoceros" bereits vertraut sind und einen Einstieg in die Programmierung von Geometrie erlernen möchten.
Der Kurs Grasshopper II folgende Grundlagen:
Kennenlernen der Script Componente
Erläuterung zum .NET Framework
Einführung in RhinoCommon SDK
Grundlagen d. imperativen / objektorientierten Programmierung
Datentypen, Operatoren, Eigenschaften
Variablen, Reihen, Listen, Aufzählungen
Methoden
Objekte und Klassen
Kontrollstrukturen: Bedingte Ausführung, Schleifen
praxisnahe iterative und rekursive Code-Beispiele für generatives Design unter Verwendung der RhinoCommon Geometrie Klassenbibiliothek - Punkt- und Vektorgeometrie erstellen, sortieren, bearbeiten, Flächen und Netze erstellen - Geometrie in das Rhino 3DM Dokument baken, einschließlich Attribute (Name, Layer, Color)
Einführung in die Entwicklungsumgebung MS Visual Studio Express Edition
Kompilieren von Programmerweiterungen (plug-ins) als Komponenten (custom components)
Details, Anmeldung:
www.vhs-stuttgart.de
Trainer Peter Mehrtens
Kursdauer: 3 Tage x 8 h
Freitag, 21.02.2014, 9:00-17:00 Uhr Samstag, 22.02.2014, 9:00-17:00 Uhr Sonntag, 23.02.2014, 9:00-17:00 Uhr Ort: VHS Stuttgart, Fritz-Elsas-Str. 46/48
Teilnahmegebühr 510,00 €…
I can get this working in a c# windows forms program, but as soon as i make a call to the mkl-dll's Rhino and Grasshopper crashes without giving me an exception.
See code code snippet below:
/** Pardiso wrappers */ public class Pardiso { private Pardiso() { }
public static int pardiso(IntPtr[] handle, ref int maxfct, ref int mnum, ref int mtype, ref int phase, ref int n, double[] a, int[] ia, int[] ja, int[] perm, ref int nrhs, int[] iparm, ref int msglvl, double[] b, double[] x, ref int error) { return PardisoNative.pardiso(handle, RHINO CRASHES HERE ref maxfct, ref mnum, ref mtype, ref phase, ref n, a, ia, ja, perm, ref nrhs, iparm, ref msglvl, b, x, ref error); } }
/** Pardiso native declarations */ [SuppressUnmanagedCodeSecurity] public class PardisoNative { private PardisoNative() { }
[DllImport("mkl_rt.dll", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true, SetLastError = false)] internal static extern int pardiso([In, Out] IntPtr[] handle, ref int maxfct, ref int mnum, ref int mtype, ref int phase, ref int n, [In] double[] a, [In] int[] ia, [In] int[] ja, [In] int[] perm, ref int nrhs, [In, Out] int[] iparm, ref int msglvl, [In, Out] double[] b, [Out] double[] x, ref int error); }
Does anybody know what I am doing wrong? Please find complete code attached.
This is all I get from VS:
The program '[6772] Rhino.exe: Managed (v4.0.30319)' has exited with code 2 (0x2).
Thank you in advance,
Gustav
…
a problem with SSL. Any Ideas? I am using the following code:
import json,httplib connection = httplib.HTTPSConnection('api.parse.com', 443) connection.connect() connection.request('GET', '/1/classes/MY-CLASS', '', { "X-Parse-Application-Id": "MY-APP-ID", "X-Parse-REST-API-Key": "MY-REST-API-KEY" }) result = json.loads(connection.getresponse().read()) print result
I Get the Following Messages:
Runtime error (IOException): Authentication failed because the remote party has closed the transport stream. Traceback: line 280, in do_handshake, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 120, in __init__, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 336, in wrap_socket, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\ssl.py" line 1156, in connect, "C:\Program Files\Rhinoceros 5.0 (64-bit)\Plug-ins\IronPython\Lib\httplib.py" line 3, in script Any help would be greatly appreciated! Thanks in advance! -Zach…
rst option is the type of Point Grasshopper will display in the Rhino Viewport.
Dot
Point
Cross
Dot is a small dot of single colour.
Point is a slightly larger dot with a white center.
Cross an X-shaped cross. (Default)
Preview Plane Size
The option to change the size of the Plane appears as a fly out menu where an input box allows you to enter a value in Rhino Document Units to set the size of the Plane. (You must press Enter to accept the change)
Preview Mesh Edges
The option to hide/show mesh edges catches a few users out, thinking that the Meshing of the Object has failed.
And without...
There is a handy Shortcut of Ctrl+M to toggle between the two options.
Gumballs
As of version 0.9.0064, Grasshopper allows the user to move individual points that are Persistent[3a] by means of a Gumball in the Rhino Document. Volatile[3b] points can be made persistent by way of the Internalising feature found on the Context Menu of Components and Parameters
[3] Glossary:
Volatile - "liable to change rapidly and unpredictably". Referenced objects in Rhino are considered volatile.
Persistent - "continuing to exist or endure over a prolonged period". Internalised objects are considered persistent.
…
ers can be applied from the right click Context Menu of either a component's input or output parameters. With the exception of <Principal> and <Degrees> they work exactly like their corresponding Grasshopper Component. When a I/O Modifier is applied to a parameter a visual Tag (icon) is displayed. If you hover over a Tag a tool tip will be displayed showing what it is and what it does.
The full list of these Tags:
1) Principal
An input with the Principal Icon is designated the principal input of a component for the purposes of path assignment.
For example:
2) Reverse
The Reverse I/O Modifier will reverse the order of a list (or lists in a multiple path structure)
3) Flatten
The Flatten I/O Modifier will reduce a multi-path tree down to a single list on the {0} path
4) Graft
The Graft I/O Modifier will create a new branch for each individual item in a list (or lists)
5) Simplify
The Simplify I/O Modifier will remove the overlap shared amongst all branches. [Note that a single branch does not share any overlap with anything else.]
6) Degrees
The Degrees Input Modifier indicates that the numbers received are actually measured in Degrees rather than Radians. Think of it more like a preference setting for each angle input on a Grasshopper Component that state you prefer to work in Degrees. There is no Output option as this is only available on Angle Inputs.
7) Expression
The Expression I/O Modifier allows you change the input value by evaluating an expression such as -x/2 which will have the input and make it negative. If you hover over the Tag a tool tip will be displayed with the expression. Since the release of GH version 0.9.0068 all I/O Expression Modifiers use "x" instead of the nickname of the parameter.
8) Reparameterize
The Reparameterize I/O Modifier will only work on lines, curves and surfaces forcing the domains of all geometry to the [0.0 to 1.0] range.
9) Invert
The Invert Input Modifier works in a similar way to a Not Gate in Boolean Logic negating the input. A good example of when to use this is on [Cull Pattern] where you wish to invert the logic to get the opposite results. There is no Output option as this is only available on Boolean Inputs.
…
ve Intermediate Insight of Computational Design Strategies While Exploring Rangoli Art form in 2 Dimension and 3Dimesion in which Participants will not only be trained to Digitally Design using Parametric software's but they will also be trained to Fabricate them in reality.
This Course will be explored in manner where Participants will understand inter-dependency of Rhinoceros3D & Grasshoper3D through a unique Hybrid Teaching Method While Exploring Rangoli Geometry .
The course will also take participants through Topics such as - Computational Thinking, - Computational / Parametric Design, - Computational Rangoli Exploration, - Digital Fabrication, - 3D Visualization ( Rhino3D 6), - Making Info-graphics & Design Diagrams ( Rhino3d 6 ).
Participants will also be doing a Project at the last Leg of Workshop in which they will implement the skill they gained in first Few Weeks.
{ Tutor } Nitant Pixelkar (Computational Artist / Designer, Mumbai)
Nitant Hirlekar A.k.a. Pixelkar, is a Computational Artist. He graduated from Rachana Sansad school of Interior Design 2011, Mumbai. In Academics He Bagged Two Gold and One Silver Medal on National Level.
In his post academic days, he came across the Emerging Computational Techniques in Design industry in which Algorithm serves as a main Functional part. He uses Algorithms to Deconstruct the Captured images in Pixelated form using the Grid of the Desired Indian Art Forms.
He Heads Collective Group Named "Mutation Lab” which is a multidisciplinary Design & Art Cell. Where they Explore Computational Approach while Designing Various Scales Spatial Installation, Digital Fabrication, Interactive Installations and Computational Consultancy for Various Architects.
He has exhibited his first artwork in Kalaghoda Arts Festival for in 2014 And further in 2016 and 2017.In 2015 he exhibited in Dharavi Biennale” organized by Wellcome Trust,London & Sneha Organisation, Mumbai Which was internationally acclaimed. In 2016 he got Featured on a TV show - The Creative Indian's as an Absolut Creative Indian of the Week.
Academically he is been involved in Many Computational Design Workshops / Elective Studios for School of Interior Design (Rachna Sansad), LS Raheja College of Architecture & Rat-Lab (Delhi).
{ Participants } The Course is aimed at Architecture, Interior Design, Product Design,Furniture Design & Fashion Design Students and Professionals. However we would be thrilled to have any Interdisciplinary Artist / Creator/ Maker to join the Course as well.
{ Level }
Intermediate
{ Timing } Monday To Friday - 6:00 PM to 9:00 PM (15 Hours/ Week = 5 Week X 15 Hours = 75 Hours )
{ Dates } Registration Ends - 24th April 2020 **Subejct to Availablity
{ Workshop Dates } 4th May 2020 To 5th June 2020
{ Venue } Lower Parel,Mumbai ( Details To Be Announced )
{ Schedule }
{Registration Form}…
mesh by an infinite plane
Namespace: Rhino.GeometryAssembly: RhinoCommon (in RhinoCommon.dll) Version: 5.0.15006.0 (5.0.20693.0)
Syntax
C#
public Mesh[] Split( Plane plane )
Visual Basic
Public Function Split ( _ plane As Plane _ ) As Mesh()
Parameters
plane
Type: Rhino.Geometry..::..Plane[Missing <param name="plane"/> documentation for "M:Rhino.Geometry.Mesh.Split(Rhino.Geometry.Plane)"]
Return Value
[Missing <returns> documentation for "M:Rhino.Geometry.Mesh.Split(Rhino.Geometry.Plane)"]
See Also
Mesh Class
Rhino.Geometry Namespace
Last updated 3 June 2011 - Robert McNeel and Associates
Send comments on this topic to steve@mcneel.com
Report wishes and bugs: https://github.com/mcneel/rhinocommon/issues
Is this the function?
I have a VB component with this:
a = rhino.Geometry.Mesh.CreateBooleanSplit(x, y)
but this is a boolean split, so I have only one mesh, with the intersection. I would like to have several splitted meshes.
Thank you in advance again.
…
C# only).
We've switched UI toolkits from winforms to Eto (which has much better cross platform support) so GH2 will run on both Mac and Windows. The developer of Eto now works part-time at McNeel so I'm pretty confident any problems that come up can be solved the proper way.
We're working on complete documentation. Glossaries, explanations of core-concepts, example files for all components, etc. etc. All fully editable and extensible by third party content providers, be they plugin developers, teachers, translators, or whatever.
This time around I'm designing the SDK with multi-threading in mind, so a lot of types have become immutable. I'm also adding multi-threading wherever it makes sense in the core classes.
This time around I'm adhering to .NET guidelines for the SDK.
There will also be much deeper and better support for data trees (they were introduced only halfway through GH1 development). The same goes for data conversion.
There is support for user data on each and every data type. So you can assign custom data to curves, numbers, breps, whatever and it will piggy back along as that data flows through the network. This user data will also serve as the basis for custom settings. For example you could assign the user data "BakeLayer = Building A" to some geometry and when that geometry gets baked, GH will figure out in what layer it is supposed to end up. Or you can assign "DisplayColor = Orange" and that geometry will appear orange in the viewports.
Expressions have been extended to be any chunk of VB or C# code (support for python will probably be added at some point). They can be far more intricate (but they don't have to be) and they will be run as compiled code, rather than interpreted code. Expressions also have ways to access data that is defined elsewhere in the document. So if there's a slider somewhere called "Thickness" then an expression in a number input parameter could look like "Min(x * 2, Thickness)".
--------------------------------------------------------------------------------------------
I am doing or have done the above. I'm hoping to get around to the items below.
--------------------------------------------------------------------------------------------
The interface will be simplified. I'm planning to remove a lot of options and settings and replace them with smarter code. If that ultimately fails options and settings can always be brought back.
There will be a lot more zoom aware UI, so if you want details about some component or parameter, you'll no longer have to dig through a gazillion menu items, you just zoom in on that object.
There will be better tools to document, debug and manage large files. This is a huge area of R&D but it is one of the major weaknesses of GH1 in my opinion.
Solutions will be multi-threaded, and hopefully also run in the background.
As part of a general effort within McNeel, I'm hopeful there will be a reliable way to explore, install, and uninstall plugins for Grasshopper directly from the Grasshopper interface. No need to go to some webpage, no need to register, no need to log in, no need to enter captchas or having a new password emailed to you because you can't remember the old one. It's ridiculous how difficult this appears to be in 2015, but we now have someone at McNeel who's really good at this stuff and I'm pretty confident they'll make it awesome.
There'll be a lot more types of data to work with (sub-d geometry, extrusions, polylines, spheres, graphs, bitmaps, better support for fields, ...). The aim here is both to reduce memory overhead by providing light-weight types and to provide more functionality.
There will be more ways to organise and display data, both on the canvas and in the viewports. Better bar graphs, better pie charts, better and more everything.
The default preview materials will be grey and yellow, not red and green.
--------------------------------------------------------------------------------------------
As you can see there's a lot of work to be done, for sure the first alpha release will be as soon as possible, but I've been focusing on core classes only so far. There's no working prototype, there's no working UI, there's no document class yet that actually runs solutions. We're a long way from the first alpha.
Right now I'm mostly acquainting myself with Eto (YouTube video if you want to know what that means) and I'm working on data type conversions and preview materials.
--------------------------------------------------------------------------------------------…
th Galapagos and that I'm already accustomed with mass addition of the fitness. But this can't solve my current problem. I'll tried to explain the best I can.
Goal :
I have a tower façade to cover with modules. Each floor is divide with a radiant structural grid. Let say for the exemple that each floor is divide in 9 parts.
I want to put modules on each parts in order to cover the whole length.
The thing is that each floor is different (so finding the solution for one floor is not usefull). So we decide to use three kinds of module :
Module A is 793mm long.
Module B is 893mm long
Special module as a size between 0.714 and 0.872.
Each part of the façade must be completed with 0 to 10 Module A, 0 to 10 Module B and 2 Special Modules. Special module size can change for each part.
Solution for one part
I've realized a Galapagos solution which change these tree parameters (number of Module A, number of Module B and size of Special module) in order to minimize the difference between the total length of the modules and the length of the façade's part.
This is working very well.
Solution in Grasshopper :
Before runing Galapagos :
After runing Galapagos :
The problem
I've now to generalize the idea for the total number of parts. In my exemple now, I'll show 9 parts but the real number is several hundreds.
I changed the Number Sliders in Gene Pools. As for instance, the first Gene Pool contains 9 integers for the 9 numbers of Module A (one number for each part).
I used Mass Addition for the fitness.
And then you can guess the problem : basicaly, the solution is working. But it's very slow. I need so many time fort 9 parts that I can't imagine the time for the whole tower.
Why this ? Simply because Galapagos doesn't understand that the number of Modules A for the Part X has no influence on the Part Y. So it tries, for each part, to change every paramater (3x9 in my exemple) unless to change only the three paramaters wich affect each part.
Thus, with a large number (600-700) of parts, it's impossible to reach the beginning of a solution.
Is there someone here to help me ? Please ? :)
Thanks in anticipate,
Marc
Architect and structural engineer
http://parametriclab.eklablog.com/…