Files
FreeCADWasmDev/docs/current/assembly-joint-8d028b2604665ddf9b329d91-checkpoint.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

35 lines
2.4 KiB
JSON

{
"batchId": "8d028b2604665ddf9b329d91",
"module": "Assembly",
"status": "implementation_required",
"implementedCommands": [],
"remainingCommands": [
"Assembly_CreateJointAngle",
"Assembly_CreateJointBall",
"Assembly_CreateJointBelt",
"Assembly_CreateJointCylindrical"
],
"repair": "Add shared native Python execution for all four joint commands through existing assembly.pythonFamily dispatch. Use an existing runtime document and assembly, JointObject.Joint, setJointConnectors, property updates and transactional recompute. Pass the requested documentId through the mounted shell and desktop dispatcher.",
"sourceSemantics": {
"entry": "freecad-source/src/Mod/Assembly/CommandCreateJoint.py:53",
"task": "freecad-source/src/Mod/Assembly/JointObject.py:1474",
"creation": "freecad-source/src/Mod/Assembly/JointObject.py:1722",
"accept": "freecad-source/src/Mod/Assembly/JointObject.py:1618",
"jointTypeIndices": {
"Assembly_CreateJointAngle": 8,
"Assembly_CreateJointBall": 4,
"Assembly_CreateJointBelt": 12,
"Assembly_CreateJointCylindrical": 2
}
},
"remainingDependencies": [
"Resolve the current user document and active assembly in the Assembly Worker runtime.",
"Create a joint group App::FeaturePython object using JointObject.Joint semantics, with references to two distinct user components.",
"Apply command-specific parameters and solve/recompute within a reversible document transaction.",
"Mount the joint task interaction through workbench-shell.tsx and DesktopCommandDispatcher, synchronizing selection and document state."
],
"build": "not_run_outer_pipeline",
"businessAcceptance": "not_run",
"reason": "Native execution and application argument forwarding edited; not built or exercised. Joint-only requests now skip readonly, view and document fixtures. Parameter applicability and non-negative distances use official JointObject type lists; limit ranges are checked and solveIfAllowed runs after property changes. JointObject.py lines 29, 41 and 45 confirm unconditional PySide, pivy and SoSwitchMarker dependencies; their availability in this WASM runtime is not established. Existing user document availability in the isolated Assembly Worker, GUI-free Joint loading, task-panel selection/state synchronization and route eligibility remain unresolved. No implementation markers or acceptance claims added."
}