feat(solver): KCSolve solver addon with assembly integration (#289)
Some checks failed
Build and Test / build (pull_request) Has been cancelled
Some checks failed
Build and Test / build (pull_request) Has been cancelled
Adds the Kindred constraint solver as a pluggable Assembly workbench backend, covering phases 3d through 5 of the solver roadmap. Phase 3d: SolveContext packing - Pack/unpack SolveContext into .kc archive on document save Solver addon (mods/solver): - Phase 1: Expression DAG, Newton-Raphson + BFGS, 3 basic constraints - Phase 2: Full constraint vocabulary — all 24 BaseJointKind types - Phase 3: Graph decomposition for cluster-by-cluster solving - Phase 4: Per-entity DOF diagnostics, overconstrained detection, half-space preference tracking, minimum-movement weighting - Phase 5: _build_system extraction, diagnose(), drag protocol, joint limits warning Assembly workbench integration: - Preference-driven solver selection (reads Mod/Assembly/Solver param) - Solver backend combo box in Assembly preferences UI - resetSolver() on AssemblyObject for live preference switching - Integration tests (TestKindredSolverIntegration.py) - In-client console test script (console_test_phase5.py)
This commit is contained in:
@@ -98,10 +98,15 @@ public:
|
||||
void postDrag();
|
||||
void savePlacementsForUndo();
|
||||
void undoSolve();
|
||||
void resetSolver() { solver_.reset(); }
|
||||
void clearUndo();
|
||||
|
||||
void exportAsASMT(std::string fileName);
|
||||
|
||||
/// Build the assembly constraint graph without solving.
|
||||
/// Returns an empty SolveContext if no parts are grounded.
|
||||
KCSolve::SolveContext getSolveContext();
|
||||
|
||||
bool validateNewPlacements();
|
||||
void setNewPlacements();
|
||||
static void redrawJointPlacements(std::vector<App::DocumentObject*> joints);
|
||||
|
||||
Reference in New Issue
Block a user