chiark / gitweb /
manual-gcode-generator: allow ws before !; support orgx/orgy
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Aug 2012 19:43:04 +0000 (20:43 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 12 Aug 2012 19:43:04 +0000 (20:43 +0100)
manual-gcode-generator

index c9e452ee4c08959d52806f95436497ca65cbacd6..16a0c6610ad90961e55e1f5d268bcf2372334589 100755 (executable)
@@ -11,7 +11,7 @@ sub readdata () {
     while (<>) {
        chomp or die;
        s/\s+$//;
-       s/^\!\s*/!/;
+       s/^\s*\!\s*/!/;
        $l .= $_;
        next if $l =~ s/\\$//;
 
@@ -49,6 +49,8 @@ defvar('retractfeedrate',1800);
 defvar('movefeedrate',7800);
 defvar('zlift',0.1);
 defvar('zprint');
+defvar('orgx',0);
+defvar('orgy',0);
 
 sub float_g ($) {
     my ($f) = @_;
@@ -86,6 +88,14 @@ sub proc ($) {
                m/\,/ or die $!;
                [ $`, $', !!$jerk ]; # '];
            } @coords;
+           foreach my $co (@coords) {
+               foreach my $xy (qw(0 1)) {
+                   my $xyv = $co->[$xy];
+                   next unless $xyv =~ s/^\@//;
+                   my $orgxy = ($c{orgx},$c{orgy})[$xy];
+                   $co->[$xy] = float_g($xyv + $orgxy);
+               }
+           }
            my $extrudepos=$c{restart};
            pl("G92 E0");
            my $zmove=$c{zprint}+$c{zlift};