$fn=60; include diam=20; module vent() { difference() { spheroid(d=diam, style="octa"); spheroid(d=diam-6, style="octa"); translate([0,0,-diam/4]) cuboid([diam,diam,diam/2]); translate([0,-diam/4,0]) cuboid([diam,diam/2,diam]); } } // part 1 *color ("blue") { difference() { union() { linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in1.svg"); linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out1.svg"); } linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg"); translate ([30,12,0]) zcyl(d=diam/3, l=10); translate ([105,18,0]) zcyl(d=diam/3, l=10); translate([135,18,0]) xcyl(d=3, l=50); translate([135,28,0]) xcyl(d=3, l=50); } translate ([30,10,0]) vent(); translate ([105,16,0]) vent(); } // part 2 *color ("red") { difference() { union() { linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in2.svg"); linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out2.svg"); } linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg"); translate ([180,20,0]) zcyl(d=diam/3, l=10); translate ([250,20,0]) zcyl(d=diam/3, l=10); translate([135,18,0]) xcyl(d=3, l=50); translate([135,28,0]) xcyl(d=3, l=50); translate([290,15,0]) xcyl(d=3, l=50); translate([290,25,0]) xcyl(d=3, l=50); } translate ([180,18,0]) vent(); translate ([250,18,0]) vent(); } // part 3 *color ("pink") { difference() { union() { linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in3.svg"); linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out3.svg"); } linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off.svg"); translate ([330,17,0]) zcyl(d=diam/3, l=10); translate ([400,10,0]) zcyl(d=diam/3, l=10); translate([290,15,0]) xcyl(d=3, l=50); translate([290,25,0]) xcyl(d=3, l=50); } translate ([330,15,0]) vent(); translate ([400,8,0]) vent(); } // part 4 color ("cyan") { difference() { union() { linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in4.svg"); linear_extrude(height = 10, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_out4.svg"); } linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_in3.svg"); linear_extrude(height = 5, center = true, scale=1) import("/home/julien/Sync/3D/camion/profil_off2.svg"); translate ([330,17,0]) zcyl(d=diam/3, l=10); translate ([400,10,0]) zcyl(d=diam/3, l=10); translate([290,15,0]) xcyl(d=3, l=50); translate([290,25,0]) xcyl(d=3, l=50); } }