Slicing With Steps Pattern

Slicing With Steps Pattern script details
Author
matas
Type
Typescript logo image
typescript
App Version
0.13.0
Visibility
public
Date Created
Nov 16, 2023, 12:23:15 PM
Last Edit Date
Dec 5, 2023, 2:01:06 PM

Script Details

The Code
const start = async () => { const sphere1 = await createGeometry(0.5, 3.7, 2, 0.6); const steps = []; for (let i = 0.001; i < 10; i += 0.001) { steps.push(i) } const slices = await bitbybit.occt.operations.sliceInStepPattern({ shape: sphere1, direction: [0, 0, 1], steps }); const drawOptions = new Bit.Inputs.Draw.DrawOcctShapeOptions(); drawOptions.edgeColour = "#ffffff"; drawOptions.edgeWidth = 0.5; drawOptions.precision = 0.005; drawOptions.drawFaces = false; await bitbybit.draw.drawAnyAsync({ entity: slices, options: drawOptions }); } start(); async function createGeometry(starInnerRadius: number, starOuterRadius: number, sphereRadius: number, thickness: number) { const star1 = await bitbybit.occt.shapes.wire.createStarWire({ direction: [1, 0, 0], center: [5, 0, 0], innerRadius: starInnerRadius, outerRadius: starOuterRadius, numRays: 8, half: false }); const sphere1 = await bitbybit.occt.shapes.solid.createSphere({ radius: sphereRadius, center: [0, 0, 0] }); const fillet1 = await bitbybit.occt.fillets.fillet2d({ shape: star1, radius: 0.1 }); const projection1 = await bitbybit.occt.shapes.wire.project({ wire: fillet1, shape: sphere1, direction: [1, 0, 0] }); const split1 = await bitbybit.occt.operations.splitShapeWithShapes({ shape: sphere1, shapes: [projection1] }) const faces1 = await bitbybit.occt.shapes.face.getFaces({ shape: split1, }); const face = faces1[7]; const thicken = await bitbybit.occt.operations.makeThickSolidSimple({ shape: face, offset: -thickness, }) return thicken; }