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
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
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
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
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
671b74d81c
cameo/templates/mkmk-simple: make $NAME.drl optional
...
pcbnew will not generate a drill file if the board that has neither
vias nor through-hole pads, so we shouldn't insist on it existing
either.
2014-04-27 10:45:54 -03:00
Werner Almesberger
453f64e4fe
cameo/fped2d2z.pl: hack: maintain decimal point across flipping
2014-02-02 02:33:42 -03:00
Werner Almesberger
0fc785d3a1
cameo/fped2stl.pl: hack: maintain decimal point across flipping
...
Since our regexps expect numbers to contain a decimal point, any result
that was an integer tripped the re-match after flipping. This hack works
around the problem by formatting the result such that it also has a decimal
point.
2013-12-06 19:07:30 -03:00
Werner Almesberger
ff5b4a1ae8
cameo/zstack.pl: use the entire number for (x, y, z0)
2013-11-07 04:55:57 -03:00
Werner Almesberger
033d55c8ad
cameo/zstack.pl: output one point at (x, y, z0) to set reference level
...
Otherwise, gp2rml will eliminate any offset. (x, y) is an arbitrary point
from the toolpaths.
2013-11-06 23:15:24 -03:00
Werner Almesberger
e82667e680
cameo/fped2d2z.pl: new options -x and -y to flip on X and Y axis
2013-11-03 23:21:43 -03:00
Werner Almesberger
30676651ec
cameo/fped2stl.pl: use "eq" for string equality, not "=="
2013-11-03 19:05:56 -03:00
Werner Almesberger
5b70e92254
cameo/fped2stl.pl: new options -x and -y to flip on X and Y axis
2013-11-02 18:03:49 -03:00
Werner Almesberger
4fa9e129ee
cameo/fped2stl.pl: sort layers by Z position
...
This way, the ordering of the layer stack doesn't matter.
2013-11-02 13:26:04 -03:00
Werner Almesberger
e62da4e2bb
cae-tools/cameo/fped2stl.pl (flush): substitute coordinates only once
...
If a layer was at exactly z = 1 mm, we would set it to $z1 (after temporarily
setting it to $z) even in cases where it should be at $z.
2013-11-01 21:15:43 -03:00
Werner Almesberger
96063ccff9
cameo/fped2stl.pl: fped 2D stack to STL mesh converter (experimental)
2013-10-14 13:31:42 -03:00
Werner Almesberger
c5f54df4a0
cameo/stl.c: generate real STL (WIP)
...
Some facets look funny in Meshlab although it shows all the normals pointing
in the right direction.
2013-10-14 12:32:27 -03:00
Werner Almesberger
ae9ad0348c
cameo/stl.c (stl): update for poly2d API change
2013-10-14 11:12:32 -03:00
Werner Almesberger
8b6e4168d3
cameo/: add "stl" command to generate STL slices (WIP)
2013-10-13 22:10:43 -03:00
Werner Almesberger
7aaaf8671f
cameo/gerber.c: crudely support some cases of G03
2013-09-20 18:47:39 -03:00
Werner Almesberger
44d58a54fa
cameo/ops.c (tool_comp_paths): don't crash if path list is empty
2013-09-20 17:36:16 -03:00
Werner Almesberger
b8c927831f
cameo/templates/mkmk-simple: support new edge file names
...
KiCad recently changes file names. Edges used to be named *-PCB_Edges.gbr
but can now be named *-Edge_Cuts.gbr or *-Edge_Cuts.pho
2013-08-06 19:15:48 -03:00
Werner Almesberger
9a6772f79d
cameo/templates/mkmk-simple: use "set size ratio -1", not "set size ratio square"
...
"ratio -1" produces a 1:1 ratio of the units (which is what we want) while
"ratio square" makes the xrange and yrange the same size, whatever that's
supposed to be good for.
2012-12-27 19:52:16 -03:00
Werner Almesberger
c34a154e25
cameo/templates/mkmk-simple: use aspect ratio 1:1 with gnuplot (plot, dplot)
2012-11-21 23:18:52 -03:00
Werner Almesberger
e246127c6c
cameo/templates/mkmk-simple: also look for new <name>-NPTH.drl
...
Recent versions if KiCad save non-plated through holes in a separate
drill file, called <name>-NPTH.drl
2012-08-23 23:01:49 -03:00
Werner Almesberger
a030eff963
cameo/: new command "flip" to flip paths on the X or Y axis
2012-08-23 09:04:44 -03:00
Werner Almesberger
c73509dacc
cameo/fped2d2z.pl: new option -t Zmax to set the height of the workpiece
...
This is similar to -r, except that we don't swap X and Y, and we use
the specified value instead of searching for the maximum in the input
data.
2012-08-22 13:51:16 -03:00
Werner Almesberger
072b7804ee
cameo/: experimental command "outside" to detect real outer borders
...
Should be merged into tool_comp_paths later.
2012-06-12 15:23:01 -03:00
Werner Almesberger
378aab025f
cameo/path.c: new function path_is_inside which calls p2d_contains_poly
2012-06-12 15:04:59 -03:00
Werner Almesberger
7b54293bff
cameo/: move conversion between poly2d and "struct path" from area-poly2d.c to poly2d.c
...
Untested.
2012-06-12 15:04:40 -03:00
Werner Almesberger
f48754e067
cameo/path.c: make path_is_closed global
2012-06-12 14:24:50 -03:00
Werner Almesberger
382d14dcbb
cameo/path.c: move assert(path_is_closed) into function and improve diagnostic
...
It's often hard to find an offending path. To help with this, we
now print the start and end coordinates.
2012-06-12 14:01:55 -03:00
Werner Almesberger
e69fa24133
cameo/: new commands "remove" and "keep" for path filtering (untested)
2012-06-12 12:32:08 -03:00
Werner Almesberger
1c11f4d201
cameo/: use libpoly2d for area fills
2012-05-08 01:06:45 -03:00
Werner Almesberger
c2bfbd5a5e
cameo: add two test cases (exhibiting brokenness)
2012-05-01 23:48:32 -03:00
Werner Almesberger
fcb508f1ef
cameo/test/: move to cameo/test/1/
2012-05-01 23:28:49 -03:00
Werner Almesberger
8ce420b10b
cameo/excellon.c: recognize G90 code (absolute mode)
...
Recent KiCad emits this. We're in absolute mode anyway, so we simply
ignore it.
2012-04-01 19:26:46 -03:00
Werner Almesberger
479ae41070
cameo/README: added warning that "area" still has bugs
2012-03-29 18:44:14 -03:00
Werner Almesberger
c59e39356b
cameo: new command "reverse" to reverse all paths
...
Experimentally used to reverse tool direction in the smoothing pass.
2012-03-21 20:31:29 -03:00
Werner Almesberger
3e7fca45b3
cameo/fped2d2z.pl: outpout a dummy point at Z=0 (experimental)
...
This is signal for genpiece.pl to generate the top layer.
2012-03-21 01:02:43 -03:00
Werner Almesberger
6d70656ab2
cameo/path.c (path_offset): handle also degenerate polygons of only one point
...
To do: use a square, not a circle. Also, extend this to degenerate
polygons consisting of two points.
2012-03-21 01:00:12 -03:00