algorithmic modeling for Rhino
It's been more than a year since the last release of Human - so I'm excited to share with you the latest version, packed chock-full of new functionality. See the release notes for details on the new features. A few of my favorites:
Download the components below! They will also be available on food4rhino as soon as they're approved.
Also, I think you're mistaken - the color type coming out of the parameter is not a Color4f but a GH_Colour, which gets auto-unwrapped to its simple System.Drawing.Color type when you pass it through the python input (I believe).
Andrew, indeed the pop-up menu hint for colors does kick in if I first input a color into the 'x' input of Python, and it's specific to 'x' and doesn't appear for the orphan 'y' input, so the system is being smart. I didn't expect to ever see this since it seemed so generic to just be assigning a value in the Python realm!
THANKS SO MUCH FOR THE PLOT COLOR UPDATE!!! With your help my overall Grasshopper program is becoming elegant instead of confusing.
"Monkey see, monkey do." - Nik
I recall the steep learning curve merely for Python's right click menu of data access options and type hints, but also the not-in-the-manual-since-there-is-no-manual means of adding new inputs/outputs by zooming way into the canvas view to see those little +/- buttons appear out of nowhere!
As always I love all the new inventive features.
However I think the render to screen components badly lack a name input to specify (a) target viewport(s).
Also normalized coords would be great, Or a component that gives the viewport properties so we can remap.
I see Doc.View gives the rhinoViews, and we need the ActiveViewport of each (Why is it so complicated?).
Saddly I forgot everything I knew about VB or C#...
Hi Fred, the viewport filter is accesable via the components context menu (right click)
All my custom display components including the render to screen components support this viewport filter
had i known this earlier. don't really understand how i missed this right click option.
just to add that for multiple viewports square brackets are needed [1,2,3,4]
that will make things really easier, for text to screen.
if there is an upcoming release, please consider adding the viewport filters as inputs, so that they can be triggered with if events, if its doable without problems.
(1) Dynamic Geometry Pipeline (DPipeline) returns objects in the order they were created, newest on top. But to use layers as an organizing principle, I'd like the option to have the output be sorted by Layers palette order instead. This means I can work on a document and use layers for Illustrator-like stacking when I make 2D graphic art output from my objects.
(2) The LayerTable component of your plugin also fails to return layers in the stacked order they exist in the Layers palette, but alphabetizes them instead, so I lose the info needed to sort objects by layer order.
(3) Right now ObjectAttributes visibility output ignores items hidden by turning off a layer, so it's not being honest in a street smart sense. Your LayerTable component does have visibility info though, so I can kludge away to build my own filter. Ideally I need two filters for the pipeline itself, to filter out (a) hidden objects and/or (b) hidden layers.
The native Geometry Pipeline of Grasshopper has a right click option to filter out hidden objects, but it also happens to be broken and destroys the output ( http://www.grasshopper3d.com/forum/topics/pipeline-breaks-when-hidd... ).
There's a Group by Layer option as well, but it also seems to alphabetize the layers instead of abiding by their real order.
It won't grab text either, like yours will.
Obtaining the user interface layer order was a thorny issue, here in 2013 for the developer of the Rhino madCAM plugin, so McNeel updated Rhino to fix it:
To obtain the Layers palette actual layer order information, you use Rhinocommon SortIndex, since merely finding the layers list comes back alphabetized:
However, the layer list also includes deleted layers for Rhino to access for undo commands, so you must also test for those to get the real layers: