(no subject)
Dec. 3rd, 2022 06:50 pmPics below.
Over and over on this project, I find I have to make drawings. Trying to get a quote for silicon bronze bar cut to length (they sent me a quote for aluminium bronze afterward, at three times the price of McMaster, not boding well for silicon bronze prices), they wanted a drawing, so I made a drawing of their bar in their own sizes... in two identical pieces.... cut to length. Trying to get another gooseneck toggle made, I had to make drawings. Neptune stole my companionway hatch cover and Tap Plastics, who will cut pieces to shape (the next level above cut to size, which they also and more usually do, which is the next level above cut to length) wanted drawings as pdf to scale. I started to try to do that in Inkscape, but I didn't see a way to specify exact lengths, just try to eyeball against the ruler. Worse, there's a curve at the top, and I didn't know what to do about that.
Demons whispered in my ear, "if you do this in PostScript, you can set a scale so that your numeric units are inches, then you can just type in the measurements you took". So I did.
%!PS-Adobe-2.0
%%BeginProlog
<< /PageSize [2000 2200] >> setpagedevice
72 72 scale % work in inches... by default, numbers are "points", and there are 72 points to an inch, so just scale up by 72 and we're working in inches
% 0,0 is the bottom left corner
% and things starting with a percent sign are comments.
1 1 translate % just move away from the margin a bit... one inch, in fact
newpath % start drawing
0.0138 setlinewidth % this looked reasonable. the default of one point was an excessively fat line. I probably picked some even fraction of an inch here.
1.5625 0 moveto % bottom left corner
0 26.75 lineto % top left corner
% did this initially just testing a straight line from the top two corners where it should curve up a bit, just to see that otherwise
% the basic shape was right
% 25.875 25.75 lineto % top right corner -- should be an arc instead
% just some notes on measurements, of heights of the cover 1/4 way, 1/2 way, and 3/4 way cross
% 26-5/8" left 25.625 -- this is the starting point for the curve
% 27-1/8" 1/4 way 27.125
% 27-3/8" middle 27.375
% x1 y1 x2 y2 x3 y3 curveto
% "This operator draws a curve from the current point to the point (x3, y3) using points (x1, y1) and (x2, y2) as control points."
% almost. predictably, this isn't symmetrical.
% 6.46875 27.125 % 1/4 way across
% 12.9375 27.375 % 1/2 way across
% 19.40625 27.125 % 3/4 way across
% curveto
% this is where I figured out it isn't a simple curve.... I could have and maybe should have made multiple curves
% each through three points, but I was worried that one curve wouldn't connect to the next smoothly but leave an
% elbow. that was probably unfounded and I should have at least tried it.
% initially I tried one curve with those left point, 1/4 way, 1/2 way, 3/4 way points, without an all-the-way-across
% point, which, of course, got the left side fitting better at the expense of the right hand side. curveto takes
% a fixed number of points and I wanted more.
% a bit short
% but we can tweak the control points (adding values to height to make it look right)
6.46875 27.125 0.5 add % approx 1/4 way across
19.406254 27.125 0.5 add % approx 3/4 way across
25.875 26.75 % top right corner
curveto
% back to a single curve with four points to make it symmetric, and I just tweaked the middle two points until it was close.
% had heights at 2 inch interval and, again, should have just made a bunch of curves and trusted them to
% blend in to each other where they started/stopped. with enough curves, that should have worked
% pretty well.
% heights:
% 1 26.625
% 2 26.875
% 3 27
% 4 27.125
% 5 27.25
% 6 27.25
% 7 27.25
% 8 27.25
% 9 27.125
%10 27.0625
%11 26.6875 -- would be 26-5/8 if 2 inches in but about 1.5" from the right side here
22.75 1.5625 add 0 lineto % bottom right corner
1.5625 0 lineto % bottom left corner again
closepath
stroke
% ruler for top of the pane
% to get my curve more or less right, I drew a bunch of lines, one for each of my
% height measurements, then just tweaked the curve manually until it closely
% fit the height measurements at all points.
% then before submitting the drawing, I commented them out and hid them.
% newpath
% 0 27.375 moveto 25.875 27.375 lineto
% closepath
% stroke
% lines going up and down
% newpath
% % 1/4 height
% 6.46875 0 moveto 6.46875 27.125 lineto
% % 1/2
% 12.9375 0 moveto 12.9375 27.375 lineto
% % 3/4
% 19.40625 0 moveto 19.40625 27.125 lineto
% closepath
% stroke
% newpath
% 0 1.5625 add dup 0 moveto 26.75 lineto
% 2 1.5625 add dup 0 moveto 26.625 lineto
% 4 1.5625 add dup 0 moveto 26.875 lineto
% 6 1.5625 add dup 0 moveto 27 lineto
% 8 1.5625 add dup 0 moveto 27.125 lineto
% 10 1.5625 add dup 0 moveto 27.25 lineto
% 12 1.5625 add dup 0 moveto 27.25 lineto
% 14 1.5625 add dup 0 moveto 27.25 lineto
% 16 1.5625 add dup 0 moveto 27.25 lineto
% 18 1.5625 add dup 0 moveto 27.125 lineto
% 20 1.5625 add dup 0 moveto 27.0625 lineto
% 22 1.5625 add dup 0 moveto 26.6875 lineto % would be 26-5/8 if 2 inches in
% closepath
% stroke
% used stack based math a bit there to avoid having to add things myself. 1.5625 is how far
% in the bottom left corner is relative the top; it flares outward on both sides.
% measurements were taken at 2 inch intervals, so add that sequence to the starting point.
% the X offset at the top is the same as at the bottom, so used 'dup' to copy that result.
% like in Forth, everything goes on the stack, then operations pull values off of the stack.
showpage
%
%
I converted the ps to pdf with ps2pdf (the *nix command line tool), and it looks like this:

