chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8857a4a
)
size-tests - wip - movement generator seems to work and can generate a drawing
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 12 Aug 2012 16:25:10 +0000
(17:25 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sun, 12 Aug 2012 16:25:10 +0000
(17:25 +0100)
size-tests.m-g
patch
|
blob
|
history
diff --git
a/size-tests.m-g
b/size-tests.m-g
index 36cabf8505ec782f9f5aa35c5beb8fa2e1d25c99..199935aae3427cb3816ac64efe9c678cf9d663ab 100755
(executable)
--- a/
size-tests.m-g
+++ b/
size-tests.m-g
@@
-2,7
+2,18
@@
use strict;
use strict;
-our @array = <DATA>;
+our @array;
+sub readdata () {
+ my $l = '';
+ while (<DATA>) {
+ chomp or die;
+ $l .= $_;
+ next if $l =~ s/\\\s*$//;
+ push @array, $l;
+ $l = '';
+ }
+}
+readdata();
our %c;
our %c;
@@
-11,7
+22,7
@@
sub defvar ($;$) {
$c{$cv} = $v;
}
$c{$cv} = $v;
}
-defvar('extruderate',0.97200);
+defvar('extruderate',0.
0
97200);
defvar('feedrate',540);
defvar('jerkfeedrate',7800);
defvar('retract',4.5);
defvar('feedrate',540);
defvar('jerkfeedrate',7800);
defvar('retract',4.5);
@@
-39,10
+50,10
@@
sub proc ($$) {
foreach my $lno ($start..$end) {
$_ = $array[$lno];
if (!m/^\!/) {
foreach my $lno ($start..$end) {
$_ = $array[$lno];
if (!m/^\!/) {
- p($_);
+ p
l
($_);
next;
}
next;
}
- p(";$_");
+ p
l
(";$_");
if (s/^\!draw\s+//) {
my @undefs = grep { !defined $c{$_} } qw(zprint zmove);
die "@undefs ?" if @undefs;
if (s/^\!draw\s+//) {
my @undefs = grep { !defined $c{$_} } qw(zprint zmove);
die "@undefs ?" if @undefs;
@@
-52,22
+63,22
@@
sub proc ($$) {
m/\,/ or die $!;
[ $`, $', !!$jerk ]; # '];
} @coords;
m/\,/ or die $!;
[ $`, $', !!$jerk ]; # '];
} @coords;
+ my $extrudepos=$c{restart};
pl("G92 E0");
pl("G1 F$c{movefeedrate} Z$c{zmove}");
pl("G1 ".coords_g($coords[0]));
pl("G1 Z$c{zprint}");
pl("G92 E0");
pl("G1 F$c{movefeedrate} Z$c{zmove}");
pl("G1 ".coords_g($coords[0]));
pl("G1 Z$c{zprint}");
- pl("G1 F$c{restartfeedrate} E
$c{restart}"
);
+ pl("G1 F$c{restartfeedrate} E
".float_g($extrudepos)
);
my $lastfeedrate=-1;
my $lastfeedrate=-1;
- my $extrudepos=0;
foreach (my $ci=1; $ci<@coords; $ci++) {
my $g = "G1 ".coords_g($coords[$ci]);
my $wantfeedrate;
foreach (my $ci=1; $ci<@coords; $ci++) {
my $g = "G1 ".coords_g($coords[$ci]);
my $wantfeedrate;
- if (!$coords[$ci][
3
]) {
+ if (!$coords[$ci][
2
]) {
$wantfeedrate=$c{feedrate};
my $dist = 0;
foreach my $xy (qw(0 1)) {
my $dxy = $coords[$ci][$xy] - $coords[$ci-1][$xy];
$wantfeedrate=$c{feedrate};
my $dist = 0;
foreach my $xy (qw(0 1)) {
my $dxy = $coords[$ci][$xy] - $coords[$ci-1][$xy];
- $dist += $dxy
+
$dxy;
+ $dist += $dxy
*
$dxy;
}
$dist = sqrt($dist);
$extrudepos += $dist * $c{extruderate};
}
$dist = sqrt($dist);
$extrudepos += $dist * $c{extruderate};
@@
-82,7
+93,7
@@
sub proc ($$) {
pl($g);
}
$extrudepos -= $c{retract};
pl($g);
}
$extrudepos -= $c{retract};
- pl("G1 F$c{retractfeedrate} E
$extrudepos"
);
+ pl("G1 F$c{retractfeedrate} E
".float_g($extrudepos)
);
pl("G1 F$c{movefeedrate} Z$c{zmove}");
next;
} elsif (m/^\!(\w+)\=(\S+)$/) {
pl("G1 F$c{movefeedrate} Z$c{zmove}");
next;
} elsif (m/^\!(\w+)\=(\S+)$/) {
@@
-127,6
+138,21
@@
M82 ; use absolute distances for extrusion
!draw 10,10 100,10
!draw 10,10 100,10
+!draw 68.498,79.498 \
+71.502,79.498 \
+71.502,82.502 \
+68.498,82.502 \
+68.498,79.588 \
+*67.899,78.899 \
+72.101,78.899 \
+72.101,83.101 \
+67.899,83.101 \
+67.899,78.989 \
+*67.300,78.300 \
+72.700,78.300 \
+72.700,83.700 \
+67.300,83.700 \
+67.300,78.390 \
G1 X10 Y10
G1 X10 Y10