// A simple program to make an embossed hex keychain with the centos logo // Copyright (c) 2016 // -Tom Callaway (OpenSCAD) // These files may be used under the terms of the Creative Commons // Attribution Share-Alike 4.0 license (CC-BY-SA 4.0) // http://creativecommons.org/licenses/by-sa/4.0/ // this giant pile of pain is from paths2openscad // it represents the centos logo fine detail fudge = 0.1; module logo_fine_detail(h) { scale([25.4/90, -25.4/90, 1]) union() { difference() { linear_extrude(height=h) polygon([[0.000025,-37.502461],[-0.436055,-37.066391],[-10.115025,-27.387411],[-26.695365,-27.387411],[-27.311565,-27.387411],[-27.311565,-26.761741],[-27.311565,-10.190881],[-37.066385,-0.436071],[-37.511945,-0.000001],[-37.066385,0.436079],[-27.311565,10.190880],[-27.311565,26.666944],[-27.311565,27.292614],[-26.695365,27.292614],[-10.266705,27.292614],[-0.492935,37.056901],[-0.047375,37.502461],[0.388675,37.056901],[10.162445,27.292614],[26.818625,27.292614],[27.444295,27.292614],[27.444295,26.666944],[27.444295,10.067640],[37.075875,0.436079],[37.511945,-0.000001],[37.075875,-0.436071],[27.444295,-10.067641],[27.444295,-26.837581],[27.444295,-27.463251],[26.818625,-27.463251],[10.039205,-27.463251],[0.445555,-37.066391],[0.000025,-37.502461]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[0.000025,-35.748681],[8.285425,-27.463251],[3.175755,-27.463251],[2.550085,-27.463251],[2.550085,-26.837581],[2.550085,-6.616961],[0.000025,-4.066871],[-2.464755,-6.531641],[-2.464755,-26.761741],[-2.464755,-27.387411],[-3.090425,-27.387411],[-8.361245,-27.387411],[0.000025,-35.748681]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[3.791955,-26.221381],[9.527285,-26.221381],[15.840905,-19.907771],[3.791955,-7.858821],[3.791955,-26.221381]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[11.281075,-26.221381],[26.192955,-26.221381],[26.192955,-11.318991],[20.353335,-17.158601],[19.907775,-17.594681],[19.471705,-17.158601],[6.133485,-3.820401],[3.791955,-3.820401],[3.791955,-6.095561],[17.158605,-19.471701],[17.604165,-19.907771],[17.158605,-20.343851],[11.281075,-26.221381]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-26.069695,-26.136081],[-11.366375,-26.136081],[-17.158595,-20.343861],[-17.594665,-19.907781],[-17.158595,-19.471721],[-3.706615,-6.019741],[-3.706615,-3.820411],[-6.180875,-3.820411],[-19.490645,-17.130181],[-19.936205,-17.575741],[-20.372275,-17.130181],[-26.069695,-11.432761],[-26.069695,-26.136081]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-9.612595,-26.136081],[-3.706615,-26.136081],[-3.706615,-7.773521],[-15.840885,-19.907781],[-9.612595,-26.136081]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[19.907775,-15.840921],[26.192955,-9.555751],[26.192955,-3.820411],[7.896745,-3.820411],[19.907775,-15.840921]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-19.936205,-15.812521],[-7.944135,-3.820451],[-26.069695,-3.820451],[-26.069695,-9.679021],[-19.936205,-15.812521]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-27.311565,-8.437161],[-27.311565,-3.194771],[-27.311565,-2.569101],[-26.695365,-2.569101],[-6.692785,-2.569101],[-4.095295,0.028389],[-6.474745,2.407833],[-26.695365,2.407833],[-27.311565,2.407833],[-27.311565,3.024023],[-27.311565,8.437043],[-35.748677,-0.000051],[-27.311565,-8.437161]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[27.444295,-8.304441],[35.748685,-0.000051],[27.444295,8.304323],[27.444295,3.024023],[27.444295,2.407833],[26.818625,2.407833],[6.484245,2.407833],[4.076345,-0.000051],[6.645405,-2.569101],[26.818625,-2.569101],[27.444295,-2.569101],[27.444295,-3.194771],[27.444295,-8.304441]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[2.550085,-4.853761],[2.550085,-3.194771],[2.550085,-2.569101],[3.175755,-2.569101],[4.882135,-2.569101],[2.749165,-0.436121],[2.313085,-0.000051],[2.749165,0.436029],[4.720985,2.407833],[3.175755,2.407833],[2.550085,2.407833],[2.550085,3.024023],[2.550085,5.014803],[0.388675,2.853383],[-0.047375,2.417313],[-0.492935,2.853383],[-2.426835,4.787283],[-2.426835,3.024023],[-2.426835,2.407833],[-3.052505,2.407833],[-4.720965,2.407833],[-2.777585,0.464469],[-2.332035,0.028389],[-2.777585,-0.417161],[-4.929525,-2.569101],[-3.090425,-2.569101],[-2.464755,-2.569101],[-2.464755,-3.194771],[-2.464755,-4.777921],[-0.436055,-2.749221],[0.000025,-2.313141],[0.445555,-2.749221],[2.550085,-4.853761]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-26.069695,3.649693],[-7.716615,3.649693],[-19.907765,15.840850],[-26.069695,9.678911],[-26.069695,3.649693]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-5.962835,3.649693],[-3.668695,3.649693],[-3.668695,6.029153],[-17.158595,19.519047],[-17.594665,19.955127],[-17.158595,20.400677],[-11.508575,26.050695],[-26.069695,26.050695],[-26.069695,11.432690],[-20.343835,17.158558],[-19.907765,17.594628],[-19.471685,17.158558],[-5.962835,3.649693]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[3.791955,3.649693],[5.962845,3.649693],[19.471705,17.158558],[19.907775,17.594628],[20.353335,17.158558],[26.192955,11.318930],[26.192955,26.050695],[11.404305,26.050695],[17.054325,20.400677],[17.490405,19.955127],[17.054325,19.519047],[3.791955,6.256663],[3.791955,3.649693]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[7.726105,3.649693],[26.192955,3.649693],[26.192955,9.555671],[19.907775,15.840850],[7.726105,3.649693]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-0.047375,4.171093],[2.550085,6.768583],[2.550085,26.666884],[2.550085,27.292554],[3.175755,27.292554],[8.399185,27.292554],[-0.047375,35.739141],[-8.503445,27.292554],[-3.052505,27.292554],[-2.426835,27.292554],[-2.426835,26.666884],[-2.426835,6.550543],[-0.047375,4.171093]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[-3.668695,7.792413],[-3.668695,26.050695],[-9.745315,26.050695],[-15.840885,19.955127],[-3.668695,7.792413]]); translate([0, 0, -fudge]) linear_extrude(height=h+2*fudge) polygon([[3.791955,8.010453],[15.736625,19.955127],[9.641045,26.050695],[3.791955,26.050695],[3.791955,8.010453]]); } } } difference () { union () { difference () { linear_extrude(height = 5) { import( "/home/spot/Documents/hex-stickers/hexspec-sticker-centos-hex-base.dxf"); } translate([0,0,3]) linear_extrude(height = 2) { import ("/home/spot/Documents/hex-stickers/hexspec-sticker-centos-hex-inset.dxf"); } } translate([0,0,3]) linear_extrude(height = 2) { import ("/home/spot/Documents/hex-stickers/hexspec-sticker-centos-text.dxf"); } translate([0,0,3]) linear_extrude(height = 1) { import ("/home/spot/Documents/hex-stickers/hexspec-sticker-centos-logo-raised-area.dxf"); } translate([40.1, 43.85, 3]) logo_fine_detail(2); /* translate([0.1,-0.1,3]) linear_extrude(height = 2) { import ("/home/spot/Documents/hex-stickers/hexspec-sticker-centos-logo-fine-detail.dxf"); } */ // This is where we add the keychain loop. translate([40, 70, 0]) cylinder(5, 8, 8); } translate([40, 70, 0]) cylinder(5, 4, 4); }