La structure doit pouvoir s'assembler et se désassembler pour faciliter son transport. Elle est coupée en deux au centre. La structure centrale sert à fixer les deux parties et accueille le boîtier de commande électronique. Celle-ci peut glisser dans une des moitié pour prendre moins de place pour le transport. Pour l'instant, le cadre sera réalisé en acier de 20x20x2mm.
// Post Goma Framework
// Plans for steel construction
// 08.2016
// Jérôme Abel
// Variables
tube_w = 20;
framework_w = 850; // largeur
framework_h = 155; // hauteur, dépend du phare
framework_d = 260; // profondeur
center_w = 400; // largeur structure centrale
center_plate_sickness = 5;
// Build framework
color([0, 0.6, 1, 1]) f_side();
color([0, 0, 1, 0.9]) mirror([1,0,0]) f_side();
color([0, 1, 0, 1]) f_center();
// Modules
module f_side(){
// Main structure
cube([framework_w, tube_w, tube_w]);
translate([0,framework_d - tube_w,0])
cube([framework_w, tube_w, tube_w]);
translate([0,0,framework_h - tube_w])
cube([framework_w, tube_w, tube_w]);
translate([0,framework_d - tube_w,framework_h - tube_w])
cube([framework_w, tube_w, tube_w]);
// Side
difference() {
translate([framework_w - tube_w, 0, 0])
cube([tube_w, framework_d, framework_h]);
translate([framework_w - tube_w - 5, tube_w, tube_w])
cube([tube_w + 10, framework_d - (2*tube_w) , framework_h - (2*tube_w)]);
}
// Light
translate([framework_w - 130, framework_d/2 - 30, framework_h/2 + 50])
mirror([0,1,0])
scale([10,10,10])
import("/media/data/art/post-goma-framework/framework/plans/carlight.stl");
// Light support
difference() {
translate([framework_w-400, 0, tube_w - 2])
cube([400, framework_d, 2]);
translate([framework_w-30, framework_d/2, 0])
cylinder(r=10,h=100);
translate([framework_w-380, framework_d/2, 0])
cylinder(r=10,h=100);
}
}
module f_center(){
f_center_module ();
translate([0,0, framework_h - tube_w]) f_center_module ();
// Renforts
translate([-(center_w/2),tube_w,tube_w])
cube([tube_w, tube_w, framework_h - (2*tube_w)]);
translate([center_w/2 - tube_w,tube_w,tube_w])
cube([tube_w, tube_w, framework_h - (2*tube_w)]);
translate([-(center_w/2),framework_d - (2*tube_w) ,tube_w])
cube([tube_w, tube_w, framework_h - (2*tube_w)]);
translate([center_w/2 - tube_w,framework_d - (2*tube_w),tube_w])
cube([tube_w, tube_w, framework_h - (2*tube_w)]);
//Plate
translate([-(center_w/2),tube_w,tube_w])
cube([center_w, framework_d - (2*tube_w), center_plate_sickness]);
}
module f_center_module (){
difference() {
translate([-center_w/2,tube_w,0])
cube([center_w, framework_d - (2*tube_w), tube_w]);
translate([-center_w/2 + tube_w,tube_w*2,-1])
cube([center_w - (2*tube_w) , framework_d - (4*tube_w), tube_w+2]);
}
}