5 // Created by Joao Alves (jpralves@gmail.com)
6 // Tea Light added by Clinton Ebadi <clinton@unknownlamer.org>
7 // Pac Guy model by Fry Hyde (https://www.thingiverse.com/thing:612888)
8 // ------------------------------------------
13 ghost_diameter = 50; // [25:5:100]
14 pacguy_diameter = ghost_diameter * 1.5;
16 height = ghost_diameter*0.65;
18 key_chain = 0; // [1:On, 0:Off]
20 led_hole = 0; // [0:Off, 5:5mm, 8:8mm, 10:10mm]
21 // Add tea light holder
30 $fa=4; // [20:Low Res, 10:Normal Res, 4:Hi Res]
38 cylinder(d = ghost_diameter, h = height);
39 translate([0, 0, height]) sphere(d = ghost_diameter);
41 translate([0, 0, height+ghost_diameter/2])
48 translate([ghost_diameter/2, -ghost_diameter/4, height])
49 sphere(d = ghost_diameter/3.5);
50 translate([ghost_diameter/2, ghost_diameter/4, height])
51 sphere(d = ghost_diameter/3.5);
52 translate([0, 0, -0.1])
54 rotate([a/12*360,-90,0])
56 translate([0,0,ghost_diameter/12.5])
57 cylinder(ghost_diameter, 0,ghost_diameter/25*6.5, $fn=4);
62 module led_hole (led_d = led_hole, led_h = 0) {
63 // led_h==0 auto-sets height, openscad can't reference other
64 // arguments so this abomination arises
65 led_h = led_h ? led_h : height - (led_d+2);
68 cylinder(d = led_d+2, h = led_h);
69 translate([0, 0, led_h]) sphere(d = led_d+2);
73 module tea_light_base () {
76 bulb_ghost_diameter = 9;
80 cylinder (d = base_diameter + 1, h = base_height + 1);
81 led_hole (led_d = bulb_ghost_diameter, led_h = base_height+8);
88 // original model ghost_diameter is 30.464mm, scale to 1mm and then to
89 // final ghost_diameter. z is slightly smaller due to bottom being cut
91 s = 1 / 30.464 * pacguy_diameter;
92 scale ([s, s, s]) translate ([0, 0, 28.742 / 2]) import ("PacGuy.stl", convexity=10);
95 module subtract_led () {
98 if (led_hole > 0) led_hole ();
99 if (tea_light) tea_light_base ();
104 rotate ([0, 0, -90]) ghost ();
109 translate ([ ghost ? (ghost_diameter + pacguy_diameter) / 2 + 10 : 0, 0, 0]) subtract_led () {