Skip to content

Easy-to-use wrapper around Open CASCADE Technology available as command line interface (CLI) and JavaScript/TypeScript applicartion programming interface (API)

License

Notifications You must be signed in to change notification settings

ghackenberg/opencascade-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opencascade-tools

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 😉.

📙 User 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).

🖥️ Command line interface (CLI)

Our CLI provides a few general functions (as the CLI of most CLI-based programs) and some (domain-) specific functions:

⚙️ General 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

⚙️ Specific functions

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>

🖥️ Application programming interface (API)

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()

📙 Developer guide

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:

🖥️ 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

About

Easy-to-use wrapper around Open CASCADE Technology available as command line interface (CLI) and JavaScript/TypeScript applicartion programming interface (API)

Topics

Resources

License

Stars

Watchers

Forks