FlowCad is the fast, free, and precise web app for 3D design and printing. Build professional parametric models with ease-no programming required, but it's there if you need it.
const PARAMS = {
dim: 'disabled',
size: {
x: 30,
y: 10,
z: 2,
},
}
function createHalfCylinder(height: number, radius: number) {
const diameter = radius * 2
const capCutoff = Manifold.cube(diameter, true).translate([-radius, 0, 0])
const fullCylinder = Manifold.cylinder(height, radius)
const halfCylinder = fullCylinder.subtract(capCutoff)
return halfCylinder
}
function createExtrudedPill(height: number, diameter: number, l: number) {
const radius = diameter / 2
const middleCube = Manifold.cube([l - diameter, diameter, height], true)
let halfCylinderA = createHalfCylinder(height, radius).translate([
l / 2 - radius,
0,
-height / 2,
])
let halfCylinderB = createHalfCylinder(height, radius)
.rotate([0, 0, 180])
.translate([-l / 2 + radius, 0, -height / 2])
return middleCube.add(halfCylinderA.add(halfCylinderB))
}
const radius = PARAMS.size.y / 2
const diameter = radius * 2
const height = PARAMS.size.z
let result = createExtrudedPill(height, diameter, PARAMS.size.x)
return { result, PARAMS }