## [PLUGIN] Voronoi + Conic Curve

### [PLUGIN] Voronoi + Conic Curve

UPDATE
Rubies modified according to ThomThom quideline
UPDATE 2
Hello everybody.

A bit time ago there was an interesting challenge posted on this forums:
http://forums.sketchucation.com/viewtop ... 23&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

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

FROM THE PluginStore

28
Last edited by MattC on Wed Jul 25, 2012 10:39 am, edited 3 times in total.

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

so what are some examples of what you would use this for?
2
By: Kristoff Rand
Home Designer

Krisidious

### Re: [PLUGIN] Voronoi + Conic Curve

For me it is for a interior decoration purposes.
Like a wall panel ,or sort of sculpture.
Matt
0

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

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?
1
I take the slow, deliberate approach in my aimless wandering.

mitcorb
Top SketchUcator

### Re: [PLUGIN] Voronoi + Conic Curve

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
0

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

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/0 ... velopment/
0
Thomas Thomassen — SketchUp Monkey & Coding addict

thomthom
PluginStore Author

Thanks!
1
www.saurus.rs

srx

### Re: [PLUGIN] Voronoi + Conic Curve

Forgive my further ignorance, please. Why is it called "Conic Curve?"
0
I take the slow, deliberate approach in my aimless wandering.

mitcorb
Top SketchUcator

### Re: [PLUGIN] Voronoi + Conic Curve

Some Voronoï fractures in Blender

4
Frenchy Pilou
Is beautiful that please without concept!
Speedy Galerie

pilou
Top SketchUcator

### Re: [PLUGIN] Voronoi + Conic Curve

