Commit Graph

123 Commits

Author SHA1 Message Date
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