1
0
mirror of git://projects.qi-hardware.com/cae-tools.git synced 2024-12-23 04:50:49 +02:00
cae-tools/cameo
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
..
cameo.c cameo: cleaned up and documented the tool compensation 2010-12-14 23:37:31 -03:00
COPYING.GPLv2 Introducing cameo, a toolbox of CAM operations. 2010-11-01 14:58:29 -03:00
excellon.c cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
excellon.h cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
gerber.c cameo: added KiCad Gerber input and path merging 2010-12-13 17:45:33 -03:00
gerber.h cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
gnuplot.c cameo/gnuplot.c (gnuplot_do_write): only write r_tool hint if non-zero 2010-11-02 08:15:41 -03:00
gnuplot.h Introducing cameo, a toolbox of CAM operations. 2010-11-01 14:58:29 -03:00
lang.l cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
lang.y cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
Makefile cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
ops.c cameo: cleaned up and documented the tool compensation 2010-12-14 23:37:31 -03:00
ops.h cameo: cleaned up and documented the tool compensation 2010-12-14 23:37:31 -03:00
path.c cameo: added KiCad Gerber input and path merging 2010-12-13 17:45:33 -03:00
path.h cameo: added KiCad Gerber input and path merging 2010-12-13 17:45:33 -03:00
README cameo: migrated Excellon reader from drl2gp 2010-12-15 03:27:55 -03:00
util.h Introducing cameo, a toolbox of CAM operations. 2010-11-01 14:58:29 -03:00

CAM Engineering and Operation
=============================

Cameo is a collection of CAM tools that convert between various file
formats and adapt the toolpath.

This is a work in progress. The plan is to integrate all the utilities
currently floating around in
http://svn.openmoko.org/developers/werner/cncmap/
into a single program and to better share common functionality.

This work is distributed under the terms of the GNU GENERAL PUBLIC
LICENSE, Version 2:

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

For your convenience, a copy of the complete license has been included
in the file COPYING.GPLv2.


Toolpath adaptation language
----------------------------

Loading paths:

  gerber <diameter> [<filename>]
  gnuplot <diameter> [<filename>]
  excellon [<filename>]
  clear

"gerber", "gnuplot", and "excellon" each add paths from a file to the
list of paths already loaded. "clear" removes all paths.

If the a file name is omitted, standard input is read. The diameter is
the default tool diameter.

Note that "clear" preserves the translation set with "align", "array",
and "translate". This way, multiple files can be processed with the same
translation.


File output:

  write [<filename>]

Writes all loaded paths in gnuplot format to the specified file. If the
file name is omitted, "write" writes to standard output.

File names can contain spaces and any printable characters, but no leading
or trailing spaces. It is not possible to place a comment after a file
name or at a place where a file name could be.

E.g.,

  write foo.gp   # wrong

but

  write foo.gp
  # right


Units:

  mm
  mil
  <number>mm
  <number>mil

The words "mm" and "mil" set the input to the specified unit. The
default unit is millimeter. If a number is followed by "mm" or "mil"
without intervening space, the unit is overridden for this number,
without affecting the default input unit.

Note that "mm" and "mil" only affect dimensions in the command file
and have no effect on the interpretation of toolpath files.


Horizontal adjustments:

  align <ref> <x> <y>
  align <ref> <x0> <y0> <x1> <y1>
  array <x-step> <y-step> <x-index> <y-index>
  translate <x> <y>
  reset

"translate" shifts the currently loaded paths by the specified distance.
"align" is a more sophisticated form of "translate", which moves a
reference point in the bounding box of the currently loaded paths either
to a specified location (if used with three arguments) or to the
respective point in a rectangle (if used with five arguments).

The reference point is specified with a number as follows:

7-----8-----9
|           |
4     5     6
|           |
1-----2-----3

"1" is the lower left corner, "5" is the center, and so on.

"array" is used when cutting several copies of the same piece. The first
two arguments define the step between pieces while the second two
arguments define how many steps in each direction are taken.

"align" sets moves the toolpath to an absolute position while "array" and
"translate" move relative to the current position. The total translation
is remembered also across "clean", so that an alignment can be applied to
multiple toolpaths.

"reset" sets the translation to zero. The way "reset" is currently
implemented, it does not affect the currently loaded toolpath. (But it's
better to use it only with "clean".)


Vertical adjustment:

  z [<z0>] <z0-pos>
  

Tool compensation:

  offset [dog] [inside]

"offset" offsets the toolpaths by the tool radius. By default, it offsets
the outermost toolpath to the outside and all other toolpaths to the
inside. This can be overridden with the #%outside directive in a gnuplot
file or the "inside" option to "offset". "inside" has precedence over
"#%outside".

Concave corners on an outside path are normally cut such that the corner
is round, leaving material at and near the corner point. The option "dog"
changes this to cutting a "dogbone" hole such that material is also
removed up to the corner point.