@ mitcorb - example : If You have polygon with 4 vertices, You can create 4 sets of points ([0,1,2],[1,2,3],[2,3,0],[3,0,1]).
You can use those sets of points to create rational bezier spline(http://en.wikipedia.org/wiki/B%C3%A9zier_curve#Rational_B.C3.A9zier_curves) by asigning weight to every point.
Special case is when You set for first and third point weight = 1 , and weight "w" for second point.
- when w>1 then created curve is a hyperbole
- when w=1 then created curve is a parabole
- when w<1 then created curve is an ellipse (in special case circle)
Hyperbole, parabole ellipse and circle are known as a conic curves or conic sections , because You can create them by cutting cone with a plane.
http://en.wikipedia.org/wiki/Conic_section

If You draw square, and apply coniccurve with weight w = sqrt(2)/2 = 0,7071, You will get a circle.

@ Pilou - This is an implementation of 3DVoronoi - this is my next step, but at this moment I struggle a bit with a code...

Matt
0
Last edited by MattC on Fri Aug 24, 2012 6:37 pm, edited 1 time in total.

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

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
0

ivreich

### Re: [PLUGIN] Voronoi + Conic Curve

SO Matt are you saying if I had a box shaped plan I could plan a curve through it to fit well?
0
By: Kristoff Rand
Home Designer

Krisidious

### Re: [PLUGIN] Voronoi + Conic Curve

Could You show me an example of box shaped plan and what You would like to obtain ?
0

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

Cool things in 3D
5
Frenchy Pilou
Is beautiful that please without concept!
Speedy Galerie

pilou
Top SketchUcator

### Re: [PLUGIN] Voronoi + Conic Curve

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
0
Last edited by MattC on Wed Jul 25, 2012 10:36 am, edited 1 time in total.

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

Or something else

Just image found on the Net

But will be easy to make with your futur plug!
0
Frenchy Pilou
Is beautiful that please without concept!
Speedy Galerie

pilou
Top SketchUcator

### Re: [PLUGIN] Voronoi + Conic Curve

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>

am i doing something wrong, i read carefully and i think it´s my SketchUp maybe?
1

nektares

### Re: [PLUGIN] Voronoi + Conic Curve

Hi Can You attach sketchup file that is causing problems, or is it in general ?
Matt
0

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

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 developer

suggestion 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

-------
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 ?

FROM THE PluginStore...

-1

the.pjt

### Re: [PLUGIN] Voronoi + Conic Curve

here is the PSD files of ICONS
-1

the.pjt

### Re: [PLUGIN] Voronoi + Conic Curve

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?
0
Thomas Thomassen — SketchUp Monkey & Coding addict

thomthom
PluginStore Author

wonderful
0

unclex

### Re: [PLUGIN] Voronoi + Conic Curve

the.pjt thanks for a hard work.
I
I must admit that that part of writing rubies is still unknown to me. I just concentrate on making my code running and not on wrapping it in a nice package as You did.
so in place of
Code: Select all
`cmd.small_icon = "voronoi_conic/icon0s.png"`
I used
Code: Select all
`cmd.small_icon = "./icon0s.png"`
and it worked.
I have no idea why it was like that.
As for a wishlist:
- add a point cloud generator ruby tool - this should be no problem, if we are talking about random pints in a cube/box, and probably random points on face but I have no idea (for now) about random points in a volume (is it possible in Sketchup ?).
-add option to decide the resoult of VoronoiXY tool should be grouped or not - ok , just one userform asking if groups should be exploded in the end.
- add option (ConicCurveInFace.rb) that let user make ConicCurves from grouped face (resoult of VoronoiXY tool)- this should also not be a problem
- add option (ConicCurveInFace.rb) that let user make ConicCurves from a set of selections .. no need to click and click and click ... - same as above.

I will try to get it done, when I finish 3DVoronoi.

Cheers
Matt
0
Last edited by MattC on Thu Jul 26, 2012 5:17 pm, edited 1 time in total.

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

thanks a lot Matt ...
I wish my works have been helpful for you ...
and I'm glad for helpping you to have a nice plugin .
I myself didn't have any problem with icons and I'm wondering why it can't handle the Icon folder path ... but thanks for learning me the right way of codding ... Matt
... but you know ... I'm not a proggrammer .. , I wish I could code my sugestions .. and help you more than making some icons

..
thanks agane Matt .. have a nice tool
0

the.pjt

### Re: [PLUGIN] Voronoi + Conic Curve

I'll be keeping eye on this. 3D... that would be great.
0
Welcome to try Thea Render, Thea support | kerkythea.net -team member

notareal
Thea Render Support

### Re: [PLUGIN] Voronoi + Conic Curve

Matt, the icons - did you put the icons in the correct folder? The change you did make it appear that you placed them in the root folder... ?
0
Thomas Thomassen — SketchUp Monkey & Coding addict

thomthom
PluginStore Author

### Re: [PLUGIN] Voronoi + Conic Curve

I've unpacked it just as at was, so icons sits in a folder Plugins/voronoi_conic.
Somehow code
Code: Select all
`cmd.small_icon = "voronoi_conic/icon0s.png"`
, does not work for me (Win 7 and WinXP)
Strangely:
1) :
Code: Select all
`cmd.small_icon = "icon0s.png"`
and 2)
Code: Select all
`cmd.small_icon = "./icon0s.png"`
both works.
code 1) I understand as icons and ruby that invokes toolbar are in the sam location.
But 2) searches for icons in Plugin folder...or am I mistaken?
Does it work for You straight away ThomThom??

Matt
0

MattC

### Re: [PLUGIN] Voronoi + Conic Curve

Haven't had time to try it - been very busy. Just monitoring the forum a little...
0
Thomas Thomassen — SketchUp Monkey & Coding addict

thomthom
PluginStore Author

### Re: [PLUGIN] Voronoi + Conic Curve

Hi the pjt !

Great work!

1/ Could it be possible to undo the voronoi generation in one go ?(ctrl Z is going back through all the steps of the generation)
2/ It does not generate the voronoi all the time. Sometimes nothing happens. Any idea ?

Thanks for making my day with those plugins!
0

Sl!m

### Re: [PLUGIN] Voronoi + Conic Curve

Matt's original ruby files (could be found in the first post of this topic ) displays a dialog box that counts each step and you should verify each step by pressing OK button .. It could be good for preventing unwanted results ... ( but it was annoying for me )

also you can delete each group of resoults and doing the Voronoi command on a particular face ...

but above all I'm not a programmer Author ... I just wanted to help Matt by doing some routine steps of making an SU Extension ...

-1

the.pjt