74 lines
3.6 KiB
Markdown
74 lines
3.6 KiB
Markdown
# Part Split Source Reuse
|
|
|
|
Scope: replace two incomplete native BREP operations with supplied desktop
|
|
implementations. No automated runtime tests, browser validation or acceptance.
|
|
This does not claim that all project placeholders are resolved.
|
|
|
|
## Removed Limitations
|
|
|
|
- Part_XOR previously rejected surfaces and wires, then approximated solid
|
|
fragment membership using repeated common-volume calculations. It now invokes
|
|
BOPTools.SplitAPI.xor from the supplied embedded source, including aggregate
|
|
handling, general-fuse source correspondence and odd-membership selection.
|
|
- Part_BooleanFragments previously rejected every mode except Standard. It now
|
|
invokes BOPTools.SplitAPI.booleanFragments for Standard, Split and CompSolid.
|
|
Source errors, invalid inputs and the no-solids CompSolid error remain errors.
|
|
|
|
No new geometry engine or handwritten replacement algorithm was introduced.
|
|
The original BOPTools code calls native Part/OCCT. Existing input BREP and output
|
|
BREP/validity/volume/edge-count contracts are retained; no fixture input is added.
|
|
|
|
## Required Runtime Connection
|
|
|
|
The former part.worker.ts route sent all desktop commands to the small
|
|
PartDesktopCommandProbe, which does not contain the embedded FreeCAD/BOPTools
|
|
runtime. part-source-commands.json now identifies these two commands; their
|
|
requests use the already existing PartBox runtime. Other desktop commands keep
|
|
their prior target. PartBox initializes its native Python types and existing
|
|
Part package path before invoking the source algorithm.
|
|
|
|
The implementation packet uses the same command table to select the actual
|
|
PartBox build, retains the helper/header and embedded BOPTools source inputs,
|
|
and reuses existing dependencies. The active scheduler manifest is not replaced.
|
|
|
|
## Remaining Scope
|
|
|
|
This batch repairs the native shape operations, not the entire parametric
|
|
FeatureXOR/BooleanFragments document editing workflow. Desktop feature Links,
|
|
property editing and complete UI ownership still need their own source-backed
|
|
integration. A compiled BREP command is not proof that those behaviors exist.
|
|
Source decisions and fingerprints are retained in native-semantic-decisions.json
|
|
so the repaired algorithms are not implemented again in subsequent turns.
|
|
|
|
## Work Accounting
|
|
|
|
The initial native pipeline took 79.696 seconds, including 67.991 seconds of
|
|
build and 3.136 seconds of artifact sync. A follow-on source correction added the
|
|
existing Part Python path initializer before first use; this required another
|
|
incremental build. The final native timings are recorded in
|
|
part-split-source-implementation-pipeline.json, not combined with the initial
|
|
attempt or presented as all engineering time.
|
|
|
|
Frontend publication must use FREECAD_WEB_FAST_LINK=ON. Do not repeat the full
|
|
public-asset copy from the previous turn. No full OCCT rebuild is needed.
|
|
|
|
Final publication completed:
|
|
|
|
| Step | Seconds |
|
|
| --- | ---: |
|
|
| Module registry | 0.100 |
|
|
| Capability registry | 7.503 |
|
|
| Preflight | 0.045 |
|
|
| Final native build, including 7.918 seconds waiting for build lock | 73.784 |
|
|
| Native artifact sync | 3.081 |
|
|
| Completion metadata, not runtime acceptance | 0.913 |
|
|
| Final native pipeline total | 85.426 |
|
|
| Frontend build total | 8.820 |
|
|
| Public asset sync within frontend build | 6.766 |
|
|
|
|
Both final commands exited 0. The frontend used the existing incremental mode.
|
|
The source inventory reused 478 unchanged files and rescanned eight changed files
|
|
in 0.173 seconds; it reports 615 candidate locations, not 615 proven placeholders.
|
|
The two command routes already existed before this batch, so route counts are
|
|
not an appropriate measure of these native implementation improvements.
|