From: Ian Jackson Date: Fri, 20 Oct 2017 19:39:00 +0000 (+0100) Subject: poster-tube-lid: wip parametric integration, rework X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=b28141e959f59d188e7003849d8923fa951d66a4;p=reprap-play.git poster-tube-lid: wip parametric integration, rework --- diff --git a/poster-tube-lid-parametric.scad.pl b/poster-tube-lid-parametric.scad.pl index f30aea4..9fa0b2e 100755 --- a/poster-tube-lid-parametric.scad.pl +++ b/poster-tube-lid-parametric.scad.pl @@ -17,9 +17,8 @@ my $jcurverad = 5; my $tall = 50; my $lin_len = 5; -my $lin2_len = 9; -my $sine_len = 6; -my $sine_height = 6; +my $sine_size = 10; +my $sine_angle = TAU/8; my $ballend_xr = $thick/2; @@ -31,7 +30,6 @@ my @i_sections = qw(ball0 -6 lin1 2 sine1 10 - - lin2 -2 ball2 6 - ); @@ -56,6 +54,8 @@ sub point ($$$$) { 0 ); my $i_thickscale = 1.0; + my $sine_len = $sine_size * sin($sine_angle); + my $sine_height = $sine_size * (1 - cos($sine_angle)); if ($ip =~ m/^lin[01]$/) { $i_offset = V( -$lin_len * $it, @@ -66,19 +66,15 @@ sub point ($$$$) { $i_outward = V( sin($it * TAU/2), -cos($it * TAU/2), 0 ); - } elsif ($ip =~ m/^lin2$/) { - $i_offset = V( -$lin_len -$sine_len - $it*$lin2_len, - 0, - +$sine_height ); } elsif ($ip =~ m/^sine[01]$/) { - $i_offset = V( -$lin_len -$it*$sine_len, + my $angle = $it * $sine_angle; + $i_offset = V( -$sine_size * sin($angle) -$lin_len, 0, - $sine_height * ( 0.5 - 0.5*cos( $it*TAU/2 ) ) + +$sine_size * (1 - cos($angle)) ); } elsif ($ip =~ m/^ball[02]$/) { my $angle = $it * TAU/4; $i_offset = V( -$lin_len -$sine_len - -($ip =~ m/2/ ? $lin2_len : 0) -sin($angle) * $ballend_xr, 0, +$sine_height