Skip to content

JCSG extension library for producing high-quality meshes from JCSG mesh objects.

License

Notifications You must be signed in to change notification settings

miho/JCSG-MeshExtensions

Repository files navigation

JCSG-MeshExtensions

Download

JCSG extension library for producing high-quality meshes from JCSG mesh objects. The mesh optimization is performed with the cross-platform meshing software ProMesh which is available as ug4 plugin.

optimization

Sample Code

// we use cube and sphere as base geometries
CSG cube   = new Cube(2).toCSG();
CSG sphere = new Sphere(1.25).toCSG();

// compute difference between cube and sphere
CSG cubeMinusSphere = cube.difference(sphere);

// create a copy of cube-sphere that shall be optimized
CSG optimized       = cubeMinusSphere.
        transformed(Transform.unity().translateX(3));

// perform the optimization
CSG all = MeshTools.optimize(
        optimized, // csg object to optimize
        1e-6,      // tolerance
        1e-4,      // max tolerance
        0.25,      // min edge length
        1.5        // max edge length
);

// save optimized mesh as "all.stl"
Files.write(Paths.get("all.stl"), all.toStlString().getBytes());

How to Build JCSG-MeshExtensions

Requirements

  • Java >= 1.8
  • Internet connection (dependencies are downloaded automatically)
  • IDE: Gradle Plugin (not necessary for command line usage)

IDE

Open the JCSG-MeshExtensions Gradle project in your favourite IDE (tested with NetBeans 8.2) and build it by calling the assemble task.

Command Line

Navigate to the Gradle project (e.g., path/to/JCSG-MeshExtensions) and enter the following command

Bash (Linux/OS X/Cygwin/other Unix-like shell)

bash gradlew assemble

Windows (CMD)

gradlew assemble