Openscad

so i started writing simple code for designing the cup charger

    $fn = 64;
    // all by mm

    difference()
    {
        x();
        tube(100,3);
    }

    module x()
        {
        translate([0,0,-10]) 
        color([0.25,0.25,0.25]) cylinder  (h=10,r=100);
        rotate([0,0,90])
        translate([-(100-12.5),5,0]) roundedRect([25,3,0.2],2);
        rotate([0,0,90])
        translate([-(100-12.5),-5,0]) roundedRect([25,3,0.2],2);
        }
    module tube(size, radius)
    {
    rotate_extrude()
    {
        translate([size,0,0]) 
        circle(r = radius);
    }
    }


    module roundedRect(size, radius)
    {
    x = size[0];
    y = size[1];
    z = size[2];

    linear_extrude(height=z)
    hull()
    {
        // place 4 circles in the corners, with the given radius
        translate([(-x/2)+(radius/2), (-y/2)+(radius/2), 0])
        circle(r=radius);

        translate([(x/2)-(radius/2), (-y/2)+(radius/2), 0])
        circle(r=radius);

        translate([(-x/2)+(radius/2), (y/2)-(radius/2), 0])
        circle(r=radius);

        translate([(x/2)-(radius/2), (y/2)-(radius/2), 0])
        circle(r=radius);
    }

    }

the final result is:
output

Note:

however, using sphere to cut the cylinder is not what intended .. it should be fillet design so in order to achieve that .. i researched online for openscad fillet found this link but didnt try it yet:



Resources:

OpenScad CheatSheet
User Manual