Skip to main content

Lennart SCHWEERS

Premier objet

// Japanese-style knife design in OpenSCAD

$fn = 100; // Smoothness of curves

// Parameters
blade_length = 200; // Length of the blade in mm
blade_width = 30; // Width of the blade in mm
blade_thickness = 2; // Thickness of the blade in mm
handle_length = 120; // Length of the handle in mm
handle_width = 20; // Width of the handle in mm
handle_thickness = 25; // Thickness of the handle in mm

// Blade design
module blade() {
    linear_extrude(height = blade_thickness)
        polygon(points = [
            [0, 0],
            [blade_length, blade_width / 2],
            [blade_length, -blade_width / 2],
            [0, 0]
        ]);
}

// Handle design
module handle() {
    translate([0, 0, -handle_thickness / 2])
        cube([handle_length, handle_width, handle_thickness], center = false);
}

// Assembling the knife
difference() {
    // Main knife structure
    union() {
        translate([handle_length, 0, 0]) blade();
        handle();
    }

    // Adding bevel to the blade
    translate([handle_length + blade_length / 2, 0, blade_thickness / 2])
        rotate([45, 0, 0])
        cube([blade_length, blade_width * 2, blade_thickness * 2], center = true);
}


$fn = 100; // Increase for smoother curves

Deuxième Objet: Vase


// Alvar Aalto-style vase approximation in OpenSCAD

$fn = 100; // Increase for smoother curves

// Parameters
height = 200; // Height in mm (20 cm)
thickness = 3; // Wall thickness in mm

difference() {
    // Outer vase shape
    linear_extrude(height)
        offset(r=30)  // Offset to round the corners
        union() {
            circle(30, $fn=100);
            translate([50, 0]) circle(25, $fn=100);
            translate([-50, 0]) circle(25, $fn=100);
            translate([0, 50]) circle(20, $fn=100);
        };

    // Inner cavity (subtracting inner shape)
    translate([0, 0, 0])
        linear_extrude(height - thickness)
            offset(r=25)
            union() {
                circle(27, $fn=100);
                translate([50, 0]) circle(22, $fn=100);
                translate([-50, 0]) circle(22, $fn=100);
                translate([0, 50]) circle(17, $fn=100);
            };
}