chiark / gitweb /
poster-tube-lid-parametric: fix diameter
[reprap-play.git] / poster-tube-lid-parametric.pl
index 793f22d7c003fe81a5fd3d0bb1ea2ef028c9a176..fc10667b2b4cea563cfc95697cccadfa40f0bb3c 100755 (executable)
@@ -83,6 +83,7 @@ sub point ($$$$) {
                       0,
                       +$sine_height
                     );
+       $i_thickscale = cos($angle);
     } else {
        die "$ip ?";
     }
@@ -90,8 +91,8 @@ sub point ($$$$) {
     my $j_plus_th = $jp =~ m/2$/ ? $thick : 0;
 
     my $i_thick = $thick * $i_thickscale;
-    my $j_p_x = $small_dia/2 + $thick;
-    my $j_rs_x = $large_dia/2 + $thick;
+    my $j_p_x = $small_dia/2 + $thick/2;
+    my $j_rs_x = $large_dia/2 + $thick/2;
     my $j_dqr_x = (1-cos($slope_angle)) * $jcurverad;
     my $j_q_x = $j_rs_x - $j_dqr_x;
     my $j_dpq = ($j_q_x - $j_p_x) / asin($slope_angle);
@@ -118,6 +119,7 @@ sub point ($$$$) {
     } elsif ($jp =~ m/^lin0$/) {
        $j_x = $j_rs_x + $i_thick * (+0.5 - $jt);
        $j_y = $j_s_y;
+       $i_offset->[2] = 0;
     } else {
        die "$jp ?";
     }
@@ -126,7 +128,8 @@ sub point ($$$$) {
     return
        $i_offset +
        $j_x * $i_outward +
-       V(0,0,1) * $j_y;
+       V(0,0,1) * $j_y +
+       V(0,0,-$tall) ;
 }
 
 sub get_sections_ptvals {