123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
-
- charge_dia = 16.2;
- charge_height = 55.0;
- charge_wall = 2.5;
-
- ignite_dia = 6.8;
- ignite_height = 17.0;
- ignite_wall = 1.2;
-
- cable_dia = 5.0;
-
- base_width = 25;
- base_height = 10.0;
- base_wall = 3.0;
-
- hole_dia = 5.0;
- hole_len = 8.0;
- hole_angle = 45.0;
- hole_off = 2.0;
- hole_off2 = 5.0;
-
- $fn = 42;
-
- module charge() {
- difference() {
- cylinder(d = charge_dia + (2 * charge_wall), h = charge_height + charge_wall);
-
- translate([0, 0, charge_wall])
- cylinder(d = charge_dia, h = charge_height + 1);
-
- translate([0, 0, -1])
- cylinder(d = cable_dia, h = charge_wall + 2);
-
- translate([charge_dia / 2 + charge_wall + hole_off, 0, hole_off2])
- rotate([0, -hole_angle, 0])
- cylinder(d = hole_dia, h = hole_len);
-
- translate([-charge_dia / 2 - charge_wall - hole_off, 0, hole_off2])
- rotate([0, hole_angle, 0])
- cylinder(d = hole_dia, h = hole_len);
-
- translate([0, charge_dia / 2 + charge_wall + hole_off, hole_off2])
- rotate([hole_angle, 0, 0])
- cylinder(d = hole_dia, h = hole_len);
-
- translate([0, -charge_dia / 2 - charge_wall - hole_off, hole_off2])
- rotate([-hole_angle, 0, 0])
- cylinder(d = hole_dia, h = hole_len);
- }
- }
-
- module ignite() {
- difference() {
- cylinder(d = ignite_dia + (2 * ignite_wall), h = ignite_height + ignite_wall);
-
- translate([0, 0, ignite_wall])
- cylinder(d = ignite_dia, h = ignite_height + 1);
-
- translate([0, 0, -1])
- cylinder(d = cable_dia, h = ignite_wall + 2);
- }
- }
-
- module top() {
- charge();
-
- translate([0, 0, charge_wall])
- ignite();
- }
-
- module pillars() {
- hull() {
- cube([base_wall, base_wall, base_wall]);
-
- translate([base_width / 2, base_width / 2, base_height + base_wall])
- cylinder(d = charge_dia + (2 * charge_wall), h = 1);
- }
-
- hull() {
- translate([base_width - base_wall, 0, 0])
- cube([base_wall, base_wall, base_wall]);
-
- translate([base_width / 2, base_width / 2, base_height + base_wall])
- cylinder(d = charge_dia + (2 * charge_wall), h = 1);
- }
-
- hull() {
- translate([0, base_width - base_wall, 0])
- cube([base_wall, base_wall, base_wall]);
-
- translate([base_width / 2, base_width / 2, base_height + base_wall])
- cylinder(d = charge_dia + (2 * charge_wall), h = 1);
- }
-
- hull() {
- translate([base_width - base_wall, base_width - base_wall, 0])
- cube([base_wall, base_wall, base_wall]);
-
- translate([base_width / 2, base_width / 2, base_height + base_wall])
- cylinder(d = charge_dia + (2 * charge_wall), h = 1);
- }
- }
-
- module base() {
- cube([base_width, base_width, base_wall]);
-
- difference() {
- pillars();
-
- translate([base_width / 2, base_width / 2, base_wall + 1])
- cylinder(d = cable_dia, h = base_height + 2);
- }
-
- translate([base_width / 2, base_width / 2, base_height + base_wall])
- top();
- }
-
- base();
|