extrude-js
v0.1.2
Published
Framework-agnostic parametric extrusion profile generator using JSCAD
Maintainers
Readme
extrude-js
Framework-agnostic parametric T-slot extrusion profile generator using JSCAD.
Generates accurate 3D geometry for custom T-slot extrusion profiles with correct slot, trapezoid channel, center hole, and rounded corner geometry.
Install
npm install extrude-js @jscad/modelingUsage
import { createExtrusion } from "extrude-js";
const geometry = createExtrusion({
size: 20,
length: 100,
centerHoleDiameter: 4.19,
slotWidth: 5.26,
slotDepth: 1.5,
innerWidth: 11.99,
trapezoidBaseFromCenter: 6.34,
cornerRadius: 1.0,
});Export to STL (Node.js)
import { createExtrusion } from "extrude-js";
import stlSerializer from "@jscad/stl-serializer";
import { writeFileSync } from "fs";
const geometry = createExtrusion({
size: 20,
length: 100,
centerHoleDiameter: 4.19,
slotWidth: 5.26,
slotDepth: 1.5,
innerWidth: 11.99,
trapezoidBaseFromCenter: 6.34,
cornerRadius: 1.0,
});
const stlData = stlSerializer.serialize({ binary: false }, geometry);
writeFileSync("extrusion.stl", stlData.join(""));API
createExtrusion(profile, options?)
Create geometry from a custom ExtrusionProfile.
| Parameter | Type | Description |
| ---------------- | ------------------ | -------------------- |
| profile | ExtrusionProfile | Profile dimensions |
| options.length | number | Override length (mm) |
ExtrusionProfile
| Property | Type | Description |
| ------------------------- | -------- | ---------------------------------------- |
| size | number | Overall profile width/height (mm) |
| length | number | Default extrusion length (mm) |
| centerHoleDiameter | number | Center hole diameter (mm) |
| slotWidth | number | Outer slot width (mm) |
| slotDepth | number | Slot depth (mm) |
| innerWidth | number | Inner channel width (mm) |
| trapezoidBaseFromCenter | number | Trapezoid base distance from center (mm) |
| cornerRadius | number | Corner rounding radius (mm) |
Peer Dependencies
@jscad/modeling≥ 2.0.0
License
MIT
