Skip to content

v2.2.0b1 feat: add build123d FTC conversion and validation - #37

Merged
NiJingzhe merged 4 commits into
devfrom
fix/build123d-ftc-validation
Oct 13, 2026
Merged

NiJingzhe merged 4 commits into
devfrom
fix/build123d-ftc-validation

Conversation

@Yulia2233

Copy link
Copy Markdown
Contributor

Summary

Add an execution-based build123d → FTC pipeline: isolated tracing, exact profile reconstruction, native feature/boolean replay, generated Python modules and assemblies, API profiling, and independent geometry/STEP acceptance.

  • Add recorded scale, affine transform, signed offset, draft, tapered/until extrusion, and multisection sweep features, plus all-output set booleans and ordered graph input references.
  • Fix empty-output fallback, validation of the actual build return value and assembly placements, Compound boolean semantics, dropped cut components, per-body blend selections, split empty sides, ignored torus angles, and Face/Wire hole handling.
  • Capture Builder/algebra kernel booleans and planar Shell-to-Solid construction; normalize 2D twist origins and reconstruct holed sweeps explicitly. Large polygon-hole profiles use compact per-loop sketches.
  • Preserve exact rational/periodic curve data and span-aware mass/area integration. Unknown operations and unsupported geometry remain explicit failures.

Verification

  • Fresh SimpleCADAPI converter/runtime regressions: 225 passed, plus 137 subtests.
  • Fresh build123d tracing and unknown-API regressions: 27 passed.
  • Fresh original 50-model capture and generation: 50/50 complete. Basic geometry: 50/50. Strict STEP comparison: 49/50; the tea-cup reference difference still produces invalid topology.
  • Additional 41-model corpus exercised in separate kernel environments. Initial strict acceptance was 21/41; follow-up fixes independently recovered cases 63, 73, 79, 87–90, 95, 96.
  • git diff --check clean.

CAD impact and known limits

Acceptance uses the actual returned Solid/Part/Assembly in world coordinates and checks declared BODIES consistency, validity, volume, surface area, solid count, absolute bounds and optional two-way STEP differences. Geometry thresholds were not relaxed.

This is sampled converter coverage. Remaining failures include the actual 625-hole model, holed-pipe/assembly consistency, selection failures, geometric mismatches, unsupported freeform constructions and a capture timeout. Non-full torus tube sections are explicitly rejected. Full topology history is partial for the new set/deformation operations; geometric inputs, output slots and graph replay are retained.

A full repository run also found three failures reproduced in an unchanged pre-review checkout (6a63494) (blend diagnostics, FreeCAD articulated-subassembly joint count, and the Gordon-surface volume assertion). These were left unchanged at the user's request.

Documentation

The converter README, API research/coverage inventory, benchmark notes, and regression fixtures are included. Benchmark notes describe the initial corpus run; the follow-up evidence above is reported separately.

Delivery scope

This PR preserves the current checkout and commit history. The new fix commit is 3c15754; it changes 23 files. No further feature edits or release-version bump were made during submission.

The target GitHub dev is 2f81fcd; this branch contributes three converter-related commits from their shared development baseline. The target merge was checked with git merge-tree --write-tree and has no conflicts. The tests above ran on feature HEAD 3c15754; CI should verify the combined development state.

yuliuse and others added 4 commits October 7, 2026 16:58
Add signed offsets, affine transforms, draft, tapered and limited extrusions, and multi-section sweeps with strict graph replay. Support closed and periodic sketch B-splines and accurate rational-surface volume integration.
Capture Builder and algebra programs into portable feature traces, emit native FTC sources, and validate geometry in isolated processes.

Include the API inventory, six real trace fixtures, inferred constraint recovery, and the 50-model benchmark. All models build; the tea-cup STEP reference-kernel failure remains explicit.
… expectations

- Gordon patches sewn into a cube: the knot-span integral gives the exact
  512000 mm3; the old 512019.2 was the fixed-order integrator's overshoot.
- Silent-garbage fillet: the degenerate solid now measures 0 instead of a
  phantom 1036; the exit check still raises BlendVolumeViolation, so accept
  both messages.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@NiJingzhe
NiJingzhe merged commit d9c7449 into dev Oct 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants