VulcanCAD
Primitives
Units
Any primitive has a base unit associated with it (mm, in, feet).
Parameters
The hierarchy of values. I want to be able to do stock.ply.heavy.thickness.
There may need to be some division here. Stock parts, target measurements, derived measurements.
Sketch
Like FreeCAD.
Part
This is a solid. For organizational purposes, a part is also tagged as stock, machined or constructed. Stock means it's something we can buy - hinges, screws, boards. Machined is something that is created in a single step; 3D-printed, CNC milled, cast. Constructed parts are created by a construction process - sawing, drilling, gluing, lathing and probably a whole bunch more.
Assembly
A collection of parts with linkages between them.
Sweep
- Single
- Takes a single path and an initial vector and sweeps so the vector stays tangent to the motion
- Double
- Takes two paths and sweeps so that vector points from the first to the second and the scale is proportional to the starting vector
- Triple
- Takes three paths that return a full translation matrix, so one path is the origin, the second is X and the third is Y
In reality, there is only a 3-path sweep, but we can use 1 or 2 paths to derive the correct 3 path sweep.
Construction and Deconstruction
Part initialization:
- Extrusion of a sketch
- Rotation of a sketch
- Sweep a sketch
- Boolean combination of Parts
- Construction
- Deconstruction
Construction corresponds to the physical transformation of one part into another. This can be cutting a piece out, gluing two pieces together, or any other operation.
Deconstruction reverses construction operations but serves a more complex workflow. Deconstruction takes a part that was defined in one way and breaks it down differently. For instance, we could make a sphere from sheets of plywood. We create a sphere (rotation of sketch) then deconstruct it by taking slices. By deconstructing a fillet, we can map those slices to cylinders, and then place those cylinders on a board tracing the construction back to stock parts.
One thing I haven't figured out is back propagation. Say we're building a box that has 3 holes that need to line up, but they are placed relative to another piece in the final construction. Those holes should be drilled before the 3 pieces are joined to the construction or assembly.
Build Plan
One of the