[PLUGIN] Voronoi + Conic Curve
-
UPDATE
Rubies modified according to ThomThom quideline
UPDATE 2
VoronoiXY updated - code adjusted
Hello everybody.A bit time ago there was an interesting challenge posted on this forums:
http://forums.sketchucation.com/viewtopic.php?f=323%26amp;t=28521
I was interested in it , because I want to make something like that for myself. Well maybe a bit smaller.
Workflow is clearly stated in that discusion, but two problems onderway were not so easy to solve:- genereating Voronoi diagram from points cloud (as many people struggle with Qhull plugin)
- Creating nice cutouts in those cells,
So here we go :
Voronoi - At this time it is limited to XY plane, but in a code I have put remarks what have to be adjusted (it is not tested, if it is all You have to change). My algorythm uses delauney3.rb , and is based on code of Tig's triangulation.
In fact TIG's plugin can create delauney triangulation also for nonplanar set of points, but my voronoi plugin operates on a plane.here are base points and result of delauney triangulation
What we also want to know is convex hull of those points, as that will be limit of our voronoi diagram, here You can see convex hull and combined convexhull and delauney triangulation.
And result is a Voronoi diagram for base points. Every Voronoi cell is put in a Group.I have put delauney triangulation under voronoi so You can see dependences between those two.
Operation:- Select cpoints
- Menu plugin / VoronoiXY
Next step is creating oval cutouts based on a cells.
For those I used Rational Bezier Curves.
http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Rational_B.C3.A9zier_curves
After executing plugin You can use TAB to change 3 parameters.- offset - if You want to leave some material on the edge of cell
- Points- number of points that create every segment of a curve
- Weight - it controls how round / pointed curve You get
Every curve is put in a group.
I think dat pictures will explain everything:
One remark, because offset produces sometimes intersecting polygon, result of coniccurve can also intersect itself:
Operation:
- Menu Plugins/ Conic Curve in Face
- TAB to set parameters
- Click Face
Feel free to play with it.It is intended for non comertial use.
If You decide to change something / improve it - please report here what have You done, so others can also use improved version.Greets Matt[mod=:1sotkqmg]%(#FF0000)[PLEASE GET/USE THE LATEST VERSION...
FROM THE PluginStore][/mod:1sotkqmg]
Create closed rational Bezier spline based on a face vertices
-
so what are some examples of what you would use this for?
-
For me it is for a interior decoration purposes.
Like a wall panel ,or sort of sculpture.
Matt -
I notice you use the name Delaunay and Delauney in this post. Could the various spellings affect functionality of the script? Or, are they not the same thing?
-
Yup , my fault.
I've corrected it. there should be delauney3.rb as it uses that ruby for triangulation. Triangulation name is Delauney Triangulation.
Matt -
Nice plugin!
However, Looking at the code I see that there are many methods on the global namespace. These methods will spread to ALL classes - which is not good. Could you please wrap everything into a separate unique namespace - module? Everything, even all the classes etc.
Have a look at this article I put together with guidelines for SketchUp plugins: http://www.thomthom.net/thoughts/2012/01/golden-rules-of-sketchup-plugin-development/ -
Thanks!
-
Forgive my further ignorance, please. Why is it called "Conic Curve?"
-
Some Voronoï fractures in Blender
[flash=560,315:3l0fl5l0]http://www.youtube.com/v/FIPu9_OGFgc[/flash:3l0fl5l0]
-
Hi MattC
Thanks for this plugin..been looking for something like this for a while.
Anyway, I gave it a go and am experiencing lots of problems generating a proper voronoi lattice. have attached a screenshot and also the SU file for you to look at.
Cheers,
Joel
-
SO Matt are you saying if I had a box shaped plan I could plan a curve through it to fit well?
-
Could You show me an example of box shaped plan and what You would like to obtain ?
-
Cool things in 3D
-
@unknownuser said:
Or something else
Just image found on the Net
But will be easy to make with your futur plug!
-
Pilou You 're teasing me
Is it Sketchup ??
Or something else?
Well only step that I miss from those, is generation of 3D Voronoi
For rest I have plugins already.@ Joel, indeed there WAS a problem - file in first message is updated.
Matt -
Hey i always loved voronoi structures and i´m very interested on this plugin but when i try to use it i get this:
Error: #<ArgumentError: Cannot convert argument to Sketchup::Point3d>
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:277:inpoint_in_polygon_2D' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:277:in
voropoints'
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:267:ineach' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:267:in
voropoints'
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:128:invoronoi' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:105:in
each'
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:105:invoronoi' C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:36:in
initialize'
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:384:in `new'
C:/Program Files (x86)/Google/Google SketchUp 8/Plugins/VoronoiXY.rb:384am i doing something wrong, i read carefully and i think it´s my SketchUp maybe?
-
Hi Can You attach sketchup file that is causing problems, or is it in general ?
Matt -
HI Matt ...
I have made some PNG Icons ,made a loader and toolbar , define Extention for your exelent codes , and developed them a bit
added a custom cursor to the ConicCurveInFace.rb
and removed the annoying UI message-box group counter from VoronoiXY.rb
I have also added TIG's pointcloude script as a defoult part of it , and I also made a Icon for that tool too ( points cloud triangulation ) .. I also made codes nicely and full commented .. just for you dear main developersuggestion for next versions :
add a point cloud generator ruby tool
add option to decide the resoult of VoronoiXY tool should be grouped or not
add option (ConicCurveInFace.rb) that let user make ConicCurves from grouped face (resoult of VoronoiXY tool)
add option (ConicCurveInFace.rb) that let user make ConicCurves from a set of selections .. no need to click and click and click ...and ... thanks a lot for your great script
to dear modorators : please please please don't delet this post !!! .. TIG says :
Permission to use, copy, modify, and distribute this software for
any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies... I didn't delete that copyright part .. and I also added TIG's name after his tool menu item ! is there any copyright issue again ? [mod=:3b85s0b6]PLEASE GET/USE THE LATEST VERSION...
FROM THE PluginStore...[/mod:3b85s0b6]
-
-
@the.pjt said:
to dear modorators : please please please don't delet this post !!
This one is ok - as it has explicit statement that it can be modified and distributed.
We do however prefer that the downloads for plugins at in the very first post of a plugin's thread. Otherwise it's hard for people to find the latest version if it is buried deep inside the thread. Could you agree with Matt whether that Matt puts the download in the first post - or you create a new thread where you maintain this modified version?
Advertisement