/* * Logo of Sogeti, Department Cybersecurity * (c) may apply */ // ---START SETTINGS--- CIRCLE_RESOLUTION=36; // The resolution of the circles; strongly influents render time! THICKNESS=1; // the Z axis measurements, or "thickness" POINT_POSITION=3.5; // Positioning of the dots POINT_SIZE=1.5; // diameter of the dots LINE_WIDTH=0.5; // Width of the dot-connecting lines DRAW_SUPPORT=true; // Wether or not to draw the support for the inner part; should be enabled for 3D printing SUPPORT_WIDTH=0.25; // ---END SETTINGS--- LOW_POINT=-sqrt(pow(POINT_POSITION, 2) - pow(POINT_POSITION/2, 2)); translate([0, -LOW_POINT/3, 0]) union() { difference() { // Base background intersection() { translate([-POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=10, $fn=CIRCLE_RESOLUTION); translate([POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=10, $fn=CIRCLE_RESOLUTION); translate([0, LOW_POINT, 0]) cylinder(h=THICKNESS, d=10, $fn=CIRCLE_RESOLUTION); } // dots translate([-POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); translate([POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); translate([0, LOW_POINT, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); // connecting lines rotate([0, 0, 0]) translate([-POINT_POSITION/2, -LINE_WIDTH/2, 0]) cube([POINT_POSITION, LINE_WIDTH, THICKNESS]); translate([POINT_POSITION/4, LOW_POINT/2, 0]) rotate([0, 0, 60]) translate([-POINT_POSITION/2, -LINE_WIDTH/2, 0]) cube([POINT_POSITION, LINE_WIDTH, THICKNESS]); translate([-POINT_POSITION/4, LOW_POINT/2, 0]) rotate([0, 0, 120]) translate([-POINT_POSITION/2, -LINE_WIDTH/2, 0]) cube([POINT_POSITION, LINE_WIDTH, THICKNESS]); } // supports to avoid a floating inner part if(DRAW_SUPPORT) { difference() { // Support cylinders union() { translate([-POINT_POSITION/2, 0, THICKNESS/8]) cylinder(h=THICKNESS*3/4, d=POINT_SIZE+SUPPORT_WIDTH, $fn=CIRCLE_RESOLUTION); translate([POINT_POSITION/2, 0, THICKNESS/8]) cylinder(h=THICKNESS*3/4, d=POINT_SIZE+SUPPORT_WIDTH, $fn=CIRCLE_RESOLUTION); translate([0, LOW_POINT, THICKNESS/8]) cylinder(h=THICKNESS*3/4, d=POINT_SIZE+SUPPORT_WIDTH, $fn=CIRCLE_RESOLUTION); } // dots translate([-POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); translate([POINT_POSITION/2, 0, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); translate([0, LOW_POINT, 0]) cylinder(h=THICKNESS, d=POINT_SIZE, $fn=CIRCLE_RESOLUTION); } } }