chiark / gitweb /
fairphone-case: introduce case_bottom_z (nfc)
[reprap-play.git] / size-tests.m-g
old mode 100755 (executable)
new mode 100644 (file)
index f3bfbd1..fbb666b
@@ -1,139 +1,6 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-our @array;
-our %procs;
-
-sub readdata () {
-    my $l = '';
-    my $current = \@array;
-    while (<DATA>) {
-       chomp or die;
-       s/\s+$//;
-       s/^\!\s*/!/;
-       $l .= $_;
-       next if $l =~ s/\\$//;
-
-       $_=$l; $l='';
-       if (m/^\!(\w+)\s*\(\)\s*\{$/) {
-           my $pname=$1;
-           die if $current ne \@array;
-           die if exists $procs{$pname};
-           $current = $procs{$pname} = [];
-           next;
-       }
-       if (m/^\!\}$/) {
-           $current = \@array;
-           next;
-       }
-       push @$current, $_;
-    }
-}
-readdata();
-
-our %c;
-
-sub defvar ($;$) {
-    my ($cv,$v) = @_;
-    $c{$cv} = $v;
-}
-
-defvar('extruderate',0.097200);
-defvar('feedrate',540);
-defvar('jerkfeedrate',7800);
-defvar('retract',4.5);
-defvar('restart',4.5);
-defvar('restartfeedrate',1800);
-defvar('retractfeedrate',1800);
-defvar('movefeedrate',7800);
-defvar('zlift',0.1);
-defvar('zprint');
-
-sub float_g ($) {
-    my ($f) = @_;
-    return sprintf "%.5f", $f;
-}
-sub coords_g ($) {
-    my ($coords) = @_;
-    return "X".float_g($coords->[0])." Y".float_g($coords->[1]);
-}
-
-sub p ($) { print "$_[0]" or die $!; }
-sub pl ($) { p("$_[0]\n"); }
-
-sub proc ($);
-
-sub proc ($) {
-    my ($aref) = @_;
-    local ($_);
-    foreach (@$aref) {
-       if (!m/^\!/) {
-           pl($_);
-           next;
-       }
-       pl(";$_");
-       if (m/^\!(\w+)\s*\(\)$/) {
-           my $pname = $1;
-           die "$pname ?" unless $procs{$pname};
-           proc($procs{$pname});
-       } elsif (m/^\!draw\s+/) {
-           my @coords = split /\s+/, $';
-           my @undefs = grep { !defined $c{$_} } qw(zprint);
-           die "@undefs ?" if @undefs;
-           @coords = map {
-               my $jerk = s/^\*//;
-               m/\,/ or die $!;
-               [ $`, $', !!$jerk ]; # '];
-           } @coords;
-           my $extrudepos=$c{restart};
-           pl("G92 E0");
-           my $zmove=$c{zprint}+$c{zlift};
-           pl("G1 F$c{movefeedrate} Z$zmove");
-           pl("G1 ".coords_g($coords[0]));
-           pl("G1 Z$c{zprint}");
-           pl("G1 F$c{restartfeedrate} E".float_g($extrudepos));
-           my $lastfeedrate=-1;
-           foreach (my $ci=1; $ci<@coords; $ci++) {
-               my $g = "G1 ".coords_g($coords[$ci]);
-               my $wantfeedrate;
-               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];
-                       $dist += $dxy * $dxy;
-                   }
-                   $dist = sqrt($dist);
-                   $extrudepos += $dist * $c{extruderate};
-                   $g .= " E".float_g($extrudepos);
-               } else {
-                   $wantfeedrate=$c{jerkfeedrate};
-               }
-               if ($wantfeedrate != $lastfeedrate) {
-                   $g .= " F$wantfeedrate";
-                   $lastfeedrate = $wantfeedrate;
-               }
-               pl($g);
-           }
-           $extrudepos -= $c{retract};
-           pl("G1 F$c{retractfeedrate} E".float_g($extrudepos));
-           pl("G1 F$c{movefeedrate} Z$zmove");
-           next;
-       } elsif (m/^\!(\w+)\=(\S+)$/) {
-           die "$1 ?" unless exists $c{$1};
-           $c{$1} = $2;
-       } else {
-           die "$_ ?";
-       }
-    }
-}
-
-proc(\@array);
-
-__DATA__
 ; -*- fundamental -*-
 
+; slic3r originally produced this, with these comments, and then we edited:
 ; layer_height = 0.4
 ; perimeters = 3
 ; solid_layers = 3
@@ -157,11 +24,50 @@ G21 ; set units to millimeters
 G92 E0
 M82 ; use absolute distances for extrusion
 
-!zprint=0.4
+!zprint=0.3
 
-!draw 10,10 100,10 102,12 102,14 100,16 10,16
+; "skirt" - prep extruder
+!draw 5,5 100,5 101,5.5 101,6.0 100,6.5 5,6.5
+
+; edge ticks for global motions sizing
+
+!edge_ticks(){
+!draw 20,10 10,10 10,20
+!draw 10,65 10,75
+!draw 10,120 10,130 20,130
+!draw 65,130 75,130
+!draw 120,130 130,130 130,120
+!draw 130,75 130,65
+!draw 130,20 130,10 120,10
+!draw 75,10 65,10
+!}
+
+;!edge_ticks()
+
+!outer_square(){
+ !draw @0.000,@0.000 @5.000,@0.000 @5.000,@5.000 @0.000,@5.000 @0.000,@0.000
+!}
+!inner_square(){
+ !draw @0.500,@0.500 @4.500,@0.500 @4.500,@4.500 @0.500,@4.500 @0.500,@0.500
+!}
+!outer_vlines(){
+ !draw @0.000,@0.000 @0.000,@5.000
+ !draw @5.000,@0.000 @5.000,@5.000
+!}
+!inner_vlines(){
+ !draw @0.500,@0.500 @0.500,@4.500
+ !draw @4.500,@0.500 @4.500,@4.500
+!}
+!outer_longrect(){
+ !draw @0.000,@0.000 @5.000,@0.000 @5.000,@20.000 @0.000,@20.000 @0.000,@0.000
+!}
+!inner_longrect(){
+ !draw @0.500,@0.500 @4.500,@0.500 @4.500,@19.500 @0.500,@19.500 @0.500,@0.500
+!}
+
+!org_oblong(){
+; original test oblong
 
-!layer(){
 !draw 68.498,79.498 \
 71.502,79.498 \
 71.502,82.502 \
@@ -180,20 +86,128 @@ M82 ; use absolute distances for extrusion
 
 !}
 
+!squares_tests(){
+
+!orgy=40
+
+!orgx=30
+!outer_longrect()
+
+!orgx=50
+!inner_longrect()
+!outer_longrect()
+
+!orgx=90
+!inner_square()
+!outer_square()
+
+!orgx=110
+!outer_square()
+
+!orgy=60
+!outer_vlines()
+
+!orgx=90
+!inner_vlines()
+!outer_vlines()
+
+!orgy=80
+!outer_square()
+!inner_square()
+
+!orgx=110
+!inner_square()
+
+!orgy=100
+!inner_vlines()
+
+!orgx=90
+!outer_vlines()
+!inner_vlines()
+
+!orgx=50
+!orgy=80
+!outer_longrect()
+!inner_longrect()
+
+!orgx=30
+!inner_longrect()
+
+!}
+
+!feedrate_tests(){
+
+!orgx=20
+!extruderate=0.045
+!feedrate_test1()
+
+!orgx=30
+!extruderate=0.060
+!feedrate_test1()
+
+!orgx=40
+!extruderate=0.080
+!feedrate_test1()
+
+!orgx=50
+!extruderate=0.100
+!feedrate_test1()
+
+!orgx=60
+!extruderate=0.125
+!feedrate_test1()
+
+!orgx=70
+!extruderate=0.150
+!feedrate_test1()
+
+!orgx=80
+!extruderate=0.200
+!feedrate_test1()
+
+!}
+
+!feedrate_test1(){
+
+!orgy=20
+!outer_longrect()
+
+!orgy=50
+!inner_longrect()
+!outer_longrect()
+
+!orgy=80
+!outer_longrect()
+!inner_longrect()
+
+!}
+
+!layer(){
+
+;--------------------
+
+;!squares_tests()
+;!org_oblong()
+!feedrate_tests()
+
+!}
+
 !layer()
 
 M104 S210 ; set temperature
 M140 S60 ; set bed temperature
 
-!zprint=0.8
+!zprint=0.7
+!layer()
+
+!zprint=1.1
 !layer()
 
 M83 ; extruder relative
 G1 F1000 ;1000mm/min extrusion
 G1 E-10; retract
-G1 F240 ;240mm/min vertical move
-G1 Z70
-G28 X0 Y0 ; home X and Y axis
+G1 X0 Y0 F10000
+G28 X0 Y0
 M104 S0 ; turn off temperature
 M140 S0 ; turn off bed
 M84     ; disable motors