This project provides an easy-to-use wrapper around Open CASCADE Technology, a powerful free and open source computer-aided design (CAD) kernel. The project is based on OpenCascade.js, a WebAssembly port of the original native C++ library.
For now, you can use opencascade-tools
to convert IGES files and STEP files into OBJ files (Wavefront Technologies) and GLTF/GLB files (Khronos Group). In the future, we plan to add more functionality depending on community requests.
Below you find a short user guide and an even shorter developer guide 😉.
Install opencascade-tools
on your machine (requires Node.js and the Node Package Manager (NPM)):
npm install -g opencascade-tools
Afterwards you can use our command line interface (CLI) and/or our application programming interface (API).
Our CLI provides a few general functions (as the CLI of most CLI-based programs) and some (domain-) specific functions:
Get help on how to use the command line interface of opencascade-tools
:
opencascade-tools --help
Get the version number of opencascade-tools
as installed on your machine:
opencascade-tools --version
Convert IGES file or STEP file to OBJ file, GLTF file, or GLB file with standard values for the parameters of the triangulation algorithm:
opencascade-tools --format <obj|gltf|glb> --input <path/to/igesOrStepFile> --output <path/to/objOrGltfOrGlbFile>
Convert IGES file or STEP file to OBJ file, GLTF file, or GLB file with custom value for the linear deflection parameter of the triangulation algorithm:
opencascade-tools --format <obj|gltf|glb> --linDeflection 1 --input <path/to/igesOrStepFile> --output <path/to/objOrGltfOrGlbFile>
Convert IGES file or STEP file to OBJ file, GLTF file, or GLB file with custom value for the angular deflection parameter of the triangulation algorithm:
opencascade-tools --format <obj|gltf|glb> --angDeflection 1 --input <path/to/igesOrStepFile> --output <path/to/objOrGltfOrGlbFile>
Convert STEP file to OBJ file, GLTF file, and GLB file with standard values for the parameters of the triangulation algorithm:
import { init, readIgesFile, readStepFile, triangulate, writeObjFile, writeGltfFile, writeGlbFile } from 'opencascade-tools'
async function run() {
const oc = await init()
const docHandle = readIgesFile(oc, '<path/to/igesFile>')
// or
const docHandle = readStepFile(oc, '<path/to/stepFile>')
triangulate(oc, docHandle.get())
writeObjFile(oc, docHandle, '<path/to/objFile>')
writeGltfFile(oc, docHandle, '<path/to/gltfFile>')
writeGlbFile(oc, docHandle, '<path/to/glbFile>')
}
run()
Convert STEP file to OBJ file, GLTF file, and GLB file with custom values for the parameters of the triangulation algorithm:
import { init, readIgesFile, readStepFile, triangulate, writeObjFile, writeGltfFile, writeGlbFile } from 'opencascade-tools'
async function run() {
const oc = await init()
const docHandle = readIgesFile(oc, '<path/to/igesFile>')
// or
const docHandle = readStepFile(oc, '<path/to/stepFile>')
const linDeflection = 0.1
const isRelative = false
const angDeflection = 0.1
const isInParallel = false
triangulate(oc, docHandle.get(), linDeflection, isRelative, angDeflection, isInParallel)
writeObjFile(oc, docHandle, '<path/to/objFile>')
writeGltfFile(oc, docHandle, '<path/to/gltfFile>')
writeGlbFile(oc, docHandle, '<path/to/glbFile>')
}
run()
Clone the Git repository:
git clone https://github.com/ghackenberg/opencascade-tools.git
Install development and production dependencies:
cd opencascade-tools && npm install
Afterwards you can use the following scripts:
Remove JavaScript binaries and TypeScript type definitions from previous builds:
cd opencascade-tools && npm run clean
Compile TypeScript sources to JavaScript binaries and TypeScript type definitions:
cd opencascade-tools && npm run build
Install your version of opencascade-tools
into local NPM registry:
cd opencascade-tools && npm run deploy-local
Run all test cases with local installation of opencascade-tools
:
cd opencascade-tools && npm run test-all
Run IGES test cases with local installation of opencascade-tools
:
cd opencascade-tools && npm run test-iges
Run STEP test cases with local installation of opencascade-tools
:
cd opencascade-tools && npm run test-step
Shorthand for clean, build, deploy local and run all test cases (see above scripts):
cd opencascade-tools && npm run test
Shorthand for clean, build, and publish to global NPM registry (see above scripts):
cd opencascade-tools && npm run deploy-global