Grasshopper

algorithmic modeling for Rhino

Hi all,

Yesterday I've wrapped up the first release for clipper for grasshopper.

Clipper is a 2D polygon Clipper offering polygon boolean operations (clipping): Intersection, Join, Difference, XOR. Offsets for polygons and Minkowski Sum and Differences.

The good stuff:

  • it accepts all types of polygons including self-intersecting ones
  • it supports multiple polygon filling rules (EvenOdd, NonZero)
  • it's very fast relative to the RhinoCommon counterparts
  • it also performs line and polygon offsetting
  • it's numerically robust
  • it's free to use in both freeware and commercial applications
  • it's open source
  • it's native .NET

What it does not do

  • Curves, Splines, Arcs need to be converted to polygons
  • No support for splines, nurbs
  • Only in-plane operations are supported (all geometry will be projected onto it's 2d space)
  • Circular fillets are represented as polygons

Can be downloaded from http://www.food4rhino.com/project/clipper

Source code is available at https://github.com/arendvw/clipper

Views: 2212

Replies to This Discussion

I've been looking for Minkowski Sum & complex polygon offsetting implementation! This is fantastic! Thank you!

The implementation is still quite basic, let me know if you need any help. The minkowski difference can also do quite cool tricks. (the line described by the closest point of the 0,0,0 point determines how far object A is away from object B. (See the examples on github).

Hi Arend!

First of, great plugin, works great so far! 

Yet I've ran into a problem. The offset seems to be working fine, yet when you zoom in there are parts which are sticking out (corners of other lines I suppose).

Can I prevent that from happening ? So I get 'clean' corners?

I tried playing around with the tolerance, but higher tolerance seems to give me worse results then with a small tolerance like 0,001.

Hope you can help out in one way or another ;)

Attachments:

Hi Lieuwe,

You're using open curves, so each curve will have a "open fillet" applied. If you set this input value to 2, it will use the "butt" value, so each line won't be extended by the offset distance.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service