Lennart SCHWEERS
Premier objet
// Japanese-styleStyle knife designKnife in OpenSCAD
$fn = 100; // Smoothness of curves
// Parameters for customization
blade_length = 200;150; // Length of the blade in mm
blade_width = 30; // WidthMaximum width of the blade in mm
blade_thickness = 2; // Thickness of the blade in mm
handle_length = 120;100; // Length of the handle in mm
handle_width = 20; // Width of the handle in mmhandle_thicknesshandle_height = 25;15; // ThicknessHeight of the handle in mm
handle_offset = 3; // How much the handle extends into the blade
module knife() {
translate([0, 0, 0]) blade();
translate([-handle_offset, -handle_width / 2, -handle_height / 2]) handle();
}
// Blade designModule
module blade() {
translate([handle_length,difference() -blade_width{
// 2,Blade 0])Shape
linear_extrude(height = blade_thickness) {
polygon(points = [
[0, 0],
[blade_length, blade_width / 2],
[blade_length, -blade_width / 2],
[0, 0]
]);
}
// Bevel Edge (sharpness)
translate([blade_length / 2, 0, 0]) {
rotate([0, 0, 90]) {
cylinder(r1 = blade_thickness, r2 = 0, h = blade_length, center = true);
}
}
}
}
// Handle designModule
module handle() {
hull() {
// Create a smooth transition from blade to handle
translate([0, 0, 0]) cube([handle_offset, handle_width, handle_height]);
translate([handle_length, 0, 0]) cube([handle_offset, handle_width, handle_height]);
}
difference() {
// Main handle block
translate([0, -handle_width / 2, -handle_thicknesshandle_height / 2])
cube([handle_length, handle_width, handle_thickness], center = false);}
// Assembling the knifedifference() { // Main knife structure union() { 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]handle_height], center = true);
}
}
// Render the knife
knife();
________________________________
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);
};
}