Date: | 2012-03-22 00:31:29 (12 years 6 days ago) |
---|---|
Author: | Werner Almesberger |
Commit: | c59e39356b1fc9d46ec2f95858c3217c5551dc65 |
Message: | cameo: new command "reverse" to reverse all paths Experimentally used to reverse tool direction in the smoothing pass. |
Files: |
cameo/README (2 diffs) cameo/lang.l (1 diff) cameo/lang.y (2 diffs) cameo/ops.c (2 diffs) cameo/ops.h (2 diffs) |
Change Details
cameo/README | ||
---|---|---|
137 | 137 | Vertical adjustment: |
138 | 138 | |
139 | 139 | z [<z0>] <z0-pos> |
140 | ||
140 | ||
141 | 141 | |
142 | 142 | Tool compensation: |
143 | 143 | |
... | ... | |
174 | 174 | processed separately. |
175 | 175 | |
176 | 176 | |
177 | Path reversal: | |
178 | ||
179 | reverse | |
180 | ||
181 | Reverses all paths. This can be used to reverse tool direction. | |
182 | ||
183 | ||
177 | 184 | Drill/mill conversion: |
178 | 185 | |
179 | 186 | drill <min-diameter> <max-diameter> |
cameo/lang.l | ||
---|---|---|
50 | 50 | <INITIAL>optimize return TOK_OPTIMIZE; |
51 | 51 | <INITIAL>remainder return TOK_REMAINDER; |
52 | 52 | <INITIAL>reset return TOK_RESET; |
53 | <INITIAL>reverse return TOK_REVERSE; | |
53 | 54 | <INITIAL>rotate return TOK_ROTATE; |
54 | 55 | <INITIAL>stats return TOK_STATS; |
55 | 56 | <INITIAL>translate return TOK_TRANSLATE; |
cameo/lang.y | ||
---|---|---|
189 | 189 | |
190 | 190 | %token TOK_ALIGN TOK_ARRAY TOK_CLEAR TOK_DRILL TOK_EMPTY TOK_AREA |
191 | 191 | %token TOK_MILL TOK_OFFSET TOK_OPTIMIZE TOK_REMAINDER TOK_RESET |
192 | %token TOK_ROTATE TOK_STATS TOK_TRANSLATE TOK_Z | |
192 | %token TOK_REVERSE TOK_ROTATE TOK_STATS TOK_TRANSLATE TOK_Z | |
193 | 193 | %token TOK_APPEND TOK_GERBER TOK_GNUPLOT TOK_EXCELLON TOK_WRITE |
194 | 194 | %token TOK_DOG TOK_INSIDE TOK_ANY |
195 | 195 | |
... | ... | |
255 | 255 | { |
256 | 256 | paths = optimize_paths(paths); |
257 | 257 | } |
258 | | TOK_REVERSE | |
259 | { | |
260 | struct path *tmp; | |
261 | ||
262 | tmp = reverse_paths(paths); | |
263 | clear_paths(); | |
264 | paths = tmp; | |
265 | } | |
258 | 266 | | TOK_ROTATE number |
259 | 267 | { |
260 | 268 | rotate(paths, $2); |
cameo/ops.c | ||
---|---|---|
1 | 1 | /* |
2 | 2 | * ops.c - Higher-level toolpath operations |
3 | 3 | * |
4 | * Written 2010-2011 by Werner Almesberger | |
5 | * Copyright 2010-2011 Werner Almesberger | |
4 | * Written 2010-2012 by Werner Almesberger | |
5 | * Copyright 2010-2012 Werner Almesberger | |
6 | 6 | * |
7 | 7 | * This program is free software; you can redistribute it and/or modify |
8 | 8 | * it under the terms of the GNU General Public License as published by |
... | ... | |
140 | 140 | } |
141 | 141 | return res; |
142 | 142 | } |
143 | ||
144 | ||
145 | struct path *reverse_paths(const struct path *paths) | |
146 | { | |
147 | const struct path *path; | |
148 | struct path *res = NULL, **last = &res; | |
149 | ||
150 | for (path = paths; path; path = path->next) { | |
151 | *last = path_reverse(path); | |
152 | last = &(*last)->next; | |
153 | } | |
154 | return res; | |
155 | } |
cameo/ops.h | ||
---|---|---|
1 | 1 | /* |
2 | 2 | * ops.h - Higher-level toolpath operations |
3 | 3 | * |
4 | * Written 2010-2011 by Werner Almesberger | |
5 | * Copyright 2010-2011 Werner Almesberger | |
4 | * Written 2010-2012 by Werner Almesberger | |
5 | * Copyright 2010-2012 Werner Almesberger | |
6 | 6 | * |
7 | 7 | * This program is free software; you can redistribute it and/or modify |
8 | 8 | * it under the terms of the GNU General Public License as published by |
... | ... | |
22 | 22 | struct path *try_drill(struct path *path, double d_min, double d_max); |
23 | 23 | struct path *try_mill(struct path *path, double diam, double step, int any); |
24 | 24 | struct path *optimize_paths(struct path *paths); |
25 | struct path *reverse_paths(const struct path *paths); | |
25 | 26 | |
26 | 27 | #endif /* !OPS_H */ |
Branches:
master