Add chamfer transform
I have no idea how hard this would be considering the data model, but it'd be very handy to be able to chamfer (non-curved to start) the corners of a 2D input shape. I imagine the inputs would be:
- offset
- shape
I'm also curious as to how to do this. Because of the functional representation (#31), I expect this is actually pretty difficult.
I have two thoughts on how to to implement this:
- Have a series of chamfered/rounded primitives that can be used to build up an object with edges. Not easy to use, and hard to add to an object later.
- Have "routing" operations (as in, with a router bit) that do this. Things like line, arc, rectangle, circle, etc. Or: Routing primitives meant to be subtracted from an object.
I like 2 better.
Ok, I've got a basic 90deg straight-line fillet node. Use Difference for convex corners, Union for concave corners.
It will trace the line from (x0, y0, z0) to (x1, y1, z1) and set a round of radius r (in model units). Use a to adjust the angle. (a is a little opaque, sorry. Will be improved in future versions.)
I highly suggest binding it to your model.
Future plans:
- More primitive shapes, namely interior and exterior arcs
- Convenience compound versions
- Versions of everything in chamfer
- Arbitrary joining angles