- cameo/path.c (path_is_closed): use points_eq instead of open-coding the
comparison
- cameo//path.c (EPSILON_MM, points_eq): consider two points as equal if
their projections on the xy plane are less than EPSILON_MM apart and
their z positions don't differ by more than the same distance
- lang.y (align, bbox): moved bounding box calculation to separate
function (for sharing)
- lang.y: array sizes can specified as the size of the respective
dimension of the bounding box plus a border
- README: documented use of border size with "array"
- cngt.c (x, y, z, move, up, down, do_key, main): renamed "x", "y", "z" to
"cx", "cy", "cz", to avoid clash with common local "x", etc.
- cngt.c (gp_minmax, main): populate default positions with bounding box
of toolpath if given a file name instead of points
- Makefile: updated program name in title comment
- cngt.c (do_key): "l" moved left, like "h"
- cngt.c (main): when starting, immediately move to initial position
- getkey.c (tty_open): open /dev/tty read-only, not write-only
- Makefile: basic Makefile
- cngt.c: argument processing and main loop
- serial.h, serial.c: serial port output for MDX-15/20, from cncmap/millp/
- getkey.h, getkey.c: single-key (raw) TTY input
- lang.y (translate): list of paths is now an argument (instead of always
using the global path list)
- lang.y: on "gerber", "gnuplot", and "excellon", only translate the new
paths
- README: added description of "append"
- lang.l, lang.y: added command "append"
- gnuplot.h, gnuplot.c (gnuplot_append): append gnuplot paths to an
existing file
- gnuplot.c (gnuplot_do_write): if writing to standard output, at least
check that fflush() works at the end
- README: changed the term "drill/mill substitution" to "drill/mill
conversion"
- README: described the drill/mill conversion commands
- lang.y: "drill" and "mill" worked on the wrong (empty) list
- ops.c (half_circle): fixed transcription error
- README: document that file names can contain almost anything
- lang.l: reset the scanner state on \n, so that we stop looking for a
file name if the file name has simply been omitted
- README, lang.l, lang.y: renamed the "tool" command to "offset"
- README: documented "offset"
- ops.h, ops.c (tool_comp_paths), cameo.c (main), lang.y: added
parameter to tool_comp_paths to treat all paths as internal
- lang.l, lang.y: added option "inside" to the "offset" command
- lang.y: "offset" can now take multiple options in any order
- lang.l, lang.y (MIL2MM): moved unit conversion from lang.l to lang.y
- lang.l, lang.y: instead of returning dimensions and numbers as NUMBER,
return as NUM_EXP_<unit> for numbers with an explicit unit, and as
NUM_IMP_<unit> if the unit is implied
- lang.y (dimen): perform unit conversion as needed
- lang.y (number): never convert and only accept implicit dimensions
- lang.y: change all uses of NUMBER to "dimen", except for the
multipliers in "array", where we can now use "number"
- lang.y: removed comment about "array" only working in metric mode
- README: described the X/Y translation commands
- lang.y: print an error if the lower bound if larger than the upper bount
in an "align" command
- lang.y: mention that "array" doesn't work as expected if in imperial mode
- README, lang.y: changed depth parameter of "z" command to position
(sign changes)
- lang.l: defer FILENAME after "gerber" and "gnuplot", so that we don't
mis-read the number
- lang.l, lang.y: return the reference point after "align" as new token
REF, not as NUMEBER, so that we can catch syntax errors that would
cause scanner and parser to become unsynchronized
- lang.l: accept negative numbers
- lang.l: added support for comments beginning with #
- Makefile (OBJS): added gerber.o
- cameo.c (usage, main): new option -g to process input a KiCad Gerber
- gerber.h, gerber.c (gerber_read): parse Gerber files as generated by KiCad
- path.h, path.c (path_reverse_inplace, points_eq, attr_eq, path_connect):
merge sets of paths with equal endpoints into single paths
- cameo/cameo.c (main): use getopt
- cameo/cameo.c (main, usage, process_path): option -d to enable dog-bone
notches (they're now disabled by default)
- cameo/path.h (struct path), cameo/path.c (path_new, path_from): added
attribute "notch" to enable notches for a path
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%notch hint
- cameo/cameo.c (process_paths): explain the inside/outside path detection
heuristics
- cameo/path.h (struct path), cameo/path.c (path_new): added attribute
"outside" to explicitly mark paths as outside edges
- cameo/path.c (path_from): new function to make a path that takes the
attributes of another path
- cameo/path.c (path_reverse, path_offset): use path_from instead of
path_new
- cameo/gnuplot.c (gnuplot_read, gnuplot_do_write): read and write the
#%outside hint