Commits

Trammell Hudson committed 55a98b2

kerf works

  • Participants
  • Parent commits 5c43118

Comments (0)

Files changed (1)

 
 my $units = "mm"; # mm = 1, inches = 1000 / 25.4
 my $thickness = 3;
-my $sides = 5;
+my $sides = 4;
 my $edge = 30;
 my $height = 20;
 my $tab_width = 8;
+my $kerf = 0.1;
 
 my $deg2rad = 
 
 # Compute the height of the interior triangle
 my $interior_angle = 360.0 / $sides;
-my $interior_len = $edge - $thickness/2;
+my $interior_len = $edge - $thickness;
 my $interior_radius = ($interior_len/2) / tan(deg2rad($interior_angle/2));
 
 
 #
 # Draw the top (and bottom piece)
 #
-#<g transform="translate($edge $edge)">
 print <<"";
-<g transform="translate(100 100)">
+<g transform="translate($edge $edge)">
 
 for my $side (0..$sides-1)
 {
 	my $hx = $interior_len / 2;
 
 	# Put one tab in the middle
-	my $tab_x1 = $hx - $tab_width/2;
-	my $tab_x2 = $hx + $tab_width/2;
+	my $tab_x1 = $hx - $tab_width/2 - $kerf;
+	my $tab_x2 = $hx + $tab_width/2 + $kerf;
 
 	print <<"";
 	<g
 	><path
 		stroke="#ff0000"
 		fill="none"
-		stroke-width="1px"
+		stroke-width="0.1px"
 		d="M
 
 	print <<"";
 		$interior_len 0
 
 	print <<"";
-	"/><text>$side</text></g>
+	"/></g>
 
 }
 
 # Draw the edge pieces
 #
 print <<"";
-<g transform="translate(200 200)">
+<g transform="translate(0 @{[$edge*2]})">
 
 for my $side (0..$sides-1)
 {
 	my $origin_x = $side * ($edge + $thickness + 2);
 
 	# Put one tab in the middle of the top and bottom edges
-	my $tab_x1 = $edge/2 - $tab_width/2;
-	my $tab_x2 = $edge/2 + $tab_width/2;
+	# Make it smaller than the kerf for a tighter fit with the
+	# prodruting tab on the top/bottom pieces
+	my $top_tab_x1 = $edge/2 - $tab_width/2 + $kerf - $thickness/2;
+	my $top_tab_x2 = $edge/2 + $tab_width/2 - $kerf - $thickness/2;
 
-	# Put one tab in the middle of the left and right edges
-	my $side_tab_x1 = $height/2 - $tab_width/2;
-	my $side_tab_x2 = $height/2 + $tab_width/2;
+	my $bottom_tab_x1 = $edge/2 - $tab_width/2 + $kerf + $thickness/2;
+	my $bottom_tab_x2 = $edge/2 + $tab_width/2 - $kerf + $thickness/2;
+
+	# Put one tab in the middle of the left edge.  It goes in,
+	# so make it smaller than than the kerf.
+	my $left_tab_x1 = $height/2 - $tab_width/2 + $kerf;
+	my $left_tab_x2 = $height/2 + $tab_width/2 - $kerf;
+
+	# Put one tab in the middle of the right edge.  it goes out,
+	# so make it larger than the kerf.
+	my $right_tab_x1 = $height/2 - $tab_width/2 - $kerf;
+	my $right_tab_x2 = $height/2 + $tab_width/2 + $kerf;
 
 	print <<"";
 	<g transform="translate($origin_x 0)">
 		transform="translate(0 0) rotate(0 0 0)"
 		stroke="#ff0000"
 		fill="none"
-		stroke-width="1px"
+		stroke-width="0.1px"
 		d="M
 			$thickness 0
-			$tab_x1 0
-			$tab_x1 -$thickness
-			$tab_x2 -$thickness
-			$tab_x2 0
+			@{[$bottom_tab_x1-$kerf]} 0
+			$bottom_tab_x1 -$thickness
+			$bottom_tab_x2 -$thickness
+			@{[$bottom_tab_x2+$kerf]} 0
 			$edge 0
 		"
 	/>
 	<path
 		transform="translate($edge 0) rotate(-90 0 0)"
 		stroke="#ff0000"
-		stroke-width="1px"
+		stroke-width="0.1px"
 		fill="none"
 		d="M
 			0 0
-			$side_tab_x1 0
-			$side_tab_x1 $thickness
-			$side_tab_x2 $thickness
-			$side_tab_x2 0
+			$right_tab_x1 0
+			$right_tab_x1 $thickness
+			$right_tab_x2 $thickness
+			$right_tab_x2 0
 			$height 0
 		"
 	/>
 	<path
 		transform="translate($edge -$height) rotate(-180 0 0)"
 		stroke="#ff0000"
-		stroke-width="1px"
+		stroke-width="0.1px"
 		fill="none"
 		d="M
 			0 0
-			$tab_x1 0
-			$tab_x1 -$thickness
-			$tab_x2 -$thickness
-			$tab_x2 0
+			@{[$top_tab_x1-$kerf]} 0
+			$top_tab_x1 -$thickness
+			$top_tab_x2 -$thickness
+			@{[$top_tab_x2+$kerf]} 0
 			@{[$edge - $thickness]} 0
 		"
 	/>
 
 	print <<"";
-	<!-- left side edge; tab goes out-->
+	<!-- left side edge; tab goes in-->
 	<path
 		transform="translate($thickness -$height) rotate(-270 0 0)"
 		stroke="#ff0000"
-		stroke-width="1px"
+		stroke-width="0.1px"
 		fill="none"
 		d="M
 			0 0
-			$side_tab_x1 0
-			$side_tab_x1 -$thickness
-			$side_tab_x2 -$thickness
-			$side_tab_x2 0
+			@{[$left_tab_x1-$kerf]} 0
+			$left_tab_x1 -$thickness
+			$left_tab_x2 -$thickness
+			@{[$left_tab_x2+$kerf]} 0
 			$height 0
 		"
 	/>