Local Changes: improving the sketch features #64
Replies: 2 comments 4 replies
|
I see you have closed this PR... You have done some amazing work on this but may I suggest you try to break this up into multiple PRs? There's about a half dozen features that are not really related, this makes reviewing, evaluating and testing a PR incredibly time-consuming and error-prone. It needs to be done in small chunks, reviewed, and merged and then repeat the process. @Formsmith746 What is your plan moving forward regarding accepting pull requests? Looking at the history, very few PRs have been merged that were not your own. I personally have a few features I would like to submit but I don't want to be wasting my time. |
|
Hi WC3D, I came across your post about the sketch/CAD feature expansion — really impressive amount of work! I tried it out myself (construction planes, the new sketch tools, model splitting) and it all worked well. Just curious — are you still actively developing this, or has work on it paused for now? Would be great to know if there's more coming, or if this is where it currently stands. Thanks! |
Uh oh!
There was an error while loading. Please reload this page.
Expand sketching and CAD workflows, add construction planes, 3MF support, model splitting, themes, and edge-modifier fixes
Adding new parametric sketching and CAD workflows, expanded import/export support, construction planes, model splitting, theming, security hardening, and extensive regression coverage.
Comparison Scope
Base: upstream/main at 41f6245
Head: main at fbfd8df
49 commits
94 files changed
12,674 insertions
1,029 deletions
Major Changes
Parametric Sketching
Adds center-radius and diameter-based circle tools.
Adds corner and center rectangles.
Adds inscribed, circumscribed, and edge-defined polygons.
Adds sketch text geometry.
Adds fixed-point, horizontal, and vertical constraints.
Adds driving segment lengths and reference distance dimensions.
Adds constraint propagation and conflict detection.
Adds sketch snapping, grid snapping, geometry snapping, center markers, and hover feedback.
Allows closed-profile centers to be dragged while preserving associated points and handles.
Adds selectable sketch regions for extrusion.
Adds projection, offset, sweep, mirror, pattern, and affine transform operations.
Improves CAD profile regionization, including nested regions, holes, islands, and disjoint profiles.
Construction Planes
Adds persistent associative construction planes.
Supports offset, angled, flipped, face-attached, and midplane modes.
Keeps derived planes linked to their source planes or model faces.
Supports plane-local sketching and placement reconciliation.
Preserves sketch extrusion placement after moving associated geometry.
Persists construction planes in .skf projects.
CAD Operations
Adds OCCT-backed sketch extrusion.
Adds CAD revolve worker support.
Adds sweep workflows.
Adds Slice / Split with interactive plane positioning and rotation.
Adds Manifold normalization before splitting.
Unions overlapping split components before producing final closed bodies.
Improves grouped and compound CAD-solid handling.
Adds exact B-Rep and STEP restoration fallbacks.
Fillet and Chamfer Improvements
Automatically fits an edge-treatment amount when the requested radius or distance is invalid.
Finds the largest compatible edge subset when the complete selection cannot be processed.
Reports applied and skipped edges in the UI.
Supports single-edge variable fillets.
Adds mesh-preview fallback when exact B-Rep serialization is unavailable.
Improves worker reuse, retries, timeouts, session tracking, and error reporting.
Fixes the repeated preview loop that made the fillet sidebar flash continuously after selecting all cube edges.
Import, Export, and Projects
Adds complete 3MF import and export support.
Adds 3MF asset recognition and validation in .skf projects.
Enforces a 256 MB project asset limit.
Expands archive and model XML preflight checks.
Updates import dialogs, export controls, file extensions, and error messages.
Improves project asset reuse and baked CAD metadata.
Updates .skf validation for dimensions, constraints, construction planes, and region-aware sketches.
Themes and Workspace UI
Adds a reusable theme system with CSS variables.
Adds the SketchForge theme preset.
Adds workspace background presets and a custom color picker.
Improves custom-theme defaults and property labels.
Removes the legacy Dark workspace preset and migrates saved Dark selections to Light.
Improves disabled toolbar icon contrast.
Applies workspace themes consistently to the editor and viewport.
Security
Restricts local downloads to an approved root, defaulting to the user’s Downloads directory.
Adds SKETCHFORGE_LOCAL_DOWNLOAD_ROOT configuration.
Canonicalizes paths and rejects directory traversal, symlink escapes, and unsafe file inclusion.
Uses atomic temporary-file writes and renames.
Hardens static-export asset verification against symlinks and escaped paths.
Disables persisted Git credentials in CI and Docker checkout steps.
Strengthens project-thumbnail and project-asset handling.
Runtime and Build Changes
Upgrades Next.js from 15.3.2 to 16.2.12.
Upgrades manifold-3d from 3.5.0 to 3.5.1.
Pins compatible Sharp and PostCSS versions.
Uses Webpack explicitly for development, builds, and static exports.
Adds local network addresses to permitted development origins.
Separates development, production, and static-export build directories.
Switches TypeScript JSX handling to react-jsx.
Stops tracking copied OCCT runtime assets under public/assets/occt.
Improves OCCT and static worker asset verification.
Improves MCP request deadlines and state synchronization.
Handles unavailable WebGL renderers more safely.
Documentation
Documents parametric 2D sketching and revolve workflows.
Documents associative construction planes.
Documents 3MF import/export.
Documents secure local-download configuration.
Raises the documented Node.js minimum to 20.9.
Adds the generated SketchForge User Manual PDF.
Updates the .skf project-format documentation.
Test Coverage
Adds or expands coverage for:
CAD modifier fitting and compatible edge selection
CAD modifier groups
Construction planes
Model splitting and overlapping-component unions
OCCT sketch extrusion and revolve
Sketch circles, constraints, dimensions, snapping, offsets, projections, sweeps, and transforms
Region-aware CAD profiles
Secure local downloads
3MF import/export
Theme normalization
Project serialization and assets
MCP state handling
Worker asset paths
Validation
npm run typecheck passed
npm test passed
54 test files passed
302 tests passed
git diff --check passed
More features will be added!
https://github.com/WC3D/SketchForge-3D
All reactions