aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranklin Wei <franklin@rockbox.org>2019-12-27 15:15:51 -0500
committerFranklin Wei <franklin@rockbox.org>2019-12-27 15:15:51 -0500
commit092b8d91b0617636d44c9aa46aa90032639867e4 (patch)
tree9daa090e029d5f535069948f408494a1214f7042
parent8d3ed3b0b28daa4388df87e0cf4f952f255c63a3 (diff)
downloadrastercarve-092b8d91b0617636d44c9aa46aa90032639867e4.zip
rastercarve-092b8d91b0617636d44c9aa46aa90032639867e4.tar.gz
rastercarve-092b8d91b0617636d44c9aa46aa90032639867e4.tar.bz2
rastercarve-092b8d91b0617636d44c9aa46aa90032639867e4.tar.xz
Add option to engrave image with dots
Not tested, but might look nice (or terrible, who knows?).
-rw-r--r--README.md3
-rwxr-xr-xrastercarve/__main__.py11
2 files changed, 12 insertions, 2 deletions
diff --git a/README.md b/README.md
index a8ec2b1..399a93b 100644
--- a/README.md
+++ b/README.md
@@ -102,7 +102,7 @@ usage: rastercarve [-h] (--width WIDTH | --height HEIGHT) [-f FEED_RATE]
[-p PLUNGE_RATE] [--rapid RAPID_RATE] [-z SAFE_Z]
[--end-z TRAVERSE_Z] [-d MAX_DEPTH] [-t TOOL_ANGLE]
[-a LINE_ANGLE] [-s STEPOVER] [-r LINEAR_RESOLUTION]
- [--no-line-numbers] [--debug] [-q] [--version]
+ [--dots] [--no-line-numbers] [--debug] [-q] [--version]
filename
Generate G-code to engrave raster images.
@@ -138,6 +138,7 @@ engraving parameters:
(default: 110)
-r LINEAR_RESOLUTION distance between successive G-code points (in)
(default: 0.01)
+ --dots engrave using dots instead of lines (experimental)
G-code parameters:
--no-line-numbers suppress G-code line numbers (dangerous on ShopBot!)
diff --git a/rastercarve/__main__.py b/rastercarve/__main__.py
index e04aa80..7f3bac9 100755
--- a/rastercarve/__main__.py
+++ b/rastercarve/__main__.py
@@ -181,10 +181,17 @@ def engraveLine(img_interp, img_size, ppi, start, d, step):
x, y = v
depth = getDepth(getPix(img_interp, img_x, img_y))
if not first:
- move(x, y, depth, glob_args.feed_rate)
+ if hasattr(glob_args, 'pointmode'):
+ move(x, y, glob_args.safe_z, glob_args.feed_rate)
+ move(x, y, depth, glob_args.feed_rate)
+ move(x, y, glob_args.safe_z, glob_args.feed_rate)
+ else:
+ move(x, y, depth, glob_args.feed_rate)
else:
first = False
moveSlow(x, y, depth)
+ if hasattr(glob_args, 'pointmode'):
+ moveSlow(x, y, glob_args.safe_z)
v += step * d
# return last engraved point
@@ -338,6 +345,8 @@ flag with caution on other machines.""")
cut_group.add_argument('-a', help='angle of grooves from horizontal (deg)', action='store', dest='line_angle', default=DEF_LINE_ANGLE, type=float)
cut_group.add_argument('-s', help='stepover percentage (affects spacing between lines)', action='store', dest='stepover', default=DEF_STEPOVER, type=float)
cut_group.add_argument('-r', help='distance between successive G-code points (in)', action='store', dest='linear_resolution', default=DEF_LINEAR_RESOLUTION, type=float)
+ cut_group.add_argument('--dots', help='engrave using dots instead of lines (experimental)', action='store_true', dest='pointmode', default=argparse.SUPPRESS)
+
gcode_group = parser.add_argument_group('G-code parameters')
gcode_group.add_argument('--no-line-numbers', help='suppress G-code line numbers (dangerous on ShopBot!)', action='store_true', dest='suppress_linenos', default=argparse.SUPPRESS)