Bezier Curve CAD Tools for CNC Milling & Laser Cutting


(lichtso) #1

Operators for bezier curves:

  • Fillet: Round corners by inserting arcs
  • Boolean: Union, intersection and difference
  • Offset Path: Generates offset polygons from a given curve
  • CNC Toolpath Macros: Rectangle and drill
  • Intersection: Subdivide selected curve segments at their intersection
  • Merge Ends: Bring together two end control points but keep their relative handle positions
  • Subdivide: Offers more control over the parameters than the built-in tool
  • Circle Reconstruction: Useful when importing polygon based CAD files
  • Arc Length: Useful to estimate the duration of the fabrication process

The SVG exporter combines the features of other SVG exporter addons with the focus being engineering.
It can export the screen space (pixels) or real world coordinates.
So you can use it to print out blueprints or use it for laser cutting directly.

Available under GPLv3:

List of addons that work with 2.8
(nBurn) #2

Nice! Is this related to Vilem’s Blender CAM project?

(wilBr) #3

thank you lichtso, very useful.

(lichtso) #4

No not directly. But thanks for the link!
It seems it was last updated over 2 years ago.

I think the biggest difference so far is that with most CAM software you start with your model and then generate a strategy / tool path from it, while in this add-on you start with a strategy / tool path and generate a model from it.
This allows for more control over what the machine is doing but also requires more knowledge and potentially more work.
So I am working on more utils to make it easier.
Also I can send the results directly to my machine using TCP/IP but that is not included in this release yet.

(urkokul) #5

Thanks for this good thing

(Hickz) #6

Very good, thanks! Are boolean operations planned for this addon? That would be very nice to have

(tungee) #7

Hi Lichtso, i have here 3 three other offset curve addons;
But only yours works for my satisfaction!
How about a filleting tool? There is kaum a good one out there!
Yepp booleans would be extreme fine!

(lichtso) #8

Well boolean geometry (union, intersection, difference) is already possible:

  1. Blender comes with even / odd rules for curves inside curves and overlapping areas.
  2. As far as I can tell, boolean operations in 2D are just multiple intersection tests with automatic cleanup of specific parts depending on the operation.
    But yes, I can look into that automation part and try to add it.

By “filetting” you mean rounded corners like bevel but inserting bezier curve handles instead of polygon vertices?

In both cases, could you both give me a reference for what already exists and what you dislike about it?

(Hickz) #9

one more suggestion i have is to implement an option to extend (or not extend) selection. For example, i’m offsetting 20 curves in 1 object, and i’d like to delete the original curves since i won’t need them, but since the addon extends selection to the created offset, i have to manually select the original curves to be able to delete em. Kinda inconvenient imo

(lichtso) #10

Thank you for your feedback.
I added a checkbox “Select” to the “Bezier Offset” operator.

I am also working on:

  • some tool path macros (e.g. rect and drill)
  • a simple G-Code exporter (seek, line and circle)
  • bezier boolean operations (union, intersection, difference)

So, stay tuned.

(Remade) #11

very useful bezier tools,thanks.there is also a GSOC project (under code review) for curve tools may be useful reference for you.

(lichtso) #12

Thank you for the link, I’ll have a look into it.

By the way, the “bezier boolean operations” are ready and available now.

(tungee) #13

Finaly some bezier tools that are working as supposed!
Man, others needed months to werfen the Handtuch and haben sich the Zähne ausgebissen, und du schüttelst jede Woche so benötigte Bezierfunktionen out of the Ärmel :smiley:
Wahnsinn, vielen vielen Dank!

PS.: Im preparing some files regaring the bezier fillet problems of the other addons
The offset curves function was better placed in the specials section in my opininion, lichtso!

(özgür) #14


(Hickz) #15

The offset option doesn’t seem to work for me :open_mouth: from the shift+a menu. I’m using the latest master build

(lichtso) #16

Are you in Object or Edit Mode?
Have you selected at least one spline completely (select linked) ?
Is it a polygon, bezier curve or NURBS?
Do you get an error message or just unexpected results?

(Hickz) #17

both object and edit mode don’t give any results whatsoever (in object mode it just creates a new empty object)

bezier curve, full selection, no error message, the offset curve just doesn’t appear

(lichtso) #18

Interesting, it might be that there is no solution for the given parameters.
Could you send me the file or a screen shot?
And try different values especially offset / pitch (including negative ones), also try switching the direction of the spline.

(Hickz) #19

i’m offsetting a standard bezier curve from shift+a. I ofcourse tried to change every parameter available, no go

(lichtso) #20

Well, I will add some more tool path macros in that category (Add Curve), then it will make more sense.
The idea was, that you can create a new tool path object (when using it from Object Mode) or add it to an existing one (from Edit Mode).
This would also allow you to separate the selection of the new offset curve and the original one, in case you want to delete it afterwards.

Thank you. I fixed it: The bug was a “> 0” but it needed to be “>= 0” else single segments wouldn’t work.

I also released the simple G-Code exporter with it.
It uses the soft body-weight property of the vertices to control the relative speed at that vertex.