pub struct ApertureMacro {
pub name: String,
pub content: Vec<MacroContent>,
}Fields§
§name: String§content: Vec<MacroContent>Implementations§
Source§impl ApertureMacro
impl ApertureMacro
Sourcepub fn new<S: Into<String>>(name: S) -> Self
pub fn new<S: Into<String>>(name: S) -> Self
Examples found in repository?
examples/polarities-apertures.rs (line 28)
10fn main() {
11 let cf = CoordinateFormat::new(2, 6);
12 let commands: Vec<Command> = vec![
13 FunctionCode::GCode(GCode::Comment("Ucamco ex. 2: Shapes".to_string())).into(),
14 ExtendedCode::CoordinateFormat(cf).into(),
15 ExtendedCode::Unit(Unit::Inches).into(),
16 ExtendedCode::FileAttribute(FileAttribute::GenerationSoftware(GenerationSoftware::new(
17 "Rust Gerber",
18 "gerber-types-rs",
19 Some(VERSION),
20 )))
21 .into(),
22 ExtendedCode::FileAttribute(FileAttribute::Part(Part::Other(
23 "Only an example".to_string(),
24 )))
25 .into(),
26 ExtendedCode::LoadPolarity(Polarity::Dark).into(),
27 FunctionCode::GCode(GCode::Comment("Define Apertures".to_string())).into(),
28 ExtendedCode::ApertureMacro(ApertureMacro::new("TARGET125").add_content(MoirePrimitive {
29 center: (0.0.into(), 0.0.into()),
30 diameter: 0.125.into(),
31 ring_thickness: 0.01.into(),
32 gap: 0.01.into(),
33 max_rings: 3,
34 cross_hair_thickness: 0.003.into(),
35 cross_hair_length: 0.150.into(),
36 angle: 0.0.into(),
37 }))
38 .into(),
39 ExtendedCode::ApertureMacro(ApertureMacro::new("THERMAL80").add_content(
40 ThermalPrimitive {
41 center: (0.0.into(), 0.0.into()),
42 outer_diameter: 0.08.into(),
43 inner_diameter: 0.055.into(),
44 gap: 0.0125.into(),
45 angle: 45.0.into(),
46 },
47 ))
48 .into(),
49 ExtendedCode::ApertureDefinition(ApertureDefinition {
50 code: 10,
51 aperture: Aperture::Circle(Circle {
52 diameter: 0.01,
53 hole_diameter: None,
54 }),
55 })
56 .into(),
57 ExtendedCode::ApertureDefinition(ApertureDefinition {
58 code: 11,
59 aperture: Aperture::Circle(Circle {
60 diameter: 0.06,
61 hole_diameter: None,
62 }),
63 })
64 .into(),
65 ExtendedCode::ApertureDefinition(ApertureDefinition {
66 code: 12,
67 aperture: Aperture::Rectangle(Rectangular {
68 x: 0.06,
69 y: 0.06,
70 hole_diameter: None,
71 }),
72 })
73 .into(),
74 ExtendedCode::ApertureDefinition(ApertureDefinition {
75 code: 13,
76 aperture: Aperture::Rectangle(Rectangular {
77 x: 0.04,
78 y: 0.1,
79 hole_diameter: None,
80 }),
81 })
82 .into(),
83 ExtendedCode::ApertureDefinition(ApertureDefinition {
84 code: 14,
85 aperture: Aperture::Rectangle(Rectangular {
86 x: 0.1,
87 y: 0.04,
88 hole_diameter: None,
89 }),
90 })
91 .into(),
92 ExtendedCode::ApertureDefinition(ApertureDefinition {
93 code: 15,
94 aperture: Aperture::Obround(Rectangular {
95 x: 0.04,
96 y: 0.1,
97 hole_diameter: None,
98 }),
99 })
100 .into(),
101 ExtendedCode::ApertureDefinition(ApertureDefinition {
102 code: 16,
103 aperture: Aperture::Polygon(Polygon {
104 diameter: 0.1,
105 vertices: 3,
106 rotation: None,
107 hole_diameter: None,
108 }),
109 })
110 .into(),
111 ExtendedCode::ApertureDefinition(ApertureDefinition {
112 code: 18,
113 aperture: Aperture::Other("TARGET125".to_string()),
114 })
115 .into(),
116 ExtendedCode::ApertureDefinition(ApertureDefinition {
117 code: 19,
118 aperture: Aperture::Other("THERMAL80".to_string()),
119 })
120 .into(),
121 FunctionCode::GCode(GCode::Comment("Start image generation".to_string())).into(),
122 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
123 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
124 0,
125 CoordinateNumber::try_from(0.25).unwrap(),
126 cf,
127 ))))
128 .into(),
129 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
130 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
131 Coordinates::new(0, 0, cf),
132 None,
133 )))
134 .into(),
135 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
136 Coordinates::new(CoordinateNumber::try_from(0.25).unwrap(), 0, cf),
137 None,
138 )))
139 .into(),
140 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
141 1, 1, cf,
142 ))))
143 .into(),
144 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
145 Coordinates::at_x(CoordinateNumber::try_from(1.5).unwrap(), cf),
146 None,
147 )))
148 .into(),
149 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
150 Coordinates::new(2, CoordinateNumber::try_from(1.5).unwrap(), cf),
151 None,
152 )))
153 .into(),
154 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::at_x(
155 CoordinateNumber::try_from(2.5).unwrap(),
156 cf,
157 ))))
158 .into(),
159 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
160 Coordinates::at_y(1, cf),
161 None,
162 )))
163 .into(),
164 FunctionCode::DCode(DCode::SelectAperture(11)).into(),
165 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
166 1, 1, cf,
167 ))))
168 .into(),
169 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
170 2, 1, cf,
171 ))))
172 .into(),
173 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
174 CoordinateNumber::try_from(2.5).unwrap(),
175 1,
176 cf,
177 ))))
178 .into(),
179 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
180 CoordinateNumber::try_from(2.5).unwrap(),
181 CoordinateNumber::try_from(1.5).unwrap(),
182 cf,
183 ))))
184 .into(),
185 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
186 2,
187 CoordinateNumber::try_from(1.5).unwrap(),
188 cf,
189 ))))
190 .into(),
191 FunctionCode::DCode(DCode::SelectAperture(12)).into(),
192 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
193 1,
194 CoordinateNumber::try_from(1.5).unwrap(),
195 cf,
196 ))))
197 .into(),
198 FunctionCode::DCode(DCode::SelectAperture(13)).into(),
199 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
200 3,
201 CoordinateNumber::try_from(1.5).unwrap(),
202 cf,
203 ))))
204 .into(),
205 FunctionCode::DCode(DCode::SelectAperture(14)).into(),
206 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
207 3,
208 CoordinateNumber::try_from(1.25).unwrap(),
209 cf,
210 ))))
211 .into(),
212 FunctionCode::DCode(DCode::SelectAperture(15)).into(),
213 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
214 3, 1, cf,
215 ))))
216 .into(),
217 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
218 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
219 CoordinateNumber::try_from(3.75).unwrap(),
220 1,
221 cf,
222 ))))
223 .into(),
224 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Multi)).into(),
225 FunctionCode::GCode(GCode::InterpolationMode(
226 InterpolationMode::CounterclockwiseCircular,
227 ))
228 .into(),
229 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
230 Coordinates::new(CoordinateNumber::try_from(3.75).unwrap(), 1, cf),
231 Some(CoordinateOffset::new(
232 CoordinateNumber::try_from(0.25).unwrap(),
233 0,
234 cf,
235 )),
236 )))
237 .into(),
238 FunctionCode::DCode(DCode::SelectAperture(16)).into(),
239 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
240 CoordinateNumber::try_from(3.4).unwrap(),
241 1,
242 cf,
243 ))))
244 .into(),
245 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
246 CoordinateNumber::try_from(3.5).unwrap(),
247 CoordinateNumber::try_from(0.9).unwrap(),
248 cf,
249 ))))
250 .into(),
251 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
252 FunctionCode::GCode(GCode::RegionMode(true)).into(),
253 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
254 CoordinateNumber::try_from(0.5).unwrap(),
255 2,
256 cf,
257 ))))
258 .into(),
259 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
260 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
261 Coordinates::at_y(CoordinateNumber::try_from(3.75).unwrap(), cf),
262 None,
263 )))
264 .into(),
265 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
266 Coordinates::at_x(CoordinateNumber::try_from(3.75).unwrap(), cf),
267 None,
268 )))
269 .into(),
270 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
271 Coordinates::at_y(2, cf),
272 None,
273 )))
274 .into(),
275 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
276 Coordinates::at_x(CoordinateNumber::try_from(0.5).unwrap(), cf),
277 None,
278 )))
279 .into(),
280 FunctionCode::GCode(GCode::RegionMode(false)).into(),
281 FunctionCode::DCode(DCode::SelectAperture(18)).into(),
282 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
283 0,
284 CoordinateNumber::try_from(3.875).unwrap(),
285 cf,
286 ))))
287 .into(),
288 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
289 CoordinateNumber::try_from(3.875).unwrap(),
290 CoordinateNumber::try_from(3.875).unwrap(),
291 cf,
292 ))))
293 .into(),
294 ExtendedCode::LoadPolarity(Polarity::Clear).into(),
295 FunctionCode::GCode(GCode::RegionMode(true)).into(),
296 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
297 1,
298 CoordinateNumber::try_from(2.5).unwrap(),
299 cf,
300 ))))
301 .into(),
302 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
303 Coordinates::at_y(3, cf),
304 None,
305 )))
306 .into(),
307 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Single)).into(),
308 FunctionCode::GCode(GCode::InterpolationMode(
309 InterpolationMode::ClockwiseCircular,
310 ))
311 .into(),
312 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
313 Coordinates::new(
314 CoordinateNumber::try_from(1.25).unwrap(),
315 CoordinateNumber::try_from(3.25).unwrap(),
316 cf,
317 ),
318 Some(CoordinateOffset::new(
319 CoordinateNumber::try_from(0.25).unwrap(),
320 0,
321 cf,
322 )),
323 )))
324 .into(),
325 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
326 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
327 Coordinates::at_x(3, cf),
328 None,
329 )))
330 .into(),
331 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Multi)).into(),
332 FunctionCode::GCode(GCode::InterpolationMode(
333 InterpolationMode::ClockwiseCircular,
334 ))
335 .into(),
336 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
337 Coordinates::new(3, CoordinateNumber::try_from(2.5).unwrap(), cf),
338 Some(CoordinateOffset::new(
339 0,
340 CoordinateNumber::try_from(0.375).unwrap(),
341 cf,
342 )),
343 )))
344 .into(),
345 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
346 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
347 Coordinates::at_x(1, cf),
348 None,
349 )))
350 .into(),
351 FunctionCode::GCode(GCode::RegionMode(false)).into(),
352 ExtendedCode::LoadPolarity(Polarity::Dark).into(),
353 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
354 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
355 CoordinateNumber::try_from(1.5).unwrap(),
356 CoordinateNumber::try_from(2.875).unwrap(),
357 cf,
358 ))))
359 .into(),
360 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
361 Coordinates::at_x(2, cf),
362 None,
363 )))
364 .into(),
365 FunctionCode::DCode(DCode::SelectAperture(11)).into(),
366 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
367 CoordinateNumber::try_from(1.5).unwrap(),
368 CoordinateNumber::try_from(2.875).unwrap(),
369 cf,
370 ))))
371 .into(),
372 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::at_x(2, cf)))).into(),
373 FunctionCode::DCode(DCode::SelectAperture(19)).into(),
374 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
375 CoordinateNumber::try_from(2.875).unwrap(),
376 CoordinateNumber::try_from(2.875).unwrap(),
377 cf,
378 ))))
379 .into(),
380 ExtendedCode::FileAttribute(FileAttribute::Md5(
381 "6ab9e892830469cdff7e3e346331d404".to_string(),
382 ))
383 .into(),
384 FunctionCode::MCode(MCode::EndOfFile).into(),
385 ];
386 let mut stdout = stdout();
387 commands.serialize(&mut stdout).unwrap();
388}Sourcepub fn add_content<C>(self, c: C) -> Selfwhere
C: Into<MacroContent>,
pub fn add_content<C>(self, c: C) -> Selfwhere
C: Into<MacroContent>,
Examples found in repository?
examples/polarities-apertures.rs (lines 28-37)
10fn main() {
11 let cf = CoordinateFormat::new(2, 6);
12 let commands: Vec<Command> = vec![
13 FunctionCode::GCode(GCode::Comment("Ucamco ex. 2: Shapes".to_string())).into(),
14 ExtendedCode::CoordinateFormat(cf).into(),
15 ExtendedCode::Unit(Unit::Inches).into(),
16 ExtendedCode::FileAttribute(FileAttribute::GenerationSoftware(GenerationSoftware::new(
17 "Rust Gerber",
18 "gerber-types-rs",
19 Some(VERSION),
20 )))
21 .into(),
22 ExtendedCode::FileAttribute(FileAttribute::Part(Part::Other(
23 "Only an example".to_string(),
24 )))
25 .into(),
26 ExtendedCode::LoadPolarity(Polarity::Dark).into(),
27 FunctionCode::GCode(GCode::Comment("Define Apertures".to_string())).into(),
28 ExtendedCode::ApertureMacro(ApertureMacro::new("TARGET125").add_content(MoirePrimitive {
29 center: (0.0.into(), 0.0.into()),
30 diameter: 0.125.into(),
31 ring_thickness: 0.01.into(),
32 gap: 0.01.into(),
33 max_rings: 3,
34 cross_hair_thickness: 0.003.into(),
35 cross_hair_length: 0.150.into(),
36 angle: 0.0.into(),
37 }))
38 .into(),
39 ExtendedCode::ApertureMacro(ApertureMacro::new("THERMAL80").add_content(
40 ThermalPrimitive {
41 center: (0.0.into(), 0.0.into()),
42 outer_diameter: 0.08.into(),
43 inner_diameter: 0.055.into(),
44 gap: 0.0125.into(),
45 angle: 45.0.into(),
46 },
47 ))
48 .into(),
49 ExtendedCode::ApertureDefinition(ApertureDefinition {
50 code: 10,
51 aperture: Aperture::Circle(Circle {
52 diameter: 0.01,
53 hole_diameter: None,
54 }),
55 })
56 .into(),
57 ExtendedCode::ApertureDefinition(ApertureDefinition {
58 code: 11,
59 aperture: Aperture::Circle(Circle {
60 diameter: 0.06,
61 hole_diameter: None,
62 }),
63 })
64 .into(),
65 ExtendedCode::ApertureDefinition(ApertureDefinition {
66 code: 12,
67 aperture: Aperture::Rectangle(Rectangular {
68 x: 0.06,
69 y: 0.06,
70 hole_diameter: None,
71 }),
72 })
73 .into(),
74 ExtendedCode::ApertureDefinition(ApertureDefinition {
75 code: 13,
76 aperture: Aperture::Rectangle(Rectangular {
77 x: 0.04,
78 y: 0.1,
79 hole_diameter: None,
80 }),
81 })
82 .into(),
83 ExtendedCode::ApertureDefinition(ApertureDefinition {
84 code: 14,
85 aperture: Aperture::Rectangle(Rectangular {
86 x: 0.1,
87 y: 0.04,
88 hole_diameter: None,
89 }),
90 })
91 .into(),
92 ExtendedCode::ApertureDefinition(ApertureDefinition {
93 code: 15,
94 aperture: Aperture::Obround(Rectangular {
95 x: 0.04,
96 y: 0.1,
97 hole_diameter: None,
98 }),
99 })
100 .into(),
101 ExtendedCode::ApertureDefinition(ApertureDefinition {
102 code: 16,
103 aperture: Aperture::Polygon(Polygon {
104 diameter: 0.1,
105 vertices: 3,
106 rotation: None,
107 hole_diameter: None,
108 }),
109 })
110 .into(),
111 ExtendedCode::ApertureDefinition(ApertureDefinition {
112 code: 18,
113 aperture: Aperture::Other("TARGET125".to_string()),
114 })
115 .into(),
116 ExtendedCode::ApertureDefinition(ApertureDefinition {
117 code: 19,
118 aperture: Aperture::Other("THERMAL80".to_string()),
119 })
120 .into(),
121 FunctionCode::GCode(GCode::Comment("Start image generation".to_string())).into(),
122 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
123 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
124 0,
125 CoordinateNumber::try_from(0.25).unwrap(),
126 cf,
127 ))))
128 .into(),
129 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
130 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
131 Coordinates::new(0, 0, cf),
132 None,
133 )))
134 .into(),
135 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
136 Coordinates::new(CoordinateNumber::try_from(0.25).unwrap(), 0, cf),
137 None,
138 )))
139 .into(),
140 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
141 1, 1, cf,
142 ))))
143 .into(),
144 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
145 Coordinates::at_x(CoordinateNumber::try_from(1.5).unwrap(), cf),
146 None,
147 )))
148 .into(),
149 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
150 Coordinates::new(2, CoordinateNumber::try_from(1.5).unwrap(), cf),
151 None,
152 )))
153 .into(),
154 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::at_x(
155 CoordinateNumber::try_from(2.5).unwrap(),
156 cf,
157 ))))
158 .into(),
159 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
160 Coordinates::at_y(1, cf),
161 None,
162 )))
163 .into(),
164 FunctionCode::DCode(DCode::SelectAperture(11)).into(),
165 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
166 1, 1, cf,
167 ))))
168 .into(),
169 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
170 2, 1, cf,
171 ))))
172 .into(),
173 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
174 CoordinateNumber::try_from(2.5).unwrap(),
175 1,
176 cf,
177 ))))
178 .into(),
179 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
180 CoordinateNumber::try_from(2.5).unwrap(),
181 CoordinateNumber::try_from(1.5).unwrap(),
182 cf,
183 ))))
184 .into(),
185 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
186 2,
187 CoordinateNumber::try_from(1.5).unwrap(),
188 cf,
189 ))))
190 .into(),
191 FunctionCode::DCode(DCode::SelectAperture(12)).into(),
192 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
193 1,
194 CoordinateNumber::try_from(1.5).unwrap(),
195 cf,
196 ))))
197 .into(),
198 FunctionCode::DCode(DCode::SelectAperture(13)).into(),
199 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
200 3,
201 CoordinateNumber::try_from(1.5).unwrap(),
202 cf,
203 ))))
204 .into(),
205 FunctionCode::DCode(DCode::SelectAperture(14)).into(),
206 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
207 3,
208 CoordinateNumber::try_from(1.25).unwrap(),
209 cf,
210 ))))
211 .into(),
212 FunctionCode::DCode(DCode::SelectAperture(15)).into(),
213 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
214 3, 1, cf,
215 ))))
216 .into(),
217 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
218 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
219 CoordinateNumber::try_from(3.75).unwrap(),
220 1,
221 cf,
222 ))))
223 .into(),
224 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Multi)).into(),
225 FunctionCode::GCode(GCode::InterpolationMode(
226 InterpolationMode::CounterclockwiseCircular,
227 ))
228 .into(),
229 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
230 Coordinates::new(CoordinateNumber::try_from(3.75).unwrap(), 1, cf),
231 Some(CoordinateOffset::new(
232 CoordinateNumber::try_from(0.25).unwrap(),
233 0,
234 cf,
235 )),
236 )))
237 .into(),
238 FunctionCode::DCode(DCode::SelectAperture(16)).into(),
239 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
240 CoordinateNumber::try_from(3.4).unwrap(),
241 1,
242 cf,
243 ))))
244 .into(),
245 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
246 CoordinateNumber::try_from(3.5).unwrap(),
247 CoordinateNumber::try_from(0.9).unwrap(),
248 cf,
249 ))))
250 .into(),
251 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
252 FunctionCode::GCode(GCode::RegionMode(true)).into(),
253 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
254 CoordinateNumber::try_from(0.5).unwrap(),
255 2,
256 cf,
257 ))))
258 .into(),
259 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
260 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
261 Coordinates::at_y(CoordinateNumber::try_from(3.75).unwrap(), cf),
262 None,
263 )))
264 .into(),
265 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
266 Coordinates::at_x(CoordinateNumber::try_from(3.75).unwrap(), cf),
267 None,
268 )))
269 .into(),
270 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
271 Coordinates::at_y(2, cf),
272 None,
273 )))
274 .into(),
275 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
276 Coordinates::at_x(CoordinateNumber::try_from(0.5).unwrap(), cf),
277 None,
278 )))
279 .into(),
280 FunctionCode::GCode(GCode::RegionMode(false)).into(),
281 FunctionCode::DCode(DCode::SelectAperture(18)).into(),
282 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
283 0,
284 CoordinateNumber::try_from(3.875).unwrap(),
285 cf,
286 ))))
287 .into(),
288 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
289 CoordinateNumber::try_from(3.875).unwrap(),
290 CoordinateNumber::try_from(3.875).unwrap(),
291 cf,
292 ))))
293 .into(),
294 ExtendedCode::LoadPolarity(Polarity::Clear).into(),
295 FunctionCode::GCode(GCode::RegionMode(true)).into(),
296 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
297 1,
298 CoordinateNumber::try_from(2.5).unwrap(),
299 cf,
300 ))))
301 .into(),
302 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
303 Coordinates::at_y(3, cf),
304 None,
305 )))
306 .into(),
307 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Single)).into(),
308 FunctionCode::GCode(GCode::InterpolationMode(
309 InterpolationMode::ClockwiseCircular,
310 ))
311 .into(),
312 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
313 Coordinates::new(
314 CoordinateNumber::try_from(1.25).unwrap(),
315 CoordinateNumber::try_from(3.25).unwrap(),
316 cf,
317 ),
318 Some(CoordinateOffset::new(
319 CoordinateNumber::try_from(0.25).unwrap(),
320 0,
321 cf,
322 )),
323 )))
324 .into(),
325 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
326 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
327 Coordinates::at_x(3, cf),
328 None,
329 )))
330 .into(),
331 FunctionCode::GCode(GCode::QuadrantMode(QuadrantMode::Multi)).into(),
332 FunctionCode::GCode(GCode::InterpolationMode(
333 InterpolationMode::ClockwiseCircular,
334 ))
335 .into(),
336 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
337 Coordinates::new(3, CoordinateNumber::try_from(2.5).unwrap(), cf),
338 Some(CoordinateOffset::new(
339 0,
340 CoordinateNumber::try_from(0.375).unwrap(),
341 cf,
342 )),
343 )))
344 .into(),
345 FunctionCode::GCode(GCode::InterpolationMode(InterpolationMode::Linear)).into(),
346 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
347 Coordinates::at_x(1, cf),
348 None,
349 )))
350 .into(),
351 FunctionCode::GCode(GCode::RegionMode(false)).into(),
352 ExtendedCode::LoadPolarity(Polarity::Dark).into(),
353 FunctionCode::DCode(DCode::SelectAperture(10)).into(),
354 FunctionCode::DCode(DCode::Operation(Operation::Move(Coordinates::new(
355 CoordinateNumber::try_from(1.5).unwrap(),
356 CoordinateNumber::try_from(2.875).unwrap(),
357 cf,
358 ))))
359 .into(),
360 FunctionCode::DCode(DCode::Operation(Operation::Interpolate(
361 Coordinates::at_x(2, cf),
362 None,
363 )))
364 .into(),
365 FunctionCode::DCode(DCode::SelectAperture(11)).into(),
366 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
367 CoordinateNumber::try_from(1.5).unwrap(),
368 CoordinateNumber::try_from(2.875).unwrap(),
369 cf,
370 ))))
371 .into(),
372 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::at_x(2, cf)))).into(),
373 FunctionCode::DCode(DCode::SelectAperture(19)).into(),
374 FunctionCode::DCode(DCode::Operation(Operation::Flash(Coordinates::new(
375 CoordinateNumber::try_from(2.875).unwrap(),
376 CoordinateNumber::try_from(2.875).unwrap(),
377 cf,
378 ))))
379 .into(),
380 ExtendedCode::FileAttribute(FileAttribute::Md5(
381 "6ab9e892830469cdff7e3e346331d404".to_string(),
382 ))
383 .into(),
384 FunctionCode::MCode(MCode::EndOfFile).into(),
385 ];
386 let mut stdout = stdout();
387 commands.serialize(&mut stdout).unwrap();
388}pub fn add_content_mut<C>(&mut self, c: C)where
C: Into<MacroContent>,
Trait Implementations§
Source§impl Clone for ApertureMacro
impl Clone for ApertureMacro
Source§fn clone(&self) -> ApertureMacro
fn clone(&self) -> ApertureMacro
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ApertureMacro
impl Debug for ApertureMacro
Source§impl From<ApertureMacro> for Command
impl From<ApertureMacro> for Command
Source§fn from(val: ApertureMacro) -> Self
fn from(val: ApertureMacro) -> Self
Converts to this type from the input type.
Source§impl From<ApertureMacro> for ExtendedCode
impl From<ApertureMacro> for ExtendedCode
Source§fn from(val: ApertureMacro) -> Self
fn from(val: ApertureMacro) -> Self
Converts to this type from the input type.
Source§impl PartialEq for ApertureMacro
impl PartialEq for ApertureMacro
impl StructuralPartialEq for ApertureMacro
Auto Trait Implementations§
impl Freeze for ApertureMacro
impl RefUnwindSafe for ApertureMacro
impl Send for ApertureMacro
impl Sync for ApertureMacro
impl Unpin for ApertureMacro
impl UnwindSafe for ApertureMacro
Blanket Implementations§
Source§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
Source§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
Convert the given value into an approximately equivalent representation.
Source§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
Source§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
The error type produced by a failed conversion.
Source§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Convert the subject into an approximately equivalent representation.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
Source§impl<T> ConvUtil for T
impl<T> ConvUtil for T
Source§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
Approximate the subject to a given type with the default scheme.
Source§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
Approximate the subject to a given type with a specific scheme.