pycam man page

PyCAM — Toolpath Generation for 3-Axis CNC machining

Synopsis

pycam [options] [inputfile]

Description

Start the PyCAM toolpath generator. Supplying one of the '--export-?' parameters will cause PyCAM to start in batch mode. Most parameters are useful only for batch mode.

Options

-h, --help

show this help message and exit

General options:

-c CONFIG_FILE, --config=CONFIG_FILE

load a task settings file

--unit=UNIT_SIZE

choose 'mm' or 'inch' for all numbers. By default 'mm' is assumed.

--collision-engine=COLLISION_ENGINE

choose a specific collision detection engine. The default is 'triangles'. Use 'help' to get a list of possible engines.

--boundary-mode=BOUNDARY_MODE

specify if the mill tool (including its radius) should move completely 'inside', 'along' or 'outside' the defined processing boundary.

--disable-psyco

disable the Psyco just-in-time-compiler even if it is available

--number-of-processes=PARALLEL_PROCESSES

override the default detection of multiple CPU cores. Parallel processing only works with Python 2.6 (or later) or with the additional 'multiprocessing' module.

--enable-server

enable a local server and (optionally) remote worker servers.

--remote-server=REMOTE_SERVER

Connect to a remote task server to distribute the processing load. The server is given as an IP or a hostname with an optional port (default: 1250) separated by a colon.

--start-server-only

Start only a local server for handling remote requests.

--server-auth-key=SERVER_AUTHKEY

Secret used for connecting to a remote server or for granting access to remote clients.

-q, --quiet

output only warnings and errors.

-d, --debug

enable output of debug messages.

--progress=PROGRESS

specify the type of progress bar used in non-GUI mode. The following options are available: text, none, bar, dot.

--profiling=PROFILE_DESTINATION

store profiling statistics in a file (only for debugging)

-v, --version

output the current version of PyCAM and exit

Export formats:

Export the resulting toolpath or meta-data in various formats. These options trigger the non-interactive mode. Thus the GUI is disabled.

--export-gcode=EXPORT_GCODE

export the generated toolpaths to a file

--export-task-config=EXPORT_TASK_CONFIG

export the current task configuration (mainly for debugging)

Tool definition:

Specify the tool parameters. The default tool is spherical and has a diameter of 1 unit. The default speeds are 1000 units/minute (feedrate) and 250 (spindle rotations per minute)

--tool-shape=TOOL_SHAPE

tool shape for the operation (cylindrical, spherical, toroidal)

--tool-size=TOOL_DIAMETER

diameter of the tool

--tool-torus-size=TOOL_TORUS_DIAMETER

torus diameter of the tool (only for toroidal tool shape)

--tool-feedrate=TOOL_FEEDRATE

allowed movement velocity of the tool (units/minute)

--tool-spindle-speed=TOOL_SPINDLE_SPEED

rotation speed of the tool (per minute)

--tool-id=TOOL_ID

tool ID - to be used for tool selection via GCode (default: 1)

Process definition:

Specify the process parameters: toolpath strategy, layer height, and others. A typical roughing operation is configured by default.

--process-path-direction=PROCESS_PATH_DIRECTION

primary direction of the generated toolpath (x/y/xy)

--process-path-strategy=PROCESS_PATH_STRATEGY

one of the available toolpath strategies (layer, surface, contour-follow, contour-polygon, engrave)

--process-material-allowance=PROCESS_MATERIAL_ALLOWANCE

minimum distance between the tool and the object (for rough processing)

--process-step-down=PROCESS_STEP_DOWN

the maximum thickness of each processed material layer (only for 'layer' strategy)

--process-overlap-percent=PROCESS_OVERLAP_PERCENT

how much should two adjacent parallel toolpaths overlap each other (0..99)

--process-milling-style=PROCESS_MILLING_STYLE

milling style (conventional / climb / ignore)

--safety-height=SAFETY_HEIGHT

height for safe re-positioning moves

--process-engrave-offset=PROCESS_ENGRAVE_OFFSET

engrave along the contour of a model with a given distance (only for 'engrave' strategy)

Boundary definition:

