in my kettle, there are mounting holes at every 90 degrees, and these must be accurate. i wrote a little script using 3d studio max to create a bitmap, and draw/plot any number of interleaved spirals in that bitmap, with each spiral being a differing hue (colour), and to work out the distance between each mounting hole, so that when all the plates are rolled up, the distance between each plate is constant, this is an early test
this is the bitmap my 3d studio max maxscript generated, it gives me a 300dpi visualisation of the 4 interleaved spirals
this script also gives me the distance between mounting holes which are 90 degrees apart
... all these dimensions were the ones i used in my kettle
you NEED to add a bit extra to the lengths as the mounting hole locations reported below are where the centre of the hole is made, when i say the 'theoretical' plate length in this example is 1069mm, i mean the distance between the centres of the last and first mounting hole, and not including where i have duplicated (or should that be triplicated) the first mounting hole so i could fold over the shim to create a rigid mounting / electrode post
if you are cutting and pasting the script into max the smiley face near the end of the script should be a closed round bracket )
the smiley face doesnt paste in as a ), so you need to make sure two closed round brackets occur
at that point
if ((mod z 90.) == 0) then print (circum / dpmm)
)
)
display spiral
this is the text output of the script, stuff after the = ('equals sign) are my comments
========
Welcome to MAXScript.
28 = inner diameter in millimetres, inner pvc pipe was 25mm/1" + (2 x 1.5mm) rubber spacers = 28mm
2.0 = spacing between plates, including material thickness (i used 0.25mm/10thou" stainless shim, so the gap is 1.75mm)
11.811 = pixels per millimetre
5 = number of turns
4 = number of plates
16.0
108.0 = outer diameter in millimetres
1275.59 = bitmap height/width in pixels, rounded to 1276, 1276@300dpi = 4.2533" = 108mm = outer diameter
BitMap:
#((color 255 0 255)) = hue changes with each plate, seed colour is any 100% primary (red,green,blue) or secondary (yellow, cyan, magenta) colour
0.0
4
90
===start of mounting hole locations, beginning at the outside, and the distance of the mounting locations gradually decreasing
0.0
83.2762
163.412
240.407
314.262
384.976
452.55
516.984
578.278
636.432
691.446
743.322
792.058
837.655
880.115
919.437
955.62
988.666
1018.58
1045.36
1069.01
OK
OK
true
1069.01 = distance between first and last mounting hole in millimetres
1069.01
1069.01
28.0
108.0
108.0
OK
the script is as below
=======================
id = 28
spacing = 2.0
dpmm = 300 / 25.4
turns = 5
plates = 4
decrement = plates * 2 * spacing
diameter = (turns * decrement) + id
pxls = diameter * dpmm
spiral = bitmap ((pxls + 0.5) as integer) ((pxls + 0.5) as integer) color:white
pxlcolour = #(color 255 0 255)
circum = z = zz = theta = sn = cs = pxlD = pxlR = sx = cy = lastx = lasty = deltax = deltay = 0.0
deg = 360 / plates
for zz = 0 to (360-deg) by deg do
(
pxlcolour.h = (zz / 360.) * 255
pxlD=pxls
for z = zz to ((turns*360) + zz) by .03125 do
(
if z > 0 then (lastx = sx ; lasty = cy)
theta = mod z 360
sn = sin theta
cs = cos theta
pxlD = pxls - (((z-zz) / (360.)) * decrement * dpmm)
pxlR = pxlD / 2
sx = (pxls / 2) + (sn * pxlR)
cy = (pxls / 2) + (cs * pxlR)
if z == 0 then (lastx = sx ; lasty = cy)
setPixels spiral [((sx + 0.5) as integer),((cy + 0.5) as integer)] pxlcolour
if zz == 0 then
(
deltax = sx - lastx
deltay = cy - lasty
circum = sqrt((deltax * deltax) + (deltay * deltay)) + circum
if ((mod z 90.) == 0) then print (circum / dpmm)
)
 
display spiral
)
display spiral
setPixels spiral [((pxls / 2) as integer),((pxls / 2) as integer)] #(color 255 255 255)
lngth = circum / dpmm
print lngth
print diameter
plate layout ... this script is one for 1.75mm spacing and 5.75 turns per plate, so each plate is more than 1200mm long, but i think that was a bit tight of a tolerance ... maybe i used that version for my plastic mockup, can't quite remember exactly ... the 4 spiral cell uses 2 differing plates, the differece being how the holes are offset, look closely at the mounting holes that are the three-ones-in-a-row, so that when folded form the outer electrode posts, the offset as referenced to the top (non-L) edge of the plates are slightly different, so that the plates can be mounted 90 degrees apart, 2 of each plate are used
you can use the script to make spirals with different number of plates
here the spacing (2mm), internal diameter (28mm) and number of turns (5) are the same
in a 1 plate design,
each theoretical plate length = 597mm, outside diameter = 48mm
in a 2 plate design,
each theoretical plate length = 754mm, outside diameter = 68mm
in a 3 plate design,
each theoretical plate length = 912mm, outside diameter = 88mm
====
you would need to change the line
if ((mod z 90.) == 0) then print (circum / dpmm)
if you wanted to change the number of mounting holes from one every 90 degrees
change it to
if ((mod z 60.) == 0) then print (circum / dpmm)
if you want mounting holes every 60 degrees
play around with the number of turns to get the outside diameter you want
you can use the script to make spirals with different number of plates
here the spacing (2mm), internal diameter (28mm) and number of turns (5) are the same
in a 6 plate design,
each theoretical plate length = 1384mm, outside diameter = 148mm
in a 7 plate design,
each theoretical plate length = 1541mm, outside diameter = 168mm
in a 8 plate design,
each theoretical plate length = 1699mm, outside diameter = 188mm
====
you would need to change the line
if ((mod z 90.) == 0) then print (circum / dpmm)
if you wanted to change the number of mounting holes from one every 90 degrees
change it to
if ((mod z 45.) == 0) then print (circum / dpmm)
if you want mounting holes every 45 degrees
play around with the number of turns to get the outside diameter you want |
|