手機 - Unihertz Titan 2 (None-EEA) - 設計外殼



OpenSCAD

$fn = 50;

h = 13;
bevel = 0.8;

module outer_shape() {
    hull() {
        translate([5, -2, 0]) cylinder(h, 5, 5);
        translate([86, -2, 0]) cylinder(h, 5, 5);
        translate([5, 139, 0]) cylinder(h, 5, 5);
        translate([86, 139, 0]) cylinder(h, 5, 5);
    }
}

difference() {
    union() {
        translate([0, 0, bevel])
            linear_extrude(height = h - bevel)
                projection(cut = false)
                    outer_shape();

        hull() {
            translate([0, 0, 0])
                linear_extrude(height = 0.01)
                    offset(delta = -bevel)
                        projection(cut = false)
                            outer_shape();

            translate([0, 0, bevel])
                linear_extrude(height = 0.01)
                    projection(cut = false)
                        outer_shape();
        }
    }

    translate([1, 1, 1])
        cube([89, 138, 11]);

    translate([-5, 1, 11])
        cube([100, 138, 5]);

    // camera
    //translate([21.2, 84, -5])
        //cube([48.8, 47.5, 10]);

    // camera
    hull() {
        translate([22.7, 85.5, -3])
            cylinder(5, 1.5, 1.5);

        translate([22.7, 130, -3])
            cylinder(5, 1.5, 1.5);

        translate([68.5, 130, -3])
            cylinder(5, 1.5, 1.5);

        translate([68.5, 85.5, -3])
            cylinder(5, 1.5, 1.5);
    }


    // fun keys
    //translate([-1, 48, 2.5])
        //cube([10, 31, 100]);

    // fun keys
    hull() {
        translate([-3, 49, 3.5])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([-3, 49, 15])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([-3, 78, 3.5])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([-3, 78, 15])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);
    }

    // power keys
    //translate([90, 64, 2.5])
        //cube([10, 43, 100]);

    // power keys
    hull() {
        x0 = 65;
        x1 = 106;
        translate([88, x0, 3.5])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([88, x0, 15])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([88, x1, 3.5])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);

        translate([88, x1, 15])
            rotate([0, 90, 0])
                cylinder(5, 1, 1);
    }



    // speaker
    translate([59, -1, 2])
        union() {
            hull() {
                translate([0, 0, 0])
                    cylinder(10, 3, 3);
                translate([20, 0, 0])
                    cylinder(10, 3, 3);
            }

            translate([-3, 0, 0])
                cube([26, 10, 10]);
        }

    // usb type-c
    translate([44 - 1.5, 4, 6.8])
        rotate([90, 0, 0])
            hull() {
                r = 3.5;
                translate([0, 0, 0])
                    cylinder(12, r, r);
                translate([6, 0, 0])
                    cylinder(12, r, r);
            }

    translate([0, -10, 12])
        cube([100, 20, 10]);
}

translate([0, 1, 10])
    difference() {
        translate([0, 0, 1])
            cube([91, 1, 1]);

        
        translate([0, 0.4, 0])
            rotate([45, 0, 0])
                cube([91, 3, 1]);

        translate([56, 0, 0])
            cube([26, 10, 10]);
    }

translate([0, 138, 11])
    difference() {
        translate([0, 0, 1])
            cube([91, 1, 1]);

        
        translate([0, 2, 0])
            rotate([135, 0, 0])
                cube([91, 3, 1]);
    }



列印完成


下邊


側邊


上邊


側邊


背面


完美