Class: Graster::GcodeFile
- Inherits:
-
File
- Object
- File
- Graster::GcodeFile
- Defined in:
- lib/graster/gcode_file.rb
Constant Summary collapse
- PRIORITY =
[:g,:x,:y,:z,:w,:i,:j,:k,:m,:p,:s]
Instance Method Summary collapse
- #comment(txt) ⇒ Object
- #epilogue ⇒ Object
- #g0(codes) ⇒ Object (also: #jog)
- #g1(codes) ⇒ Object (also: #move)
- #g2(codes) ⇒ Object (also: #turn_cw)
- #g3(codes) ⇒ Object (also: #turn_ccw)
- #nc(codes) ⇒ Object
- #preamble(opts) ⇒ Object
- #puts(*a) ⇒ Object
Instance Method Details
#comment(txt) ⇒ Object
62 63 64 65 |
# File 'lib/graster/gcode_file.rb', line 62 def comment txt txt = txt.gsub(/\(\)/,'') self << "(#{txt})\n" end |
#epilogue ⇒ Object
10 11 12 |
# File 'lib/graster/gcode_file.rb', line 10 def epilogue self << "M63 P0\nM5\nM2\n" end |
#g0(codes) ⇒ Object Also known as: jog
42 43 44 |
# File 'lib/graster/gcode_file.rb', line 42 def g0 codes nc({:g => 0}.merge codes) end |
#g1(codes) ⇒ Object Also known as: move
47 48 49 |
# File 'lib/graster/gcode_file.rb', line 47 def g1 codes nc({:g => 1}.merge codes) end |
#g2(codes) ⇒ Object Also known as: turn_cw
52 53 54 |
# File 'lib/graster/gcode_file.rb', line 52 def g2 codes nc codes.merge(:g => 2) end |
#g3(codes) ⇒ Object Also known as: turn_ccw
57 58 59 |
# File 'lib/graster/gcode_file.rb', line 57 def g3 codes nc codes.merge(:g => 3) end |
#nc(codes) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/graster/gcode_file.rb', line 16 def nc codes codes = codes.dup if codes[:laser] == true && !@laser @laser = true codes.merge!(:m => 62, :p => 0) elsif codes[:laser] == false && @laser @laser = false codes.merge!(:m => 63, :p => 0) end codes.delete :laser self << codes.sort {|(k1,v1),(k2,v2)| PRIORITY.index(k1) <=> PRIORITY.index(k2) }.map {|k,v| if v.is_a? Integer "#{k.to_s.upcase}#{v}" elsif v.is_a? Float "#{k.to_s.upcase}%0.3f" % v else k.to_s.upcase end }.join(' ') + "\n" end |
#preamble(opts) ⇒ Object
3 4 5 6 7 8 |
# File 'lib/graster/gcode_file.rb', line 3 def preamble opts @laser = false self << "M63 P0\nG61\nF#{opts[:feed] || 60}\n" self << "M101\n" if opts[:mask] self << "M3 S1\n" end |
#puts(*a) ⇒ Object
67 68 69 |
# File 'lib/graster/gcode_file.rb', line 67 def puts *a self.puts *a end |