From f53a4eeffb1f9eb4e26c48f63f62d1d5143c2a02 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 5 Jan 2024 15:05:59 +0100 Subject: [PATCH 01/30] add reference bottle clips --- .gitmodules | 3 + 31C3-bottle-clip.scad | 198 + OHM2021-bottle-clip/OHM2013-bottle-clip.scad | 112 + OHM2021-bottle-clip/ohm2013_1.dxf | 3324 ++++++++ OHM2021-bottle-clip/ohm2013_2.dxf | 4206 ++++++++++ OHM2021-bottle-clip/ohm2013_3.dxf | 7806 ++++++++++++++++++ OHM2021-bottle-clip/write | 1 + README.md | 3 + write | 1 + 9 files changed, 15654 insertions(+) create mode 100644 .gitmodules create mode 100644 31C3-bottle-clip.scad create mode 100644 OHM2021-bottle-clip/OHM2013-bottle-clip.scad create mode 100644 OHM2021-bottle-clip/ohm2013_1.dxf create mode 100644 OHM2021-bottle-clip/ohm2013_2.dxf create mode 100644 OHM2021-bottle-clip/ohm2013_3.dxf create mode 120000 OHM2021-bottle-clip/write create mode 100644 README.md create mode 160000 write diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..0180858 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "write"] + path = write + url = https://github.com/rohieb/Write.scad diff --git a/31C3-bottle-clip.scad b/31C3-bottle-clip.scad new file mode 100644 index 0000000..b0ad6f4 --- /dev/null +++ b/31C3-bottle-clip.scad @@ -0,0 +1,198 @@ +include + +/** + * A name tag that can easily be clipped to the neck of your bottle. + * Copyright (C) 2013 Roland Hieber + * + * This file was modified by obelix for the + * OHM2013-Logo. If you wish to use other logos please use the original + * file. All other parameters were not modified. + * + * Version of the modification: 1.0 + * + * See examples.scad for examples on how to use this module. + * + * The contents of this file are licenced under CC-BY-SA 3.0 Unported. + * See https://creativecommons.org/licenses/by-sa/3.0/deed for the + * licensing terms. + */ + +/** + * Creates one instance of a bottle clip name tag. The default values are + * suitable for 0.5l Club Mate bottles (and similar bottles). By default, logo + * and text are placed on the name tag so they both share half the height. In this + * version the logo is fixed. + * + * Parameters: + * ru: the radius on the upper side of the clip + * rl: the radius on the lower side of the clip + * ht: the height of the clip + * width: the thickness of the wall. Values near 2.5 usually result in a good + * clippiness for PLA prints. + * name: the name that is printed on your name tag. For the default ru/rt/ht + * values, this string should not exceed 18 characters to fit on the name tag. + * font: the path to a font for Write.scad. + */ + +/* [Global] */ + +// Name on the first tag +name1 = "djerun"; // Name + +// Name on the second tag +name2 = "djerun"; // Name + +// Size first tag +type1 = "mate"; // [mate:Club-Mate,longneck:Longneck] + +// Size second tag +type2 = "longneck"; // [mate:Club-Mate,longneck:Longneck] + +// Font +font = 3; // [1:Letters,2:BlackRose,3:Orbitron,4:Knewave,5:Braille] + + +/* [Hidden] */ + +$fn = 100; +if(font == 1) { generate("write/Letters.dxf");} +if(font == 2) { generate("write/BlackRose.dxf");} +if(font == 3) { generate("write/orbitron.dxf");} +if(font == 4) { generate("write/knewave.dxf");} +if(font == 5) { generate("write/braille.dxf");} + + +module generate(font) { + if( name1 != "") { + if(type1 == "mate") { + echo("Creating normal mate tag with nick: ", name1); + bottle_clip(13,17.5,26,2.5,name1,font); + } + if(type1 == "longneck") { + bottle_clip(13,15,26,2.5,name1, font); + echo("Creating longneck tag with nick: ", name1); + + } + } + if( name2 != "") { + if(type2 == "mate") { + rotate([0,0,180])translate([-15,0,0])bottle_clip(13,17.5,26,2.5,name2,font); + echo("Creating normal mate tag with nick: ", name2); + } + if(type2 == "longneck") { + rotate([0,0,180])translate([-15,0,0])bottle_clip(13,15,26,2.5,name2, font); + echo("Creating longneck tag with nick: ", name2); + } + } +} + +module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name=name1, font="write/orbitron.dxf") { + + e=100; // should be big enough, used for the outer boundary of the text/logo + r_diff = rl-ru; + text_pos = 18; + + difference() { + rotate([0,0,-45]) + color("red") union() { + cylinder(r1=rl+width, r2=ru+width, h=ht); + writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); + translate([0,0,text_pos]) + rotate([0,-90,90]) + 31C3_mate(10,0.6,1.5+ru+text_pos*(r_diff)/ht,7,asin(r_diff/ht)); + } + // inner cylinder which is substracted + translate([0,0,-1]) + cylinder(r1=rl, r2=ru, h=ht+2); + // outer cylinder which is substracted, so the text and the logo end + // somewhere on the outside ;-) + difference () { + cylinder(r1=rl+e, r2=ru+e, h=ht); + translate([0,0,-1]) + // Note: bottom edges of characters are hard to print when character + // depth is > 0.7 + cylinder(r1=rl+width+0.7, r2=ru+width+0.7, h=ht+2); + } + // finally, substract a cube as a gap so we can clip it to the bottle + translate([0,0,-1]) cube([50,50,50]); + } +} + +/** + * Creates one instance of a bottle clip name tag suitable for 0.33l longneck + * bottles (like fritz cola, etc.). All parameters are passed to the module + * bottle_clip(), see there for their documentation. + */ +//module bottle_clip_longneck(name="", width=2.5, font="write/orbitron.dxf") { +// bottle_clip(name=name, ru=13, rl=15, ht=26, width=width, font=font); +//} + +/** + * The Steinie-Tag has been removed since it does not support logos. +**/ + +// Generate the 31C3 Logo + +rad=20; +thick = 2; + +//31C3_cylinder(100,5,200,50); + +module 31C3_mate(height, wall, rad, extrude=2, incl=10) { + length = (height+wall) * 2.4 ; + + angle = asin(0.5*(height+wall)/rad); + //echo(angle); + + translate([0,0,0])rotate([0,0,0]) { + rotate([-angle*2.4,0,0])translate([0,0,rad-extrude/2])rotate([0,incl,0])31C3_3(height, wall, extrude); + rotate([-angle,0,0])translate([0,0,rad-extrude/2])rotate([0,incl,0])31C3_1(height, wall, extrude); + rotate([angle*0.4,0,0])translate([0,0,rad-extrude/2])rotate([0,incl,0])31C3_C(height, wall, extrude); + rotate([angle*2.4,0,0])translate([0,0,rad-extrude/2])rotate([0,incl,0])31C3_3(height, wall, extrude); + } +} + +module 31C3(height, wall, extrude=2) { + translate([0,(height+wall)*2.4,0])31C3_3(height, wall, extrude); + translate([0,(height+wall)*1.7,0])31C3_1(height, wall, extrude); + translate([0,height+wall,0])31C3_C(height, wall, extrude); + 31C3_3(height, wall, extrude); +} + +module 31C3_logo (size, wall, extrude) { + open_ring(size,wall*2,size*0.75, extrude); + translate([-wall,wall*2,0])cube([wall*2,size*1.2,extrude]); +} + +module 31C3_3(height, wall, extrude) { + open_ring(height/2,wall*2,height*0.5*0.75, extrude); + translate([-wall,-height/4,0])cube([wall*2,height*0.75,extrude]); +} + +module 31C3_1(height, wall, extrude) { + rotate([0,0,90])translate([0,0,extrude/2])cube([wall*2,height,extrude], center=true); +} + +module 31C3_C(height, wall, extrude) { + rotate([0,0,180])open_ring(height/2,wall*2,height*0.5*0.75, extrude); +} + +module open_ring(rad, wall, gap, extrude=2) { + difference() { + ring(rad,wall, extrude); + translate([-gap/2,0,-1])cube([gap,rad+1,extrude+2]); + } +} + +module ring(rad, wall, extrude=2) { + difference() { + cylinder(r=rad,h=extrude); + translate([0,0,-1])cylinder(r=rad-wall,h=extrude+2); + } +} + +/* +Size Mate 13 17.5 +Size Longneck 13 15 +Size Cola Cola 1L 15 25 +*/ diff --git a/OHM2021-bottle-clip/OHM2013-bottle-clip.scad b/OHM2021-bottle-clip/OHM2013-bottle-clip.scad new file mode 100644 index 0000000..56aa3b3 --- /dev/null +++ b/OHM2021-bottle-clip/OHM2013-bottle-clip.scad @@ -0,0 +1,112 @@ +/** + * A name tag that can easily be clipped to the neck of your bottle. + * Copyright (C) 2013 Roland Hieber + * + * This file was modified by obelix for the + * OHM2013-Logo. If you wish to use other logos please use the original + * file. All other parameters were not modified. + * + * Version of the modification: 1.0 + * + * See examples.scad for examples on how to use this module. + * + * The contents of this file are licenced under CC-BY-SA 3.0 Unported. + * See https://creativecommons.org/licenses/by-sa/3.0/deed for the + * licensing terms. + */ + +include + +/** + * Creates one instance of a bottle clip name tag. The default values are + * suitable for 0.5l Club Mate bottles (and similar bottles). By default, logo + * and text are placed on the name tag so they both share half the height. In this + * version the logo is fixed. + * + * Parameters: + * ru: the radius on the upper side of the clip + * rl: the radius on the lower side of the clip + * ht: the height of the clip + * width: the thickness of the wall. Values near 2.5 usually result in a good + * clippiness for PLA prints. + * name: the name that is printed on your name tag. For the default ru/rt/ht + * values, this string should not exceed 18 characters to fit on the name tag. + * font: the path to a font for Write.scad. + */ + +bottle_clip(); + +module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="OHM2013", font="write/orbitron.dxf") { + + e=100; // should be big enough, used for the outer boundary of the text/logo + + difference() { + rotate([0,0,-45]) union() { + // main cylinder + cylinder(r1=rl+width, r2=ru+width, h=ht); + // text and logo + if(logo == "") { + writecylinder(name, [0,0,3], rl+0.5, ht/13*7, h=ht/13*8, t=max(rl,ru), + font=font); + } else { + writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), + font=font); + + // The logo has been split in 3 parts. + + rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.9,0.9,1]) + scale([ht/100,ht/100,1]) + translate([-25,-29,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("ohm2013_1.dxf"); + + translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.8,0.8,1]) + scale([ht/100,ht/100,1]) + translate([-18,-22,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("ohm2013_2.dxf"); + + rotate([0,0,44]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.7,0.7,1]) + scale([ht/100,ht/100,1]) + translate([-25,-26,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("ohm2013_3.dxf"); + } + } + // inner cylinder which is substracted + translate([0,0,-1]) + cylinder(r1=rl, r2=ru, h=ht+2); + // outer cylinder which is substracted, so the text and the logo end + // somewhere on the outside ;-) + difference () { + cylinder(r1=rl+e, r2=ru+e, h=ht); + translate([0,0,-1]) + // Note: bottom edges of characters are hard to print when character + // depth is > 0.7 + cylinder(r1=rl+width+0.7, r2=ru+width+0.7, h=ht+2); + } + // finally, substract a cube as a gap so we can clip it to the bottle + translate([0,0,-1]) cube([50,50,50]); + } +} + +/** + * Creates one instance of a bottle clip name tag suitable for 0.33l longneck + * bottles (like fritz cola, etc.). All parameters are passed to the module + * bottle_clip(), see there for their documentation. + */ +module bottle_clip_longneck(name="OHM2013", width=2.5, font="write/orbitron.dxf") { + bottle_clip(name=name, ru=13, rl=15, ht=26, width=width, font=font); +} + +/** + * The Steinie-Tag has been removed since it does not support logos. +**/ + +// vim: set noet ts=2 sw=2 tw=80: diff --git a/OHM2021-bottle-clip/ohm2013_1.dxf b/OHM2021-bottle-clip/ohm2013_1.dxf new file mode 100644 index 0000000..d9779c9 --- /dev/null +++ b/OHM2021-bottle-clip/ohm2013_1.dxf @@ -0,0 +1,3324 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1009 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +1000.0 + 20 +1000.0 + 30 +0.0 + 9 +$FILLMODE + 70 + 0 + 9 +$SPLFRAME + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +0 + 70 + 0 + 62 + 7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.96039 + 20 +5.12744 + 30 +0.0 + 11 +2.08589 + 21 +5.66982 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.08589 + 20 +5.66982 + 30 +0.0 + 11 +2.31054 + 21 +6.16769 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.31054 + 20 +6.16769 + 30 +0.0 + 11 +2.62842 + 21 +6.61079 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.62842 + 20 +6.61079 + 30 +0.0 + 11 +3.0319 + 21 +6.98785 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.0319 + 20 +6.98785 + 30 +0.0 + 11 +4.97894 + 21 +8.45432 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.97894 + 20 +8.45432 + 30 +0.0 + 11 +6.92617 + 21 +9.92085 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.92617 + 20 +9.92085 + 30 +0.0 + 11 +8.87299 + 21 +11.3884 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.87299 + 20 +11.3884 + 30 +0.0 + 11 +10.82 + 21 +12.855 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.82 + 20 +12.855 + 30 +0.0 + 11 +11.2084 + 21 +13.1052 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.2084 + 20 +13.1052 + 30 +0.0 + 11 +11.6272 + 21 +13.2866 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.6272 + 20 +13.2866 + 30 +0.0 + 11 +12.0687 + 21 +13.3985 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.0687 + 20 +13.3985 + 30 +0.0 + 11 +12.5285 + 21 +13.4354 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.5285 + 20 +13.4354 + 30 +0.0 + 11 +13.1755 + 21 +13.3612 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.1755 + 20 +13.3612 + 30 +0.0 + 11 +13.777 + 21 +13.1449 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.777 + 20 +13.1449 + 30 +0.0 + 11 +14.3128 + 21 +12.799 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3128 + 20 +12.799 + 30 +0.0 + 11 +14.7637 + 21 +12.3321 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.7637 + 20 +12.3321 + 30 +0.0 + 11 +15.2528 + 21 +11.3284 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.2528 + 20 +11.3284 + 30 +0.0 + 11 +15.3176 + 21 +10.2532 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.3176 + 20 +10.2532 + 30 +0.0 + 11 +14.975 + 21 +9.23112 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.975 + 20 +9.23112 + 30 +0.0 + 11 +14.244 + 21 +8.39432 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.244 + 20 +8.39432 + 30 +0.0 + 11 +12.297 + 21 +6.92811 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.297 + 20 +6.92811 + 30 +0.0 + 11 +10.35 + 21 +5.46039 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.35 + 20 +5.46039 + 30 +0.0 + 11 +8.40489 + 21 +3.99029 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.40489 + 20 +3.99029 + 30 +0.0 + 11 +6.45768 + 21 +2.52328 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.45768 + 20 +2.52328 + 30 +0.0 + 11 +6.07047 + 21 +2.2736 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.07047 + 20 +2.2736 + 30 +0.0 + 11 +5.65369 + 21 +2.09375 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.65369 + 20 +2.09375 + 30 +0.0 + 11 +5.21121 + 21 +1.98335 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.21121 + 20 +1.98335 + 30 +0.0 + 11 +4.75054 + 21 +1.94586 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.75054 + 20 +1.94586 + 30 +0.0 + 11 +4.10444 + 21 +2.02013 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.10444 + 20 +2.02013 + 30 +0.0 + 11 +3.5031 + 21 +2.23438 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.5031 + 20 +2.23438 + 30 +0.0 + 11 +2.96718 + 21 +2.57986 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.96718 + 20 +2.57986 + 30 +0.0 + 11 +2.51497 + 21 +3.04688 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.51497 + 20 +3.04688 + 30 +0.0 + 11 +2.222 + 21 +3.5191 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.222 + 20 +3.5191 + 30 +0.0 + 11 +2.02875 + 21 +4.03125 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.02875 + 20 +4.03125 + 30 +0.0 + 11 +1.94021 + 21 +4.57362 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.94021 + 20 +4.57362 + 30 +0.0 + 11 +1.96039 + 21 +5.12744 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.96039 + 20 +5.12744 + 30 +0.0 + 11 +1.96039 + 21 +5.12744 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.1013 + 20 +27.3286 + 30 +0.0 + 11 +17.7664 + 21 +30.1819 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.7664 + 20 +30.1819 + 30 +0.0 + 11 +18.9586 + 21 +32.8118 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.9586 + 20 +32.8118 + 30 +0.0 + 11 +20.6439 + 21 +35.1567 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.6439 + 20 +35.1567 + 30 +0.0 + 11 +22.7872 + 21 +37.156 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.7872 + 20 +37.156 + 30 +0.0 + 11 +25.7836 + 21 +38.93 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.7836 + 20 +38.93 + 30 +0.0 + 11 +29.0789 + 21 +39.9501 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.0789 + 20 +39.9501 + 30 +0.0 + 11 +32.5199 + 21 +40.1899 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.5199 + 20 +40.1899 + 30 +0.0 + 11 +35.96 + 21 +39.6189 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.96 + 20 +39.6189 + 30 +0.0 + 11 +38.166 + 21 +38.7844 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.166 + 20 +38.7844 + 30 +0.0 + 11 +40.1907 + 21 +37.6233 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.1907 + 20 +37.6233 + 30 +0.0 + 11 +42.0067 + 21 +36.1529 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.0067 + 20 +36.1529 + 30 +0.0 + 11 +43.5861 + 21 +34.3943 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.5861 + 20 +34.3943 + 30 +0.0 + 11 +46.165 + 21 +29.1031 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +46.165 + 20 +29.1031 + 30 +0.0 + 11 +46.506 + 21 +23.4238 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +46.506 + 20 +23.4238 + 30 +0.0 + 11 +44.6962 + 21 +18.03 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.6962 + 20 +18.03 + 30 +0.0 + 11 +40.8257 + 21 +13.5955 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.8257 + 20 +13.5955 + 30 +0.0 + 11 +37.8289 + 21 +11.8204 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.8289 + 20 +11.8204 + 30 +0.0 + 11 +34.5344 + 21 +10.8001 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.5344 + 20 +10.8001 + 30 +0.0 + 11 +31.0919 + 21 +10.5604 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.0919 + 20 +10.5604 + 30 +0.0 + 11 +27.6519 + 21 +11.1314 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.6519 + 20 +11.1314 + 30 +0.0 + 11 +25.4469 + 21 +11.9669 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.4469 + 20 +11.9669 + 30 +0.0 + 11 +23.4229 + 21 +13.1279 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.4229 + 20 +13.1279 + 30 +0.0 + 11 +21.6079 + 21 +14.5982 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.6079 + 20 +14.5982 + 30 +0.0 + 11 +20.0274 + 21 +16.3587 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.0274 + 20 +16.3587 + 30 +0.0 + 11 +18.481 + 21 +18.8472 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.481 + 20 +18.8472 + 30 +0.0 + 11 +17.4656 + 21 +21.5499 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.4656 + 20 +21.5499 + 30 +0.0 + 11 +16.9992 + 21 +24.3999 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.9992 + 20 +24.3999 + 30 +0.0 + 11 +17.1013 + 21 +27.3286 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.1013 + 20 +27.3286 + 30 +0.0 + 11 +17.1013 + 21 +27.3286 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.75054 + 20 +-0 + 30 +0.0 + 11 +5.52908 + 21 +0.0628256 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.52908 + 20 +0.0628256 + 30 +0.0 + 11 +6.27593 + 21 +0.248589 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.27593 + 20 +0.248589 + 30 +0.0 + 11 +6.98107 + 21 +0.554144 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.98107 + 20 +0.554144 + 30 +0.0 + 11 +7.63396 + 21 +0.974989 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.63396 + 20 +0.974989 + 30 +0.0 + 11 +9.581 + 21 +2.442 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.581 + 20 +2.442 + 30 +0.0 + 11 +11.5282 + 21 +3.90728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.5282 + 20 +3.90728 + 30 +0.0 + 11 +13.4752 + 21 +5.37397 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4752 + 20 +5.37397 + 30 +0.0 + 11 +15.4224 + 21 +6.84169 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.4224 + 20 +6.84169 + 30 +0.0 + 11 +16.3319 + 21 +7.75694 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.3319 + 20 +7.75694 + 30 +0.0 + 11 +16.9432 + 21 +8.84733 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.9432 + 20 +8.84733 + 30 +0.0 + 11 +17.2475 + 21 +10.0426 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.2475 + 20 +10.0426 + 30 +0.0 + 11 +17.2381 + 21 +11.2779 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.2381 + 20 +11.2779 + 30 +0.0 + 11 +17.4579 + 21 +10.9907 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.4579 + 20 +10.9907 + 30 +0.0 + 11 +17.6786 + 21 +10.7031 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.6786 + 20 +10.7031 + 30 +0.0 + 11 +17.8983 + 21 +10.416 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.8983 + 20 +10.416 + 30 +0.0 + 11 +18.1193 + 21 +10.1273 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.1193 + 20 +10.1273 + 30 +0.0 + 11 +18.7101 + 21 +10.5811 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.7101 + 20 +10.5811 + 30 +0.0 + 11 +19.3022 + 21 +11.0344 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.3022 + 20 +11.0344 + 30 +0.0 + 11 +19.8932 + 21 +11.4874 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.8932 + 20 +11.4874 + 30 +0.0 + 11 +20.4851 + 21 +11.9401 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.4851 + 20 +11.9401 + 30 +0.0 + 11 +21.9353 + 21 +10.8384 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.9353 + 20 +10.8384 + 30 +0.0 + 11 +23.4922 + 21 +9.89512 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.4922 + 20 +9.89512 + 30 +0.0 + 11 +25.1471 + 21 +9.11686 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.1471 + 20 +9.11686 + 30 +0.0 + 11 +26.8907 + 21 +8.5096 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.8907 + 20 +8.5096 + 30 +0.0 + 11 +30.9628 + 21 +7.83365 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.9628 + 20 +7.83365 + 30 +0.0 + 11 +35.0368 + 21 +8.11735 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.0368 + 20 +8.11735 + 30 +0.0 + 11 +38.9372 + 21 +9.3271 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.9372 + 20 +9.3271 + 30 +0.0 + 11 +42.4851 + 21 +11.4294 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.4851 + 20 +11.4294 + 30 +0.0 + 11 +47.0694 + 21 +16.6789 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +47.0694 + 20 +16.6789 + 30 +0.0 + 11 +49.2125 + 21 +23.0639 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +49.2125 + 20 +23.0639 + 30 +0.0 + 11 +48.8111 + 21 +29.789 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +48.8111 + 20 +29.789 + 30 +0.0 + 11 +45.7562 + 21 +36.054 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +45.7562 + 20 +36.054 + 30 +0.0 + 11 +43.8854 + 21 +38.1371 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.8854 + 20 +38.1371 + 30 +0.0 + 11 +41.7354 + 21 +39.8767 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.7354 + 20 +39.8767 + 30 +0.0 + 11 +39.3382 + 21 +41.2519 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3382 + 20 +41.2519 + 30 +0.0 + 11 +36.726 + 21 +42.2396 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.726 + 20 +42.2396 + 30 +0.0 + 11 +32.6538 + 21 +42.9153 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.6538 + 20 +42.9153 + 30 +0.0 + 11 +28.579 + 21 +42.6318 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.579 + 20 +42.6318 + 30 +0.0 + 11 +24.6789 + 21 +41.4233 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.6789 + 20 +41.4233 + 30 +0.0 + 11 +21.1312 + 21 +39.3219 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1312 + 20 +39.3219 + 30 +0.0 + 11 +18.5932 + 21 +36.9551 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.5932 + 20 +36.9551 + 30 +0.0 + 11 +16.5976 + 21 +34.179 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.5976 + 20 +34.179 + 30 +0.0 + 11 +15.1843 + 21 +31.0654 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.1843 + 20 +31.0654 + 30 +0.0 + 11 +14.3956 + 21 +27.686 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3956 + 20 +27.686 + 30 +0.0 + 11 +14.2406 + 21 +25.1653 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2406 + 20 +25.1653 + 30 +0.0 + 11 +14.4432 + 21 +22.6821 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.4432 + 20 +22.6821 + 30 +0.0 + 11 +14.9951 + 21 +20.2664 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.9951 + 20 +20.2664 + 30 +0.0 + 11 +15.886 + 21 +17.95 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.886 + 20 +17.95 + 30 +0.0 + 11 +15.291 + 21 +17.4981 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.291 + 20 +17.4981 + 30 +0.0 + 11 +14.6982 + 21 +17.045 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.6982 + 20 +17.045 + 30 +0.0 + 11 +14.1072 + 21 +16.5917 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.1072 + 20 +16.5917 + 30 +0.0 + 11 +13.5142 + 21 +16.139 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.5142 + 20 +16.139 + 30 +0.0 + 11 +13.7349 + 21 +15.8504 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7349 + 20 +15.8504 + 30 +0.0 + 11 +13.9549 + 21 +15.5642 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9549 + 20 +15.5642 + 30 +0.0 + 11 +14.1758 + 21 +15.2778 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.1758 + 20 +15.2778 + 30 +0.0 + 11 +14.3956 + 21 +14.9901 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3956 + 20 +14.9901 + 30 +0.0 + 11 +13.9501 + 21 +15.154 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9501 + 20 +15.154 + 30 +0.0 + 11 +13.4894 + 21 +15.275 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4894 + 20 +15.275 + 30 +0.0 + 11 +13.0136 + 21 +15.3493 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.0136 + 20 +15.3493 + 30 +0.0 + 11 +12.5265 + 21 +15.375 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.5265 + 20 +15.375 + 30 +0.0 + 11 +11.7489 + 21 +15.3119 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.7489 + 20 +15.3119 + 30 +0.0 + 11 +11.0011 + 21 +15.1275 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.0011 + 20 +15.1275 + 30 +0.0 + 11 +10.296 + 21 +14.8229 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.296 + 20 +14.8229 + 30 +0.0 + 11 +9.64307 + 21 +14.4013 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.64307 + 20 +14.4013 + 30 +0.0 + 11 +7.69689 + 21 +12.9346 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.69689 + 20 +12.9346 + 30 +0.0 + 11 +5.75086 + 21 +11.4684 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.75086 + 20 +11.4684 + 30 +0.0 + 11 +3.80469 + 21 +10.0009 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.80469 + 20 +10.0009 + 30 +0.0 + 11 +1.85769 + 21 +8.53435 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.85769 + 20 +8.53435 + 30 +0.0 + 11 +1.16949 + 21 +7.89307 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.16949 + 20 +7.89307 + 30 +0.0 + 11 +0.629992 + 21 +7.14204 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.629992 + 20 +7.14204 + 30 +0.0 + 11 +0.247342 + 21 +6.29861 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.247342 + 20 +6.29861 + 30 +0.0 + 11 +0.0332031 + 21 +5.38439 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.0332031 + 20 +5.38439 + 30 +0.0 + 11 +0 + 21 +4.44515 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0 + 20 +4.44515 + 30 +0.0 + 11 +0.149197 + 21 +3.53054 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.149197 + 20 +3.53054 + 30 +0.0 + 11 +0.474718 + 21 +2.6639 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.474718 + 20 +2.6639 + 30 +0.0 + 11 +0.971462 + 21 +1.86529 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0.971462 + 20 +1.86529 + 30 +0.0 + 11 +1.73372 + 21 +1.07433 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.73372 + 20 +1.07433 + 30 +0.0 + 11 +2.63975 + 21 +0.488172 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.63975 + 20 +0.488172 + 30 +0.0 + 11 +3.65619 + 21 +0.124674 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.65619 + 20 +0.124674 + 30 +0.0 + 11 +4.75054 + 21 +-0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.75054 + 20 +-0 + 30 +0.0 + 11 +4.75054 + 21 +-0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2063 + 20 +34.6036 + 30 +0.0 + 11 +38.6406 + 21 +34.3144 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.6406 + 20 +34.3144 + 30 +0.0 + 11 +39.8122 + 21 +33.5243 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.8122 + 20 +33.5243 + 30 +0.0 + 11 +40.601 + 21 +32.3529 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.601 + 20 +32.3529 + 30 +0.0 + 11 +40.8917 + 21 +30.9189 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.8917 + 20 +30.9189 + 30 +0.0 + 11 +40.601 + 21 +29.4839 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.601 + 20 +29.4839 + 30 +0.0 + 11 +39.8122 + 21 +28.3122 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.8122 + 20 +28.3122 + 30 +0.0 + 11 +38.6406 + 21 +27.5222 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.6406 + 20 +27.5222 + 30 +0.0 + 11 +37.2063 + 21 +27.2329 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2063 + 20 +27.2329 + 30 +0.0 + 11 +35.7715 + 21 +27.5222 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.7715 + 20 +27.5222 + 30 +0.0 + 11 +34.6001 + 21 +28.3129 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.6001 + 20 +28.3129 + 30 +0.0 + 11 +33.81 + 21 +29.4849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.81 + 20 +29.4849 + 30 +0.0 + 11 +33.5208 + 21 +30.9199 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.5208 + 20 +30.9199 + 30 +0.0 + 11 +33.81 + 21 +32.354 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.81 + 20 +32.354 + 30 +0.0 + 11 +34.6001 + 21 +33.5253 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.6001 + 20 +33.5253 + 30 +0.0 + 11 +35.7715 + 21 +34.3153 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.7715 + 20 +34.3153 + 30 +0.0 + 11 +37.2063 + 21 +34.6036 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2063 + 20 +34.6036 + 30 +0.0 + 11 +37.2063 + 21 +34.6036 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.0044 + 20 +13.444 + 30 +0.0 + 11 +36.8431 + 21 +14.4206 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.8431 + 20 +14.4206 + 30 +0.0 + 11 +40.7942 + 21 +17.085 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.7942 + 20 +17.085 + 30 +0.0 + 11 +43.4586 + 21 +21.036 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.4586 + 20 +21.036 + 30 +0.0 + 11 +44.4354 + 21 +25.876 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.4354 + 20 +25.876 + 30 +0.0 + 11 +43.4586 + 21 +30.7154 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.4586 + 20 +30.7154 + 30 +0.0 + 11 +40.7942 + 21 +34.6665 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.7942 + 20 +34.6665 + 30 +0.0 + 11 +36.8431 + 21 +37.3301 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.8431 + 20 +37.3301 + 30 +0.0 + 11 +32.0044 + 21 +38.3065 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.0044 + 20 +38.3065 + 30 +0.0 + 11 +27.1657 + 21 +37.3301 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.1657 + 20 +37.3301 + 30 +0.0 + 11 +23.2143 + 21 +34.6665 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.2143 + 20 +34.6665 + 30 +0.0 + 11 +20.5507 + 21 +30.7154 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.5507 + 20 +30.7154 + 30 +0.0 + 11 +19.5743 + 21 +25.876 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.5743 + 20 +25.876 + 30 +0.0 + 11 +20.5518 + 21 +21.036 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.5518 + 20 +21.036 + 30 +0.0 + 11 +23.2143 + 21 +17.085 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.2143 + 20 +17.085 + 30 +0.0 + 11 +27.1657 + 21 +14.4206 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.1657 + 20 +14.4206 + 30 +0.0 + 11 +32.0044 + 21 +13.444 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.0044 + 20 +13.444 + 30 +0.0 + 11 +32.0044 + 21 +13.444 + 31 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/OHM2021-bottle-clip/ohm2013_2.dxf b/OHM2021-bottle-clip/ohm2013_2.dxf new file mode 100644 index 0000000..c165664 --- /dev/null +++ b/OHM2021-bottle-clip/ohm2013_2.dxf @@ -0,0 +1,4206 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1009 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +1000.0 + 20 +1000.0 + 30 +0.0 + 9 +$FILLMODE + 70 + 0 + 9 +$SPLFRAME + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +0 + 70 + 0 + 62 + 7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3435 + 20 +29.1347 + 30 +0.0 + 11 +16 + 21 +28.69 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16 + 20 +28.69 + 30 +0.0 + 11 +17.6571 + 21 +28.2458 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.6571 + 20 +28.2458 + 30 +0.0 + 11 +19.3128 + 21 +27.8011 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.3128 + 20 +27.8011 + 30 +0.0 + 11 +20.9694 + 21 +27.3561 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.9694 + 20 +27.3561 + 30 +0.0 + 11 +21.1231 + 21 +27.2643 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1231 + 20 +27.2643 + 30 +0.0 + 11 +21.2757 + 21 +27.1715 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.2757 + 20 +27.1715 + 30 +0.0 + 11 +21.43 + 21 +27.0786 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.43 + 20 +27.0786 + 30 +0.0 + 11 +21.5825 + 21 +26.9867 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5825 + 20 +26.9867 + 30 +0.0 + 11 +21.3242 + 21 +26.5914 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.3242 + 20 +26.5914 + 30 +0.0 + 11 +21.0665 + 21 +26.1946 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.0665 + 20 +26.1946 + 30 +0.0 + 11 +20.8067 + 21 +25.7982 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.8067 + 20 +25.7982 + 30 +0.0 + 11 +20.549 + 21 +25.4026 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.549 + 20 +25.4026 + 30 +0.0 + 11 +20.6161 + 21 +25.304 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.6161 + 20 +25.304 + 30 +0.0 + 11 +20.6833 + 21 +25.2061 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.6833 + 20 +25.2061 + 30 +0.0 + 11 +20.7504 + 21 +25.1087 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.7504 + 20 +25.1087 + 30 +0.0 + 11 +20.8193 + 21 +25.01 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.8193 + 20 +25.01 + 30 +0.0 + 11 +20.1181 + 21 +24.4036 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.1181 + 20 +24.4036 + 30 +0.0 + 11 +19.4182 + 21 +23.7961 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.4182 + 20 +23.7961 + 30 +0.0 + 11 +18.7172 + 21 +23.1892 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.7172 + 20 +23.1892 + 30 +0.0 + 11 +18.0161 + 21 +22.5818 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.0161 + 20 +22.5818 + 30 +0.0 + 11 +17.9686 + 21 +22.5785 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.9686 + 20 +22.5785 + 30 +0.0 + 11 +17.9249 + 21 +22.5761 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.9249 + 20 +22.5761 + 30 +0.0 + 11 +17.8767 + 21 +22.574 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.8767 + 20 +22.574 + 30 +0.0 + 11 +17.829 + 21 +22.5731 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.829 + 20 +22.5731 + 30 +0.0 + 11 +16.9647 + 21 +23.1193 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.9647 + 20 +23.1193 + 30 +0.0 + 11 +16.0997 + 21 +23.666 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.0997 + 20 +23.666 + 30 +0.0 + 11 +15.2354 + 21 +24.2108 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.2354 + 20 +24.2108 + 30 +0.0 + 11 +14.3718 + 21 +24.7574 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3718 + 20 +24.7574 + 30 +0.0 + 11 +15.2121 + 21 +24.8889 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.2121 + 20 +24.8889 + 30 +0.0 + 11 +16.0522 + 21 +25.0214 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.0522 + 20 +25.0214 + 30 +0.0 + 11 +16.894 + 21 +25.1531 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.894 + 20 +25.1531 + 30 +0.0 + 11 +17.7344 + 21 +25.2838 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.7344 + 20 +25.2838 + 30 +0.0 + 11 +16.7574 + 21 +25.4635 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.7574 + 20 +25.4635 + 30 +0.0 + 11 +15.7818 + 21 +25.6443 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.7818 + 20 +25.6443 + 30 +0.0 + 11 +14.8047 + 21 +25.8243 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.8047 + 20 +25.8243 + 30 +0.0 + 11 +13.828 + 21 +26.0042 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.828 + 20 +26.0042 + 30 +0.0 + 11 +13.8134 + 21 +26.1251 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8134 + 20 +26.1251 + 30 +0.0 + 11 +13.8021 + 21 +26.2471 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8021 + 20 +26.2471 + 30 +0.0 + 11 +13.7943 + 21 +26.3697 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7943 + 20 +26.3697 + 30 +0.0 + 11 +13.7896 + 21 +26.4935 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7896 + 20 +26.4935 + 30 +0.0 + 11 +13.9286 + 21 +27.1543 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9286 + 20 +27.1543 + 30 +0.0 + 11 +14.0678 + 21 +27.8147 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0678 + 20 +27.8147 + 30 +0.0 + 11 +14.2079 + 21 +28.4751 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2079 + 20 +28.4751 + 30 +0.0 + 11 +14.3435 + 21 +29.1347 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3435 + 20 +29.1347 + 30 +0.0 + 11 +14.3435 + 21 +29.1347 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0 + 20 +17.9044 + 30 +0.0 + 11 +1.40717 + 21 +10.9358 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.40717 + 20 +10.9358 + 30 +0.0 + 11 +5.24376 + 21 +5.24408 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.24376 + 20 +5.24408 + 30 +0.0 + 11 +10.9353 + 21 +1.40728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.9353 + 20 +1.40728 + 30 +0.0 + 11 +17.9057 + 21 +-0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.9057 + 20 +-0 + 30 +0.0 + 11 +24.874 + 21 +1.40728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.874 + 20 +1.40728 + 30 +0.0 + 11 +30.5642 + 21 +5.24408 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.5642 + 20 +5.24408 + 30 +0.0 + 11 +34.4019 + 21 +10.9358 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.4019 + 20 +10.9358 + 30 +0.0 + 11 +35.809 + 21 +17.9044 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.809 + 20 +17.9044 + 30 +0.0 + 11 +34.7542 + 21 +23.9714 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.7542 + 20 +23.9714 + 30 +0.0 + 11 +31.8381 + 21 +29.1482 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.8381 + 20 +29.1482 + 30 +0.0 + 11 +27.4243 + 21 +33.0651 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.4243 + 20 +33.0651 + 30 +0.0 + 11 +21.8854 + 21 +35.3583 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8854 + 20 +35.3583 + 30 +0.0 + 11 +21.8738 + 21 +35.4503 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8738 + 20 +35.4503 + 30 +0.0 + 11 +21.864 + 21 +35.5429 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.864 + 20 +35.5429 + 30 +0.0 + 11 +21.8535 + 21 +35.6349 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8535 + 20 +35.6349 + 30 +0.0 + 11 +21.8429 + 21 +35.7268 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8429 + 20 +35.7268 + 30 +0.0 + 11 +21.829 + 21 +35.6396 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.829 + 20 +35.6396 + 30 +0.0 + 11 +21.8165 + 21 +35.5526 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8165 + 20 +35.5526 + 30 +0.0 + 11 +21.8029 + 21 +35.4656 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8029 + 20 +35.4656 + 30 +0.0 + 11 +21.7894 + 21 +35.3785 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7894 + 20 +35.3785 + 30 +0.0 + 11 +21.7693 + 21 +35.3835 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7693 + 20 +35.3835 + 30 +0.0 + 11 +21.7476 + 21 +35.3882 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7476 + 20 +35.3882 + 30 +0.0 + 11 +21.7276 + 21 +35.3931 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7276 + 20 +35.3931 + 30 +0.0 + 11 +21.706 + 21 +35.3981 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +35.3981 + 30 +0.0 + 11 +21.706 + 21 +35.2471 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +35.2471 + 30 +0.0 + 11 +21.706 + 21 +35.0971 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +35.0971 + 30 +0.0 + 11 +21.706 + 21 +34.9464 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +34.9464 + 30 +0.0 + 11 +21.706 + 21 +34.7954 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +34.7954 + 30 +0.0 + 11 +21.5639 + 21 +33.7964 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5639 + 20 +33.7964 + 30 +0.0 + 11 +21.4199 + 21 +32.7974 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.4199 + 20 +32.7974 + 30 +0.0 + 11 +21.2778 + 21 +31.7983 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.2778 + 20 +31.7983 + 30 +0.0 + 11 +21.135 + 21 +30.7992 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.135 + 20 +30.7992 + 30 +0.0 + 11 +21.2778 + 21 +30.6792 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.2778 + 20 +30.6792 + 30 +0.0 + 11 +21.4199 + 21 +30.5603 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.4199 + 20 +30.5603 + 30 +0.0 + 11 +21.5639 + 21 +30.4413 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5639 + 20 +30.4413 + 30 +0.0 + 11 +21.706 + 21 +30.3214 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +30.3214 + 30 +0.0 + 11 +21.706 + 21 +30.2837 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +30.2837 + 30 +0.0 + 11 +21.706 + 21 +30.2462 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +30.2462 + 30 +0.0 + 11 +21.706 + 21 +30.2083 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +30.2083 + 30 +0.0 + 11 +21.706 + 21 +30.1706 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.706 + 20 +30.1706 + 30 +0.0 + 11 +21.5079 + 21 +29.4858 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5079 + 20 +29.4858 + 30 +0.0 + 11 +21.3096 + 21 +28.8014 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.3096 + 20 +28.8014 + 30 +0.0 + 11 +21.1115 + 21 +28.1164 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1115 + 20 +28.1164 + 30 +0.0 + 11 +20.9132 + 21 +27.4308 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.9132 + 20 +27.4308 + 30 +0.0 + 11 +19.1317 + 21 +28.2411 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.1317 + 20 +28.2411 + 30 +0.0 + 11 +17.3506 + 21 +29.0526 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.3506 + 20 +29.0526 + 30 +0.0 + 11 +15.569 + 21 +29.8632 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.569 + 20 +29.8632 + 30 +0.0 + 11 +13.7875 + 21 +30.6736 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7875 + 20 +30.6736 + 30 +0.0 + 11 +13.7875 + 21 +30.8601 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7875 + 20 +30.8601 + 30 +0.0 + 11 +13.7875 + 21 +31.0488 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7875 + 20 +31.0488 + 30 +0.0 + 11 +13.7875 + 21 +31.2363 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7875 + 20 +31.2363 + 30 +0.0 + 11 +13.7875 + 21 +31.4239 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7875 + 20 +31.4239 + 30 +0.0 + 11 +13.9268 + 21 +31.9328 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9268 + 20 +31.9328 + 30 +0.0 + 11 +14.066 + 21 +32.4414 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.066 + 20 +32.4414 + 30 +0.0 + 11 +14.2064 + 21 +32.9521 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2064 + 20 +32.9521 + 30 +0.0 + 11 +14.3446 + 21 +33.4608 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3446 + 20 +33.4608 + 30 +0.0 + 11 +15.9974 + 21 +32.835 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.9974 + 20 +32.835 + 30 +0.0 + 11 +17.6513 + 21 +32.2093 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.6513 + 20 +32.2093 + 30 +0.0 + 11 +19.3046 + 21 +31.5836 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.3046 + 20 +31.5836 + 30 +0.0 + 11 +20.9579 + 21 +30.9568 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.9579 + 20 +30.9568 + 30 +0.0 + 11 +19.0669 + 21 +32.2963 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.0669 + 20 +32.2963 + 30 +0.0 + 11 +17.1754 + 21 +33.6358 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.1754 + 20 +33.6358 + 30 +0.0 + 11 +15.2844 + 21 +34.9763 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.2844 + 20 +34.9763 + 30 +0.0 + 11 +13.393 + 21 +36.3156 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.393 + 20 +36.3156 + 30 +0.0 + 11 +13.4169 + 21 +36.0497 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4169 + 20 +36.0497 + 30 +0.0 + 11 +13.4413 + 21 +35.7831 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4413 + 20 +35.7831 + 30 +0.0 + 11 +13.4654 + 21 +35.5171 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4654 + 20 +35.5171 + 30 +0.0 + 11 +13.4896 + 21 +35.25 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.4896 + 20 +35.25 + 30 +0.0 + 11 +8.11242 + 21 +32.8864 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.11242 + 20 +32.8864 + 30 +0.0 + 11 +3.8386 + 21 +28.9761 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.8386 + 20 +28.9761 + 30 +0.0 + 11 +1.01828 + 21 +23.8676 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.01828 + 20 +23.8676 + 30 +0.0 + 11 +0 + 21 +17.9044 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0 + 20 +17.9044 + 30 +0.0 + 11 +0 + 21 +17.9044 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.305 + 20 +37.0181 + 30 +0.0 + 11 +25.1269 + 21 +36.9889 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.1269 + 20 +36.9889 + 30 +0.0 + 11 +25.9486 + 21 +36.9589 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.9486 + 20 +36.9589 + 30 +0.0 + 11 +26.7692 + 21 +36.9299 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.7692 + 20 +36.9299 + 30 +0.0 + 11 +27.5911 + 21 +36.8999 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.5911 + 20 +36.8999 + 30 +0.0 + 11 +27.9143 + 21 +37.5431 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.9143 + 20 +37.5431 + 30 +0.0 + 11 +28.2368 + 21 +38.1862 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.2368 + 20 +38.1862 + 30 +0.0 + 11 +28.5565 + 21 +38.8283 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.5565 + 20 +38.8283 + 30 +0.0 + 11 +28.8786 + 21 +39.4717 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.8786 + 20 +39.4717 + 30 +0.0 + 11 +27.7346 + 21 +38.8574 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.7346 + 20 +38.8574 + 30 +0.0 + 11 +26.5922 + 21 +38.2442 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.5922 + 20 +38.2442 + 30 +0.0 + 11 +25.4485 + 21 +37.6311 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.4485 + 20 +37.6311 + 30 +0.0 + 11 +24.305 + 21 +37.0181 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.58415 + 20 +34.7879 + 30 +0.0 + 11 +7.58242 + 21 +35.0528 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.58242 + 20 +35.0528 + 30 +0.0 + 11 +8.57954 + 21 +35.3168 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.57954 + 20 +35.3168 + 30 +0.0 + 11 +9.57661 + 21 +35.5799 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.57661 + 20 +35.5799 + 30 +0.0 + 11 +10.5755 + 21 +35.8447 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.5755 + 20 +35.8447 + 30 +0.0 + 11 +9.31446 + 21 +35.9946 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.31446 + 20 +35.9946 + 30 +0.0 + 11 +8.05339 + 21 +36.1464 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.05339 + 20 +36.1464 + 30 +0.0 + 11 +6.79308 + 21 +36.2975 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.79308 + 20 +36.2975 + 30 +0.0 + 11 +5.53196 + 21 +36.4474 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.53196 + 20 +36.4474 + 30 +0.0 + 11 +5.79617 + 21 +36.0325 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.79617 + 20 +36.0325 + 30 +0.0 + 11 +6.05826 + 21 +35.6174 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.05826 + 20 +35.6174 + 30 +0.0 + 11 +6.32124 + 21 +35.2015 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.32124 + 20 +35.2015 + 30 +0.0 + 11 +6.58415 + 21 +34.7879 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.54075 + 20 +39.8069 + 30 +0.0 + 11 +7.46158 + 21 +39.6088 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.46158 + 20 +39.6088 + 30 +0.0 + 11 +8.38129 + 21 +39.4096 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.38129 + 20 +39.4096 + 30 +0.0 + 11 +9.30192 + 21 +39.2103 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.30192 + 20 +39.2103 + 30 +0.0 + 11 +10.2217 + 21 +39.0131 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.2217 + 20 +39.0131 + 30 +0.0 + 11 +9.30192 + 21 +39.8836 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.30192 + 20 +39.8836 + 30 +0.0 + 11 +8.38129 + 21 +40.7539 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.38129 + 20 +40.7539 + 30 +0.0 + 11 +7.46158 + 21 +41.6244 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.46158 + 20 +41.6244 + 30 +0.0 + 11 +6.54075 + 21 +42.4947 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.54075 + 20 +42.4947 + 30 +0.0 + 11 +6.54075 + 21 +41.8226 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.54075 + 20 +41.8226 + 30 +0.0 + 11 +6.54075 + 21 +41.1504 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.54075 + 20 +41.1504 + 30 +0.0 + 11 +6.54075 + 21 +40.4792 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.54075 + 20 +40.4792 + 30 +0.0 + 11 +6.54075 + 21 +39.8069 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.4328 + 20 +42.0653 + 30 +0.0 + 11 +20.6097 + 21 +41.6822 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.6097 + 20 +41.6822 + 30 +0.0 + 11 +20.7847 + 21 +41.3014 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.7847 + 20 +41.3014 + 30 +0.0 + 11 +20.9607 + 21 +40.9204 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.9607 + 20 +40.9204 + 30 +0.0 + 11 +21.1367 + 21 +40.5392 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1367 + 20 +40.5392 + 30 +0.0 + 11 +21.1367 + 21 +39.4242 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1367 + 20 +39.4242 + 30 +0.0 + 11 +21.1367 + 21 +38.3089 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1367 + 20 +38.3089 + 30 +0.0 + 11 +21.1367 + 21 +37.1949 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1367 + 20 +37.1949 + 30 +0.0 + 11 +21.1367 + 21 +36.0797 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.1367 + 20 +36.0797 + 30 +0.0 + 11 +21.3418 + 21 +37.4 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.3418 + 20 +37.4 + 30 +0.0 + 11 +21.5476 + 21 +38.7199 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5476 + 20 +38.7199 + 30 +0.0 + 11 +21.7538 + 21 +40.0382 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7538 + 20 +40.0382 + 30 +0.0 + 11 +21.9586 + 21 +41.3585 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.9586 + 20 +41.3585 + 30 +0.0 + 11 +21.7246 + 21 +41.5062 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7246 + 20 +41.5062 + 30 +0.0 + 11 +21.4886 + 21 +41.6533 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.4886 + 20 +41.6533 + 30 +0.0 + 11 +21.254 + 21 +41.8003 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.254 + 20 +41.8003 + 30 +0.0 + 11 +21.0193 + 21 +41.9472 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.0193 + 20 +41.9472 + 30 +0.0 + 11 +21.254 + 21 +43.2957 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.254 + 20 +43.2957 + 30 +0.0 + 11 +21.4886 + 21 +44.6457 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.4886 + 20 +44.6457 + 30 +0.0 + 11 +21.7246 + 21 +45.9947 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.7246 + 20 +45.9947 + 30 +0.0 + 11 +21.9586 + 21 +47.345 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.9586 + 20 +47.345 + 30 +0.0 + 11 +21.5778 + 21 +46.0247 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5778 + 20 +46.0247 + 30 +0.0 + 11 +21.196 + 21 +44.7046 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.196 + 20 +44.7046 + 30 +0.0 + 11 +20.8149 + 21 +43.3844 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.8149 + 20 +43.3844 + 30 +0.0 + 11 +20.4328 + 21 +42.0653 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7439 + 20 +41.9472 + 30 +0.0 + 11 +13.5681 + 21 +41.6822 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.5681 + 20 +41.6822 + 30 +0.0 + 11 +13.3919 + 21 +41.4183 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.3919 + 20 +41.4183 + 30 +0.0 + 11 +13.2167 + 21 +41.1543 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.2167 + 20 +41.1543 + 30 +0.0 + 11 +13.0397 + 21 +40.8904 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.0397 + 20 +40.8904 + 30 +0.0 + 11 +13.2167 + 21 +40.0103 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.2167 + 20 +40.0103 + 30 +0.0 + 11 +13.3919 + 21 +39.13 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.3919 + 20 +39.13 + 30 +0.0 + 11 +13.5681 + 21 +38.2511 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.5681 + 20 +38.2511 + 30 +0.0 + 11 +13.7439 + 21 +37.371 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7439 + 20 +37.371 + 30 +0.0 + 11 +13.7729 + 21 +38.0449 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7729 + 20 +38.0449 + 30 +0.0 + 11 +13.8028 + 21 +38.7199 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8028 + 20 +38.7199 + 30 +0.0 + 11 +13.8331 + 21 +39.395 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8331 + 20 +39.395 + 30 +0.0 + 11 +13.8618 + 21 +40.0693 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8618 + 20 +40.0693 + 30 +0.0 + 11 +13.8821 + 21 +40.0981 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8821 + 20 +40.0981 + 30 +0.0 + 11 +13.9006 + 21 +40.1281 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9006 + 20 +40.1281 + 30 +0.0 + 11 +13.9211 + 21 +40.1563 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9211 + 20 +40.1563 + 30 +0.0 + 11 +13.9403 + 21 +40.1853 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9403 + 20 +40.1853 + 30 +0.0 + 11 +13.9211 + 21 +40.1272 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9211 + 20 +40.1272 + 30 +0.0 + 11 +13.9006 + 21 +40.0693 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9006 + 20 +40.0693 + 30 +0.0 + 11 +13.8821 + 21 +40.0103 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8821 + 20 +40.0103 + 30 +0.0 + 11 +13.8618 + 21 +39.9513 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8618 + 20 +39.9513 + 30 +0.0 + 11 +15.535 + 21 +39.0722 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.535 + 20 +39.0722 + 30 +0.0 + 11 +17.2065 + 21 +38.1919 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.2065 + 20 +38.1919 + 30 +0.0 + 11 +18.8788 + 21 +37.3108 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.8788 + 20 +37.3108 + 30 +0.0 + 11 +20.5511 + 21 +36.4319 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.5511 + 20 +36.4319 + 30 +0.0 + 11 +19.0543 + 21 +37.84 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.0543 + 20 +37.84 + 30 +0.0 + 11 +17.5583 + 21 +39.2482 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.5583 + 20 +39.2482 + 30 +0.0 + 11 +16.0614 + 21 +40.6563 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.0614 + 20 +40.6563 + 30 +0.0 + 11 +14.5649 + 21 +42.0653 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.5649 + 20 +42.0653 + 30 +0.0 + 11 +14.5476 + 21 +42.0121 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.5476 + 20 +42.0121 + 30 +0.0 + 11 +14.5303 + 21 +41.9599 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.5303 + 20 +41.9599 + 30 +0.0 + 11 +14.5126 + 21 +41.9078 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.5126 + 20 +41.9078 + 30 +0.0 + 11 +14.4965 + 21 +41.8564 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.4965 + 20 +41.8564 + 30 +0.0 + 11 +14.3957 + 21 +42.9057 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.3957 + 20 +42.9057 + 30 +0.0 + 11 +14.2962 + 21 +43.9542 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2962 + 20 +43.9542 + 30 +0.0 + 11 +14.1946 + 21 +45.0046 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.1946 + 20 +45.0046 + 30 +0.0 + 11 +14.0949 + 21 +46.0539 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0949 + 20 +46.0539 + 30 +0.0 + 11 +14.0078 + 21 +45.0267 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0078 + 20 +45.0267 + 30 +0.0 + 11 +13.9211 + 21 +43.9997 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.9211 + 20 +43.9997 + 30 +0.0 + 11 +13.8319 + 21 +42.9746 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.8319 + 20 +42.9746 + 30 +0.0 + 11 +13.7439 + 21 +41.9472 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.3949 + 20 +42.4174 + 30 +0.0 + 11 +10.6849 + 21 +44.1157 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.6849 + 20 +44.1157 + 30 +0.0 + 11 +9.97601 + 21 +45.814 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.97601 + 20 +45.814 + 30 +0.0 + 11 +9.26617 + 21 +47.5142 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.26617 + 20 +47.5142 + 30 +0.0 + 11 +8.55729 + 21 +49.2125 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.55729 + 20 +49.2125 + 30 +0.0 + 11 +8.34722 + 21 +48.4136 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.34722 + 20 +48.4136 + 30 +0.0 + 11 +8.1365 + 21 +47.6168 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.1365 + 20 +47.6168 + 30 +0.0 + 11 +7.92676 + 21 +46.8187 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.92676 + 20 +46.8187 + 30 +0.0 + 11 +7.71685 + 21 +46.0199 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.71685 + 20 +46.0199 + 30 +0.0 + 11 +8.63769 + 21 +45.1206 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.63769 + 20 +45.1206 + 30 +0.0 + 11 +9.55626 + 21 +44.2192 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.55626 + 20 +44.2192 + 30 +0.0 + 11 +10.475 + 21 +43.3178 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.475 + 20 +43.3178 + 30 +0.0 + 11 +11.3949 + 21 +42.4174 + 31 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/OHM2021-bottle-clip/ohm2013_3.dxf b/OHM2021-bottle-clip/ohm2013_3.dxf new file mode 100644 index 0000000..d9f109a --- /dev/null +++ b/OHM2021-bottle-clip/ohm2013_3.dxf @@ -0,0 +1,7806 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1009 + 9 +$EXTMIN + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMAX + 10 +1000.0 + 20 +1000.0 + 30 +0.0 + 9 +$FILLMODE + 70 + 0 + 9 +$SPLFRAME + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +LAYER + 70 +1 + 0 +LAYER + 2 +0 + 70 + 0 + 62 + 7 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.9482 + 20 +41.7326 + 30 +0.0 + 11 +39.0364 + 21 +41.4904 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.0364 + 20 +41.4904 + 30 +0.0 + 11 +39.1267 + 21 +41.2474 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.1267 + 20 +41.2474 + 30 +0.0 + 11 +39.2143 + 21 +41.0051 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.2143 + 20 +41.0051 + 30 +0.0 + 11 +39.3028 + 21 +40.7629 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3028 + 20 +40.7629 + 30 +0.0 + 11 +39.2143 + 21 +40.519 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.2143 + 20 +40.519 + 30 +0.0 + 11 +39.1267 + 21 +40.2778 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.1267 + 20 +40.2778 + 30 +0.0 + 11 +39.0364 + 21 +40.0337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.0364 + 20 +40.0337 + 30 +0.0 + 11 +38.9482 + 21 +39.7926 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.9482 + 20 +39.7926 + 30 +0.0 + 11 +40.7854 + 21 +39.2443 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.7854 + 20 +39.2443 + 30 +0.0 + 11 +42.6236 + 21 +38.6981 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.6236 + 20 +38.6981 + 30 +0.0 + 11 +44.4586 + 21 +38.1497 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.4586 + 20 +38.1497 + 30 +0.0 + 11 +46.2954 + 21 +37.6026 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +46.2954 + 20 +37.6026 + 30 +0.0 + 11 +44.8317 + 21 +38.3911 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.8317 + 20 +38.3911 + 30 +0.0 + 11 +43.3697 + 21 +39.1817 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.3697 + 20 +39.1817 + 30 +0.0 + 11 +41.9044 + 21 +39.9728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.9044 + 20 +39.9728 + 30 +0.0 + 11 +40.441 + 21 +40.7629 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.441 + 20 +40.7629 + 30 +0.0 + 11 +41.9044 + 21 +41.5524 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.9044 + 20 +41.5524 + 30 +0.0 + 11 +43.3697 + 21 +42.3435 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.3697 + 20 +42.3435 + 30 +0.0 + 11 +44.8317 + 21 +43.1331 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.8317 + 20 +43.1331 + 30 +0.0 + 11 +46.2954 + 21 +43.9242 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +46.2954 + 20 +43.9242 + 30 +0.0 + 11 +44.4586 + 21 +43.3744 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.4586 + 20 +43.3744 + 30 +0.0 + 11 +42.6236 + 21 +42.8286 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.6236 + 20 +42.8286 + 30 +0.0 + 11 +40.7854 + 21 +42.2815 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.7854 + 20 +42.2815 + 30 +0.0 + 11 +38.9482 + 21 +41.7326 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.1317 + 20 +40.7629 + 30 +0.0 + 11 +32.6675 + 21 +39.9728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.6675 + 20 +39.9728 + 30 +0.0 + 11 +31.204 + 21 +39.1817 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.204 + 20 +39.1817 + 30 +0.0 + 11 +29.7399 + 21 +38.3911 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.7399 + 20 +38.3911 + 30 +0.0 + 11 +28.2775 + 21 +37.6026 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.2775 + 20 +37.6026 + 30 +0.0 + 11 +30.1146 + 21 +38.1497 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.1146 + 20 +38.1497 + 30 +0.0 + 11 +31.9514 + 21 +38.6981 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.9514 + 20 +38.6981 + 30 +0.0 + 11 +33.7869 + 21 +39.2443 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.7869 + 20 +39.2443 + 30 +0.0 + 11 +35.6253 + 21 +39.7926 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.6253 + 20 +39.7926 + 30 +0.0 + 11 +35.5357 + 21 +40.0337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.5357 + 20 +40.0337 + 30 +0.0 + 11 +35.4486 + 21 +40.2778 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.4486 + 20 +40.2778 + 30 +0.0 + 11 +35.3611 + 21 +40.519 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.3611 + 20 +40.519 + 30 +0.0 + 11 +35.2733 + 21 +40.7629 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.2733 + 20 +40.7629 + 30 +0.0 + 11 +35.3611 + 21 +41.0051 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.3611 + 20 +41.0051 + 30 +0.0 + 11 +35.4486 + 21 +41.2474 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.4486 + 20 +41.2474 + 30 +0.0 + 11 +35.5357 + 21 +41.4904 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.5357 + 20 +41.4904 + 30 +0.0 + 11 +35.6253 + 21 +41.7326 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.6253 + 20 +41.7326 + 30 +0.0 + 11 +33.7869 + 21 +42.2815 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.7869 + 20 +42.2815 + 30 +0.0 + 11 +31.9514 + 21 +42.8286 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.9514 + 20 +42.8286 + 30 +0.0 + 11 +30.1146 + 21 +43.3744 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.1146 + 20 +43.3744 + 30 +0.0 + 11 +28.2775 + 21 +43.9242 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.2775 + 20 +43.9242 + 30 +0.0 + 11 +29.7399 + 21 +43.1331 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.7399 + 20 +43.1331 + 30 +0.0 + 11 +31.204 + 21 +42.3435 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.204 + 20 +42.3435 + 30 +0.0 + 11 +32.6675 + 21 +41.5524 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.6675 + 20 +41.5524 + 30 +0.0 + 11 +34.1317 + 21 +40.7629 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2879 + 20 +42.2188 + 30 +0.0 + 11 +37.5315 + 21 +42.1311 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.5315 + 20 +42.1311 + 30 +0.0 + 11 +37.7722 + 21 +42.0428 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.7722 + 20 +42.0428 + 30 +0.0 + 11 +38.0142 + 21 +41.9542 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.0142 + 20 +41.9542 + 30 +0.0 + 11 +38.2556 + 21 +41.8658 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.2556 + 20 +41.8658 + 30 +0.0 + 11 +38.8053 + 21 +43.7015 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.8053 + 20 +43.7015 + 30 +0.0 + 11 +39.3514 + 21 +45.5397 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3514 + 20 +45.5397 + 30 +0.0 + 11 +39.9003 + 21 +47.3768 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.9003 + 20 +47.3768 + 30 +0.0 + 11 +40.45 + 21 +49.2125 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.45 + 20 +49.2125 + 30 +0.0 + 11 +39.6597 + 21 +47.7499 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.6597 + 20 +47.7499 + 30 +0.0 + 11 +38.869 + 21 +46.2858 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.869 + 20 +46.2858 + 30 +0.0 + 11 +38.0781 + 21 +44.8232 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.0781 + 20 +44.8232 + 30 +0.0 + 11 +37.2879 + 21 +43.3597 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2879 + 20 +43.3597 + 30 +0.0 + 11 +36.4975 + 21 +44.8232 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.4975 + 20 +44.8232 + 30 +0.0 + 11 +35.7058 + 21 +46.2858 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.7058 + 20 +46.2858 + 30 +0.0 + 11 +34.915 + 21 +47.7499 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.915 + 20 +47.7499 + 30 +0.0 + 11 +34.1239 + 21 +49.2125 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.1239 + 20 +49.2125 + 30 +0.0 + 11 +34.6729 + 21 +47.3768 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.6729 + 20 +47.3768 + 30 +0.0 + 11 +35.2212 + 21 +45.5397 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.2212 + 20 +45.5397 + 30 +0.0 + 11 +35.7694 + 21 +43.7015 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.7694 + 20 +43.7015 + 30 +0.0 + 11 +36.3185 + 21 +41.8658 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.3185 + 20 +41.8658 + 30 +0.0 + 11 +36.5604 + 21 +41.9542 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.5604 + 20 +41.9542 + 30 +0.0 + 11 +36.8035 + 21 +42.0428 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.8035 + 20 +42.0428 + 30 +0.0 + 11 +37.0454 + 21 +42.1311 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.0454 + 20 +42.1311 + 30 +0.0 + 11 +37.2879 + 21 +42.2188 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.1122 + 20 +14.5586 + 30 +0.0 + 11 +29.7596 + 21 +12.3313 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.7596 + 20 +12.3313 + 30 +0.0 + 11 +29.4079 + 21 +10.1038 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.4079 + 20 +10.1038 + 30 +0.0 + 11 +29.055 + 21 +7.875 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.055 + 20 +7.875 + 30 +0.0 + 11 +28.7017 + 21 +5.64757 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.7017 + 20 +5.64757 + 30 +0.0 + 11 +26.6942 + 21 +7.15001 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.6942 + 20 +7.15001 + 30 +0.0 + 11 +24.6893 + 21 +8.64963 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.6893 + 20 +8.64963 + 30 +0.0 + 11 +22.6833 + 21 +10.1496 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6833 + 20 +10.1496 + 30 +0.0 + 11 +20.6761 + 21 +11.6496 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.6761 + 20 +11.6496 + 30 +0.0 + 11 +21.136 + 21 +14.1181 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.136 + 20 +14.1181 + 30 +0.0 + 11 +21.5947 + 21 +16.586 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5947 + 20 +16.586 + 30 +0.0 + 11 +22.0553 + 21 +19.0549 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.0553 + 20 +19.0549 + 30 +0.0 + 11 +22.5167 + 21 +21.5207 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.5167 + 20 +21.5207 + 30 +0.0 + 11 +22.5561 + 21 +21.5174 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.5561 + 20 +21.5174 + 30 +0.0 + 11 +22.596 + 21 +21.5122 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.596 + 20 +21.5122 + 30 +0.0 + 11 +22.6357 + 21 +21.5071 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6357 + 20 +21.5071 + 30 +0.0 + 11 +22.6768 + 21 +21.5028 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6768 + 20 +21.5028 + 30 +0.0 + 11 +22.6783 + 21 +21.5251 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6783 + 20 +21.5251 + 30 +0.0 + 11 +22.6793 + 21 +21.5461 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6793 + 20 +21.5461 + 30 +0.0 + 11 +22.6808 + 21 +21.5657 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6808 + 20 +21.5657 + 30 +0.0 + 11 +22.6817 + 21 +21.5885 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6817 + 20 +21.5885 + 30 +0.0 + 11 +24.5388 + 21 +19.8331 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.5388 + 20 +19.8331 + 30 +0.0 + 11 +26.3968 + 21 +18.0774 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.3968 + 20 +18.0774 + 30 +0.0 + 11 +28.2554 + 21 +16.3201 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.2554 + 20 +16.3201 + 30 +0.0 + 11 +30.1122 + 21 +14.5586 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.1122 + 20 +14.5586 + 30 +0.0 + 11 +30.1122 + 21 +14.5586 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.2986 + 20 +23.4304 + 30 +0.0 + 11 +26.7668 + 21 +24.2694 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.7668 + 20 +24.2694 + 30 +0.0 + 11 +29.2336 + 21 +25.1101 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.2336 + 20 +25.1101 + 30 +0.0 + 11 +31.7011 + 21 +25.9507 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.7011 + 20 +25.9507 + 30 +0.0 + 11 +34.1674 + 21 +26.7907 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.1674 + 20 +26.7907 + 30 +0.0 + 11 +36.0419 + 21 +25.0021 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.0419 + 20 +25.0021 + 30 +0.0 + 11 +37.9139 + 21 +23.2138 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.9139 + 20 +23.2138 + 30 +0.0 + 11 +39.7854 + 21 +21.4264 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.7854 + 20 +21.4264 + 30 +0.0 + 11 +41.6583 + 21 +19.6381 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.6583 + 20 +19.6381 + 30 +0.0 + 11 +39.5521 + 21 +18.9304 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.5521 + 20 +18.9304 + 30 +0.0 + 11 +37.4431 + 21 +18.2214 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.4431 + 20 +18.2214 + 30 +0.0 + 11 +35.3358 + 21 +17.514 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.3358 + 20 +17.514 + 30 +0.0 + 11 +33.2287 + 21 +16.8061 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.2287 + 20 +16.8061 + 30 +0.0 + 11 +30.5557 + 21 +18.6693 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.5557 + 20 +18.6693 + 30 +0.0 + 11 +27.9953 + 21 +20.4713 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.9953 + 20 +20.4713 + 30 +0.0 + 11 +25.7461 + 21 +22.0622 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.7461 + 20 +22.0622 + 30 +0.0 + 11 +24.0151 + 21 +23.2924 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.0151 + 20 +23.2924 + 30 +0.0 + 11 +24.0871 + 21 +23.3257 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.0871 + 20 +23.3257 + 30 +0.0 + 11 +24.1606 + 21 +23.3606 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.1606 + 20 +23.3606 + 30 +0.0 + 11 +24.2325 + 21 +23.3956 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.2325 + 20 +23.3956 + 30 +0.0 + 11 +24.2986 + 21 +23.4304 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.2986 + 20 +23.4304 + 30 +0.0 + 11 +24.2986 + 21 +23.4304 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2879 + 20 +38.0775 + 30 +0.0 + 11 +37.7222 + 21 +37.2728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.7222 + 20 +37.2728 + 30 +0.0 + 11 +38.1572 + 21 +36.4681 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.1572 + 20 +36.4681 + 30 +0.0 + 11 +38.594 + 21 +35.6633 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.594 + 20 +35.6633 + 30 +0.0 + 11 +39.0281 + 21 +34.8588 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.0281 + 20 +34.8588 + 30 +0.0 + 11 +38.7208 + 21 +35.0193 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.7208 + 20 +35.0193 + 30 +0.0 + 11 +38.4146 + 21 +35.1807 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.4146 + 20 +35.1807 + 30 +0.0 + 11 +38.1086 + 21 +35.3413 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.1086 + 20 +35.3413 + 30 +0.0 + 11 +37.8021 + 21 +35.5019 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.8021 + 20 +35.5019 + 30 +0.0 + 11 +38.5531 + 21 +34.5576 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.5531 + 20 +34.5576 + 30 +0.0 + 11 +39.2472 + 21 +33.5676 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.2472 + 20 +33.5676 + 30 +0.0 + 11 +39.8799 + 21 +32.5353 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.8799 + 20 +32.5353 + 30 +0.0 + 11 +40.4482 + 21 +31.4596 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.4482 + 20 +31.4596 + 30 +0.0 + 11 +39.4743 + 21 +31.0506 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.4743 + 20 +31.0506 + 30 +0.0 + 11 +38.5021 + 21 +30.6411 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.5021 + 20 +30.6411 + 30 +0.0 + 11 +37.5292 + 21 +30.2332 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.5292 + 20 +30.2332 + 30 +0.0 + 11 +36.5556 + 21 +29.8243 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.5556 + 20 +29.8243 + 30 +0.0 + 11 +36.5222 + 21 +31.2197 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.5222 + 20 +31.2197 + 30 +0.0 + 11 +36.4858 + 21 +32.6161 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.4858 + 20 +32.6161 + 30 +0.0 + 11 +36.4489 + 21 +34.0156 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.4489 + 20 +34.0156 + 30 +0.0 + 11 +36.415 + 21 +35.411 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.415 + 20 +35.411 + 30 +0.0 + 11 +36.2169 + 21 +35.3065 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.2169 + 20 +35.3065 + 30 +0.0 + 11 +36.0199 + 21 +35.2019 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.0199 + 20 +35.2019 + 30 +0.0 + 11 +35.8204 + 21 +35.0975 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.8204 + 20 +35.0975 + 30 +0.0 + 11 +35.624 + 21 +34.9931 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.624 + 20 +34.9931 + 30 +0.0 + 11 +36.0403 + 21 +35.7644 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.0403 + 20 +35.7644 + 30 +0.0 + 11 +36.4563 + 21 +36.5337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.4563 + 20 +36.5337 + 30 +0.0 + 11 +36.8729 + 21 +37.305 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.8729 + 20 +37.305 + 30 +0.0 + 11 +37.2879 + 21 +38.0775 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2879 + 20 +38.0775 + 30 +0.0 + 11 +37.2879 + 21 +38.0775 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3986 + 20 +22.9849 + 30 +0.0 + 11 +42.3975 + 21 +22.8292 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3975 + 20 +22.8292 + 30 +0.0 + 11 +42.3924 + 21 +22.6739 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3924 + 20 +22.6739 + 30 +0.0 + 11 +42.3875 + 21 +22.52 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3875 + 20 +22.52 + 30 +0.0 + 11 +42.3836 + 21 +22.3653 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3836 + 20 +22.3653 + 30 +0.0 + 11 +41.1213 + 21 +23.7414 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.1213 + 20 +23.7414 + 30 +0.0 + 11 +39.8601 + 21 +25.1165 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.8601 + 20 +25.1165 + 30 +0.0 + 11 +38.5993 + 21 +26.4924 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.5993 + 20 +26.4924 + 30 +0.0 + 11 +37.3365 + 21 +27.8675 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.3365 + 20 +27.8675 + 30 +0.0 + 11 +38.3431 + 21 +28.2108 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.3431 + 20 +28.2108 + 30 +0.0 + 11 +39.3479 + 21 +28.5531 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3479 + 20 +28.5531 + 30 +0.0 + 11 +40.3528 + 21 +28.8949 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.3528 + 20 +28.8949 + 30 +0.0 + 11 +41.3594 + 21 +29.2381 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.3594 + 20 +29.2381 + 30 +0.0 + 11 +41.8056 + 21 +27.7408 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.8056 + 20 +27.7408 + 30 +0.0 + 11 +42.1312 + 21 +26.1975 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.1312 + 20 +26.1975 + 30 +0.0 + 11 +42.3317 + 21 +24.6103 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3317 + 20 +24.6103 + 30 +0.0 + 11 +42.3986 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.3986 + 20 +22.9849 + 30 +0.0 + 11 +42.3986 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3961 + 20 +12.6337 + 30 +0.0 + 11 +38.5107 + 21 +13.209 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.5107 + 20 +13.209 + 30 +0.0 + 11 +37.4933 + 21 +13.8844 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.4933 + 20 +13.8844 + 30 +0.0 + 11 +36.3706 + 21 +14.6431 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.3706 + 20 +14.6431 + 30 +0.0 + 11 +35.1625 + 21 +15.4653 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.1625 + 20 +15.4653 + 30 +0.0 + 11 +36.7236 + 21 +15.8153 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.7236 + 20 +15.8153 + 30 +0.0 + 11 +38.2854 + 21 +16.1656 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.2854 + 20 +16.1656 + 30 +0.0 + 11 +39.8456 + 21 +16.5154 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.8456 + 20 +16.5154 + 30 +0.0 + 11 +41.4076 + 21 +16.8647 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.4076 + 20 +16.8647 + 30 +0.0 + 11 +41 + 21 +15.7553 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41 + 20 +15.7553 + 30 +0.0 + 11 +40.5268 + 21 +14.6783 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.5268 + 20 +14.6783 + 30 +0.0 + 11 +39.9933 + 21 +13.6357 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.9933 + 20 +13.6357 + 30 +0.0 + 11 +39.3961 + 21 +12.6337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3961 + 20 +12.6337 + 30 +0.0 + 11 +39.3961 + 21 +12.6337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.0697 + 20 +5.34169 + 30 +0.0 + 11 +31.459 + 21 +7.05311 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.459 + 20 +7.05311 + 30 +0.0 + 11 +31.8483 + 21 +8.76421 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.8483 + 20 +8.76421 + 30 +0.0 + 11 +32.2358 + 21 +10.476 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.2358 + 20 +10.476 + 30 +0.0 + 11 +32.6251 + 21 +12.1868 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.6251 + 20 +12.1868 + 30 +0.0 + 11 +33.5224 + 21 +11.34 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.5224 + 20 +11.34 + 30 +0.0 + 11 +34.4199 + 21 +10.492 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.4199 + 20 +10.492 + 30 +0.0 + 11 +35.3178 + 21 +9.64378 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.3178 + 20 +9.64378 + 30 +0.0 + 11 +36.2146 + 21 +8.79514 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.2146 + 20 +8.79514 + 30 +0.0 + 11 +35.041 + 21 +7.78401 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.041 + 20 +7.78401 + 30 +0.0 + 11 +33.7885 + 21 +6.866 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.7885 + 20 +6.866 + 30 +0.0 + 11 +32.4628 + 21 +6.05208 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.4628 + 20 +6.05208 + 30 +0.0 + 11 +31.0697 + 21 +5.34169 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.0697 + 20 +5.34169 + 30 +0.0 + 11 +31.0697 + 21 +5.34169 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.9867 + 20 +3.57047 + 30 +0.0 + 11 +22.03 + 21 +3.59511 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.03 + 20 +3.59511 + 30 +0.0 + 11 +21.0849 + 21 +3.66596 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.0849 + 20 +3.66596 + 30 +0.0 + 11 +20.1519 + 21 +3.78228 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.1519 + 20 +3.78228 + 30 +0.0 + 11 +19.2342 + 21 +3.93957 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.2342 + 20 +3.93957 + 30 +0.0 + 11 +19.5068 + 21 +5.40001 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.5068 + 20 +5.40001 + 30 +0.0 + 11 +19.779 + 21 +6.85867 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.779 + 20 +6.85867 + 30 +0.0 + 11 +20.0515 + 21 +8.31771 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.0515 + 20 +8.31771 + 30 +0.0 + 11 +20.3236 + 21 +9.77675 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.3236 + 20 +9.77675 + 30 +0.0 + 11 +21.9085 + 21 +8.31629 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.9085 + 20 +8.31629 + 30 +0.0 + 11 +23.4926 + 21 +6.85385 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.4926 + 20 +6.85385 + 30 +0.0 + 11 +25.0771 + 21 +5.39339 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0771 + 20 +5.39339 + 30 +0.0 + 11 +26.6631 + 21 +3.93261 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.6631 + 20 +3.93261 + 30 +0.0 + 11 +25.7628 + 21 +3.78054 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.7628 + 20 +3.78054 + 30 +0.0 + 11 +24.8486 + 21 +3.6684 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.8486 + 20 +3.6684 + 30 +0.0 + 11 +23.9215 + 21 +3.60032 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.9215 + 20 +3.60032 + 30 +0.0 + 11 +22.9867 + 21 +3.57047 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.9867 + 20 +3.57047 + 30 +0.0 + 11 +22.9867 + 21 +3.57047 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.97228 + 20 +11.5923 + 30 +0.0 + 11 +10.4372 + 21 +14.4044 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.4372 + 20 +14.4044 + 30 +0.0 + 11 +10.9027 + 21 +17.2181 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.9027 + 20 +17.2181 + 30 +0.0 + 11 +11.3676 + 21 +20.0311 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.3676 + 20 +20.0311 + 30 +0.0 + 11 +11.8317 + 21 +22.8444 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.8317 + 20 +22.8444 + 30 +0.0 + 11 +14.2721 + 21 +22.5424 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2721 + 20 +22.5424 + 30 +0.0 + 11 +16.7119 + 21 +22.2389 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.7119 + 20 +22.2389 + 30 +0.0 + 11 +19.1525 + 21 +21.9354 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.1525 + 20 +21.9354 + 30 +0.0 + 11 +21.5912 + 21 +21.6343 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.5912 + 20 +21.6343 + 30 +0.0 + 11 +20.7988 + 21 +19.2949 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.7988 + 20 +19.2949 + 30 +0.0 + 11 +20.0057 + 21 +16.9529 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +20.0057 + 20 +16.9529 + 30 +0.0 + 11 +19.2121 + 21 +14.6118 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.2121 + 20 +14.6118 + 30 +0.0 + 11 +18.4183 + 21 +12.2726 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.4183 + 20 +12.2726 + 30 +0.0 + 11 +16.3075 + 21 +12.1028 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.3075 + 20 +12.1028 + 30 +0.0 + 11 +14.1957 + 21 +11.9333 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.1957 + 20 +11.9333 + 30 +0.0 + 11 +12.0841 + 21 +11.7642 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.0841 + 20 +11.7642 + 30 +0.0 + 11 +9.97228 + 21 +11.5923 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.97228 + 20 +11.5923 + 30 +0.0 + 11 +9.97228 + 21 +11.5923 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.9249 + 20 +4.90657 + 30 +0.0 + 11 +14.2696 + 21 +5.64513 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.2696 + 20 +5.64513 + 30 +0.0 + 11 +12.7011 + 21 +6.52951 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.7011 + 20 +6.52951 + 30 +0.0 + 11 +11.2259 + 21 +7.55003 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.2259 + 20 +7.55003 + 30 +0.0 + 11 +9.85411 + 21 +8.69997 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.85411 + 20 +8.69997 + 30 +0.0 + 11 +11.9397 + 21 +9.42708 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.9397 + 20 +9.42708 + 30 +0.0 + 11 +14.0268 + 21 +10.1545 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0268 + 20 +10.1545 + 30 +0.0 + 11 +16.1128 + 21 +10.8823 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.1128 + 20 +10.8823 + 30 +0.0 + 11 +18.1983 + 21 +11.6097 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +18.1983 + 20 +11.6097 + 30 +0.0 + 11 +17.6324 + 21 +9.933 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.6324 + 20 +9.933 + 30 +0.0 + 11 +17.0639 + 21 +8.25797 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.0639 + 20 +8.25797 + 30 +0.0 + 11 +16.4953 + 21 +6.5816 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.4953 + 20 +6.5816 + 30 +0.0 + 11 +15.9249 + 21 +4.90657 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.9249 + 20 +4.90657 + 30 +0.0 + 11 +15.9249 + 21 +4.90657 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.57324 + 20 +22.9849 + 30 +0.0 + 11 +3.57443 + 21 +23.2065 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.57443 + 20 +23.2065 + 30 +0.0 + 11 +3.57937 + 21 +23.4267 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.57937 + 20 +23.4267 + 30 +0.0 + 11 +3.58599 + 21 +23.6478 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.58599 + 20 +23.6478 + 30 +0.0 + 11 +3.59446 + 21 +23.8668 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.59446 + 20 +23.8668 + 30 +0.0 + 11 +5.37414 + 21 +23.6468 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.37414 + 20 +23.6468 + 30 +0.0 + 11 +7.15419 + 21 +23.425 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.15419 + 20 +23.425 + 30 +0.0 + 11 +8.93386 + 21 +23.2049 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.93386 + 20 +23.2049 + 30 +0.0 + 11 +10.7123 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.7123 + 20 +22.9849 + 30 +0.0 + 11 +9.85667 + 21 +20.1328 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.85667 + 20 +20.1328 + 30 +0.0 + 11 +9.00103 + 21 +17.2811 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.00103 + 20 +17.2811 + 30 +0.0 + 11 +8.14529 + 21 +14.4281 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.14529 + 20 +14.4281 + 30 +0.0 + 11 +7.2895 + 21 +11.5764 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.2895 + 20 +11.5764 + 30 +0.0 + 11 +5.72358 + 21 +14.1125 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.72358 + 20 +14.1125 + 30 +0.0 + 11 +4.55474 + 21 +16.8861 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.55474 + 20 +16.8861 + 30 +0.0 + 11 +3.82314 + 21 +19.8571 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.82314 + 20 +19.8571 + 30 +0.0 + 11 +3.57324 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.57324 + 20 +22.9849 + 30 +0.0 + 11 +3.57324 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.19521 + 20 +37.141 + 30 +0.0 + 11 +7.29557 + 21 +36.5525 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.29557 + 20 +36.5525 + 30 +0.0 + 11 +7.3954 + 21 +35.9643 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.3954 + 20 +35.9643 + 30 +0.0 + 11 +7.49496 + 21 +35.376 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.49496 + 20 +35.376 + 30 +0.0 + 11 +7.59293 + 21 +34.7863 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.59293 + 20 +34.7863 + 30 +0.0 + 11 +7.92763 + 21 +35.2096 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.92763 + 20 +35.2096 + 30 +0.0 + 11 +8.27192 + 21 +35.6233 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.27192 + 20 +35.6233 + 30 +0.0 + 11 +8.62631 + 21 +36.0279 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.62631 + 20 +36.0279 + 30 +0.0 + 11 +8.99338 + 21 +36.4206 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +8.99338 + 20 +36.4206 + 30 +0.0 + 11 +9.53304 + 21 +33.5243 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.53304 + 20 +33.5243 + 30 +0.0 + 11 +10.1924 + 21 +29.9299 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.1924 + 20 +29.9299 + 30 +0.0 + 11 +10.8032 + 21 +26.4908 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.8032 + 20 +26.4908 + 30 +0.0 + 11 +11.1935 + 21 +24.0581 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.1935 + 20 +24.0581 + 30 +0.0 + 11 +9.29568 + 21 +24.0442 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.29568 + 20 +24.0442 + 30 +0.0 + 11 +7.39763 + 21 +24.0306 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.39763 + 20 +24.0306 + 30 +0.0 + 11 +5.49978 + 21 +24.016 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.49978 + 20 +24.016 + 30 +0.0 + 11 +3.60211 + 21 +24.0021 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.60211 + 20 +24.0021 + 30 +0.0 + 11 +3.61822 + 21 +24.2508 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.61822 + 20 +24.2508 + 30 +0.0 + 11 +3.63803 + 21 +24.4982 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.63803 + 20 +24.4982 + 30 +0.0 + 11 +3.66026 + 21 +24.7435 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.66026 + 20 +24.7435 + 30 +0.0 + 11 +3.68533 + 21 +24.9896 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.68533 + 20 +24.9896 + 30 +0.0 + 11 +3.09412 + 21 +24.8778 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +3.09412 + 20 +24.8778 + 30 +0.0 + 11 +2.50261 + 21 +24.7667 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.50261 + 20 +24.7667 + 30 +0.0 + 11 +1.90924 + 21 +24.6563 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.90924 + 20 +24.6563 + 30 +0.0 + 11 +1.31717 + 21 +24.5431 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.31717 + 20 +24.5431 + 30 +0.0 + 11 +2.78728 + 21 +27.6933 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +2.78728 + 20 +27.6933 + 30 +0.0 + 11 +4.25738 + 21 +30.8426 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +4.25738 + 20 +30.8426 + 30 +0.0 + 11 +5.72592 + 21 +33.9918 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +5.72592 + 20 +33.9918 + 30 +0.0 + 11 +7.19521 + 21 +37.141 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +7.19521 + 20 +37.141 + 30 +0.0 + 11 +7.19521 + 21 +37.141 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.3 + 20 +31.5467 + 30 +0.0 + 11 +22.1992 + 21 +29.6935 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.1992 + 20 +29.6935 + 30 +0.0 + 11 +22.0997 + 21 +27.8403 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.0997 + 20 +27.8403 + 30 +0.0 + 11 +21.9993 + 21 +25.9858 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.9993 + 20 +25.9858 + 30 +0.0 + 11 +21.8982 + 21 +24.1326 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +21.8982 + 20 +24.1326 + 30 +0.0 + 11 +19.8486 + 21 +24.1164 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.8486 + 20 +24.1164 + 30 +0.0 + 11 +17.8004 + 21 +24.1032 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +17.8004 + 20 +24.1032 + 30 +0.0 + 11 +15.7507 + 21 +24.0893 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.7507 + 20 +24.0893 + 30 +0.0 + 11 +13.7036 + 21 +24.0743 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.7036 + 20 +24.0743 + 30 +0.0 + 11 +12.8277 + 21 +27.2089 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.8277 + 20 +27.2089 + 30 +0.0 + 11 +11.9522 + 21 +30.3428 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.9522 + 20 +30.3428 + 30 +0.0 + 11 +11.0769 + 21 +33.4768 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.0769 + 20 +33.4768 + 30 +0.0 + 11 +10.2024 + 21 +36.611 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.2024 + 20 +36.611 + 30 +0.0 + 11 +13.227 + 21 +35.3438 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.227 + 20 +35.3438 + 30 +0.0 + 11 +16.2522 + 21 +34.0776 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.2522 + 20 +34.0776 + 30 +0.0 + 11 +19.2765 + 21 +32.8106 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.2765 + 20 +32.8106 + 30 +0.0 + 11 +22.3 + 21 +31.5467 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.3 + 20 +31.5467 + 30 +0.0 + 11 +22.3 + 21 +31.5467 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.3137 + 20 +44.4913 + 30 +0.0 + 11 +22.2753 + 21 +43.9615 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.2753 + 20 +43.9615 + 30 +0.0 + 11 +22.2381 + 21 +43.4315 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.2381 + 20 +43.4315 + 30 +0.0 + 11 +22.2007 + 21 +42.9018 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.2007 + 20 +42.9018 + 30 +0.0 + 11 +22.1617 + 21 +42.3717 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.1617 + 20 +42.3717 + 30 +0.0 + 11 +22.3425 + 21 +42.3808 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.3425 + 20 +42.3808 + 30 +0.0 + 11 +22.5239 + 21 +42.3869 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.5239 + 20 +42.3869 + 30 +0.0 + 11 +22.7071 + 21 +42.3919 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.7071 + 20 +42.3919 + 30 +0.0 + 11 +22.8907 + 21 +42.3946 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.8907 + 20 +42.3946 + 30 +0.0 + 11 +22.7974 + 21 +40.6569 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.7974 + 20 +40.6569 + 30 +0.0 + 11 +22.7046 + 21 +38.9181 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.7046 + 20 +38.9181 + 30 +0.0 + 11 +22.6096 + 21 +37.181 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.6096 + 20 +37.181 + 30 +0.0 + 11 +22.5178 + 21 +35.4432 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.5178 + 20 +35.4432 + 30 +0.0 + 11 +19.4321 + 21 +35.9682 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.4321 + 20 +35.9682 + 30 +0.0 + 11 +16.344 + 21 +36.4928 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +16.344 + 20 +36.4928 + 30 +0.0 + 11 +13.2568 + 21 +37.0165 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +13.2568 + 20 +37.0165 + 30 +0.0 + 11 +10.1701 + 21 +37.5414 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.1701 + 20 +37.5414 + 30 +0.0 + 11 +10.4489 + 21 +37.7828 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.4489 + 20 +37.7828 + 30 +0.0 + 11 +10.7345 + 21 +38.0179 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.7345 + 20 +38.0179 + 30 +0.0 + 11 +11.0245 + 21 +38.2478 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.0245 + 20 +38.2478 + 30 +0.0 + 11 +11.3166 + 21 +38.4728 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +11.3166 + 20 +38.4728 + 30 +0.0 + 11 +10.7593 + 21 +38.6122 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.7593 + 20 +38.6122 + 30 +0.0 + 11 +10.2024 + 21 +38.7506 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +10.2024 + 20 +38.7506 + 30 +0.0 + 11 +9.64426 + 21 +38.8894 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.64426 + 20 +38.8894 + 30 +0.0 + 11 +9.08783 + 21 +39.0276 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +9.08783 + 20 +39.0276 + 30 +0.0 + 11 +12.3949 + 21 +40.3935 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +12.3949 + 20 +40.3935 + 30 +0.0 + 11 +15.7024 + 21 +41.7589 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +15.7024 + 20 +41.7589 + 30 +0.0 + 11 +19.0106 + 21 +43.1246 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +19.0106 + 20 +43.1246 + 30 +0.0 + 11 +22.3137 + 21 +44.4913 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.3137 + 20 +44.4913 + 30 +0.0 + 11 +22.3137 + 21 +44.4913 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0 + 20 +22.9849 + 30 +0.0 + 11 +1.80985 + 21 +14.0476 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.80985 + 20 +14.0476 + 30 +0.0 + 11 +6.73964 + 21 +6.73926 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.73964 + 20 +6.73926 + 30 +0.0 + 11 +14.0467 + 21 +1.80903 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0467 + 20 +1.80903 + 30 +0.0 + 11 +22.9867 + 21 +-0 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.9867 + 20 +-0 + 30 +0.0 + 11 +31.9249 + 21 +1.80903 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.9249 + 20 +1.80903 + 30 +0.0 + 11 +39.2324 + 21 +6.73926 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.2324 + 20 +6.73926 + 30 +0.0 + 11 +44.1635 + 21 +14.0476 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.1635 + 20 +14.0476 + 30 +0.0 + 11 +45.9719 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +45.9719 + 20 +22.9849 + 30 +0.0 + 11 +45.7528 + 21 +26.1636 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +45.7528 + 20 +26.1636 + 30 +0.0 + 11 +45.1164 + 21 +29.2099 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +45.1164 + 20 +29.2099 + 30 +0.0 + 11 +44.0878 + 21 +32.0951 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +44.0878 + 20 +32.0951 + 30 +0.0 + 11 +42.7017 + 21 +34.7906 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.7017 + 20 +34.7906 + 30 +0.0 + 11 +42.7892 + 21 +34.279 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.7892 + 20 +34.279 + 30 +0.0 + 11 +42.875 + 21 +33.7676 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.875 + 20 +33.7676 + 30 +0.0 + 11 +42.9621 + 21 +33.2579 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.9621 + 20 +33.2579 + 30 +0.0 + 11 +43.0493 + 21 +32.7468 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +43.0493 + 20 +32.7468 + 30 +0.0 + 11 +42.2308 + 21 +33.176 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +42.2308 + 20 +33.176 + 30 +0.0 + 11 +41.4139 + 21 +33.605 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +41.4139 + 20 +33.605 + 30 +0.0 + 11 +40.5956 + 21 +34.0342 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +40.5956 + 20 +34.0342 + 30 +0.0 + 11 +39.7781 + 21 +34.4633 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.7781 + 20 +34.4633 + 30 +0.0 + 11 +39.3961 + 21 +35.7407 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.3961 + 20 +35.7407 + 30 +0.0 + 11 +39.0146 + 21 +37.0189 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +39.0146 + 20 +37.0189 + 30 +0.0 + 11 +38.6326 + 21 +38.2961 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.6326 + 20 +38.2961 + 30 +0.0 + 11 +38.2507 + 21 +39.5733 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.2507 + 20 +39.5733 + 30 +0.0 + 11 +38.0094 + 21 +39.4856 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +38.0094 + 20 +39.4856 + 30 +0.0 + 11 +37.7681 + 21 +39.3972 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.7681 + 20 +39.3972 + 30 +0.0 + 11 +37.5285 + 21 +39.3099 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.5285 + 20 +39.3099 + 30 +0.0 + 11 +37.2854 + 21 +39.2215 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.2854 + 20 +39.2215 + 30 +0.0 + 11 +37.0431 + 21 +39.3099 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +37.0431 + 20 +39.3099 + 30 +0.0 + 11 +36.8021 + 21 +39.3972 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.8021 + 20 +39.3972 + 30 +0.0 + 11 +36.5597 + 21 +39.4856 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.5597 + 20 +39.4856 + 30 +0.0 + 11 +36.3185 + 21 +39.5733 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +36.3185 + 20 +39.5733 + 30 +0.0 + 11 +35.9461 + 21 +38.324 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.9461 + 20 +38.324 + 30 +0.0 + 11 +35.5732 + 21 +37.0764 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.5732 + 20 +37.0764 + 30 +0.0 + 11 +35.1997 + 21 +35.8275 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +35.1997 + 20 +35.8275 + 30 +0.0 + 11 +34.8267 + 21 +34.579 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.8267 + 20 +34.579 + 30 +0.0 + 11 +34.6901 + 21 +34.5053 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.6901 + 20 +34.5053 + 30 +0.0 + 11 +34.5536 + 21 +34.4337 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.5536 + 20 +34.4337 + 30 +0.0 + 11 +34.4176 + 21 +34.3599 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.4176 + 20 +34.3599 + 30 +0.0 + 11 +34.2796 + 21 +34.2876 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +34.2796 + 20 +34.2876 + 30 +0.0 + 11 +33.8147 + 21 +32.7367 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.8147 + 20 +32.7367 + 30 +0.0 + 11 +33.3481 + 21 +31.186 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +33.3481 + 20 +31.186 + 30 +0.0 + 11 +32.8815 + 21 +29.6339 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.8815 + 20 +29.6339 + 30 +0.0 + 11 +32.4153 + 21 +28.0832 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.4153 + 20 +28.0832 + 30 +0.0 + 11 +30.5747 + 21 +27.309 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.5747 + 20 +27.309 + 30 +0.0 + 11 +28.7339 + 21 +26.5342 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.7339 + 20 +26.5342 + 30 +0.0 + 11 +26.8917 + 21 +25.7597 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.8917 + 20 +25.7597 + 30 +0.0 + 11 +25.05 + 21 +24.986 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.05 + 20 +24.986 + 30 +0.0 + 11 +24.8357 + 21 +26.9771 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.8357 + 20 +26.9771 + 30 +0.0 + 11 +24.6218 + 21 +28.9712 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.6218 + 20 +28.9712 + 30 +0.0 + 11 +24.4085 + 21 +30.9632 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.4085 + 20 +30.9632 + 30 +0.0 + 11 +24.1944 + 21 +32.956 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.1944 + 20 +32.956 + 30 +0.0 + 11 +26.1317 + 21 +33.7778 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.1317 + 20 +33.7778 + 30 +0.0 + 11 +28.0685 + 21 +34.6013 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.0685 + 20 +34.6013 + 30 +0.0 + 11 +30.0061 + 21 +35.4236 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.0061 + 20 +35.4236 + 30 +0.0 + 11 +31.9429 + 21 +36.2464 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.9429 + 20 +36.2464 + 30 +0.0 + 11 +32.0175 + 21 +36.6771 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.0175 + 20 +36.6771 + 30 +0.0 + 11 +32.0921 + 21 +37.1072 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.0921 + 20 +37.1072 + 30 +0.0 + 11 +32.1681 + 21 +37.5379 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.1681 + 20 +37.5379 + 30 +0.0 + 11 +32.241 + 21 +37.9679 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +32.241 + 20 +37.9679 + 30 +0.0 + 11 +30.1817 + 21 +37.3961 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.1817 + 20 +37.3961 + 30 +0.0 + 11 +28.1221 + 21 +36.8225 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.1221 + 20 +36.8225 + 30 +0.0 + 11 +26.0635 + 21 +36.249 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.0635 + 20 +36.249 + 30 +0.0 + 11 +24.0039 + 21 +35.6761 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.0039 + 20 +35.6761 + 30 +0.0 + 11 +23.989 + 21 +35.5811 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.989 + 20 +35.5811 + 30 +0.0 + 11 +23.9742 + 21 +35.4882 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.9742 + 20 +35.4882 + 30 +0.0 + 11 +23.9606 + 21 +35.3933 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.9606 + 20 +35.3933 + 30 +0.0 + 11 +23.9469 + 21 +35.2989 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.9469 + 20 +35.2989 + 30 +0.0 + 11 +23.7567 + 21 +37.0724 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.7567 + 20 +37.0724 + 30 +0.0 + 11 +23.5663 + 21 +38.8449 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.5663 + 20 +38.8449 + 30 +0.0 + 11 +23.3785 + 21 +40.6183 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.3785 + 20 +40.6183 + 30 +0.0 + 11 +23.1881 + 21 +42.3919 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.1881 + 20 +42.3919 + 30 +0.0 + 11 +23.6446 + 21 +42.3818 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +23.6446 + 20 +42.3818 + 30 +0.0 + 11 +24.101 + 21 +42.3599 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.101 + 20 +42.3599 + 30 +0.0 + 11 +24.5539 + 21 +42.3282 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +24.5539 + 20 +42.3282 + 30 +0.0 + 11 +25.0053 + 21 +42.2858 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0053 + 20 +42.2858 + 30 +0.0 + 11 +25.0161 + 21 +42.6804 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0161 + 20 +42.6804 + 30 +0.0 + 11 +25.0286 + 21 +43.0746 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0286 + 20 +43.0746 + 30 +0.0 + 11 +25.0399 + 21 +43.4678 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0399 + 20 +43.4678 + 30 +0.0 + 11 +25.0511 + 21 +43.8621 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.0511 + 20 +43.8621 + 30 +0.0 + 11 +25.8821 + 21 +43.7101 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.8821 + 20 +43.7101 + 30 +0.0 + 11 +26.7129 + 21 +43.5572 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +26.7129 + 20 +43.5572 + 30 +0.0 + 11 +27.5424 + 21 +43.4043 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.5424 + 20 +43.4043 + 30 +0.0 + 11 +28.3717 + 21 +43.2503 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.3717 + 20 +43.2503 + 30 +0.0 + 11 +28.2112 + 21 +43.4082 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.2112 + 20 +43.4082 + 30 +0.0 + 11 +28.0499 + 21 +43.5663 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.0499 + 20 +43.5663 + 30 +0.0 + 11 +27.8892 + 21 +43.7238 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.8892 + 20 +43.7238 + 30 +0.0 + 11 +27.7287 + 21 +43.8818 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.7287 + 20 +43.8818 + 30 +0.0 + 11 +28.626 + 21 +44.011 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +28.626 + 20 +44.011 + 30 +0.0 + 11 +29.5222 + 21 +44.1417 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.5222 + 20 +44.1417 + 30 +0.0 + 11 +30.419 + 21 +44.2725 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +30.419 + 20 +44.2725 + 30 +0.0 + 11 +31.3146 + 21 +44.4028 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +31.3146 + 20 +44.4028 + 30 +0.0 + 11 +29.3374 + 21 +45.0722 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +29.3374 + 20 +45.0722 + 30 +0.0 + 11 +27.286 + 21 +45.5644 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +27.286 + 20 +45.5644 + 30 +0.0 + 11 +25.1683 + 21 +45.8668 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +25.1683 + 20 +45.8668 + 30 +0.0 + 11 +22.9903 + 21 +45.9703 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +22.9903 + 20 +45.9703 + 30 +0.0 + 11 +14.0504 + 21 +44.1619 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +14.0504 + 20 +44.1619 + 30 +0.0 + 11 +6.74219 + 21 +39.2315 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +6.74219 + 20 +39.2315 + 30 +0.0 + 11 +1.81342 + 21 +31.926 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +1.81342 + 20 +31.926 + 30 +0.0 + 11 +0 + 21 +22.9849 + 31 +0.0 + 0 +LINE + 8 +0 + 62 + 0 + 10 +0 + 20 +22.9849 + 30 +0.0 + 11 +0 + 21 +22.9849 + 31 +0.0 + 0 +ENDSEC + 0 +EOF diff --git a/OHM2021-bottle-clip/write b/OHM2021-bottle-clip/write new file mode 120000 index 0000000..bb67ca5 --- /dev/null +++ b/OHM2021-bottle-clip/write @@ -0,0 +1 @@ +../write \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..22142d1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# SCAD Collection + +Clone with submodules diff --git a/write b/write new file mode 160000 index 0000000..3ba5a70 --- /dev/null +++ b/write @@ -0,0 +1 @@ +Subproject commit 3ba5a7069580447bb08e36bf37d41ec68eeddc77 From 1542047df0a63a5ff7bedd5eb1ce7db8bb1a2710 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 5 Jan 2024 15:47:14 +0100 Subject: [PATCH 02/30] c3cat_bottle_tag v1 --- c3cat-bottle-clip/c3cat-bottle-clip.scad | 135 +++++++++++++++++++++++ c3cat-bottle-clip/catear.stl | 1 + c3cat-bottle-clip/catears.stl | 1 + c3cat-bottle-clip/write | 1 + 4 files changed, 138 insertions(+) create mode 100644 c3cat-bottle-clip/c3cat-bottle-clip.scad create mode 120000 c3cat-bottle-clip/catear.stl create mode 120000 c3cat-bottle-clip/catears.stl create mode 120000 c3cat-bottle-clip/write diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad new file mode 100644 index 0000000..861ecd8 --- /dev/null +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -0,0 +1,135 @@ +/** + * A name tag that can easily be clipped to the neck of your bottle. + * Copyright (C) 2013 Roland Hieber + * + * This file was modified by obelix for the + * OHM2013-Logo. If you wish to use other logos please use the original + * file. All other parameters were not modified. + * + * This file was modified again by djerun to use the catars printed + * by c3cat: https://www.printables.com/model/35076-cat-ears + * as the logo and optionally allow use the easrs from + * https://www.thingiverse.com/thing:5029374 + * printed at scale 0.2 as glue-ins for additional ears. + * + * `Ohren_4.stl` and `catears.stl` need to be placed in `../stls/` + * for the symlinks to work otherwise `catears.stl` needs to be placed + * at `./catears.stl` and `Ohren_4.stl` at `./catear.stl`. + * + * Version of the modification: 1.0 + * + * See examples.scad for examples on how to use this module. + * + * The contents of this file are licenced under CC-BY-SA 3.0 Unported. + * See https://creativecommons.org/licenses/by-sa/3.0/deed for the + * licensing terms. + */ + +include + +/** + * Creates one instance of a bottle clip name tag. The default values are + * suitable for 0.5l Club Mate bottles (and similar bottles). By default, logo + * and text are placed on the name tag so they both share half the height. In this + * version the logo is fixed. + * + * Parameters: + * ru: the radius on the upper side of the clip + * rl: the radius on the lower side of the clip + * ht: the height of the clip + * width: the thickness of the wall. Values near 2.5 usually result in a good + * clippiness for PLA prints. + * name: the name that is printed on your name tag. For the default ru/rt/ht + * values, this string should not exceed 18 characters to fit on the name tag. + * font: the path to a font for Write.scad. + */ + +/* currently openscad fails to render `Ohren_4.stl` outside of the preview mode */ +//difference() { + rotate(45, [0, 0, 1]) bottle_clip(name="c3cat"); +// translate([ 15, 0, 18]) rotate(80, [0, 1, 0]) catear(); +// translate([-15, 0, 18]) rotate(-80, [0, 1, 0]) catear(); +//} +// +//translate([0, 5, 0]) catear(); +//rotate(180) translate([0, 5, 0]) catear(); + +module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { + + e=100; // should be big enough, used for the outer boundary of the text/logo + + difference() { + rotate([0,0,-45]) union() { + // main cylinder + cylinder(r1=rl+width, r2=ru+width, h=ht); + // text and logo + if(logo == "") { + color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); + translate([4.7, -rl, ht*1.08]) rotate(-10, [1, 0, 0]) rotate(76, [0, 1, 0]) scale([0.08, 2, 0.08]) color("red") import("catears.stl"); + } else { + color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); + + // The logo has been split in 3 parts. +/* + rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.9,0.9,1]) + scale([ht/100,ht/100,1]) + translate([-25,-29,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_1.dxf"); +*/ + translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.8,0.8,1]) + scale([ht/100,ht/100,1]) + translate([-18,-22,0.5]) + linear_extrude(height=max(ru,rl)*2) + import(logo); +/* + rotate([0,0,44]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.7,0.7,1]) + scale([ht/100,ht/100,1]) + translate([-25,-26,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_3.dxf"); +*/ + } + } + // inner cylinder which is substracted + translate([0,0,-1]) + cylinder(r1=rl, r2=ru, h=ht+2); + // outer cylinder which is substracted, so the text and the logo end + // somewhere on the outside ;-) + difference () { + cylinder(r1=rl+e, r2=ru+e, h=ht); + translate([0,0,-1]) + // Note: bottom edges of characters are hard to print when character + // depth is > 0.7 + cylinder(r1=rl+width+0.7, r2=ru+width+0.7, h=ht+2); + } + // finally, substract a cube as a gap so we can clip it to the bottle + translate([0,0,-1]) cube([50,50,50]); + } +} + +module catear() { + rotate(-90, [0, 0, 1]) union() { + scale([0.2, 0.2, 0.2]) translate([0, -85]) import("catear.stl"); + scale([0.2, -0.2, 0.2]) translate([0, -85]) import("catear.stl"); + } +} + +/** + * Creates one instance of a bottle clip name tag suitable for 0.33l longneck + * bottles (like fritz cola, etc.). All parameters are passed to the module + * bottle_clip(), see there for their documentation. + */ +module bottle_clip_longneck(name="c3cat", width=2.5, font="write/orbitron.dxf") { + bottle_clip(name=name, ru=13, rl=15, ht=26, width=width, font=font, logo=""); +} + +/** + * The Steinie-Tag has been removed since it does not support logos. +**/ diff --git a/c3cat-bottle-clip/catear.stl b/c3cat-bottle-clip/catear.stl new file mode 120000 index 0000000..9c37596 --- /dev/null +++ b/c3cat-bottle-clip/catear.stl @@ -0,0 +1 @@ +../stls/Ohren_4.stl \ No newline at end of file diff --git a/c3cat-bottle-clip/catears.stl b/c3cat-bottle-clip/catears.stl new file mode 120000 index 0000000..2652b8c --- /dev/null +++ b/c3cat-bottle-clip/catears.stl @@ -0,0 +1 @@ +../stls/catears.stl \ No newline at end of file diff --git a/c3cat-bottle-clip/write b/c3cat-bottle-clip/write new file mode 120000 index 0000000..bb67ca5 --- /dev/null +++ b/c3cat-bottle-clip/write @@ -0,0 +1 @@ +../write \ No newline at end of file From 87197a4296f848dc836fa5ef70706180091d8f78 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 5 Jan 2024 16:01:26 +0100 Subject: [PATCH 03/30] bunnyear_headband v0.1 --- pressfit_headband.scad | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index f027969..d9723dd 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -184,4 +184,23 @@ module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, }; } -catear_headband(); +module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=0.5, rake_width=0.5, rake_stretch=0.5, ear_scale=1, ear_bend_factor=0.3, ear_stretch_factor=5, ear_angle=30) { + catear_headband( + debug=debug, + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + rake_depth=rake_depth, + rake_width=rake_width, + rake_stretch=rake_stretch, + ear_scale=ear_scale, + ear_bend_factor=ear_bend_factor, + ear_stretch_factor=ear_stretch_factor, + ear_angle=ear_angle); +} + +bunnyear_headband(); \ No newline at end of file From 1a793d8b11d9e7617929dd25378c5ca8d8789c17 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 5 Jan 2024 16:02:23 +0100 Subject: [PATCH 04/30] bunnyear_headband v0.2 --- pressfit_headband.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index d9723dd..f244b9a 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -184,7 +184,7 @@ module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, }; } -module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=0.5, rake_width=0.5, rake_stretch=0.5, ear_scale=1, ear_bend_factor=0.3, ear_stretch_factor=5, ear_angle=30) { +module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=1, ear_bend_factor=0.3, ear_stretch_factor=4, ear_angle=30) { catear_headband( debug=debug, size=size, From 76dc7c6619a57585427e844e4898752624bd6842 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 5 Jan 2024 16:04:51 +0100 Subject: [PATCH 05/30] bunnyear_headband v0.3 --- pressfit_headband.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index f244b9a..41a1aeb 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -184,7 +184,7 @@ module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, }; } -module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=1, ear_bend_factor=0.3, ear_stretch_factor=4, ear_angle=30) { +module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { catear_headband( debug=debug, size=size, From 2d508831ba18b2f3e3b898f489839d3fd5e41566 Mon Sep 17 00:00:00 2001 From: April John Date: Tue, 16 Jan 2024 23:10:08 +0100 Subject: [PATCH 06/30] foxear_headband v0.1 extracted from 3c3e2203b2d9b0c1dad6054a9a0048399ab5497d Author: April John Date: Fri Jan 5 16:43:30 2024 +0100 [feat] fox, wolf and puppy ears --- pressfit_headband.scad | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index 41a1aeb..b37b6a3 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -203,4 +203,23 @@ module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7 ear_angle=ear_angle); } -bunnyear_headband(); \ No newline at end of file +module foxear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { + catear_headband( + debug=debug, + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + rake_depth=rake_depth, + rake_width=rake_width, + rake_stretch=rake_stretch, + ear_scale=ear_scale, + ear_bend_factor=ear_bend_factor, + ear_stretch_factor=ear_stretch_factor, + ear_angle=ear_angle); +} + +foxear_headband(); \ No newline at end of file From 7000a155e64e2a8c2b57bc65c8b4f550c9c72d9c Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 16:55:03 +0100 Subject: [PATCH 07/30] headband v3.0 --- pressfit_headband.scad | 46 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index b37b6a3..a13520a 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -1,4 +1,16 @@ $fn=360; +DEBUG=false; +SIZE=60; +HEIGHT=4.6; +THICKNESS=3; +PART=0.7; +STRETCH_LEN=40; +TIP_LEN=0.05; +TIP_BEND=20; +RAKE_DEPTH=1; +RAKE_WIDTH=1; +RAKE_STRETCH=1; +RAKE_CHAMPFER=0; module inserticle() { cube([4.6, 7.4, 5.4], center=true); @@ -80,7 +92,7 @@ module partial_ring(part, radius, thickness, height) { square([thickness, height], center=true); } -module headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1.5, rake_width=0.5, rake_stretch=2) { +module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_champfer=RAKE_CHAMPFER) { union() { color("purple") partial_ring(part, radius=size, thickness=thickness, height=height); rotate( 90-180*part, [0, 0, 1]) translate([stretch_len/2, size, 0]) { @@ -108,19 +120,19 @@ module headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_ for (i=[-size/2:size/2]) { rotate(i*2-rake_width/2, [0, 0, 1]) intersection() { scale([1, 1, rake_stretch/(rake_depth/height)]) - rotate_extrude(angle=rake_width) + translate([0, rake_width/2, 0]) rotate_extrude(angle=rake_width) translate([rake_depth/2-size+thickness/2, 0, 0]) scale([1, 0.5, 1]) circle(r=rake_depth, $fn=3); - translate([rake_depth/2-size+thickness/2, 0, 0]) + translate([rake_depth/2-size+thickness/2-rake_champfer, 0, 0]) color("red") - cube([4*rake_depth, 4*rake_depth, height], center=true); + cube([2*rake_depth, rake_width, height], center=true); } }; }; } -module pressfit_headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1.5, rake_width=0.5, rake_stretch=2) { +module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND) { union() { color("pink") { $a=48; rotate( $a, [0, 0, 1]) { @@ -139,15 +151,12 @@ module pressfit_headband(size=60, height=4.6, thickness=3, part=0.7, stretch_len part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch + tip_bend=tip_bend ); }; } -module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=0.5, rake_width=0.5, rake_stretch=.5, ear_scale=1, ear_bend_factor=0.15, ear_stretch_factor=1.4, ear_angle=48) { +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.4, ear_bend_factor=0.15, ear_stretch_factor=1, ear_angle=42) { union() { rotate( ear_angle, [0, 0, 1]) { translate([-size, 0, 0]) catear( @@ -176,15 +185,12 @@ module catear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch + tip_bend=tip_bend ); }; } -module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { +module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { catear_headband( debug=debug, size=size, @@ -194,16 +200,13 @@ module bunnyear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7 stretch_len=stretch_len, tip_len=tip_len, tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch, ear_scale=ear_scale, ear_bend_factor=ear_bend_factor, ear_stretch_factor=ear_stretch_factor, ear_angle=ear_angle); } -module foxear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=40, tip_len=0.1, tip_bend=20, rake_depth=1, rake_width=0.5, rake_stretch=1, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { +module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { catear_headband( debug=debug, size=size, @@ -213,13 +216,10 @@ module foxear_headband(debug=false, size=60, height=4.6, thickness=3, part=0.7, stretch_len=stretch_len, tip_len=tip_len, tip_bend=tip_bend, - rake_depth=rake_depth, - rake_width=rake_width, - rake_stretch=rake_stretch, ear_scale=ear_scale, ear_bend_factor=ear_bend_factor, ear_stretch_factor=ear_stretch_factor, ear_angle=ear_angle); } -foxear_headband(); \ No newline at end of file +headband(); \ No newline at end of file From 05e26aaf5aa29ef463b609a856fb384c576186a6 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 17:02:17 +0100 Subject: [PATCH 08/30] headband v3.0.1 --- pressfit_headband.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index a13520a..0e77fb5 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -10,7 +10,7 @@ TIP_BEND=20; RAKE_DEPTH=1; RAKE_WIDTH=1; RAKE_STRETCH=1; -RAKE_CHAMPFER=0; +RAKE_CHAMPFER=0.5; module inserticle() { cube([4.6, 7.4, 5.4], center=true); From f11fb14c7b94c6ca4b8297846c87af251541875c Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 19:08:20 +0100 Subject: [PATCH 09/30] remove pressfit_ from the filename --- pressfit_headband.scad => headband.scad | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pressfit_headband.scad => headband.scad (100%) diff --git a/pressfit_headband.scad b/headband.scad similarity index 100% rename from pressfit_headband.scad rename to headband.scad From ffbf130e70c1e9e06b9e45610ef4f3c9b5e896f9 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 19:28:54 +0100 Subject: [PATCH 10/30] pressfit_headband v0.3 move pressfit headband to sperate file --- headband.scad | 44 ------------------------------------------ pressfit_headband.scad | 31 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 44 deletions(-) create mode 100644 pressfit_headband.scad diff --git a/headband.scad b/headband.scad index 0e77fb5..e77263f 100644 --- a/headband.scad +++ b/headband.scad @@ -12,24 +12,6 @@ RAKE_WIDTH=1; RAKE_STRETCH=1; RAKE_CHAMPFER=0.5; -module inserticle() { - cube([4.6, 7.4, 5.4], center=true); -} - -module testblock_inserticle() { - union() { - translate([0, 0, 5.4/2]) inserticle(); - translate([0, 0, -5]) cube([15, 12, 10], center=true); - } -} - -module testblock_recepticle() { - rotate(180, [0, 1, 0]) difference() { - translate([0, 0, 5]) cube([15, 12, 10], center=true); - translate([0, 0, 5.4/2]) inserticle(); - } -} - module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false) { $A=[0, side_len/2]; $B=[0,-side_len/2]; @@ -132,30 +114,6 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part }; } -module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND) { - union() { - color("pink") { $a=48; - rotate( $a, [0, 0, 1]) { - translate([-size-4, 0,]) rotate(90, [0, 1, 0]) inserticle(); - translate([-size-3, 0,]) rotate(90, [0, 1, 0]) inserticle(); - } - rotate(-$a, [0, 0, 1]) { - translate([-size-4, 0,]) rotate(90, [0, 1, 0]) inserticle(); - translate([-size-3, 0,]) rotate(90, [0, 1, 0]) inserticle(); - } - } - headband( - size=size, - height=height, - thickness=thickness, - part=part, - stretch_len=stretch_len, - tip_len=tip_len, - tip_bend=tip_bend - ); - }; -} - module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.4, ear_bend_factor=0.15, ear_stretch_factor=1, ear_angle=42) { union() { rotate( ear_angle, [0, 0, 1]) { @@ -221,5 +179,3 @@ module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES ear_stretch_factor=ear_stretch_factor, ear_angle=ear_angle); } - -headband(); \ No newline at end of file diff --git a/pressfit_headband.scad b/pressfit_headband.scad new file mode 100644 index 0000000..cab69aa --- /dev/null +++ b/pressfit_headband.scad @@ -0,0 +1,31 @@ +include + +module inserticle() { + cube([4.6, 7.4, 5.4], center=true); +} + +module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND) { + union() { + color("pink") { $a=48; + rotate( $a, [0, 0, 1]) { + translate([-size-4, 0,]) rotate(90, [0, 1, 0]) inserticle(); + translate([-size-3, 0,]) rotate(90, [0, 1, 0]) inserticle(); + } + rotate(-$a, [0, 0, 1]) { + translate([-size-4, 0,]) rotate(90, [0, 1, 0]) inserticle(); + translate([-size-3, 0,]) rotate(90, [0, 1, 0]) inserticle(); + } + } + headband( + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend + ); + }; +} + +pressfit_headband(); From a94b197dd123b512240f1615760a975701d7ee01 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 17:42:45 +0100 Subject: [PATCH 11/30] catear_headband v0.4 move catear headband to seperate file --- catear_headband.scad | 97 ++++++++++++++++++++++++++++++++++++++++++++ headband.scad | 89 ---------------------------------------- 2 files changed, 97 insertions(+), 89 deletions(-) create mode 100644 catear_headband.scad diff --git a/catear_headband.scad b/catear_headband.scad new file mode 100644 index 0000000..c59303f --- /dev/null +++ b/catear_headband.scad @@ -0,0 +1,97 @@ +include + +module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false) { + $A=[0, side_len/2]; + $B=[0,-side_len/2]; + $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; + $c=sqrt(pow($A.x-$B.x, 2)+pow($A.y-$B.y, 2)); + $b=sqrt(pow($A.x-$C.x, 2)+pow($A.y-$C.y, 2)); + $a=sqrt(pow($C.x-$B.x, 2)+pow($C.y-$B.y, 2)); + $hc=-$C.x; + $alpha=asin($hc/$b); + $beta=$alpha; + $gamma=180-$alpha-$beta; + $delta=180*bend_factor; + $bend_radius=$a/(2*cos(90-$delta/2)); + $bend_offset=$bend_radius*sin(90-$delta/2); + + translate([0, -$c/2, 0]) + rotate($beta, [0, 0, 1]) + translate([0, $a/2, 0]) + translate([$bend_offset, 0, 0]) + color("#00ffff") partial_ring( + part=$delta/360, + radius=$bend_radius, + thickness=thickness, + height=height + ); + translate([0, $c/2, 0]) + rotate(-$alpha, [0, 0, 1]) + translate([0, -$b/2, 0]) + translate([$bend_offset, 0, 0]) + color("#ff00ff") partial_ring( + part=$delta/360, + radius=$bend_radius, + thickness=thickness, + height=height + ); + translate($A) color("#aaaaaa") cylinder(h=height, d=thickness, center=true); + translate($B) color("#bbbbbb") cylinder(h=height, d=thickness, center=true); + translate($C) color("#cccccc") cylinder(h=height, d=thickness, center=true); + + if (debug) { + echo("A", $A, "a", $a, "alpha", $alpha); + echo("B", $B, "b", $b, "beta ", $beta); + echo("C", $C, "c", $c, "gamma", $gamma); + echo("bend_factor", bend_factor); + echo("delta:", $delta); + echo("bend_radius", $bend_radius); + echo("bend_offset", $bend_offset); + color("#000000") cylinder(h=4, d=4); + translate($C/2) color("red") cube([$hc, thickness, height*1.1], center=true); + color("red") cube([thickness, $c, height*1.1], center=true); + color("red")translate([0, $c/2, 0]) rotate(-$alpha, [0, 0, 1]) translate([0, -$b/2, 0]) cube([thickness,$b, height*1.1], center=true); + color("red")translate([0, -$c/2, 0]) rotate($beta, [0, 0, 1]) translate([0, $a/2, 0]) cube([thickness, $a, height*1.1], center=true); + } +} + +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42) { + + $a=size/2*ear_scale; + $delta=2*(acos($a/(size*2))-90); + ear_offset=size*sin(90-$delta/2); + + union() { + rotate( ear_angle, [0, 0, 1]) { + translate([-ear_offset, 0, 0]) catear( + debug=debug, + height=height, + thickness=thickness, + side_len=size/2*ear_scale, + bend_factor=ear_bend_factor, + stretch_factor=ear_stretch_factor + ); + } + rotate(-ear_angle, [0, 0, 1]) { + translate([-ear_offset, 0, 0]) catear( + debug=false, + height=height, + thickness=thickness, + side_len=size/2*ear_scale, + bend_factor=ear_bend_factor, + stretch_factor=ear_stretch_factor + ); + } + headband( + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend + ); + }; +} + +catear_headband(); diff --git a/headband.scad b/headband.scad index e77263f..a50e28a 100644 --- a/headband.scad +++ b/headband.scad @@ -12,61 +12,6 @@ RAKE_WIDTH=1; RAKE_STRETCH=1; RAKE_CHAMPFER=0.5; -module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false) { - $A=[0, side_len/2]; - $B=[0,-side_len/2]; - $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; - $c=sqrt(pow($A.x-$B.x, 2)+pow($A.y-$B.y, 2)); - $b=sqrt(pow($A.x-$C.x, 2)+pow($A.y-$C.y, 2)); - $a=sqrt(pow($C.x-$B.x, 2)+pow($C.y-$B.y, 2)); - $hc=-$C.x; - $alpha=asin($hc/$b); - $beta=$alpha; - $gamma=180-$alpha-$beta; - $delta=180*bend_factor; - $bend_radius=$a/(2*cos(90-$delta/2)); - $bend_offset=$bend_radius*sin(90-$delta/2); - - translate([0, -$c/2, 0]) - rotate($beta, [0, 0, 1]) - translate([0, $a/2, 0]) - translate([$bend_offset, 0, 0]) - color("#00ffff") partial_ring( - part=$delta/360, - radius=$bend_radius, - thickness=thickness, - height=height - ); - translate([0, $c/2, 0]) - rotate(-$alpha, [0, 0, 1]) - translate([0, -$b/2, 0]) - translate([$bend_offset, 0, 0]) - color("#ff00ff") partial_ring( - part=$delta/360, - radius=$bend_radius, - thickness=thickness, - height=height - ); - translate($A) color("#aaaaaa") cylinder(h=height, d=thickness, center=true); - translate($B) color("#bbbbbb") cylinder(h=height, d=thickness, center=true); - translate($C) color("#cccccc") cylinder(h=height, d=thickness, center=true); - - if (debug) { - echo("A", $A, "a", $a, "alpha", $alpha); - echo("B", $B, "b", $b, "beta ", $beta); - echo("C", $C, "c", $c, "gamma", $gamma); - echo("bend_factor", bend_factor); - echo("delta:", $delta); - echo("bend_radius", $bend_radius); - echo("bend_offset", $bend_offset); - color("#000000") cylinder(h=4, d=4); - translate($C/2) color("red") cube([$hc, thickness, height*1.1], center=true); - color("red") cube([thickness, $c, height*1.1], center=true); - color("red")translate([0, $c/2, 0]) rotate(-$alpha, [0, 0, 1]) translate([0, -$b/2, 0]) cube([thickness, $b, height*1.1], center=true); - color("red")translate([0, -$c/2, 0]) rotate($beta, [0, 0, 1]) translate([0, $a/2, 0]) cube([thickness, $a, height*1.1], center=true); - } -} - module partial_ring(part, radius, thickness, height) { rotate(180-180*part, [0, 0, 1]) rotate_extrude(angle=360*part) @@ -114,40 +59,6 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part }; } -module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.4, ear_bend_factor=0.15, ear_stretch_factor=1, ear_angle=42) { - union() { - rotate( ear_angle, [0, 0, 1]) { - translate([-size, 0, 0]) catear( - debug=debug, - height=height, - thickness=thickness, - side_len=size/2*ear_scale, - bend_factor=ear_bend_factor, - stretch_factor=ear_stretch_factor - ); - } - rotate(-ear_angle, [0, 0, 1]) { - translate([-size, 0, 0]) catear( - debug=false, - height=height, - thickness=thickness, - side_len=size/2*ear_scale, - bend_factor=ear_bend_factor, - stretch_factor=ear_stretch_factor - ); - } - headband( - size=size, - height=height, - thickness=thickness, - part=part, - stretch_len=stretch_len, - tip_len=tip_len, - tip_bend=tip_bend - ); - }; -} - module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { catear_headband( debug=debug, From 568609a7613283db648f2ee478e1c4c6f84185f5 Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 20:42:34 +0100 Subject: [PATCH 12/30] bunnyear_headband v0.4 move bunnyear headband to separate file --- bunnyear_headband.scad | 20 ++++++++++++++++++++ headband.scad | 16 ---------------- 2 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 bunnyear_headband.scad diff --git a/bunnyear_headband.scad b/bunnyear_headband.scad new file mode 100644 index 0000000..956a67b --- /dev/null +++ b/bunnyear_headband.scad @@ -0,0 +1,20 @@ +use +include + +module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=8, ear_angle=30) { + catear_headband( + debug=debug, + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + ear_scale=ear_scale, + ear_bend_factor=ear_bend_factor, + ear_stretch_factor=ear_stretch_factor, + ear_angle=ear_angle); +} + +bunnyear_headband(); diff --git a/headband.scad b/headband.scad index a50e28a..12697df 100644 --- a/headband.scad +++ b/headband.scad @@ -59,22 +59,6 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part }; } -module bunnyear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=0.5, ear_bend_factor=0.2, ear_stretch_factor=10, ear_angle=30) { - catear_headband( - debug=debug, - size=size, - height=height, - thickness=thickness, - part=part, - stretch_len=stretch_len, - tip_len=tip_len, - tip_bend=tip_bend, - ear_scale=ear_scale, - ear_bend_factor=ear_bend_factor, - ear_stretch_factor=ear_stretch_factor, - ear_angle=ear_angle); -} - module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { catear_headband( debug=debug, From 2bf06487c00691e9a649c19da8287a455a2fe25c Mon Sep 17 00:00:00 2001 From: user Date: Sat, 27 Jan 2024 20:50:18 +0100 Subject: [PATCH 13/30] foxear headband v0.2 move foxear headband to separate file --- foxear_headband.scad | 20 ++++++++++++++++++++ headband.scad | 16 ---------------- 2 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 foxear_headband.scad diff --git a/foxear_headband.scad b/foxear_headband.scad new file mode 100644 index 0000000..2650854 --- /dev/null +++ b/foxear_headband.scad @@ -0,0 +1,20 @@ +use +include + +module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { + catear_headband( + debug=debug, + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + ear_scale=ear_scale, + ear_bend_factor=ear_bend_factor, + ear_stretch_factor=ear_stretch_factor, + ear_angle=ear_angle); +} + +foxear_headband(); diff --git a/headband.scad b/headband.scad index 12697df..9ab8fcd 100644 --- a/headband.scad +++ b/headband.scad @@ -58,19 +58,3 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part }; }; } - -module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { - catear_headband( - debug=debug, - size=size, - height=height, - thickness=thickness, - part=part, - stretch_len=stretch_len, - tip_len=tip_len, - tip_bend=tip_bend, - ear_scale=ear_scale, - ear_bend_factor=ear_bend_factor, - ear_stretch_factor=ear_stretch_factor, - ear_angle=ear_angle); -} From 8b9f7e27e5e351762a13be8588923e9066935c8b Mon Sep 17 00:00:00 2001 From: user Date: Tue, 30 Jan 2024 20:56:00 +0100 Subject: [PATCH 14/30] headband v0.4: add chamfering, fix indentation --- chamfer.scad | 78 ++++++++++++++++++++++++++++++++++++++++++++ headband.scad | 90 +++++++++++++++++++++++++++++---------------------- 2 files changed, 130 insertions(+), 38 deletions(-) create mode 100644 chamfer.scad diff --git a/chamfer.scad b/chamfer.scad new file mode 100644 index 0000000..fb16d1d --- /dev/null +++ b/chamfer.scad @@ -0,0 +1,78 @@ +/// Chamfering OpenSCAD Example +/// Written by Robert Quattlebaum, 2022-12-14 +/// +/// This example shows a method for adding a chamfer to a certain +/// class of 3D objects where the profile in the Z dimension doesn't +/// change significantly. +/// +/// You must specify the size of the chamfer, the height of the child +/// and the Z-offset for the bottom of the object. You can also specify +/// the shape of the chamfer, which can be either "cone", "curve", "curve-in", +/// or "pyramid". +/// +/// This process is ultimately slow, but should be faster than using minkowski. + +module chamfer(size=2, child_h=5, child_bot=0, shape="curve") { + chamfer_size=size; + + module chamfer_shape() { + if (shape == "cone") { + $fn=16; + cylinder(chamfer_size/2,chamfer_size/2,0); + } else if (shape == "curve") { + $fn=4; + for( y = [0:1/$fn:1]) { + cylinder(chamfer_size/2*(1-y),chamfer_size/2/cos(180/$fn)*y,0); + } + } else if (shape == "curve-in") { + $fn=16; + intersection() { + sphere(chamfer_size/2/cos(180/$fn)); + translate([0,0,chamfer_size/2]) + cube(chamfer_size, center=true); + } + } else if (shape == "pyramid") { + $fn=4; + cylinder(chamfer_size/2/cos(180/$fn),chamfer_size/2,0); + } + } + + module lower_chamfer() { + minkowski() + { + linear_extrude(0.0001) difference() { + square([1000,1000],center=true); + projection()children(0); + } + chamfer_shape(); + } + } + + module upper_chamfer() { + scale([1,1,-1])lower_chamfer()children(); + } + + render()difference() { + children(); + translate([0,0,child_bot])lower_chamfer()children(); + translate([0,0,child_bot+child_h])upper_chamfer()children(); + } +} + +///////////////////////////////////////////////////////////////////////// + +module my_shape(h=5) { + translate([0,0,h/2]) { + difference() { + cube([50,50,h],center=true); + cube([20,20,h+1],center=true); + } + translate([20,21,0])cylinder(h=h,r=20,center=true); + } +} + + +h=5; + +chamfer(3, child_h=h, shape="cone") + my_shape(h); diff --git a/headband.scad b/headband.scad index 9ab8fcd..df4c3a0 100644 --- a/headband.scad +++ b/headband.scad @@ -10,51 +10,65 @@ TIP_BEND=20; RAKE_DEPTH=1; RAKE_WIDTH=1; RAKE_STRETCH=1; -RAKE_CHAMPFER=0.5; +RAKE_CHAMFER=0.5; +CHAMFER=1; +CHAMFER_SHAPE="cone"; + +use module partial_ring(part, radius, thickness, height) { - rotate(180-180*part, [0, 0, 1]) - rotate_extrude(angle=360*part) - translate([radius, 0]) - square([thickness, height], center=true); + rotate(180-180*part, [0, 0, 1]) + rotate_extrude(angle=360*part) + translate([radius, 0]) + square([thickness, height], center=true); } -module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_champfer=RAKE_CHAMPFER) { - union() { - color("purple") partial_ring(part, radius=size, thickness=thickness, height=height); - rotate( 90-180*part, [0, 0, 1]) translate([stretch_len/2, size, 0]) { - color("orange") cube([stretch_len, thickness, height], center=true); +module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { + union() { + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) union() { + color("purple") + partial_ring(part, radius=size, thickness=thickness, height=height); + rotate( 90-180*part, [0, 0, 1]) + translate([stretch_len/2, size, 0]) { + color("orange") cube([stretch_len, thickness, height], center=true); color("purple") translate([stretch_len/2, tip_bend, 0]) - rotate(90+180*tip_len, [0, 0, 1]) - partial_ring( - part=tip_len, - radius=tip_bend, - thickness=thickness, - height=height - ); + rotate(90+180*tip_len, [0, 0, 1]) + partial_ring( + part=tip_len, + radius=tip_bend, + thickness=thickness, + height=height + ); } - rotate(-90+180*part, [0, 0, 1]) translate([stretch_len/2, -size, 0]) { - color("orange") cube([stretch_len, thickness, height], center=true); - color("purple") scale([1, -1, 1]) translate([stretch_len/2, tip_bend, 0]) + rotate(-90+180*part, [0, 0, 1]) + translate([stretch_len/2, -size, 0]) { + color("orange") + cube([stretch_len, thickness, height], center=true); + color("purple") + scale([1, -1, 1]) + translate([stretch_len/2, tip_bend, 0]) rotate(90+180*tip_len, [0, 0, 1]) - partial_ring( - part=tip_len, - radius=tip_bend, - thickness=thickness, - height=height - ); + partial_ring( + part=tip_len, + radius=tip_bend, + thickness=thickness, + height=height + ); + } + } + for (i=[-size/2:size/2]) { + rotate(i*2-rake_width/2, [0, 0, 1]) + intersection() { + scale([1, 1, rake_stretch/(rake_depth/height)]) + translate([0, rake_width/2, 0]) + rotate_extrude(angle=rake_width) + translate([rake_depth/2-size+thickness/2, 0, 0]) + scale([1, 0.5, 1]) + circle(r=rake_depth, $fn=3); + translate([rake_depth/2-size+thickness/2-rake_chamfer, 0, 0]) + color("red") + cube([2*rake_depth, rake_width, height], center=true); } - for (i=[-size/2:size/2]) { - rotate(i*2-rake_width/2, [0, 0, 1]) intersection() { - scale([1, 1, rake_stretch/(rake_depth/height)]) - translate([0, rake_width/2, 0]) rotate_extrude(angle=rake_width) - translate([rake_depth/2-size+thickness/2, 0, 0]) - scale([1, 0.5, 1]) - circle(r=rake_depth, $fn=3); - translate([rake_depth/2-size+thickness/2-rake_champfer, 0, 0]) - color("red") - cube([2*rake_depth, rake_width, height], center=true); - } - }; }; + }; } From ebc0c7c0b98b67408edf950e2d7c9745f8be3d21 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 30 Jan 2024 21:00:01 +0100 Subject: [PATCH 15/30] catear_headband v0.5: add chamfering --- catear_headband.scad | 124 +++++++++++++++++++++++++------------------ 1 file changed, 71 insertions(+), 53 deletions(-) diff --git a/catear_headband.scad b/catear_headband.scad index c59303f..ac2a4bd 100644 --- a/catear_headband.scad +++ b/catear_headband.scad @@ -1,61 +1,75 @@ include -module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false) { - $A=[0, side_len/2]; - $B=[0,-side_len/2]; - $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; - $c=sqrt(pow($A.x-$B.x, 2)+pow($A.y-$B.y, 2)); - $b=sqrt(pow($A.x-$C.x, 2)+pow($A.y-$C.y, 2)); - $a=sqrt(pow($C.x-$B.x, 2)+pow($C.y-$B.y, 2)); - $hc=-$C.x; - $alpha=asin($hc/$b); - $beta=$alpha; - $gamma=180-$alpha-$beta; - $delta=180*bend_factor; - $bend_radius=$a/(2*cos(90-$delta/2)); - $bend_offset=$bend_radius*sin(90-$delta/2); +use - translate([0, -$c/2, 0]) - rotate($beta, [0, 0, 1]) - translate([0, $a/2, 0]) - translate([$bend_offset, 0, 0]) - color("#00ffff") partial_ring( - part=$delta/360, - radius=$bend_radius, - thickness=thickness, - height=height - ); - translate([0, $c/2, 0]) +module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { + $A=[0, side_len/2]; + $B=[0,-side_len/2]; + $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; + $c=sqrt(pow($A.x-$B.x, 2)+pow($A.y-$B.y, 2)); + $b=sqrt(pow($A.x-$C.x, 2)+pow($A.y-$C.y, 2)); + $a=sqrt(pow($C.x-$B.x, 2)+pow($C.y-$B.y, 2)); + $hc=-$C.x; + $alpha=asin($hc/$b); + $beta=$alpha; + $gamma=180-$alpha-$beta; + $delta=180*bend_factor; + $bend_radius=$a/(2*cos(90-$delta/2)); + $bend_offset=$bend_radius*sin(90-$delta/2); + + translate([0, -$c/2, 0]) + rotate($beta, [0, 0, 1]) + translate([0, $a/2, 0]) + translate([$bend_offset, 0, 0]) + color("#00ffff") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + partial_ring( + part=$delta/360, + radius=$bend_radius, + thickness=thickness, + height=height + ); + translate([0, $c/2, 0]) + rotate(-$alpha, [0, 0, 1]) + translate([0, -$b/2, 0]) + translate([$bend_offset, 0, 0]) + color("#ff00ff") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + partial_ring( + part=$delta/360, + radius=$bend_radius, + thickness=thickness, + height=height + ); + translate($A) color("#aaaaaa") cylinder(h=height, d=thickness, center=true); + translate($B) color("#bbbbbb") cylinder(h=height, d=thickness, center=true); + translate($C) color("#cccccc") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); + + if (debug) { + echo("A", $A, "a", $a, "alpha", $alpha); + echo("B", $B, "b", $b, "beta ", $beta); + echo("C", $C, "c", $c, "gamma", $gamma); + echo("bend_factor", bend_factor); + echo("delta:", $delta); + echo("bend_radius", $bend_radius); + echo("bend_offset", $bend_offset); + color("#000000") cylinder(h=4, d=4); + translate($C/2) color("red") cube([$hc, thickness, height*1.1], center=true); + color("red") cube([thickness, $c, height*1.1], center=true); + color("red") translate([0, $c/2, 0]) rotate(-$alpha, [0, 0, 1]) translate([0, -$b/2, 0]) - translate([$bend_offset, 0, 0]) - color("#ff00ff") partial_ring( - part=$delta/360, - radius=$bend_radius, - thickness=thickness, - height=height - ); - translate($A) color("#aaaaaa") cylinder(h=height, d=thickness, center=true); - translate($B) color("#bbbbbb") cylinder(h=height, d=thickness, center=true); - translate($C) color("#cccccc") cylinder(h=height, d=thickness, center=true); - - if (debug) { - echo("A", $A, "a", $a, "alpha", $alpha); - echo("B", $B, "b", $b, "beta ", $beta); - echo("C", $C, "c", $c, "gamma", $gamma); - echo("bend_factor", bend_factor); - echo("delta:", $delta); - echo("bend_radius", $bend_radius); - echo("bend_offset", $bend_offset); - color("#000000") cylinder(h=4, d=4); - translate($C/2) color("red") cube([$hc, thickness, height*1.1], center=true); - color("red") cube([thickness, $c, height*1.1], center=true); - color("red")translate([0, $c/2, 0]) rotate(-$alpha, [0, 0, 1]) translate([0, -$b/2, 0]) cube([thickness,$b, height*1.1], center=true); - color("red")translate([0, -$c/2, 0]) rotate($beta, [0, 0, 1]) translate([0, $a/2, 0]) cube([thickness, $a, height*1.1], center=true); - } + cube([thickness,$b, height*1.1], center=true); + color("red") translate([0, -$c/2, 0]) + rotate($beta, [0, 0, 1]) + translate([0, $a/2, 0]) + cube([thickness, $a, height*1.1], center=true); + } } -module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42) { +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { $a=size/2*ear_scale; $delta=2*(acos($a/(size*2))-90); @@ -69,7 +83,9 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES thickness=thickness, side_len=size/2*ear_scale, bend_factor=ear_bend_factor, - stretch_factor=ear_stretch_factor + stretch_factor=ear_stretch_factor, + chamfer=chamfer, + chamfer_shape=chamfer_shape ); } rotate(-ear_angle, [0, 0, 1]) { @@ -79,7 +95,9 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES thickness=thickness, side_len=size/2*ear_scale, bend_factor=ear_bend_factor, - stretch_factor=ear_stretch_factor + stretch_factor=ear_stretch_factor, + chamfer=chamfer, + chamfer_shape=chamfer_shape ); } headband( From 27e5d098b2093b181e31a85dc7a0cb83a2a25ac4 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 30 Jan 2024 22:44:57 +0100 Subject: [PATCH 16/30] foxear_headband v0.3: add chamfering --- foxear_headband.scad | 2 +- headband.scad | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/foxear_headband.scad b/foxear_headband.scad index 2650854..7fb26af 100644 --- a/foxear_headband.scad +++ b/foxear_headband.scad @@ -1,7 +1,7 @@ use include -module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.01, ear_stretch_factor=1.2, ear_angle=30) { +module foxear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.2, ear_bend_factor=0.05, ear_stretch_factor=1.2, ear_angle=30) { catear_headband( debug=debug, size=size, diff --git a/headband.scad b/headband.scad index df4c3a0..f09299d 100644 --- a/headband.scad +++ b/headband.scad @@ -12,7 +12,7 @@ RAKE_WIDTH=1; RAKE_STRETCH=1; RAKE_CHAMFER=0.5; CHAMFER=1; -CHAMFER_SHAPE="cone"; +CHAMFER_SHAPE="curve"; use From 7e3027a4264ba55e1866393bb9d6824949999864 Mon Sep 17 00:00:00 2001 From: djerun Date: Mon, 6 May 2024 01:32:38 +0200 Subject: [PATCH 17/30] headband v0.5.1: toggle initial chamfer shape --- headband.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/headband.scad b/headband.scad index f09299d..df4c3a0 100644 --- a/headband.scad +++ b/headband.scad @@ -12,7 +12,7 @@ RAKE_WIDTH=1; RAKE_STRETCH=1; RAKE_CHAMFER=0.5; CHAMFER=1; -CHAMFER_SHAPE="curve"; +CHAMFER_SHAPE="cone"; use From 92e388d8fd7c5c70ce837cf60319ed58b4a8eb5a Mon Sep 17 00:00:00 2001 From: djerun Date: Tue, 7 May 2024 11:53:06 +0200 Subject: [PATCH 18/30] loveboard-cover-r2-cat v0.1: add catears to prusa mk4 loveboard cover r2 --- loveboard-cover-r2-cat.scad | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 loveboard-cover-r2-cat.scad diff --git a/loveboard-cover-r2-cat.scad b/loveboard-cover-r2-cat.scad new file mode 100644 index 0000000..2133969 --- /dev/null +++ b/loveboard-cover-r2-cat.scad @@ -0,0 +1,83 @@ +/** + * This requires + * https://files.printables.com/media/prints/451501/stls/4205518_58958bba-4c36-4995-b4e7-da5abd1ba821/loveboard-cover-r2.stl + * + * to be placed under `./stls/LoveBoard-cover-R2.stl` in order to work + * but it needs a run in meshlabs uniform fcae orientation filter for + * openscad to be happy with it + * + * if rendering is missing the ear infill, `Design` > `Flush Caches` + * may be required. + */ + +include +use + +HEIGHT=11; +THICKNESS=1; +SIDE_LEN=20; +BEND_FACTOR=0.15; +STRETCH_FACTOR=1.2; +CHAMFER=0; +CHAMFER_SHAPE="none"; +DEBUG=false; + +FILL=true; +FILL_HEIGHT_FACTOR=0.9; +FILL_HEIGHT_FALLOFF_STEP=0; +FILL_HEIGHT_FALLOFF_FACTOR=0.98; +FILL_HEIGHT_FALLOFF_EXPONENT_FACTOR=3; +FILL_STEP=0.5; + +module loveboard_cover_r2_cat() { + $fn=90; + union() { + difference() { + union() { + for (i=[-1,1]) + scale([i, 1, 1]) + translate([-23, 23, 5.5]) + rotate(-65) { + catear( + height=HEIGHT, + thickness=THICKNESS, + side_len=SIDE_LEN, + bend_factor=BEND_FACTOR, + stretch_factor=STRETCH_FACTOR, + debug=DEBUG, + chamfer=CHAMFER, + chamfer_shape=CHAMFER_SHAPE + ); + if (FILL) { + echo("BEGIN FILL"); + for (i=[FILL_STEP:FILL_STEP:(SIDE_LEN-FILL_STEP)]) + color([0, (256-i*8)/256,0]) { + fill_height=( + HEIGHT * FILL_HEIGHT_FACTOR + * pow(FILL_HEIGHT_FALLOFF_FACTOR, + (SIDE_LEN-1-i)*FILL_HEIGHT_FALLOFF_EXPONENT_FACTOR) + - ((SIDE_LEN-1-i)*FILL_HEIGHT_FALLOFF_STEP) + ); + echo([i, fill_height]); + translate([0, 0, (fill_height-HEIGHT)/2]) + catear( + height=fill_height, + thickness=THICKNESS, + side_len=i, + bend_factor=BEND_FACTOR, + stretch_factor=STRETCH_FACTOR, + chamfer=0, + chamfer_shape=CHAMFER_SHAPE + ); + } + echo("END FILL"); + } + } + } + scale(0.99) hull() import("stls/LoveBoard-cover-R2.stl"); + } + color("red") import("stls/LoveBoard-cover-R2.stl"); + } +} + +loveboard_cover_r2_cat(); \ No newline at end of file From ea3a51b3f791276f7e1e33c6af05fde5112287b8 Mon Sep 17 00:00:00 2001 From: djerun Date: Tue, 7 May 2024 13:28:39 +0200 Subject: [PATCH 19/30] loveboard-cover-r2-cat v0.1.1: hopefully fix infill issue --- loveboard-cover-r2-cat.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loveboard-cover-r2-cat.scad b/loveboard-cover-r2-cat.scad index 2133969..9153b6c 100644 --- a/loveboard-cover-r2-cat.scad +++ b/loveboard-cover-r2-cat.scad @@ -74,7 +74,7 @@ module loveboard_cover_r2_cat() { } } } - scale(0.99) hull() import("stls/LoveBoard-cover-R2.stl"); + scale(0.9999) hull() import("stls/LoveBoard-cover-R2.stl"); } color("red") import("stls/LoveBoard-cover-R2.stl"); } From d4d754a7e7d1abbbc489ba21590829415e2d0385 Mon Sep 17 00:00:00 2001 From: djerun Date: Tue, 14 May 2024 20:22:55 +0200 Subject: [PATCH 20/30] c3cat_bottle_tag v1.1 --- c3cat-bottle-clip/c3cat-bottle-clip.scad | 28 ++++++++++++++---------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad index 861ecd8..e51e373 100644 --- a/c3cat-bottle-clip/c3cat-bottle-clip.scad +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -44,15 +44,21 @@ include * font: the path to a font for Write.scad. */ -/* currently openscad fails to render `Ohren_4.stl` outside of the preview mode */ -//difference() { - rotate(45, [0, 0, 1]) bottle_clip(name="c3cat"); -// translate([ 15, 0, 18]) rotate(80, [0, 1, 0]) catear(); -// translate([-15, 0, 18]) rotate(-80, [0, 1, 0]) catear(); -//} -// -//translate([0, 5, 0]) catear(); -//rotate(180) translate([0, 5, 0]) catear(); +/** + * currently openscad fails to render the original `Ohren_4.stl` outside of the preview mode + * according to [the wiki](https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/FAQ#Why_is_my_imported_STL_file_appearing_with_F5_but_not_F6?) this is the stls fault + * using meshlab to run `Filters` -> `Cleaning and Repairing` -> `Remove T-Vertices` by `Edge-Flip` with `Ratio` of `1000000` before importing the stl works but but two errors remain. + */ +scale([0.2, 0.2, 0.2]) { + difference() { + scale([5, 5, 5]) rotate(45, [0, 0, 1]) bottle_clip(name="c3cat"); + translate([ 15*5, 0*5, 18*5]) rotate(80, [0, 1, 0]) catear(); + translate([-15*5, 0*5, 18*5]) rotate(-80, [0, 1, 0]) catear(); + } + + translate([0, 5*5, 0]) catear(); + rotate(180) translate([0, 5*5, 0]) catear(); +} module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { @@ -116,8 +122,8 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o module catear() { rotate(-90, [0, 0, 1]) union() { - scale([0.2, 0.2, 0.2]) translate([0, -85]) import("catear.stl"); - scale([0.2, -0.2, 0.2]) translate([0, -85]) import("catear.stl"); + scale([1, 1 ,1]) translate([0, -85]) import("catear.stl"); + scale([1, -1, 1]) translate([0, -85]) import("catear.stl"); } } From 5463192ec93e76320956d06d719d45455a13b761 Mon Sep 17 00:00:00 2001 From: djerun Date: Sat, 25 May 2024 19:48:08 +0200 Subject: [PATCH 21/30] [refactor] extract globals from headband to separate file --- catear_headband.scad | 4 ++-- globals.scad | 19 +++++++++++++++++++ headband.scad | 19 ++----------------- pressfit_headband.scad | 6 ++++-- 4 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 globals.scad diff --git a/catear_headband.scad b/catear_headband.scad index ac2a4bd..093b749 100644 --- a/catear_headband.scad +++ b/catear_headband.scad @@ -1,6 +1,6 @@ -include +include ; -use +use ; module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { $A=[0, side_len/2]; diff --git a/globals.scad b/globals.scad new file mode 100644 index 0000000..d3d8a35 --- /dev/null +++ b/globals.scad @@ -0,0 +1,19 @@ +$fn=90; +DEBUG=false; +SIZE=60; +HEIGHT=4.6; +THICKNESS=3; +PART=0.7; +STRETCH_LEN=40; +TIP_LEN=0.05; +TIP_BEND=20; +RAKE_DEPTH=1; +RAKE_WIDTH=1; +RAKE_STRETCH=1; +RAKE_CHAMFER=0.5; +CHAMFER=1; +CHAMFER_SHAPE="cone"; + +INSERTICLE_X = 4.6; +INSERTICLE_Y = 7.4; +INSERTICLE_Z = 5.4; \ No newline at end of file diff --git a/headband.scad b/headband.scad index df4c3a0..6d3302d 100644 --- a/headband.scad +++ b/headband.scad @@ -1,20 +1,5 @@ -$fn=360; -DEBUG=false; -SIZE=60; -HEIGHT=4.6; -THICKNESS=3; -PART=0.7; -STRETCH_LEN=40; -TIP_LEN=0.05; -TIP_BEND=20; -RAKE_DEPTH=1; -RAKE_WIDTH=1; -RAKE_STRETCH=1; -RAKE_CHAMFER=0.5; -CHAMFER=1; -CHAMFER_SHAPE="cone"; - -use +include +include module partial_ring(part, radius, thickness, height) { rotate(180-180*part, [0, 0, 1]) diff --git a/pressfit_headband.scad b/pressfit_headband.scad index cab69aa..93cc684 100644 --- a/pressfit_headband.scad +++ b/pressfit_headband.scad @@ -1,7 +1,9 @@ -include +include + +use module inserticle() { - cube([4.6, 7.4, 5.4], center=true); + cube([INSERTICLE_X, INSERTICLE_Y, INSERTICLE_Z], center=true); } module pressfit_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND) { From c26753f0ed5fded2f2cb982ec4de5a6604bc4747 Mon Sep 17 00:00:00 2001 From: djerun Date: Sat, 25 May 2024 19:51:10 +0200 Subject: [PATCH 22/30] pressfit_catears v0.1 --- pressfit_catears.scad | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pressfit_catears.scad diff --git a/pressfit_catears.scad b/pressfit_catears.scad new file mode 100644 index 0000000..7697690 --- /dev/null +++ b/pressfit_catears.scad @@ -0,0 +1,32 @@ +include ; + +use ; +use ; +use ; + +EAR_SCALE = 1.5; +EAR_BEND_FACTOR = 0.15; +EAR_STRETCH_FACTOR = 1.2; + +difference() { +translate([20*pow(0.99, SIZE/2*EAR_SCALE-1-THICKNESS), 0, -THICKNESS/2]) +union() for (i=[0:SIZE/2*EAR_SCALE-1]) { + j=pow(0.99, i); + chamfer_ = floor(abs(2*i/(SIZE/2*EAR_SCALE-1)-1)); + translate([-j*20, 0, 0]) + rotate(90, [0, 1, 0]) + /*chamfer(size=1, child_h=1, child_bot=-0.5, shape=CHAMFER_SHAPE)*/ + catear( + debug=DEBUG, + height=INSERTICLE_Z*1.2, + thickness=THICKNESS, + side_len=SIZE/2*EAR_SCALE-i, + bend_factor=EAR_BEND_FACTOR, + stretch_factor=EAR_STRETCH_FACTOR, + chamfer=chamfer_, + chamfer_shape=CHAMFER_SHAPE + ); +} +translate([0, 0, -THICKNESS]) cube([100, 100, THICKNESS], center=true); +scale([1, 1, 2]) inserticle(); +} \ No newline at end of file From 541b80970ccfd0a4e96608483ddb8551a1b3cdaa Mon Sep 17 00:00:00 2001 From: djerun Date: Sat, 1 Jun 2024 17:50:52 +0200 Subject: [PATCH 23/30] pressfit_horn v0.1 --- pressfit_horns.scad | 67 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 pressfit_horns.scad diff --git a/pressfit_horns.scad b/pressfit_horns.scad new file mode 100644 index 0000000..a3d4db7 --- /dev/null +++ b/pressfit_horns.scad @@ -0,0 +1,67 @@ +include ; + +use ; + +$fn=360; +A=30; +N=4; +R=45; +LENGTH=100; +TWIST=720; +STEPS=360; +SLICES=max(TWIST, STEPS, LENGTH); +SHEIGHT=LENGTH/STEPS; +BEND_X_FACTOR=0.5; +BEND_Y_FACTOR=1; + +COLORS=[ +"#f00", +"#f70", +"#7f0", +"#0f0", +"#0f7", +"#07f", +"#00f", +"#70f", +"#f07" +]; + +difference() { + union() for (step=[1:STEPS]) { + a = A*(1-(step-1)/STEPS); + b = A*(1-step/STEPS); + r = TWIST/STEPS*(step-1); + sh_xy = 0; + sh_yx = 0; + sh_xz = 1/STEPS*step*BEND_X_FACTOR; + sh_yz = 1/STEPS*step*BEND_Y_FACTOR; + sh_zx = 0; + sh_zy = 0; + t_x = sh_xz*SHEIGHT*(step-1)*0.5; + t_y = sh_yz*SHEIGHT*(step-1)*0.5; + t_z = LENGTH/STEPS*(step-1); + sc_x = 1; + sc_y = 1; + sc_z = 1; + mm = [ + [sc_x, sh_xy, sh_xz, t_x], + [sh_yx, sc_y, sh_yz, t_y], + [sh_zx, sh_zy, sc_z, t_z], + ]; + echo(a, b, b/a, r, mm); + multmatrix(mm) + color(COLORS[(step-1)%9]) + linear_extrude( + SHEIGHT, + center=false, + twist=TWIST/STEPS, + scale=b/a, + slices=SLICES/STEPS + ) rotate(R-r) + circle(d=a, $fn=N); + } + translate([0, 0, INSERTICLE_Z/2]) + inserticle(); +} + +echo("twist angle: ", TWIST/STEPS); \ No newline at end of file From 74bb13b86aa22c07e706b1fa92fab3389044f71f Mon Sep 17 00:00:00 2001 From: djerun Date: Mon, 3 Jun 2024 11:51:35 +0200 Subject: [PATCH 24/30] catear-pedestal v0.1 --- catear_headband.scad | 6 ++++-- catear_pedestal.scad | 49 ++++++++++++++++++++++++++++++++++++++++++++ headband.scad | 6 +++--- 3 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 catear_pedestal.scad diff --git a/catear_headband.scad b/catear_headband.scad index 093b749..a2fe08e 100644 --- a/catear_headband.scad +++ b/catear_headband.scad @@ -1,6 +1,7 @@ include ; use ; +use ; module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { $A=[0, side_len/2]; @@ -69,7 +70,7 @@ module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretc } } -module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true) { $a=size/2*ear_scale; $delta=2*(acos($a/(size*2))-90); @@ -107,7 +108,8 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES part=part, stretch_len=stretch_len, tip_len=tip_len, - tip_bend=tip_bend + tip_bend=tip_bend, + with_rake=with_rake ); }; } diff --git a/catear_pedestal.scad b/catear_pedestal.scad new file mode 100644 index 0000000..ad0bf7f --- /dev/null +++ b/catear_pedestal.scad @@ -0,0 +1,49 @@ +include + +use + +SCALE_FACTOR=SIZE/9; + +echo("scale factor: ", SCALE_FACTOR); +echo("bottom diameter: ", SIZE/SCALE_FACTOR); + + +difference() { + union() + for (i=[-1,1]) + translate([i*2, 0, 0]) + rotate(i*90, [0, 1, 0]) + scale(1/SCALE_FACTOR) + union() { + translate([0, 0, SIZE+20+60]) + rotate(90, [0, 1, 0]) + scale(1.6) + catear_headband(thickness=5, with_rake=false); + translate([0, 0, 20]) + cylinder(h=10, r=SIZE, $fn=360); + cylinder(h=20, d=SIZE, $fn=360); + } + translate([0, 0, -SIZE*(1/SCALE_FACTOR)*5]) + cube(SIZE*10*(1/SCALE_FACTOR), center=true); +} + +/* +scale(1/SCALE_FACTOR) { +translate([0, 0, 30]) +scale([1, 1, -1]) +difference() { + union() { + translate([0, 0, 20]) + cylinder(h=10, r=SIZE, $fn=360); + cylinder(h=20, d=SIZE, $fn=360); + } + translate([0, 0, SIZE+20+60]) + rotate(90, [0, 1, 0]) + scale(1.6) + catear_headband(thickness=5, with_rake=false); +} +scale(1.6) + translate([0, 0, HEIGHT/2]) + catear_headband(thickness=5, with_rake=false); +} +*/ \ No newline at end of file diff --git a/headband.scad b/headband.scad index 6d3302d..07e02b2 100644 --- a/headband.scad +++ b/headband.scad @@ -1,5 +1,5 @@ -include include +use module partial_ring(part, radius, thickness, height) { rotate(180-180*part, [0, 0, 1]) @@ -8,7 +8,7 @@ module partial_ring(part, radius, thickness, height) { square([thickness, height], center=true); } -module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { +module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true) { union() { chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) union() { color("purple") @@ -41,7 +41,7 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part ); } } - for (i=[-size/2:size/2]) { + if (with_rake) for (i=[-size/2:size/2]) { rotate(i*2-rake_width/2, [0, 0, 1]) intersection() { scale([1, 1, rake_stretch/(rake_depth/height)]) From 91eeeec02be9d7c2dc231ac8b1b102bbab4b5bfa Mon Sep 17 00:00:00 2001 From: djerun Date: Mon, 3 Jun 2024 11:53:15 +0200 Subject: [PATCH 25/30] add private folder to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2486715..fde7580 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ stls/ +private From 9113567ab2e5f643a43e89a26568c2ce976ada51 Mon Sep 17 00:00:00 2001 From: djerun Date: Tue, 4 Jun 2024 22:43:53 +0200 Subject: [PATCH 26/30] mouseear_headband v0.1 --- globals.scad | 2 +- mouseear_headband.scad | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 mouseear_headband.scad diff --git a/globals.scad b/globals.scad index d3d8a35..2f53cd2 100644 --- a/globals.scad +++ b/globals.scad @@ -12,7 +12,7 @@ RAKE_WIDTH=1; RAKE_STRETCH=1; RAKE_CHAMFER=0.5; CHAMFER=1; -CHAMFER_SHAPE="cone"; +CHAMFER_SHAPE="curve"; INSERTICLE_X = 4.6; INSERTICLE_Y = 7.4; diff --git a/mouseear_headband.scad b/mouseear_headband.scad new file mode 100644 index 0000000..af1ca43 --- /dev/null +++ b/mouseear_headband.scad @@ -0,0 +1,20 @@ +use +include + +module mouseear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1, ear_bend_factor=0.65, ear_stretch_factor=1, ear_angle=40) { + catear_headband( + debug=debug, + size=size, + height=height, + thickness=thickness, + part=part, + stretch_len=stretch_len, + tip_len=tip_len, + tip_bend=tip_bend, + ear_scale=ear_scale, + ear_bend_factor=ear_bend_factor, + ear_stretch_factor=ear_stretch_factor, + ear_angle=ear_angle); +} + +mouseear_headband(); From 69e8b09fa7d7ff600b0ee76fea4b37c3fea43cf9 Mon Sep 17 00:00:00 2001 From: djerun Date: Mon, 18 Nov 2024 02:15:59 +0100 Subject: [PATCH 27/30] c3cat_bottle_tag v2.0 --- c3cat-bottle-clip/c3cat-bottle-clip.scad | 96 +++++++++++++++++++----- c3cat-bottle-clip/catear_headband.scad | 1 + catear_headband.scad | 25 +++--- headband.scad | 8 +- 4 files changed, 98 insertions(+), 32 deletions(-) create mode 120000 c3cat-bottle-clip/catear_headband.scad diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad index e51e373..da96ba0 100644 --- a/c3cat-bottle-clip/c3cat-bottle-clip.scad +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -26,6 +26,16 @@ */ include +use + +$fn = 360; + +NAME = "c3cat"; +LOGO_FILE = ""; // empty string is catear model +RENDER_COLOR_ONE = true; +RENDER_COLOR_TWO = true; +RENDER_COLOR_THREE = true; +USE_TINY_EARS = true; /** * Creates one instance of a bottle clip name tag. The default values are @@ -51,7 +61,7 @@ include */ scale([0.2, 0.2, 0.2]) { difference() { - scale([5, 5, 5]) rotate(45, [0, 0, 1]) bottle_clip(name="c3cat"); + scale([5, 5, 5]) rotate(45, [0, 0, 1]) bottle_clip(name=NAME); translate([ 15*5, 0*5, 18*5]) rotate(80, [0, 1, 0]) catear(); translate([-15*5, 0*5, 18*5]) rotate(-80, [0, 1, 0]) catear(); } @@ -60,22 +70,42 @@ scale([0.2, 0.2, 0.2]) { rotate(180) translate([0, 5*5, 0]) catear(); } -module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { +module name(name, font, rl, ht, ru) { + writecylinder( + text=name, + where=[0,0,0], + radius=rl+0.5, + height=ht/13*7, + h=ht/13*4, + t=max(rl,ru), + font=font); +} - e=100; // should be big enough, used for the outer boundary of the text/logo - - difference() { - rotate([0,0,-45]) union() { - // main cylinder - cylinder(r1=rl+width, r2=ru+width, h=ht); - // text and logo - if(logo == "") { - color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); - translate([4.7, -rl, ht*1.08]) rotate(-10, [1, 0, 0]) rotate(76, [0, 1, 0]) scale([0.08, 2, 0.08]) color("red") import("catears.stl"); - } else { - color("orange") writecylinder(name, [0,0,0], rl+0.5, ht/13*7, h=ht/13*4, t=max(rl,ru), font=font); - - // The logo has been split in 3 parts. +module logo(logo, rl, ht, ru, width) { + echo("logo: ", logo); + if(logo == "") { + ear_size=ht; + echo("ht: ", ht); + echo("ru: ", ru); + echo("rl: ", rl); + echo("width: ", width); + translate([0,-max(ru,rl),ht*3/4+.5]) + rotate([90,0,0]) + scale([1,1,1]) + scale([ht/100,ht/100,1]) + translate([0, -ht/2,0]) + rotate(-90, [0, 0, 1]) + catear_headband( + size=ear_size, + height=max(ru,rl), + thickness=width, + stretch_len=0, + tip_len=0, + details=false, + with_rake=false + ); + } else { + // The logo has been split in 3 parts. // well was... TODO /* rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) rotate([90,0,0]) @@ -101,6 +131,32 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o linear_extrude(height=max(ru,rl)*2) import("logo_3.dxf"); */ + } +} + +module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { + + e=100; // should be big enough, used for the outer boundary of the text/logo + + difference() { + rotate([0,0,-45]) union() { + // main cylinder + if (RENDER_COLOR_ONE) { + color("black") + difference() { + cylinder(r1=rl+width, r2=ru+width, h=ht); + name(name=name, font=font, rl=rl, ht=ht, ru=ru); + logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); + } + } + // text + if (RENDER_COLOR_TWO) { + color("orange") + name(name=name, font=font, rl=rl, ht=ht, ru=ru); + } + // logo + if (RENDER_COLOR_THREE) { + color("yellow") logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width); } } // inner cylinder which is substracted @@ -121,9 +177,11 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o } module catear() { - rotate(-90, [0, 0, 1]) union() { - scale([1, 1 ,1]) translate([0, -85]) import("catear.stl"); - scale([1, -1, 1]) translate([0, -85]) import("catear.stl"); + if (USE_TINY_EARS) { + rotate(-90, [0, 0, 1]) union() { + scale([1, 1 ,1]) translate([0, -85]) import("catear.stl"); + scale([1, -1, 1]) translate([0, -85]) import("catear.stl"); + } } } diff --git a/c3cat-bottle-clip/catear_headband.scad b/c3cat-bottle-clip/catear_headband.scad new file mode 120000 index 0000000..f4226ca --- /dev/null +++ b/c3cat-bottle-clip/catear_headband.scad @@ -0,0 +1 @@ +../catear_headband.scad \ No newline at end of file diff --git a/catear_headband.scad b/catear_headband.scad index a2fe08e..142ade5 100644 --- a/catear_headband.scad +++ b/catear_headband.scad @@ -3,7 +3,7 @@ include ; use ; use ; -module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE) { +module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretch_factor=1.2, debug=false, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, details=true) { $A=[0, side_len/2]; $B=[0,-side_len/2]; $C=[-(side_len/2/sin(120))*1.5*stretch_factor, 0]; @@ -23,7 +23,7 @@ module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretc translate([0, $a/2, 0]) translate([$bend_offset, 0, 0]) color("#00ffff") - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + chamfer(size=(details)?chamfer:0, child_h=height, child_bot=-height/2, shape=chamfer_shape) partial_ring( part=$delta/360, radius=$bend_radius, @@ -35,15 +35,19 @@ module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretc translate([0, -$b/2, 0]) translate([$bend_offset, 0, 0]) color("#ff00ff") - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + chamfer(size=(details)?chamfer:0, child_h=height, child_bot=-height/2, shape=chamfer_shape) partial_ring( part=$delta/360, radius=$bend_radius, thickness=thickness, height=height ); - translate($A) color("#aaaaaa") cylinder(h=height, d=thickness, center=true); - translate($B) color("#bbbbbb") cylinder(h=height, d=thickness, center=true); + translate($A) color("#aaaaaa") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); + translate($B) color("#bbbbbb") + chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) + cylinder(h=height, d=thickness, center=true); translate($C) color("#cccccc") chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) cylinder(h=height, d=thickness, center=true); @@ -70,7 +74,7 @@ module catear(height, thickness, fractal=0, side_len=30, bend_factor=0.5, stretc } } -module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true) { +module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, ear_scale=1.5, ear_bend_factor=0.15, ear_stretch_factor=1.2, ear_angle=42, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true, details=true) { $a=size/2*ear_scale; $delta=2*(acos($a/(size*2))-90); @@ -86,7 +90,8 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES bend_factor=ear_bend_factor, stretch_factor=ear_stretch_factor, chamfer=chamfer, - chamfer_shape=chamfer_shape + chamfer_shape=chamfer_shape, + details=details ); } rotate(-ear_angle, [0, 0, 1]) { @@ -98,7 +103,8 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES bend_factor=ear_bend_factor, stretch_factor=ear_stretch_factor, chamfer=chamfer, - chamfer_shape=chamfer_shape + chamfer_shape=chamfer_shape, + details=details ); } headband( @@ -109,7 +115,8 @@ module catear_headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNES stretch_len=stretch_len, tip_len=tip_len, tip_bend=tip_bend, - with_rake=with_rake + with_rake=with_rake, + details=details ); }; } diff --git a/headband.scad b/headband.scad index 07e02b2..9a0bab7 100644 --- a/headband.scad +++ b/headband.scad @@ -8,9 +8,9 @@ module partial_ring(part, radius, thickness, height) { square([thickness, height], center=true); } -module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true) { +module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part=PART, stretch_len=STRETCH_LEN, tip_len=TIP_LEN, tip_bend=TIP_BEND, rake_depth=RAKE_DEPTH, rake_width=RAKE_WIDTH, rake_stretch=RAKE_STRETCH, rake_chamfer=RAKE_CHAMFER, chamfer=CHAMFER, chamfer_shape=CHAMFER_SHAPE, with_rake=true, details=true) { union() { - chamfer(size=chamfer, child_h=height, child_bot=-height/2, shape=chamfer_shape) union() { + chamfer(size=(details)?chamfer:0, child_h=height, child_bot=-height/2, shape=chamfer_shape) union() { color("purple") partial_ring(part, radius=size, thickness=thickness, height=height); rotate( 90-180*part, [0, 0, 1]) @@ -54,6 +54,6 @@ module headband(debug=DEBUG, size=SIZE, height=HEIGHT, thickness=THICKNESS, part color("red") cube([2*rake_depth, rake_width, height], center=true); } - }; - }; + } + } } From 90521c426a1b6f9e4fed5005f828373a9d0e2970 Mon Sep 17 00:00:00 2001 From: djerun Date: Thu, 21 Nov 2024 21:19:54 +0100 Subject: [PATCH 28/30] c3cat_bottle_tag v2.1 --- c3cat-bottle-clip/c3cat-bottle-clip.scad | 115 +++++++++++++---------- 1 file changed, 65 insertions(+), 50 deletions(-) diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad index da96ba0..3c42e6f 100644 --- a/c3cat-bottle-clip/c3cat-bottle-clip.scad +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -65,9 +65,18 @@ scale([0.2, 0.2, 0.2]) { translate([ 15*5, 0*5, 18*5]) rotate(80, [0, 1, 0]) catear(); translate([-15*5, 0*5, 18*5]) rotate(-80, [0, 1, 0]) catear(); } - - translate([0, 5*5, 0]) catear(); - rotate(180) translate([0, 5*5, 0]) catear(); + if (RENDER_COLOR_TWO) { + color("orange") + translate([ 15*5, 0*5, 18*5]) + rotate(80, [0, 1, 0]) + catear(); + } + if (RENDER_COLOR_THREE) { + color("yellow") + translate([-15*5, 0*5, 18*5]) + rotate(-80, [0, 1, 0]) + catear(); + } } module name(name, font, rl, ht, ru) { @@ -107,61 +116,70 @@ module logo(logo, rl, ht, ru, width) { } else { // The logo has been split in 3 parts. // well was... TODO /* - rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) - rotate([90,0,0]) - scale([0.9,0.9,1]) - scale([ht/100,ht/100,1]) - translate([-25,-29,0.5]) - linear_extrude(height=max(ru,rl)*2) - import("logo_1.dxf"); + rotate([0,0,-48]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.9,0.9,1]) + scale([ht/100,ht/100,1]) + translate([-25,-29,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_1.dxf"); */ - translate([0,0,ht*3/4-0.1]) - rotate([90,0,0]) - scale([0.8,0.8,1]) - scale([ht/100,ht/100,1]) - translate([-18,-22,0.5]) - linear_extrude(height=max(ru,rl)*2) - import(logo); + translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.8,0.8,1]) + scale([ht/100,ht/100,1]) + translate([-18,-22,0.5]) + linear_extrude(height=max(ru,rl)*2) + import(logo); /* - rotate([0,0,44]) translate([0,0,ht*3/4-0.1]) - rotate([90,0,0]) - scale([0.7,0.7,1]) - scale([ht/100,ht/100,1]) - translate([-25,-26,0.5]) - linear_extrude(height=max(ru,rl)*2) - import("logo_3.dxf"); + rotate([0,0,44]) translate([0,0,ht*3/4-0.1]) + rotate([90,0,0]) + scale([0.7,0.7,1]) + scale([ht/100,ht/100,1]) + translate([-25,-26,0.5]) + linear_extrude(height=max(ru,rl)*2) + import("logo_3.dxf"); */ } } module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/orbitron.dxf", logo="") { - e=100; // should be big enough, used for the outer boundary of the text/logo - - difference() { - rotate([0,0,-45]) union() { - // main cylinder - if (RENDER_COLOR_ONE) { - color("black") - difference() { - cylinder(r1=rl+width, r2=ru+width, h=ht); - name(name=name, font=font, rl=rl, ht=ht, ru=ru); - logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); - } - } - // text - if (RENDER_COLOR_TWO) { - color("orange") + rotate([0,0,-45]) { + // main cylinder + if (RENDER_COLOR_ONE) { + color("black") difference() { + cylinder(r1=rl+width, r2=ru+width, h=ht); name(name=name, font=font, rl=rl, ht=ht, ru=ru); - } - // logo - if (RENDER_COLOR_THREE) { - color("yellow") logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width); + logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); + translate([0,0,-1]) + cylinder(r1=rl, r2=ru, h=ht+2); + // finally, substract a cube as a gap so we can clip it to the bottle + rotate([0, 0, 45]) + translate([0,0,-1]) + cube([50,50,50]); } } - // inner cylinder which is substracted - translate([0,0,-1]) - cylinder(r1=rl, r2=ru, h=ht+2); + // text + if (RENDER_COLOR_TWO) { + color("orange") difference() { + name(name=name, font=font, rl=rl, ht=ht, ru=ru); + cylinder(r1=rl+width, r2=ru+width, h=ht); + outer_cutoff(rl, e, ru, ht, width); + } + } + // logo + if (RENDER_COLOR_THREE) { + color("yellow") difference() { + logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width); + cylinder(r1=rl+width, r2=ru+width, h=ht); + outer_cutoff(rl, e, ru, ht, width); + } + } + } +} + +module outer_cutoff(rl, e, ru, ht, width) { // outer cylinder which is substracted, so the text and the logo end // somewhere on the outside ;-) difference () { @@ -171,9 +189,6 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o // depth is > 0.7 cylinder(r1=rl+width+0.7, r2=ru+width+0.7, h=ht+2); } - // finally, substract a cube as a gap so we can clip it to the bottle - translate([0,0,-1]) cube([50,50,50]); - } } module catear() { From 7950ae530ea29c5ea3d459573246cdf98ad6844d Mon Sep 17 00:00:00 2001 From: djerun Date: Fri, 29 Nov 2024 18:53:44 +0100 Subject: [PATCH 29/30] c3cat_bottle_tag v2.2 --- c3cat-bottle-clip/c3cat-bottle-clip.scad | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/c3cat-bottle-clip/c3cat-bottle-clip.scad b/c3cat-bottle-clip/c3cat-bottle-clip.scad index 3c42e6f..19a51e7 100644 --- a/c3cat-bottle-clip/c3cat-bottle-clip.scad +++ b/c3cat-bottle-clip/c3cat-bottle-clip.scad @@ -150,8 +150,13 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o if (RENDER_COLOR_ONE) { color("black") difference() { cylinder(r1=rl+width, r2=ru+width, h=ht); - name(name=name, font=font, rl=rl, ht=ht, ru=ru); - logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); + difference() { + union() { + name(name=name, font=font, rl=rl, ht=ht, ru=ru); + logo(logo=logo, rl=rl, ht=ht, ru=ru, width=width); + } + cylinder(r1=rl+width/2, r2=ru+width/2, h=ht); + } translate([0,0,-1]) cylinder(r1=rl, r2=ru, h=ht+2); // finally, substract a cube as a gap so we can clip it to the bottle @@ -164,7 +169,7 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o if (RENDER_COLOR_TWO) { color("orange") difference() { name(name=name, font=font, rl=rl, ht=ht, ru=ru); - cylinder(r1=rl+width, r2=ru+width, h=ht); + cylinder(r1=rl+width/2, r2=ru+width/2, h=ht); outer_cutoff(rl, e, ru, ht, width); } } @@ -172,7 +177,7 @@ module bottle_clip(ru=13, rl=17.5, ht=26, width=2.5, name="c3cat", font="write/o if (RENDER_COLOR_THREE) { color("yellow") difference() { logo(logo=logo, rl=rl, ht=ht, ru=ru, width=2*width); - cylinder(r1=rl+width, r2=ru+width, h=ht); + cylinder(r1=rl+width/2, r2=ru+width/2, h=ht); outer_cutoff(rl, e, ru, ht, width); } } From ab18f4751fab4ee62b7010ecc907b705c6022871 Mon Sep 17 00:00:00 2001 From: djerun Date: Sun, 8 Dec 2024 19:20:37 +0100 Subject: [PATCH 30/30] add bottletag generation script --- generate_bottle_tag.sh | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 generate_bottle_tag.sh diff --git a/generate_bottle_tag.sh b/generate_bottle_tag.sh new file mode 100755 index 0000000..8ea378d --- /dev/null +++ b/generate_bottle_tag.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +# usage: generate_bottle_tag.sh NAME + +set -u + +VERSION=2.2 +LOGO_FILE='""' +TINY_EARS=false +FN=90 + +NAME="\"$1\"" + +# usage: render NAME PART +render() { + case "$2" in + body) + ONE=true + TWO=false + THREE=false + ;; + name) + ONE=false + TWO=true + THREE=false + ;; + logo) + ONE=false + TWO=false + THREE=true + ;; + *) + echo 'fatal: invalid part' >&2 + exit 1 + ;; + esac + + echo rendering "$1" "$2" + openscad \ + -D "\$fn=${FN}" \ + -D "USE_TINY_EARS=${TINY_EARS}" \ + -D "LOGO_FILE=${LOGO_FILE}" \ + -D "NAME=${NAME}" \ + -D "RENDER_COLOR_ONE=${ONE}" \ + -D "RENDER_COLOR_TWO=${TWO}" \ + -D "RENDER_COLOR_THREE=${THREE}" \ + -o "stls/c3cat-bottle-clip-v${VERSION}_${NAME}_${PART}.stl" \ + c3cat-bottle-clip/c3cat-bottle-clip.scad +} + +cd "$(dirname $0)" + +for PART in body logo name +do + render "$NAME" "$PART" + sleep 1 +done