Skip to content

Serialize jscad operations into a jscad plan json, then execute later. Useful for storing jscad operations.

License

Notifications You must be signed in to change notification settings

rohittcodes/jscad-planner

 
 

Repository files navigation

jscad-planner

jscad-planner is a TypeScript library that allows you to serialize JSCAD operations into a JSON plan, which can be executed later. This is particularly useful for storing JSCAD operations and executing them on demand.

Features

  • Serialize complex JSCAD operations into JSON
  • Execute serialized operations using a JSCAD implementation

Installation

You can install jscad-planner using npm or yarn:

npm install jscad-planner

Usage

Here's a basic example of how to use jscad-planner:

import { jscadPlanner, executeJscadOperations } from "jscad-planner"
import jscad from "@jscad/modeling"

// Create a JSCAD plan
const plan = jscadPlanner.booleans.intersect(
  jscadPlanner.primitives.cube({ size: 10, center: [10, 0, 0] }),
  jscadPlanner.primitives.sphere({ radius: 10, center: [0, 0, 0] })
)

// The plan can be serialized to JSON and stored if needed
const serializedPlan = JSON.stringify(plan)

// Later, the plan can be deserialized and executed
const deserializedPlan = JSON.parse(serializedPlan)
const myUnionObject = executeJscadOperations(jscad, deserializedPlan)
// myUnionObject is now a JSCAD object representing the union of the two shapes

API Reference

jscadPlanner

The jscadPlanner object provides all the methods to create JSCAD operations that jscad has. It includes:

  • booleans: Methods for boolean operations (union, subtract, intersect)
  • colors: Methods for colorizing shapes
  • primitives: Methods for creating primitive shapes (cube, sphere, cylinder)
  • transformations: Methods for transforming shapes (rotate, scale, translate)
  • extrusions: Methods for extruding shapes
  • geometries: Methods for creating custom geometries
  • measurements: Methods for measuring shapes
  • utils: Utility methods (degree/radian conversion)

executeJscadOperations

This function takes a JSCAD implementation and a serialized operation, and executes it.

executeJscadOperations(jscad, operation)

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

  • This project is designed to work with JSCAD, an open-source project for programmatic 3D modeling.

About

Serialize jscad operations into a jscad plan json, then execute later. Useful for storing jscad operations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%