├── ManuForm1.py ├── ManuFormMark2 (repaired).stl ├── ManuFormMark2-exported.obj ├── ManuFormMark2.fabbproject ├── ManuFormMark2_020.sib ├── README.md ├── archive ├── ManuForm002.sib ├── ManuForm003.sib ├── ManuForm004.sib ├── ManuForm005.sib ├── ManuForm006-allthumbsplaced.sib ├── ManuForm006.sib ├── ManuForm007.sib ├── ManuForm008.sib ├── ManuForm009.sib ├── ManuForm010.sib ├── ManuForm011.sib ├── ManuForm012.sib ├── ManuForm013.sib ├── ManuForm014.sib ├── ManuForm015.sib ├── ManuForm016.sib ├── ManuForm017.sib ├── ManuForm018.sib ├── ManuForm019.sib ├── ManuForm020.sib ├── ManuForm021.sib ├── ManuForm022.sib ├── ManuForm023.sib ├── ManuForm024.sib ├── ManuForm025.sib ├── ManuForm026.sib ├── ManuForm027.sib ├── ManuForm028.sib ├── ManuForm029.sib ├── ManuForm030.sib ├── ManuForm031.sib ├── ManuForm032.sib ├── ManuForm033.sib ├── ManuForm034.sib ├── ManuForm035.sib ├── ManuForm036.sib ├── ManuForm037.sib ├── ManuForm038.sib ├── ManuForm039.sib ├── ManuForm040.sib ├── ManuForm041.sib ├── ManuForm042.sib ├── ManuForm043.sib ├── ManuForm044.sib ├── ManuForm045.sib ├── ManuForm046.sib ├── ManuForm047-Finished.sib ├── ManuForm047.sib ├── ManuForm048.sib ├── ManuForm049-for-export.sib ├── ManuForm049.sib ├── ManuForm050.sib ├── ManuForm1.sib ├── ManuFormExport4.sib ├── ManuFormExport6.sib ├── ManuFormMark2_001.sib ├── ManuFormMark2_002.sib ├── ManuFormMark2_003.sib ├── ManuFormMark2_004.sib ├── ManuFormMark2_005.sib ├── ManuFormMark2_006.sib ├── ManuFormMark2_006_autosave.sib ├── ManuFormMark2_006_autosave001.sib ├── ManuFormMark2_006_autosave002.sib ├── ManuFormMark2_007.sib ├── ManuFormMark2_008.sib ├── ManuFormMark2_009.sib ├── ManuFormMark2_010.sib ├── ManuFormMark2_011.sib ├── ManuFormMark2_012.sib ├── ManuFormMark2_013.sib ├── ManuFormMark2_014.sib ├── ManuFormMark2_015.sib ├── ManuFormMark2_016.sib ├── ManuFormMark2_017.sib ├── ManuFormMark2_018.sib ├── ManuFormMark2_019.sib ├── ManuFormMark2_020-export-setup.sib └── ManuFormMark2_020.sib ├── boardHolder.py ├── boardHolder1.sib └── boardHolder1.stl /ManuForm1.py: -------------------------------------------------------------------------------- 1 | from FreeCAD import * 2 | 3 | KEYDIST = 19.05 4 | KEYWELL_CURVE = 15 # degrees 5 | 6 | def key(ySize=1, extraDepth=0, ytop = 0, ybot = 0): 7 | mmx = KEYDIST 8 | mmy = KEYDIST * ySize 9 | cutoutSize = 13.9 # 14mm for cherry MX switch 10 | extracutoutX = 15.6 11 | extracutoutY = mmy - 3 12 | 13 | disassemblygapwidth = 3.1 14 | centerflapwidth = 5.8 15 | 16 | tinycornersize = (cutoutSize - (disassemblygapwidth * 2) - centerflapwidth) / 2 17 | 18 | plate = Part.makePlane(mmx, mmy + ytop + ybot).extrude(Vector(0,0,1.5)) 19 | plate.translate(Vector(0, -ybot, 0)) 20 | cutout = Part.makeBox(cutoutSize,cutoutSize,3) 21 | cutoutPost = Part.makePlane(extracutoutX, disassemblygapwidth).extrude(Vector(0,0,3)) 22 | cutoutPost2 = Part.makePlane(extracutoutX, disassemblygapwidth).extrude(Vector(0,0,3)) 23 | cutoutPost.translate(Vector(-(extracutoutX - cutoutSize) / 2, tinycornersize, 0)) 24 | cutoutPost2.translate(Vector(-(extracutoutX - cutoutSize) / 2, (cutoutSize - tinycornersize - disassemblygapwidth), 0)) 25 | cutout = cutout.fuse(cutoutPost) 26 | cutout = cutout.fuse(cutoutPost2) 27 | cutout.translate(Vector((mmx - cutoutSize) / 2, (mmy - cutoutSize) / 2, -1)) 28 | #cutout.translate(Vector(0,0-ytop+ybot)) 29 | 30 | result = plate.cut(cutout) 31 | 32 | #result.translate(Vector(0,0-ytop-ybot,0)) 33 | 34 | if extraDepth > 0: 35 | extrasquare = Part.makePlane(mmx, mmy).extrude(Vector(0,0,-extraDepth)) 36 | extracutout = Part.makeBox(extracutoutX,extracutoutY,extraDepth*2) 37 | extracutout.translate(Vector((mmx - extracutoutX) / 2, (mmy - extracutoutY) / 2, -(extraDepth))) 38 | extraResult = extrasquare.cut(extracutout) 39 | result = result.fuse(extraResult) 40 | return result 41 | 42 | 43 | keyMiddle = key(ySize = 1.3, extraDepth = 2) 44 | keyMiddle.translate(Vector(0,(-KEYDIST*0.3)/2,0)) 45 | 46 | keyUp = key(ySize = 1, extraDepth = 10, ybot = 1) 47 | #keyUp.translate(Vector(0,(-KEYDIST*0.1)/2,0)) 48 | 49 | keyUp.rotate(Vector(0,0,7.5), Vector(1,0,0), KEYWELL_CURVE) 50 | keyUp.translate(Vector(0,KEYDIST,0)) 51 | 52 | keyDown = key(ySize = 1, extraDepth = 10, ytop = 1) 53 | #keyDown.translate(Vector(0,(-KEYDIST*0.1)/2,0)) 54 | 55 | keyDown.rotate(Vector(0,KEYDIST,7.5), Vector(1,0,0), -KEYWELL_CURVE) 56 | keyDown.translate(Vector(0,-KEYDIST,0)) 57 | 58 | 59 | columnBaseTrim = Part.makeBox(500, 500, 10) 60 | columnBaseTrim.translate(Vector(-250,-250,-12)) 61 | 62 | 63 | 64 | 65 | 66 | column = keyMiddle.fuse(keyUp).fuse(keyDown) 67 | column = column.cut(columnBaseTrim) 68 | column.rotate(Vector(0,0,0), Vector(1,0,0), KEYWELL_CURVE/2) 69 | 70 | column2 = column.copy() 71 | column2.translate(Vector(KEYDIST, 0, 0)) 72 | 73 | column3 = column.copy() 74 | column3.translate(Vector(KEYDIST * 2, KEYDIST * 0.5, 0)) 75 | 76 | column4 = column.copy() 77 | column4.translate(Vector(KEYDIST * 3, 0, 0)) 78 | 79 | column5 = column.copy() 80 | column5.translate(Vector(KEYDIST * 4, -KEYDIST * 1.25, 0)) 81 | 82 | column6 = column.copy() 83 | column6.translate(Vector(KEYDIST * 5, -KEYDIST * 1.25, 0)) 84 | 85 | columns = column.fuse(column2).fuse(column3).fuse(column4).fuse(column5).fuse(column6) 86 | 87 | 88 | columns = columns.cut(columnBaseTrim) 89 | 90 | 91 | 92 | 93 | longThumb1 = key(ySize = 1.5, extraDepth = 1) 94 | longThumb1.rotate(Vector(0,KEYDIST * 1.5,0), Vector(1,0,0), 10) 95 | longThumb1.rotate(Vector(0,KEYDIST * 1.5,0), Vector(0,1,0), -40) 96 | longThumb1.translate(Vector(2, -(KEYDIST * 2.5) - 0.5, -12)) 97 | 98 | longThumb2 = key(ySize = 1.5, extraDepth = 1) 99 | longThumb2.rotate(Vector(0,KEYDIST * 1.5,0), Vector(1,0,0), 10) 100 | longThumb2.rotate(Vector(0,KEYDIST * 1.5,0), Vector(0,1,0), -40) 101 | longThumb2.translate(Vector(3 + KEYDIST, -(KEYDIST * 2.5) - 2.5, -6)) 102 | 103 | 104 | shortThumb = key(ySize = 1, extraDepth = 1) 105 | shortThumb.rotate(Vector(0,KEYDIST * 1.5,0), Vector(1,0,0), 10) 106 | shortThumb.rotate(Vector(0,KEYDIST * 1.5,0), Vector(0,1,0), -40) 107 | shortThumb.translate(Vector(2, -(KEYDIST * 4) - 0.5, -12)) 108 | 109 | 110 | #final = columns.fuse(longThumb1).fuse(longThumb2) 111 | 112 | columns.rotate(Vector(0,0,0), Vector(0,1,0), 20) 113 | longThumb1.rotate(Vector(0,0,0), Vector(0,1,0), 20) 114 | longThumb2.rotate(Vector(0,0,0), Vector(0,1,0), 20) 115 | shortThumb.rotate(Vector(0,0,0), Vector(0,1,0), 20) 116 | 117 | Part.show(columns) 118 | Part.show(longThumb1) 119 | Part.show(longThumb2) 120 | Part.show(shortThumb) 121 | 122 | -------------------------------------------------------------------------------- /ManuFormMark2 (repaired).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/ManuFormMark2 (repaired).stl -------------------------------------------------------------------------------- /ManuFormMark2.fabbproject: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/ManuFormMark2.fabbproject -------------------------------------------------------------------------------- /ManuFormMark2_020.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/ManuFormMark2_020.sib -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ManuForm Keyboard 2 | 3 | These are the design files for my custom ManuForm keyboard. 4 | 5 | ## FreeCAD script(s) 6 | 7 | ./ManuForm1.py is a python script that I used with [FreeCAD](http://www.freecadweb.org/wiki/?title=Download) to parametrically/programattically generate the "keywells" of the keyboard. FreeCAD is free and open source, and is pretty cool. It's still under development though and not quite full-featured, IMO (at time of writing). 8 | 9 | 10 | ## Silo save files 11 | 12 | Then, I imported that shape into [Silo](http://www.nevercenter.com/silo/). Silo is a 3D modelling program. It's nice because it *doesn't* do anything else like texturing, bones/rigging/animation, etc. It *just* does modelling. But it's a very very good modelling program, IMO, and it's only about $100. Prior to that, I professionally used 3DSMax, which costs on the order of multiple thousands of dollars, and I would have to use many plugins including custom plugins I wrote myself just to get all the modelling tools I needed, but with Silo, it just works off the shelf. If all you need is to make a shape, it's the best (and cheapest) way to go. /rant 13 | 14 | So all of my silo incremental save files are here too, including ./ManuFormMark2_020.sib which is the latest and the one that I used to export the final model. 15 | 16 | 17 | ## Export Process 18 | 19 | After exporting the .stl file from Silo, I ran it through [netfabb](http://www.netfabb.com/) to clean up the model, fix the scaling, fix holes, fix manifold errors, etc. The basic version of netfabb is freeware, and has the automatic repair which is all you need for this. 20 | 21 | 22 | ## Shapeways 23 | 24 | Then, with the repaired .stl file from netfabb, I uploaded it to [shapeways](http://www.shapeways.com/product/6BNKXTXTA/manuform-keyboard?key=9d07b99823474e036abe511d064ed4b0) and had them print it. This link is to my "product" on shapeways so you could go and print my version from here: [ManuForm Keyboard](http://www.shapeways.com/product/6BNKXTXTA/manuform-keyboard?key=9d07b99823474e036abe511d064ed4b0). 25 | -------------------------------------------------------------------------------- /archive/ManuForm002.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm002.sib -------------------------------------------------------------------------------- /archive/ManuForm003.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm003.sib -------------------------------------------------------------------------------- /archive/ManuForm004.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm004.sib -------------------------------------------------------------------------------- /archive/ManuForm005.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm005.sib -------------------------------------------------------------------------------- /archive/ManuForm006-allthumbsplaced.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm006-allthumbsplaced.sib -------------------------------------------------------------------------------- /archive/ManuForm006.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm006.sib -------------------------------------------------------------------------------- /archive/ManuForm007.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm007.sib -------------------------------------------------------------------------------- /archive/ManuForm008.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm008.sib -------------------------------------------------------------------------------- /archive/ManuForm009.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm009.sib -------------------------------------------------------------------------------- /archive/ManuForm010.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm010.sib -------------------------------------------------------------------------------- /archive/ManuForm011.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm011.sib -------------------------------------------------------------------------------- /archive/ManuForm012.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm012.sib -------------------------------------------------------------------------------- /archive/ManuForm013.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm013.sib -------------------------------------------------------------------------------- /archive/ManuForm014.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm014.sib -------------------------------------------------------------------------------- /archive/ManuForm015.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm015.sib -------------------------------------------------------------------------------- /archive/ManuForm016.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm016.sib -------------------------------------------------------------------------------- /archive/ManuForm017.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm017.sib -------------------------------------------------------------------------------- /archive/ManuForm018.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm018.sib -------------------------------------------------------------------------------- /archive/ManuForm019.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm019.sib -------------------------------------------------------------------------------- /archive/ManuForm020.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm020.sib -------------------------------------------------------------------------------- /archive/ManuForm021.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm021.sib -------------------------------------------------------------------------------- /archive/ManuForm022.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm022.sib -------------------------------------------------------------------------------- /archive/ManuForm023.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm023.sib -------------------------------------------------------------------------------- /archive/ManuForm024.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm024.sib -------------------------------------------------------------------------------- /archive/ManuForm025.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm025.sib -------------------------------------------------------------------------------- /archive/ManuForm026.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm026.sib -------------------------------------------------------------------------------- /archive/ManuForm027.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm027.sib -------------------------------------------------------------------------------- /archive/ManuForm028.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm028.sib -------------------------------------------------------------------------------- /archive/ManuForm029.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm029.sib -------------------------------------------------------------------------------- /archive/ManuForm030.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm030.sib -------------------------------------------------------------------------------- /archive/ManuForm031.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm031.sib -------------------------------------------------------------------------------- /archive/ManuForm032.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm032.sib -------------------------------------------------------------------------------- /archive/ManuForm033.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm033.sib -------------------------------------------------------------------------------- /archive/ManuForm034.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm034.sib -------------------------------------------------------------------------------- /archive/ManuForm035.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm035.sib -------------------------------------------------------------------------------- /archive/ManuForm036.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm036.sib -------------------------------------------------------------------------------- /archive/ManuForm037.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm037.sib -------------------------------------------------------------------------------- /archive/ManuForm038.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm038.sib -------------------------------------------------------------------------------- /archive/ManuForm039.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm039.sib -------------------------------------------------------------------------------- /archive/ManuForm040.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm040.sib -------------------------------------------------------------------------------- /archive/ManuForm041.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm041.sib -------------------------------------------------------------------------------- /archive/ManuForm042.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm042.sib -------------------------------------------------------------------------------- /archive/ManuForm043.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm043.sib -------------------------------------------------------------------------------- /archive/ManuForm044.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm044.sib -------------------------------------------------------------------------------- /archive/ManuForm045.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm045.sib -------------------------------------------------------------------------------- /archive/ManuForm046.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm046.sib -------------------------------------------------------------------------------- /archive/ManuForm047-Finished.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm047-Finished.sib -------------------------------------------------------------------------------- /archive/ManuForm047.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm047.sib -------------------------------------------------------------------------------- /archive/ManuForm048.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm048.sib -------------------------------------------------------------------------------- /archive/ManuForm049-for-export.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm049-for-export.sib -------------------------------------------------------------------------------- /archive/ManuForm049.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm049.sib -------------------------------------------------------------------------------- /archive/ManuForm050.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm050.sib -------------------------------------------------------------------------------- /archive/ManuForm1.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuForm1.sib -------------------------------------------------------------------------------- /archive/ManuFormExport4.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormExport4.sib -------------------------------------------------------------------------------- /archive/ManuFormExport6.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormExport6.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_001.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_001.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_002.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_002.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_003.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_003.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_004.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_004.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_005.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_005.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_006.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_006.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_006_autosave.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_006_autosave.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_006_autosave001.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_006_autosave001.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_006_autosave002.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_006_autosave002.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_007.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_007.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_008.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_008.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_009.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_009.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_010.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_010.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_011.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_011.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_012.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_012.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_013.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_013.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_014.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_014.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_015.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_015.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_016.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_016.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_017.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_017.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_018.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_018.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_019.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_019.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_020-export-setup.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_020-export-setup.sib -------------------------------------------------------------------------------- /archive/ManuFormMark2_020.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/archive/ManuFormMark2_020.sib -------------------------------------------------------------------------------- /boardHolder.py: -------------------------------------------------------------------------------- 1 | from FreeCAD import * 2 | 3 | # 10mm bolt shaft 4 | # 3mm nut 5 | # PCB is 1.6mm thick. 6 | # = 5.4mm long screwhole 7 | 8 | # plate = Part.makePlane(50, 50).extrude(Vector(0,0,1.5)) 9 | # Part.show(plate) 10 | 11 | support = Part.makeCylinder(3, 5.4) 12 | screwholeCutout = Part.makeCylinder(1.7, 5.4) 13 | 14 | screwhole = support.cut(screwholeCutout) 15 | Part.show(screwhole) 16 | 17 | # screwhole.translate(Vector(3, 3, 0)) 18 | # Part.show(screwhole) 19 | # screwhole.translate(Vector(44, 0, 0)) 20 | # Part.show(screwhole) 21 | # screwhole.translate(Vector(0, 44, 0)) 22 | # Part.show(screwhole) 23 | # screwhole.translate(Vector(-44, 0, 0)) 24 | # Part.show(screwhole) 25 | 26 | 27 | -------------------------------------------------------------------------------- /boardHolder1.sib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/boardHolder1.sib -------------------------------------------------------------------------------- /boardHolder1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffgran/ManuForm/fa16d3872f03a8fa84e758416b2e6cc4e6d8ec69/boardHolder1.stl --------------------------------------------------------------------------------