truck
truck copied to clipboard
Truck is a Rust CAD Kernel.
I'll open draft pull requests so you can see what I'm working on if that's ok. I have quite a few step files that contain cylindrical surfaces, so here is...
As mentioned in issue #2 I'd like to start implementing STEP loading functionality for truck. I've spent the last week getting reacquainted with ruststep and truck and I've built a...
STEP I/O
As long as we claim this crates a CAD Kernel, STEP I/O is unavoidable. We're working on a plan for this, which we'll announce here soon.
We are not yet prepared for rotational sweeps with a fixed point. For example, we cannot create even a sphere by simple rotational sweeps. The biggest difficulty in implementation is...
Boolean
Any hint as to when we can expect Boolean operations to be made available in the package. I would like to know if it is possible to generate a mesh...
T-Splines
Are there plans to support t-splines as well on truck? Also seeing how t-splines are a superset for NURBS and subdivision surfaces (hope my understanding is correct :p ) would...
Will this be implemented or not? I already find the Surface defination: ```rust pub enum Surface { /// Plane Plane(Plane), /// 3-dimensional B-spline surface BSplineSurface(BSplineSurface), /// 3-dimensional NURBS Surface NURBSSurface(NURBSSurface),...
According to the code, there are two ways to create a sphere: ```rust let uhcircle = NURBSCurve::new(BSplineCurve::new(knot_vec, control_points)); let sphere = RevolutedCurve::by_revolution( uhcircle, Point3::origin(), Vector3::unit_x(), ); ``` ```rust let sphere...
Hi! love your work so far!! Consider an airfoil: ![image](https://github.com/ricosjp/truck/assets/6328589/5e6cef1f-b83d-4f6a-8b93-f6032abf5e3a) I can use `tsweep` to create a fully-symmetrical airfoil, but no such method exists in the `builder` module to make...
Here is a minimal example: ```rust use truck_modeling::builder::{tsweep, vertex}; use truck_modeling::{Point3, Vector3}; use truck_shapeops::or; fn main() { let point_a = vertex(Point3::new(0.0, 0.0, 0.0)); let line_a = tsweep(&point_a, Vector3::unit_x()); let square_a...