Bezier Curve CAD Tools for CNC Milling & Laser Cutting

add-ons
blender2-80

(Hickz) #21

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.

yea, tried it, works well! Thanks :>


(Hickz) #22

Hi there! The “Select” checkbox from the offset option seems to have dissapeared in the latest version of the addon, any suggestions? :>


(lichtso) #23

My reasoning was to be compatible with the rest of blender.
So Add > Curve > Toolpath > Offset Curve behaves differently in Object Mode and Edit Mode.
Therefore, there was no more use for the select checkbox, as you can now control it using the mode.

E.g. if you have a lot of curves in one object and you don’t want to keep them, then you can go to Object Mode and generate an Offset Curve for all of the at once. Afterwards just delete the original object. This way the selection of the old and the new curves is separated by being in different objects.


(lichtso) #24

I just ported the Curve CAD add-on to Blender 2.80,
so go and test it and report any issues you might encounter.

Thanks a lot


(mak485) #25

any tutorial pls ?


(z01ks) #26

Great to see work on Bezier Curves, which is somewhat a weakness in Blender. Is there a plan to add a Fillet tool to the Curves?


(mak485) #27

lichtso, yr offset implementation is very impressive. though u r dealing with bezier curve, can u give a look to another addon “Offset edges” by Hidesato lacking merging of vertices at intersections. (Offset Edges). it would be great if u assist them.


(lichtso) #28

any tutorial pls ?

Yes, I am planing to do a new one with all the features.
Is there anything specific you are interested in / what do you want to use the tool for?

Great to see work on Bezier Curves, which is somewhat a weakness in Blender. Is there a plan to add a Fillet tool to the Curves?

A fillet tool is on my TODO list. I might have time to implement it during the next week.

lichtso, yr offset implementation is very impressive. though u r dealing with bezier curve, can u give a look to another addon “Offset edges” by Hidesato lacking merging of vertices at intersections. Offset Edges. It would be great if u assist them.

Well, my implementation also works on sharp edges / polygons (not only curves), but it is only a heuristic.
I haven’t figured out how to solve self intersection correctly in each and every case.


(mak485) #29

i don’t find any option to apply offset for normal edge/polygon, yr tool is only appear for bezier curves.

self intersection will remain heuristic in some cases. my suggestion is to keep some option, say after applying offset, if result is not satisfactory, keep one button (like seed in random) which will show different way of merging vertices at intersection (i belief 2/3 option will show desired result).


(lichtso) #30

i don’t find any option to apply offset for normal edge/polygon, yr tool is only appear for bezier curves.

Although, it is somewhat counter intuitive, there is a “polygon” mode for curves / splines in blender. So, you take your mesh, convert it (Object > Convert to > Curve from Mesh/Text), then take that polygon spline and apply the offset operator as if it were a bezier curve.

my suggestion is to keep some option

Yes, I thought about that as well, but my heuristic is so simple, there is not much room for options: It just iteratively searches for self-intersections (each intersections splits the polygon in two sub-polygons) and uses the signed area to decide which one to keep and which one to discard, until there is only one self-intersection-free polygon. This however is incorrect as there could be multiple islands like the two circles in a 8-shaped polygon. I will address this when I come up with a better algorithm.


(mak485) #31

thanks.
sure u will get better algarithm


(lichtso) #32

Is there a plan to add a Fillet tool to the Curves?

Done, although it only supports corners between straight line segments (handle type VECTOR) so far.


(z01ks) #33

Wohoo! Can’t wait to try it. Thank you!

edit:

OK great, it works. Just wanted to report some issues with the Filleting. I am not using the absolute latest version of 2.8, in fact mine is a couple of weeks old.

  1. It only seems to work on the XY plane. Whenever there was a vertical dimension to the curve, it started to bug out.
  2. I only managed to get it to work when absolutely every curve point was selected. No individual selection seemed to work.

(lichtso) #34

Just wanted to report some issues with the Filleting. I am not using the absolute latest version of 2.8, in fact mine is a couple of weeks old.

You discovered both limitations correctly, it has nothing to do with the blender version.
Give me a few more days and I might be able to fix them, just had not thought about it.


(lichtso) #35

I think I fixed both issues:
Now the filleting tool can be applied to individual control points and works in 3D as well.

Happy testing!


(z01ks) #36

Thanks for the update. Unfortunately it doesn’t work for me. This is the error I get after running Fillet with any kind of selection (except from nothing selected).


(lichtso) #37

Ok, thanks. Should be fixed now.


(z01ks) #38

Cool! Both issues are fixed. It works perfectly now. Thank you.

Just curious, how do you determine the maximum limit of the fillet? Right now it seems it’s not possible to push it all the way up to the next closest point on the curve, but rather it goes about half-way to the next closest point.


(Hickz) #39

Hey, the update to 2.8 broke 2.79 functionality. No offset/export options available


(lichtso) #40

Hey, the update to 2.8 broke 2.79 functionality. No offset/export options available

Yes, they are mutually exclusive. This is the latest 2.79 release: https://github.com/Lichtso/curve_cad/archive/90bd8ae8cd67acda1c420e00e8844c1e8f205f64.zip

Just curious, how do you determine the maximum limit of the fillet? Right now it seems it’s not possible to push it all the way up to the next closest point on the curve, but rather it goes about half-way to the next closest point.

That is true, it is currently limited to half the segment length to prevent two adjacent arcs from crossing each other. Theoretically, one could be bigger if its adjacent corners are smaller.