{"id":107398,"key":"User:TobinTheBlair","title":"User:TobinTheBlair","latest":{"id":1094100,"timestamp":"2024-02-28T17:11:08Z"},"content_model":"wikitext","license":{"url":"https://www.appropedia.org/Appropedia:Copyrights","title":"CC-BY-SA-4.0"},"source":"[[File:Picture Thingey.jpg|thumb|Photo by Keenaan Stratman]]\n{{User data\n| name = Tobin Blair (He/They)\n| organizations = Principia College\n| languages = English\n}}\n\n{{242 notice}}\nThis page is part of the Principia College 3-D Printing Technology course. It is designed to share the designs that Tobin creates in this class.\n\n==== Past Work Relevant to Appropedia ====\nTobin Blair has seen a 3D printer in action before. Now, Tobin has worked with one of them during the class.\n\n=== '''Mini projects''' ===\nThese are several mini projects that I created\n\n[[File:Mini Projects.jpg|frameless]]\n\n==== What I learned ====\nI used three different design software in making these projects: Blender, OpenSCAD, and FreeCAD. This taught me how to use each of them, and which one I liked best (openSCAD).\n\nI also learned, eventually, how to make my printer stop stringing. These three projects did not have rthe best print quality, as you can tell from the picture. Through the amount of stringing and lack of retraction, I found out that my idler wasn't pressing against the filament, it was, well, being idle. Once I fixed that, my Print quality got a whole lot better, as you can see on my projects below.\n\n==== Rock Wall Hold ====\nI designed this using OpenSCAD. I created several spheres and used the hull() feature to go over it. Then I created a model screw and used the difference() feature to remove it.\n\n==== Propeller ====\nI designed the propeller using FreeCAD. It was a lot of fun and I liked how I was able to draw something and then set parameters to it to make it a specific way. I think that if I were to develop something complicated I would use FreeCAD.\n\n==== Snowman ====\nI used Blender for the snowman. I did not like Blender very much. it seems immensely powerful but I had and still have no idea how to maneuver in Blender. I like my snowman's nose, though.\n\n\n=== Board Game Project ===\nThis project is a Board Game that Tobin is designing both through rules and parts. As of now, the parts that are designed are laid out as follows. \n\nThe game is designed to simulate the growth of a forest as it goes through periods of disaster and regrowth. the Board will be made up of 21 hexagons of three different varieties, \"1\", \"2\", and \"3\". The files labeled board refer to a different board that is a representation of the actual board. On this board, cups will get placed with different lettered circles in them to show the growth of different trees on the actual board. Different colored cups will instead show disasters, which will harm trees on the board.\n[[File:Forest Management Board Game Rules.pdf|alt=These are the rules for the Forest Management Board Game.|thumb|These are the rules for the Forest Management Board Game.]]\nThe exact rules of the game as of now are only rough approximations. They can be seen on the PDF on the right. The STL files below are the files designed for this part of the game to run. This was created in OpenSCAD. Code for the various pieces of the game can be found at the bottom of the page. They can be used any modified in OpenSCAD. \n\nThis game needs five types of trees. One of which I designed myself and present below. Others can be found elsewhere. A tree that I printed was created by user Alzibiff on Thingiverse, which can be found here [https://www.thingiverse.com/thing:193814]. \n\n[[File:Forest Management Board Game Action Board.stl|thumb]]\n\n[[File:Forest Management Board Game Action Token.stl|alt=This is the action token to go on the action board for the Forest Management Board game.|thumb|0x0px|This is the action token to go on the action board for the Forest Management Board game.]]\n\n[[File:Forest Management Board Game Combined.jpg|alt=This is a combined picture of the Forest Management Board game. It includes my work and trees from User Alzibiff on Thingiverse.|thumb|This is a combined picture of the Forest Management Board game. It includes my work and trees from User Alzibiff on Thingiverse.]]\n\n[[File:Forest Management Board Game Board STL.stl|thumb|this is the board for the forest management board game.]]\n\n[[File:Forest Management Board Game Board ACircle.stl|thumb|This is a circle inscribed with \"A\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Board BCircle.stl|thumb|This is a circle inscribed with \"B\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Board Cup.stl|thumb|This is a cup designed to be placed on the board. They can be stacked on top of each other on top of the board, and circles with various letters can be placed inside of them.]]\n\n[[File:Forest Management Board Game Board CCircle.stl|thumb|This is a circle inscribed with \"C\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Board DCircle.stl|thumb|This is a circle inscribed with \"D\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game ICircle.stl|alt=This is a circle inscribed with \"I\" to go with the Forest Management Board game.|thumb|This is a circle inscribed with \"I\" to go with the Forest Management Board game.]]\n\n[[File:Forest Management Board Game XCircle.stl|alt=This is a circle inscribed with \"X\" to go with the Forest Management Board game.|thumb|This is a circle inscribed with \"X\" to go with the Forest Management Board game.]]\n\n[[File:Forest Management Board Game YCircle.stl|alt=This is a circle inscribed with \"Y\" to go with the Forest Management Board game.|thumb|This is a circle inscribed with \"Y\" to go with the Forest Management Board game.]]\n\n[[File:Forest Management Board Game ZCircle.stl|alt=This is a circle inscribed with \"Y\" to go with the Forest Management Board game.|thumb|This is a circle inscribed with \"Y\" to go with the Forest Management Board game.]]\n\n[[File:Forest Management Board Game Board Hexagon1.stl|thumb|This is a Hexagon inscribed with \"1\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Board Hexagon2.stl|thumb|This is a Hexagon inscribed with \"2\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Board Hexagon3.stl|thumb|This is a Hexagon inscribed with \"3\" to be used in the forest management board game.]]\n\n[[File:Forest Management Board Game Tree.stl|alt=This is a tree designed to be used with the Forest Management board game.|thumb|This is a tree designed to be used with the Forest Management board game.]]\n\n[[File:Forest Management Board Game.jpg|frameless]]\n\n\n\n\n\n=== '''OSAT project''' ===\n[[File:CustomizableHinge(1).jpg|frameless]]\n\n\n\n[[Customizable Hinges#Customizable Hinges|[Customizable Hinges#Customizable Hinges]]]\n\nThe purpose of this project was to create an Open Source Appropriate Technology (OSAT). For my OSAT, I made fully customizable hinges in OpenSCAD. The Abstract for my page is:\n\n\"To size up the work done by hinges, you simply have to imagine that every time you want to get in or out of a building you have to do the work as a prisoner trying to escape or a gangster trying to rob a bank, plus the work of those who rebuild either the prison's or the bank's walls.\" - Bruno Latour<ref>http://www.bruno-latour.fr/sites/default/files/35-MIXING-H-ET-NH-GBpdf_0.pdf</ref>. While it is whimsical to think of having to destroy and rebuild a wall every time you want to go inside or outside, it does highlight how necessary hinges are. Not only are they necessary for doors, but windows, toilet seats, and more. In short, hinges are necessary for buildings to function.\n\nUnited Nations Sustainable Development Goal 9 is \"Industry, Innovation, and Infrastructure\"<ref>United Nation, https://sdgs.un.org/goals</ref>. This is related directly to the building, and especially maintaining, of infrastructure. In certain communities, particularly in developing countries, getting access to hinges or replacement hinges can be hard. Especially if a hinge breaks, there may not be a replacement available. There may also be a limited variety of hinges available, none of which will fit. A 3-D printable customizable hinge is OSAT because it provides easy access to whatever size hinge someone needs. The hinge can be adapted for any size screw or nail, and any size rod.\n\n\nPlease see the page for more details. [[Customizable Hinges|[Customizable Hinges]]]\n\n=== '''Board Game Code''' ===\nPrep Board:\n<pre>\n$fn=6;\nh=3;\nr=9;\nmodule ring(){\n    $fn=6;\n    translate ([0,0,h]) difference(){\n    cylinder(h, 1.2*r, 1.2*r);\n    cylinder(h,r,r);\n    }\n}\nmodule draw(){\n    union(){\nrotate([0,0,30]) cylinder (h,7*r, 7*r);\nring();\ntranslate ([0,2.5*r,0]) ring();\ntranslate ([0,5*r,0]) ring();\ntranslate ([0,-2.5*r,0]) ring();\ntranslate ([0,-5*r,0]) ring();\ntranslate ([r*2.5*sqrt(3)/2,-1.25*r,0]) ring();\ntranslate ([r*5*sqrt(3)/2,-2.5*r,0]) ring();\ntranslate ([-r*2.5*sqrt(3)/2,-1.25*r,0]) ring();\ntranslate ([-r*5*sqrt(3)/2,-2.5*r,0]) ring();\ntranslate ([r*2.5*sqrt(3)/2,1.25*r,0]) ring();\ntranslate ([r*5*sqrt(3)/2,2.5*r,0]) ring();\ntranslate ([-r*2.5*sqrt(3)/2,1.25*r,0]) ring();\ntranslate ([-r*5*sqrt(3)/2,2.5*r,0]) ring();\ntranslate ([r*2.5*sqrt(3)/2,-3.75*r,0]) ring();\ntranslate ([r*2.5*sqrt(3)/2,3.75*r,0]) ring();\ntranslate ([-r*2.5*sqrt(3)/2,-3.75*r,0]) ring();\ntranslate ([-r*2.5*sqrt(3)/2,3.75*r,0]) ring();\ntranslate ([r*5*sqrt(3)/2,0,0]) ring();\ntranslate ([-r*5*sqrt(3)/2,0,0]) ring();\n    }\n}\ndraw();\n</pre>\nCup:\n<pre>\n$fn=6;\nh=3;\nr=9;\ndifference(){\n    base();\n    extra();\n}\nmodule base(){\ncylinder(h,.95*r,.95*r);\ntranslate ([0,0,.6*h])cylinder(2*h,1.2*r,1.2*r);\n}\nmodule extra(){\ntranslate([0,0,h]) cylinder (2*h,r,r);\n}\n</pre>\nAction Board:\n<pre>\nh=2.5;\nr=40;\nmodule base(){\n    cylinder(h,r,r);\n}\nmodule flat(){\n    difference(){\n    difference(){\n    rotate([0,90,0])cylinder(r*.5,r/2.8,r/12);\n        translate([0,0,h/30])cylinder(h*30,r,r);\n        translate([0,0,-(h*30)-h/30])cylinder(h*30,r,r);\n    }\n    }\n}\nmodule cup(){\n    hull(){\n        flat();\n        translate([0,0,h])flat();\n    } \n}\n\nmodule baseTwo(){\ndifference(){\n    difference(){\n        difference(){\n            difference(){\n                difference(){\n                    difference(){\ntranslate([0,0,-h/2])base();\ntranslate([-r*.8,0,0])cup();\nrotate([0,0,60])translate([-r*.8,0,0])cup();\nrotate([0,0,120])translate([-r*.8,0,0])cup();\nrotate([0,0,180])translate([-r*.8,0,0])cup();\nrotate([0,0,240])translate([-r*.8,0,0])cup();\nrotate([0,0,300])translate([-r*.8,0,0])cup();\n                    }\n                }\n            }\n        }\n    }\n}\n}\nmodule run(){\n    union(){\n        baseTwo();\n        rotate([0,0,30])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"1\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n        rotate([0,0,90])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"2\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n        rotate([0,0,150])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"3\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n        rotate([0,0,210])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"4\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n        rotate([0,0,270])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"5\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n        rotate([0,0,330])translate([0,1.8*r/2,h/2])linear_extrude (height=h/10) text(\"6\", halign = \"center\", valign=\"center\",size=r/9,font=\"liberation Sans\");\n    }\n}\nrun();\n</syntaxhighlight>\nAction Token:<syntaxhighlight>\nh=2.5;\nr=40;\nmodule flat(){\n    difference(){\n    difference(){\n    rotate([0,90,0])cylinder(r*.48,r/2.8,r/12);\n        translate([0,0,h/30])cylinder(h*30,r,r);\n        translate([0,0,-(h*30)-h/30])cylinder(h*30,r,r);\n    }\n    }\n}\nmodule underFlat(){\n    translate([r*.03,0,0])difference(){\n    difference(){\n    rotate([0,90,0])cylinder(r*.44,r/3.2,r/13);\n        translate([0,0,h/30])cylinder(h*30,r,r);\n        translate([0,0,-(h*30)-h/30])cylinder(h*30,r,r);\n    }\n    }\n}\nmodule cup(){\n    hull(){\n        underFlat();\n        translate([0,0,h])underFlat();\n    } \n}\nmodule cupBad(){\n    translate([0,0,h])hull(){\n        flat();\n        translate([0,0,h])flat();\n    }\n}\nmodule superFlat(){\n    difference(){\n    difference(){\n    rotate([0,90,0])cylinder(r*.56,r/2.4,r/10);\n        translate([0,0,h/30])cylinder(h*30,r,r);\n        translate([0,0,-(h*30)-h/30])cylinder(h*30,r,r);\n    }\n    }\n}\nmodule superCup(){\n    hull(){\n        translate([-r*.03,0,0])superFlat();\n        translate([-r*.03,0,0])translate([0,0,h])superFlat();\n    }\n}\nmodule run(){\n    difference(){\n        union(){\n            cup();\n            translate([0,0,h/2])superCup();\n        }\n        cupBad();\n    }\n}\ntranslate([-r*.8,0,0])run();\n/*\nrotate([0,0,60])translate([-r*.8,0,0])run();\nrotate([0,0,120])translate([-r*.8,0,0])run();\nrotate([0,0,180])translate([-r*.8,0,0])run();\nrotate([0,0,240])translate([-r*.8,0,0])run();\nrotate([0,0,300])translate([-r*.8,0,0])run();\n*/\n</pre>\nCustomizable Circle:\n<pre>\n//height\nh=3;\n//radius of circle\nr=9;\n//Thsi is the letter that will be on top of the circle. Enter a different letter to get a different letter on top.\nwrite=\"A\";\nunion(){\ncylinder(h/3,.7*r,.7*r,$fn=30);\n linear_extrude (height=h/2) text(write, halign = \"center\", valign=\"center\",size=7*r/9,font=\"liberation Sans\");\n}\n</pre>\nCustomizable Hexagon:\n<pre>\n//This is the radius of the hexagon\nr=22;\n//This is the height of the hexagon\nh=2.5;\n$fn=6;\n//This is the number that will be displayed on the hexagon\nnum=\"1\";\ndifference(){\ncylinder(h,r,r);\ntranslate ([0,0,4*h/5])\nlinear_extrude (height=h) text(num, halign = \"center\", valign=\"center\",size=17*r/22,font=\"liberation Sans\");\n}\n</syntaxhighlight>\nPlayer Border:<syntaxhighlight>\nr=22;\nh=2.5;\nmodule badOne(){\n    $fn=6;\ncylinder(h,r*1.03,r*1.03);\n}\nmodule hex (){\n    $fn=6;\n    cylinder(1,r*1.1,r*1.1);\n}\nmodule hexTwo(){\n    $fn=6;\n    cylinder(1,r*1.07,r*1.07);\n}\nmodule combine() {\n    translate([0,0,h])hex();\n    translate([0,0,h-1])hexTwo();\n}\nmodule badTwo (){\n    $fn=6;\n    cylinder(h+1,r*.95,r*.95);\n}\nmodule run(){\n    difference(){\n        difference(){\n            combine();\n            badOne();\n        }\n        badTwo();\n    }\n}\nrun();\n</pre>\n\nTree:\n\n<pre>\ns=8;\nh=10;\n$fn=50;\nunion(){\ncylinder(h,s,0);\ntranslate([0,0,s/2])cylinder(h-2.5,s-2.5,0);\ntranslate([0,0,s])cylinder(h-5,s-5,0);\n}\n</pre>\n\n{{Page data\n| authors = Tobin Blair\n}}"}