tton to reset the knob value to 0;
- max-min values used to make the knob "loopable"
example: min-max 0°-360° ...when, with the cursor, i go from 359 to 1 ,
there are 2 possible ways: value not limited > 361 , value limited to 360 and i must go back
"manually"
by c# script i could make it loop with values keeped inside min-max while spinning the knob
without limitation
Maybe it sounds stupid, but i often have to make this with components and the value written on the knob is not what i'm using in the definition...
Would it be ever possible?…
s.
Basically, if you triangulate the curved surface, and then make a copy of this triangulation which lies in the plane, you can link the edge lengths of the 2 triangulations with the equalization force. Triangle lengths determine angles at each vertex, and in the plane these obviously sum to 360, so if the lengths of corresponding edges in the curved version are equal, then its angles also sum to 360, which means it is developable.
Another nice thing about this is that you can manipulate either the flat pattern or the curved shape, and the force goes both ways. See this video for a basic example of this:
http://vimeo.com/39559828
I was quite excited to find this technique, and think it really has a lot of potential, but haven't actually had much time since to explore using it further, so would be really interested to see if you find some way of applying it.
…
t. This was a reasonably effective workflow for the purposes of solving the initial problem. (in reviewing this post, it seems a bit lengthy, but hopefully it's of use to others).
Link to Illustrator Script example:https://forums.adobe.com/thread/508138
Portion I used: This applies to entire illustrator document. I am using Illustrator CC 64 bit and this worked okay. Tested a few times and it failed once, but a restart of Illustrator fixed it.
var v_selection = app.activeDocument.pathItems;SwapFillStroke(v_selection); function SwapFillStroke(objSel) { for(k = 0; k < objSel.length; k++){ var subSel = objSel[k]; var c_fill = subSel.fillColor; var c_stroke = subSel.strokeColor; subSel.fillColor = c_stroke; if(!subSel.stroked) subSel.stroked = true; subSel.strokeColor = c_fill; }} redraw();
My goal was to export colored geometry, (analysis meshes for example), from Rhino and get it into illustrator with solid fills.
If you want to know how meshes are colored in rhino...there are many explanations here on the forum, a quick search will get you more detailed information.
Short version: export your lines from rhino to illustrator and run the script listed above to make the stroke color the fill color. (in illustrator, shift+X will swap the fill and stroke colors on individual objects, but does not work on multiple objects..hence the need for the script).
Detailed Version:
In my case, I had 2 case studies I was working with.1 - wind rose meshes generated from Ladybug/honeybee2 - A mesh terrain that was colored by pre-set slope values.
NOTE: There are a few plugins to bake objects with color. I used Human tools, (Bake Geometry and JustifiedText3D).http://www.grasshopper3d.com/group/human (lots of other great stuff in there too!)
I had two types of geometry. (2 different definitions)
1- An analysis mesh, (HoneyBee/LadyBug),
2 - Lines generated from mesh faces. (mesh terrain/slope values).
Export results as a DXF, and choose "do not explode". (these were my settings)
DXF seemed to produce the most consistent results.
(you could export/save as an AI file and just open them in illustrator, but that seemed to give inconsistent results with the script).
Open DXF in Illustrator:
Apply Script in illustrator:
In the terrain example, there are only 5 colors, so selection in illustrator, by color, is very easy. In the results from honeybee/ladybug, (or any analysis process I imagine), the default colors are created with a much wider range of values. I presume the legend is then created by an average of those values within a range. My point is that, with the analysis results, selecting objects by color in Illustrator is probably not a very effective workflow.
I only tested this on my instance of rhino and Illustrator. mileage may vary.
In summation, at this point, it seems that the best way to get colored mesh faces, into illustrator, is to export the meshes, (which really ends up being the mesh face edges...curves), and bringing them into illustrator and running a quick script to swap the colors. Once that is complete, you can then select ALL the objects, and change the stroke color/weight at once.…
vature it makes things somewhat easier, but the surface in your file also has regions of negative Gaussian curvature.
To approximate a surface of negative curvature with a discrete mesh, we need the angles around some of the vertices to sum to less than 360°. This is impossible to do in a mesh with 3 hexagons around each vertex without making some of these hexagons non-convex.
There are a few possible approaches, but I would say how to automatically cover an arbitrary surface with nicely shaped planar hexagons is still an unsolved problem.…
Added by Daniel Piker at 10:25am on December 17, 2013
mponent works by lofting all curves inside of the same list at particular branch. Your offsetted-elevated hexagons and original hexagons have different path levels (the first one have lets say: {0;0;0;i} and the second ones have {0;i}. So when you input your offsetted-elevated hexagons into the "C" plug of the "Loft" component along with the original hexagons the corresponding pairs will not merge into one list on particular branch, but rather they will "stay" in the ones in which they already were. That means that each of those lists will have only one curve in it, which results in the "insufficient valid profile curves" - because you need at least 2 curves to create a lofted surface.
So what we need to do is to somehow arrange the path levels of these two hegon "groups" (the offsetted-elevated and original) to be equal. That is the point of simplify, flatten...Here is a more simpler example of all this story:
The "curves group 1" has path level {i}, while the "curves group 2" has {0;i}. If we input both of them into the "C" plug of the "Loft component, the Loft will not work (an "Insufficient valid profile curves" error message will appear).
But if we Simplify the "curve group 2" that will decrease our path level into {i} just like the "curves group 1" has. So in that case Loft component works.…
mal mapping.
Most of the vertices in the original mesh are surrounded by 6 triangles, but there are a few special vertices that are surrounded by 5 or 7. These special points strongly affect the behaviour of the mesh, and when one of the constrained points is moved out of plane they cause it to buckle in a particular way (because clearly 5 equilateral triangles will not fit around a point when in the plane - 60*5 < 360).
The amount by which the sum of the angles around a vertex differs from 2*PI (360°) is a discrete version of Gaussian curvature.
If the equilateralization were the only force acting, then all the discrete curvature of the mesh would be concentrated at the special points, but a Laplacian smoothing force spreads the discrete curvature out from these special nodes.
The relative strengths of these forces are adjustable, and you can see when smoothing is low and equilateralization is high, the triangles become closer and closer to identical and equilateral, but they have to crumple to enable this, whereas when smoothing is high and equilateralization is low, the mesh becomes very smooth, but the triangles differ more in size and angle.…