Files
create/src/Mod/Create/CMakeLists.txt
forbes 9b04a48a86
Some checks failed
Build and Test / build (pull_request) Has been cancelled
feat(solver): KCSolve solver addon with assembly integration (#289)
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)
2026-02-21 07:02:54 -06:00

102 lines
2.0 KiB
CMake

# Kindred Create core module
# Handles auto-loading of ztools and Silo addons
# C++ module targets
add_subdirectory(App)
if(BUILD_GUI)
add_subdirectory(Gui)
endif(BUILD_GUI)
# Generate version.py from template with Kindred Create version
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/version.py.in
${CMAKE_CURRENT_BINARY_DIR}/version.py
@ONLY
)
# Install Python init files
install(
FILES
Init.py
InitGui.py
addon_loader.py
kc_format.py
silo_document.py
silo_objects.py
silo_tree.py
silo_viewers.py
silo_viewproviders.py
update_checker.py
${CMAKE_CURRENT_BINARY_DIR}/version.py
DESTINATION
Mod/Create
)
# Install Silo tree-node icons
install(
DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/resources/icons/
DESTINATION
Mod/Create/resources/icons
)
# Install ztools addon
install(
DIRECTORY
${CMAKE_SOURCE_DIR}/mods/ztools/ztools
DESTINATION
mods/ztools
)
install(
FILES
${CMAKE_SOURCE_DIR}/mods/ztools/package.xml
DESTINATION
mods/ztools
)
# Install Silo addon
install(
DIRECTORY
${CMAKE_SOURCE_DIR}/mods/silo/freecad/
DESTINATION
mods/silo/freecad
)
install(
DIRECTORY
${CMAKE_SOURCE_DIR}/mods/silo/silo-client/
DESTINATION
mods/silo/silo-client
)
# Install SDK
install(
DIRECTORY
${CMAKE_SOURCE_DIR}/mods/sdk/kindred_sdk
DESTINATION
mods/sdk
)
install(
FILES
${CMAKE_SOURCE_DIR}/mods/sdk/package.xml
${CMAKE_SOURCE_DIR}/mods/sdk/Init.py
${CMAKE_SOURCE_DIR}/mods/sdk/InitGui.py
DESTINATION
mods/sdk
)
# Install Kindred Solver addon
install(
DIRECTORY
${CMAKE_SOURCE_DIR}/mods/solver/kindred_solver
DESTINATION
mods/solver
)
install(
FILES
${CMAKE_SOURCE_DIR}/mods/solver/package.xml
${CMAKE_SOURCE_DIR}/mods/solver/Init.py
DESTINATION
mods/solver
)