Specify the outer limits of the processing area (x/y/z). You may choose between 'relative_margin' (margin is given as percentage of the respective model dimension), 'fixed_margin' (margin for each face given in absolute units of length) and 'custom' (absolute coordinates of the bounding box - regardless of the model size and position). Negative values are allowed and can make sense (e.g. negative margin).

--bounds-type=BOUNDS_TYPE

type of the boundary definition (relative-margin, fixed-margin, custom)

--bounds-lower=BOUNDS_LOWER

comma-separated x/y/z combination of the lower boundary (e.g. '4,4,-0.5')

--bounds-upper=BOUNDS_UPPER

comma-separated x/y/z combination of the upper boundary (e.g. '12,5.5,0')

Support structure:

An optional support structure can be used to keep the object in place during the mill operation. The support structure can be removed manually afterwards. Various types of support structures are available. Support structures are disabled by default.

--support-type=SUPPORT_TYPE

type of the support structure (default: none)

--support-profile-height=SUPPORT_PROFILE_HEIGHT

height of the support profile

--support-profile-thickness=SUPPORT_PROFILE_THICKNESS

width of the support profile

--support-grid-distance-x=SUPPORT_GRID_DISTANCE_X

distance along the x-axis between two adjacent parallel lines of the support structure(only for grid type)

--support-grid-distance-y=SUPPORT_GRID_DISTANCE_Y

distance along the y-axis between two adjacent parallel lines of the support structure (only for grid type)

--support-grid-offset-x=SUPPORT_GRID_OFFSET_X

shift the support grid along the x axis

--support-grid-offset-y=SUPPORT_GRID_OFFSET_Y

shift the support grid along the y axis

--support-distributed-distance=SUPPORT_DISTRIBUTED_DISTANCE

average distance between two adjacent support bridges

--support-distributed-minimum=SUPPORT_DISTRIBUTED_MINIMUM

minimum number of support bridges per polygon

--support-distributed-length=SUPPORT_DISTRIBUTED_LENGTH

length of each support bridge

GCode settings:

Specify some details of the generated GCode.

--gcode-no-start-stop-spindle

do not start the spindle before and stop it after each operation (M3/M5)

--gcode-minimum-step=GCODE_MINIMUM_STEP

mimimum axial distance between two machine positions. Any shorter move is not written to GCode (default: 0.00001).

--gcode-path-mode=GCODE_PATH_MODE

choose the GCode path mode from 'exact_path', 'exact_stop' and 'continuous'. Use '--gcode-motiontolerance' and and '--gcode-naive-tolerance' if you want to limit the deviation. See http://linuxcnc.org/docs/html/gcode_main.html (G61) for details.

--gcode-motion-tolerance=GCODE_MOTION_TOLERANCE

the optional motion tolerance for 'continuous' path mode (G64).

--gcode-naive-tolerance=GCODE_NAIVE_TOLERANCE

the optional naive CAM tolerance for 'continuous' path mode (G64).

External programs:

Some optional external programs are used for format conversions.

--location-inkscape=EXTERNAL_PROGRAM_INKSCAPE

location of the Inkscape executable. This program is required for importing SVG files.

--location-pstoedit=EXTERNAL_PROGRAM_PSTOEDIT

location of the PStoEdit executable. This program is required for importing SVG files.

PyCAM website: http://pycam.sf.net

Environment

PYCAM_DATA_DIR

Override the default data directory of PyCAM. This allows you to provide customized logos, menu files or non-default sample files.

PYCAM_FONT_DIR

Override the default location of engrave fonts.

PYTHONPATH

You may want to define this variable in case that you installed the PyCAM python package in a non-default location.

Examples

pycam --export-gcode=output.ngc --bounds-type=relative-margin --bounds-lower=0.1,0.05,-0.1 foo.stl

Use the default settings to process the model foo.stl with an adjusted lower margin (minx, miny, minz) of 10% (for x), 5% (for y) and -10% (for z).

Reporting Bugs

See http://sourceforge.net/tracker/?group_id=237831&atid=1104176

See Also

Take a look at the output of pycam --help to get a slightly better formatted list of options. The manual that you are reading right now is derived from this output.

Take a look at the wiki for more information about PyCAM: http://sourceforge.net/apps/mediawiki/pycam/

The website of the PyCAM project: http://pycam.sourceforge.net

Info

June 2011 PyCAM 0.5.1 PyCAM manual