Also removed the tool diameter argument. We use the diameter from the
path, like "offset" does. In the long run, this convention probably
doesn't make sense, though.
- 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"
- 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 #