Werner Almesberger
19bc92aa79
cameo/area.c (do_line): shorten segments to avoid duplicating outline cuts
...
We considered the outlines for dropping entire segments but not for
calculating their start and end points.
2012-03-19 19:46:40 -03:00
Werner Almesberger
4ea94e72dc
cameo/fped2d2z.pl: added Z position substitution
...
We need this to add overshoot for milling through a piece.
2012-03-19 15:59:24 -03:00
Werner Almesberger
9f5751aaa9
cameo/fped2d2z.pl: added option -r, like in zstack.pl
2012-03-19 15:29:57 -03:00
Werner Almesberger
ce243b6a79
cameo/zstack.pl (usage): describe option -r
...
Also show usage on unknown option.
2012-03-19 15:29:57 -03:00
Werner Almesberger
fb117b20e5
cameo/area.c (subordinates): fix trimming of list of subordinates
2012-03-19 01:02:19 -03:00
Werner Almesberger
18c9477137
cameo: "area" now works on Z layers individually (untested)
2012-03-19 00:26:41 -03:00
Werner Almesberger
5ecce7de9e
cameo/zstack.pl: option -r to reverse the stack
2012-03-18 23:20:27 -03:00
Werner Almesberger
219e0a5c2d
cameo/fped2d2z.pl: convert fped 2D stacks into 2.5D paths with Z information
2012-03-18 23:05:40 -03:00
Werner Almesberger
085754f931
cameo/zstack.pl: convert 2.5D paths into a stack with limited Z steps
2012-03-18 21:45:56 -03:00
Werner Almesberger
489ca9c24d
cameo: documented "area"; miscellaneous cleanup
...
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.
2012-03-18 21:00:08 -03:00
Werner Almesberger
6811df57b6
cameo/area.c: removed debugging and obsolete code
2012-03-18 20:25:16 -03:00
Werner Almesberger
6fbdfd7120
cameo/area.c (touch): also consider whether we're looking for entry/exit
2012-03-18 20:15:50 -03:00
Werner Almesberger
b607816f95
cameo/area (hit_segment): only consider vectors pointing in the right direction
...
This way we avoid false positives, such as exit points while looking
for an entry.
2012-03-18 19:47:02 -03:00
Werner Almesberger
5a599e14f6
cameo: don't duplicate paths already cleared by the outline
...
Also pass information on whether we're about to enter or leave a
polygon.
2012-03-18 17:57:04 -03:00
Werner Almesberger
35c0624dc5
cameo: "area" now also adds the outline cuts
...
"offset" wasn't suitable for alternating inside and outside anyway.
2012-03-18 17:02:43 -03:00
Werner Almesberger
8c4dfc55b6
cameo/test/: test scenario for area fill
2012-03-18 13:19:13 -03:00
Werner Almesberger
2530a11c80
cameo: an attempt at area fill (WIP)
2012-03-18 13:16:26 -03:00
Werner Almesberger
90254ef0bc
cameo: also connect paths from gnuplot files
...
We only did this for Gerber.
2011-12-16 04:36:17 -03:00
Werner Almesberger
639b0fa2d6
cameo/: make tool_comp_paths output paths in the order processed
2011-09-05 07:54:29 -03:00
Werner Almesberger
828763b747
cameo/path.c (path_replace): free the old ID
2011-09-05 06:20:12 -03:00
Werner Almesberger
a67d0b447e
cameo/shape.c: removed global "path" variable (where did that madness come from ?)
2011-09-05 05:49:23 -03:00
Werner Almesberger
a42a18fef3
cameo/: new gnuplot tag #%id= with generator-assigned identifier
...
Excellon and Gerber store the file name there.
2011-09-05 05:46:25 -03:00
Werner Almesberger
41bffa8f79
cameo/excellon.c: increased MAX_TOOL from 10 to 20
2011-09-01 12:03:32 -03:00
Werner Almesberger
98b0e961ae
mkmk-simple: exit with an error code if "gp2rml" fails
2011-09-01 12:02:37 -03:00
Werner Almesberger
5651a40230
mkmk-simple: new option CLEARANCE (default: 2mm)
2011-09-01 12:00:58 -03:00
Werner Almesberger
50918a26fd
mkmk-simple: changed path to gp2rml from ...openmoko... to ...qi/cae-tools...
2011-09-01 03:38:27 -03:00
Werner Almesberger
afa7460b45
mkmk-simple: added variable ANY (usage: ANY=any) to set "mill any"
2011-08-31 21:32:29 -03:00
Werner Almesberger
75c3a7d1d2
cameo/: added option "any" to "mill", to accept paths irrespective of tool size
2011-08-31 21:32:29 -03:00
Werner Almesberger
54101eaaf4
mkmk-simple: exit with an error code if "cameo" fails
2011-08-31 21:32:29 -03:00
Werner Almesberger
6795057567
cameo/templates/mkmk-simple: added optional BOARD_Z parameter for board thickness
2011-08-31 14:53:56 -03:00
Werner Almesberger
4ae218c6dc
mkmk-simple: oops, should be executable
2011-02-15 02:10:44 -03:00
Werner Almesberger
b0eb0178ee
cameo/templates/mkmk-simple: template for milling simple boards
2011-02-15 02:06:26 -03:00
Werner Almesberger
0826d5b35e
cameo: allow comma between parameters of "drill" (makes use in scripts easier)
...
- lang.y: allow an optional comma between the parameters of "drill"
- README: explain the new syntax of "drill"
2011-02-15 02:06:10 -03:00
Werner Almesberger
dfc53c781a
cameo: new command "stats" to print path statistics
...
- README: documented the "stats" command
- lang.l, lang.y: added "stats" command
- path.h (path_stats), path.c (path_stats): calculate and print path
statistics
2011-02-13 02:25:32 -03:00
Werner Almesberger
6947b3a5d1
cameo: allow for rounding errors KiCad produces with a metric grid
...
- 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
2011-01-31 19:36:59 -03:00
Werner Almesberger
4b717cadc6
cameo/path.c (path_connect): corrected logic when merging B->A
2011-01-05 23:07:34 -03:00
Werner Almesberger
ee3a3e6162
cameo: array steps can now be specifed as item size plus border
...
- 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"
2011-01-05 22:34:39 -03:00
Werner Almesberger
6f30bab648
cameo: added "rotate" command
...
- lang.l, lang.y (rotate): added command "rotate", with cumulative
rotation
- README: documented "rotate"
- README: corrected typo in description of the translation commands
2011-01-03 01:25:42 -03:00
Werner Almesberger
57b4e276e5
cameo: added optimization of movements between tool paths
...
- ops.h, ops.c (optimize_paths): reorder toolpaths to reduce the distance
between them
- lang.l, lang.y: added command "optimize"
- README: documented "optimize"
2010-12-16 14:19:46 -03:00
Werner Almesberger
ed6bbff7f8
cameo/ops.c (tool_comp_paths): inside/outside logic was reversed for outer path
2010-12-16 02:38:11 -03:00
Werner Almesberger
99592248d9
cameo/gerber.c (gerber_read): store coordinates as floats after conversion
...
They all were truncated.
2010-12-15 12:26:44 -03:00
Werner Almesberger
7cb25c5a3f
cameo: apply translation after loading a file only to the new file
...
- 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
2010-12-15 06:37:17 -03:00
Werner Almesberger
b76d17fea0
cameo: "array" did not affect subsequently loaded files
...
- lang.y: increment "xo" and "yo" also on "array"
2010-12-15 06:37:17 -03:00
Werner Almesberger
b8f6545821
cameo: added command "append", improved file output error checking
...
- 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
2010-12-15 06:27:15 -03:00
Werner Almesberger
7a64e425da
cameo: completed support for dril/mill conversions
...
- 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
2010-12-15 06:13:40 -03:00
Werner Almesberger
b1652fc50a
cameo: adding support for dril/mill substitutions (in progress)
...
- Makefile (OBJS): added shape.o
- README: added section for drill/mill substitutions
- lang.l, lang.y: added commands "drill", "empty", "mill", "remainder", and
"reset"
- lang.y (clear_paths): moved freeing of all paths from "clean" to shared
function clear_paths
- ops.h, ops.c (try_drill, try_mill): helper functions for "drill" and
"mill" commands
- shape.h. shape.c (slot, circle): functions to generate toolpaths for
basic shapes
2010-12-15 04:56:58 -03:00
Werner Almesberger
848eb2a209
cameo: migrated Excellon reader from drl2gp
...
- Makefile (OBJS): added excellon.o
- README: added brief description of Excellon input
- excellon.h, excellon.c: adaptation of KiCad drill file reader from
../drl2gp/drl2gp.c
- lang.l, lang.y: added command "excellon" to read KiCad drill files
- gerber.h: removed stray newline
2010-12-15 03:27:55 -03:00
Werner Almesberger
26dc02ea57
cameo: fixed processing of omitted file names, documented file name usage
...
- 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
2010-12-15 00:45:49 -03:00
Werner Almesberger
3ae3d6cdd3
cameo: cleaned up and documented the tool compensation
...
- 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
2010-12-14 23:37:31 -03:00
Werner Almesberger
68d5eff7cd
cameo: split numbers into dimensions and "bare" numbers
...
- 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
2010-12-14 19:50:53 -03:00