antimony icon indicating copy to clipboard operation
antimony copied to clipboard

Add chamfer transform

Open xxv opened this issue 10 years ago • 4 comments

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

xxv avatar May 30 '15 19:05 xxv

I'm also curious as to how to do this. Because of the functional representation (#31), I expect this is actually pretty difficult.

AstraLuma avatar May 30 '15 23:05 AstraLuma

I have two thoughts on how to to implement this:

  1. 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.
  2. 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.

AstraLuma avatar Jun 02 '15 20:06 AstraLuma

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.

AstraLuma avatar Jun 04 '15 18:06 AstraLuma

Future plans:

  • More primitive shapes, namely interior and exterior arcs
  • Convenience compound versions
  • Versions of everything in chamfer
  • Arbitrary joining angles

AstraLuma avatar Jun 04 '15 18:06 AstraLuma