Tap was able to take that directly and feed it to their laser machines and cut the part.
I'm still waiting on wood backing (fronting, actually) for where the hasp lock mounts.
Oak. Not teak. In the mean time, I'm using a temporary companionway cover made out of
some half rotten plywood I found by the side of the road.
Temporary companionway hatch cover:


Little battery powered Chinese angle grinder that takes the same battery as the Makita drill:

Chainplate replacement, not quite 1/3rd way done:

Over and over on this project, I find I have to make drawings. Trying to get a quote for silicon bronze bar cut to length (they sent me a quote for aluminium bronze afterward, at three times the price of McMaster, not boding well for silicon bronze prices), they wanted a drawing, so I made a drawing of their bar in their own sizes... in two identical pieces.... cut to length. Trying to get another gooseneck toggle made, I had to make drawings. Neptune stole my companionway hatch cover and Tap Plastics, who will cut pieces to shape (the next level above cut to size, which they also and more usually do, which is the next level above cut to length) wanted drawings as pdf to scale. I started to try to do that in Inkscape, but I didn't see a way to specify exact lengths, just try to eyeball against the ruler. Worse, there's a curve at the top, and I didn't know what to do about that.
Demons whispered in my ear, "if you do this in PostScript, you can set a scale so that your numeric units are inches, then you can just type in the measurements you took". So I did.
%!PS-Adobe-2.0
%%BeginProlog
<< /PageSize [2000 2200] >> setpagedevice
72 72 scale % work in inches... by default, numbers are "points", and there are 72 points to an inch, so just scale up by 72 and we're working in inches
% 0,0 is the bottom left corner
% and things starting with a percent sign are comments.
1 1 translate % just move away from the margin a bit... one inch, in fact
newpath % start drawing
0.0138 setlinewidth % this looked reasonable. the default of one point was an excessively fat line. I probably picked some even fraction of an inch here.
1.5625 0 moveto % bottom left corner
0 26.75 lineto % top left corner
% did this initially just testing a straight line from the top two corners where it should curve up a bit, just to see that otherwise
% the basic shape was right
% 25.875 25.75 lineto % top right corner -- should be an arc instead
% just some notes on measurements, of heights of the cover 1/4 way, 1/2 way, and 3/4 way cross
% 26-5/8" left 25.625 -- this is the starting point for the curve
% 27-1/8" 1/4 way 27.125
% 27-3/8" middle 27.375
% x1 y1 x2 y2 x3 y3 curveto
% "This operator draws a curve from the current point to the point (x3, y3) using points (x1, y1) and (x2, y2) as control points."
% almost. predictably, this isn't symmetrical.
% 6.46875 27.125 % 1/4 way across
% 12.9375 27.375 % 1/2 way across
% 19.40625 27.125 % 3/4 way across
% curveto
% this is where I figured out it isn't a simple curve.... I could have and maybe should have made multiple curves
% each through three points, but I was worried that one curve wouldn't connect to the next smoothly but leave an
% elbow. that was probably unfounded and I should have at least tried it.
% initially I tried one curve with those left point, 1/4 way, 1/2 way, 3/4 way points, without an all-the-way-across
% point, which, of course, got the left side fitting better at the expense of the right hand side. curveto takes
% a fixed number of points and I wanted more.
% a bit short
% but we can tweak the control points (adding values to height to make it look right)
6.46875 27.125 0.5 add % approx 1/4 way across
19.406254 27.125 0.5 add % approx 3/4 way across
25.875 26.75 % top right corner
curveto
% back to a single curve with four points to make it symmetric, and I just tweaked the middle two points until it was close.
% had heights at 2 inch interval and, again, should have just made a bunch of curves and trusted them to
% blend in to each other where they started/stopped. with enough curves, that should have worked
% pretty well.
% heights:
% 1 26.625
% 2 26.875
% 3 27
% 4 27.125
% 5 27.25
% 6 27.25
% 7 27.25
% 8 27.25
% 9 27.125
%10 27.0625
%11 26.6875 -- would be 26-5/8 if 2 inches in but about 1.5" from the right side here
22.75 1.5625 add 0 lineto % bottom right corner
1.5625 0 lineto % bottom left corner again
closepath
stroke
% ruler for top of the pane
% to get my curve more or less right, I drew a bunch of lines, one for each of my
% height measurements, then just tweaked the curve manually until it closely
% fit the height measurements at all points.
% then before submitting the drawing, I commented them out and hid them.
% newpath
% 0 27.375 moveto 25.875 27.375 lineto
% closepath
% stroke
% lines going up and down
% newpath
% % 1/4 height
% 6.46875 0 moveto 6.46875 27.125 lineto
% % 1/2
% 12.9375 0 moveto 12.9375 27.375 lineto
% % 3/4
% 19.40625 0 moveto 19.40625 27.125 lineto
% closepath
% stroke
% newpath
% 0 1.5625 add dup 0 moveto 26.75 lineto
% 2 1.5625 add dup 0 moveto 26.625 lineto
% 4 1.5625 add dup 0 moveto 26.875 lineto
% 6 1.5625 add dup 0 moveto 27 lineto
% 8 1.5625 add dup 0 moveto 27.125 lineto
% 10 1.5625 add dup 0 moveto 27.25 lineto
% 12 1.5625 add dup 0 moveto 27.25 lineto
% 14 1.5625 add dup 0 moveto 27.25 lineto
% 16 1.5625 add dup 0 moveto 27.25 lineto
% 18 1.5625 add dup 0 moveto 27.125 lineto
% 20 1.5625 add dup 0 moveto 27.0625 lineto
% 22 1.5625 add dup 0 moveto 26.6875 lineto % would be 26-5/8 if 2 inches in
% closepath
% stroke
% used stack based math a bit there to avoid having to add things myself. 1.5625 is how far
% in the bottom left corner is relative the top; it flares outward on both sides.
% measurements were taken at 2 inch intervals, so add that sequence to the starting point.
% the X offset at the top is the same as at the bottom, so used 'dup' to copy that result.
% like in Forth, everything goes on the stack, then operations pull values off of the stack.
showpage
%
%
I converted the ps to pdf with ps2pdf (the *nix command line tool), and it looks like this:

Tap was able to take that directly and feed it to their laser machines and cut the part.
I'm still waiting on wood backing (fronting, actually) for where the hasp lock mounts.
Oak. Not teak. In the mean time, I'm using a temporary companionway cover made out of
some half rotten plywood I found by the side of the road.
Temporary companionway hatch cover:


Little battery powered Chinese angle grinder that takes the same battery as the Makita drill:

Chainplate replacement, not quite 1/3rd way done:
