Werner Almesberger
2b4a7711f3
cameo/templates/mkmk-simple: also look for $NAME-PTH.drl
...
Used to be just $NAME.drl
2017-03-01 14:53:51 -03:00
Werner Almesberger
503036c22e
cameo/gerber.c: support %FSLAX46Y46*% and %MOMM*%
2017-02-28 18:38:23 -03:00
Werner Almesberger
e3cd91bc40
cameo/templates/mkmk-simple: edge cuts are now in Edge.Cuts.gm1
2017-02-28 18:30:13 -03:00
Werner Almesberger
9994a4c09b
poly2d/Makefile: "install" and "uninstall" should be "phony", too
2017-01-24 16:34:48 -03:00
Werner Almesberger
1e584b45c2
cameo/lang.l: fix typo in "remote" keyword
...
Indicating that this one was never used so far :)
2015-11-04 11:15:48 -03:00
Werner Almesberger
48c5cd0e73
cameo/templates/mkmk-simple: introduce Z0 parameter; clean up Z calculation
...
This allows the setting of the "tool down" position, e.g., when varying
the thickness of the support or of victim material under the PCB.
2015-10-04 18:40:30 -03:00
Werner Almesberger
66adb05ad9
sl2/slicer.pl: use same Z offset calculation as slicer.py
...
Else, we don't mill into the workpiece but into its support.
2015-09-29 16:48:28 -03:00
Werner Almesberger
8af4f45573
sl2/slicer.pl: add command-line options
2015-09-29 12:29:39 -03:00
Werner Almesberger
73c3a776a3
sl2/slicer.pl: complete basic processing structure (WIP)
2015-09-29 12:09:34 -03:00
Werner Almesberger
6800f025c1
sl2/: standalone slicer (WIP)
...
sfc/slicer.py has troubles with artefacts. It seems that we can do much
better by avoiding the high-level operations and doing all the slicing
"manually".
2015-09-29 10:51:08 -03:00
Werner Almesberger
5c6a81033f
sfc/slicer.py: print Z position of layer being processes
2015-09-28 18:15:32 -03:00
Werner Almesberger
346899c34c
cameo/: new command "purge" to remove corners that add little or on area
...
Such corners are typically artefacts that can upset later processing stages.
2015-09-28 18:13:02 -03:00
Werner Almesberger
445d8f7205
cameo/path.c (path_from), path.h: make public, for future sharing
2015-09-28 09:56:22 -03:00
Werner Almesberger
4153e6b4e2
gp2rml/gp2rml.c (output_paths): use PA when possible; correct speed calculation
...
The mill uses the Z speed for the entire !ZZ movement, whether there
is a Z component or not. We now issue PA instead of !ZZ when moving
horizontally.
Also adapted the speed calculating accordingly.
2015-07-22 20:15:45 -03:00
Werner Almesberger
d72d649c30
sfc/slicer.py: correct last position tracking for mech_eps
2015-05-23 09:25:43 -03:00
Werner Almesberger
d3bccb6bfc
gp2rml/gp2rml.c: new option "-t top" to manually set z_max
2015-05-22 11:28:42 -03:00
Werner Almesberger
efe5f38eb4
gp2rml/gp2rml.c: add spaces around operators
2015-05-22 11:28:41 -03:00
Werner Almesberger
ea11b88bee
gp2rml/gp2rml.c (main): use getopt
2015-05-22 11:28:41 -03:00
Werner Almesberger
ecaffbb1fe
sfc/slicer.py: new option -m for model tolerance; correct usage
2015-05-22 10:00:16 -03:00
Werner Almesberger
096b91e93a
cameo/lang.l: require all commands followed by file name to end with whitespace
...
This avoids embarrassment after typos like write-gerber foo.g
2015-03-15 21:13:26 -03:00
Werner Almesberger
c7ff028cc9
cameo/: new command write_gerber, for Gerber output
2015-03-15 21:07:47 -03:00
Werner Almesberger
dddb035255
cameo/path.c (path_find_leftmost): continue searching for the smallest coordinate
...
Else, we may find a large X that is still the smallest at that time, but
then find a smaller X in some other path and pick the wrong path.
2015-01-28 14:01:58 -03:00
Werner Almesberger
1f04d6490a
cameo/templates/mkmk-simple: accept no only Gerber but also $NAME.gp as input
2015-01-28 13:59:59 -03:00
Werner Almesberger
dc79b03b1d
sfc/slicer.py: add overshoot only after slicing
...
Otherwise, we slice below the bottom of the piece , which probably won't
go too well ..
2015-01-23 02:49:20 -03:00
Werner Almesberger
a20499bb9f
sfc/slicer.py: also let getopt know that we support -o
2015-01-22 20:27:46 -03:00
Werner Almesberger
4d084a6191
sfc/slicer.py: new option -o to add an offset to the last layer
2015-01-21 02:47:51 -03:00
Werner Almesberger
84889441f3
sfc/slicer.py: when height is used as coordinate, correct it for the Z offset
2015-01-21 02:35:59 -03:00
Werner Almesberger
4cc43e1661
sfc/slicer.py: when flipping, also flip Z positions used for selecting levels
...
This led to toolpaths full of strange yet almost imperceptible errors
along the Z axis, just on the edge of what could be explained by
machining tolerances.
2015-01-20 03:19:22 -03:00
Werner Almesberger
ed0129df1e
sfc/slicer.py: fix generation of intermediate layers
2015-01-19 03:33:04 -03:00
Werner Almesberger
385bd601a6
poly2d/p2d_attrib.c (p2d_is_cw): check that the angle isn't NaN
...
Been had by this a little too often ...
2015-01-19 02:59:43 -03:00
Werner Almesberger
155cfa3d44
poly2d/p2d_attrib.c (angle_3): prevent acos() domain errors
...
Rounding errors could push us slightly outside the [-1, 1] range, which
caused acos() to return NaN, which in turn broke p2d_is_cw, and eventually
tripped create_interior_skeleton_and_offset_polygons_with_holes_2.
2015-01-19 02:57:40 -03:00
Werner Almesberger
ecb7667c7c
sfc/slicer.py: cleanup and debugging; add various alignment and transformation options
2015-01-18 22:52:57 -03:00
Werner Almesberger
79a821052f
sfc/slicer.py: FreeCAD-based slicer, first commit
2015-01-18 21:03:49 -03:00
Werner Almesberger
ae8d393859
test/bugs: add regression tests for p2d_no_intersect and angle_3 bugs
...
That's commits 84f9d3c3b4
and 7ca942d0e9
2015-01-18 20:57:09 -03:00
Werner Almesberger
149fc262ff
poly2d/: change license from GPLv2+ to LGPLv2.1+
2015-01-18 20:45:44 -03:00
Werner Almesberger
7ca942d0e9
poly2d/p2d_attrib.c (angle_3): don't divide by zero ...
...
This broke p2d_is_cw which in turn tripped
CGAL::create_interior_skeleton_and_offset_polygons_with_holes_2
with the infamous
terminate called after throwing an instance of 'CGAL::Assertion_exception'
what(): CGAL ERROR: assertion violation!
Expr: lParent
File: /usr/include/CGAL/arrange_offset_polygons_2.h
Line: 94
2015-01-18 20:27:26 -03:00
Werner Almesberger
05d3d50421
poly2d/p2d_attrib.c: correct line wrap in title comment (how did this get there ?)
2015-01-18 20:20:37 -03:00
Werner Almesberger
de7df0b41c
poly2d/p2d_attrib.c (angle_3): put spaces around operators
2015-01-18 20:17:58 -03:00
Werner Almesberger
6084b52c15
poly2d/p2d_area_holes.cpp (recurse_area): correct confusing indentation
2015-01-18 20:15:44 -03:00
Werner Almesberger
84f9d3c3b4
poly2d/p2d_attrib.c (p2d_no_intersect): don't test last vs. first segment
...
This one case slipped through. Surprisingly, it rarely produced a
complaint.
2015-01-18 09:09:43 -03:00
Werner Almesberger
f94fb2f74a
cameo/path.c (path_connect, et al.): move to new file connect.c
...
Preparation for optimizing the O(n^3) algorithm.
2015-01-16 10:16:06 -03:00
Werner Almesberger
c9c0e887e7
cameo/poly2d.c (paths_to_polys_z): correctly ignore empty paths
2015-01-16 08:38:30 -03:00
Werner Almesberger
4d15951807
cameo/area-poly2d.c (area): fail if any paths are open
2015-01-16 08:35:37 -03:00
Werner Almesberger
005dcc308c
slicer/slicer.c: rewrite - we now consider all non-horizontal facets
2015-01-15 02:00:05 -03:00
Werner Almesberger
02d2b28097
slicer/slice.c (eq): increase epsilon from 1e-6 to 1e-5
...
The lower value incorrectly tripped a verticality test.
2015-01-13 21:25:24 -03:00
Werner Almesberger
5808a4001f
poly2d/ (p2d_write_gnuplot, p2d_write_gnuplot_all): use "bool" instead of "int"
2015-01-10 21:22:39 -03:00
Werner Almesberger
3cc284d9c1
poly2d (p2d_contains_point): use "bool" instead of "int"
2015-01-10 21:21:29 -03:00
Werner Almesberger
cba417fc37
poly2d (p2d_is_cw, p2d_is_closed, p2d_no_intersect, p2d_vertices): use better types
...
There's more to the world than just "int" ...
2015-01-10 21:16:47 -03:00
Werner Almesberger
b2d6ef5f3c
slicer/: new option -z to add intermediate layers
2015-01-08 09:54:53 -03:00
Werner Almesberger
9fc0962edc
slicer/slice.c (dump_layer): don't draw the top end of walls
2015-01-08 09:13:25 -03:00