Skip to content

adam-james-v/forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forge

Forge is a library for 3D CAD data. The aim is to provide functions for representing 3D data with Functional Representatin (FREP, similar to Signed Distance Functions), and Boundary Representation (BREP, using parametric curves and Clojure maps to store topological information).

Using basic Clojure functions, an internal representation is emitted, which can then be compiled or exported. Currently, this internal representation is a Hiccup-style tree, but the form of data may evolve as the library develops.

Compilation currently targets .scad files, and is a near copy of scad-clj. There is a FreeCAD compilation prototype available that emits a python script and uses FreeCAD to export a STEP file from OpenSCAD code. It's not perfect yet, but it's an indication of the direction I want to take this library.

OpenSCAD is a great tool, but it only exports triangulated 3D files, which may not be suitable for all CAD workflows. STEP export is a nice way to use programmatic CAD tools as an input into commercial CAD packages that can import STEP files.

Status

Alpha. Changes are very likely to occur as I continue to build and discover the best design for this library.

Usage

Use the git deps dependency:

io.github.adam-james-v/forge {:git/sha "0647a1445261e0c9c10d112877f0aa1d622e3688"}

About

3D CAD data model

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published