3d/Logo_Sogeti_Cybersecurity.scad

77 lines
2.9 KiB
OpenSCAD
Raw Normal View History

2017-11-23 21:08:20 +00:00
/*
* 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);
}
}
}