Skip to content

feat(verify): OCP for verifier scripts through simplecadapi.verify; drop the fem extra - #67

Merged
NiJingzhe merged 1 commit into
devfrom
feat/verify-bridge
Oct 30, 2026
Merged

NiJingzhe merged 1 commit into
devfrom
feat/verify-bridge

Conversation

@NiJingzhe

Copy link
Copy Markdown
Collaborator

Removing OCP from the SDK made verifier scripts hard to write: shape.wrapped is now the SDK's own binding, and OCP functions reject it (incompatible function arguments). The repo's own sandbox-envs/desktop_arm_sources/check_*.py stopped importing.

  • simplecadapi.verify.to_ocp / from_ocp bridge through OpenCASCADE's binary format (a few ms per part); the SDK itself still never imports OCP.
  • verify extra: cadquery-ocp-novtk>=7.9.3.1,<8 (same OCP import, no VTK; <8 because OCP 8 renames the casts and changes signatures).
  • Skill: references/discipline/verifier-scripts.md (the .wrapped trap, recipes, a verifier skeleton). The tests execute the page's code.
  • The fem extra and the README steps using it are removed; VTK is out of the lock file.

Checked: for the 34 parts of the six-axis arm, volumes and bounds measured through OCP agree between 2.2.6 (native OCP) and this engine (bridged): volume <= 1.7e-9 relative, bounds <= 2.3e-12 mm.

🤖 Generated with Claude Code

…cripts; drop the fem extra

shape.wrapped is the SDK's own binding, so OCP functions reject it and verifier scripts that did
BRepGProp.VolumeProperties_s(solid.wrapped, ...) stopped working with the C++ engine. simplecadapi.verify.to_ocp / from_ocp
bridge through OpenCASCADE's binary format; the verify extra installs OCP 7.9 without VTK. The SDK itself never imports OCP.
The skill gets references/discipline/verifier-scripts.md, whose code the tests execute.

The fem extra (gmsh, ccx2paraview[VTK]) is removed with the README steps that used it; vtk is out of the lock file.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
NiJingzhe added a commit that referenced this pull request Oct 29, 2026
…shape

PR #67's test_the_sdk_wrapped_shape_is_not_an_ocp_shape asserted that OCP rejects shape.wrapped; with OCP installed
wrapped is now an OCP shape (a deliberate change of this branch). The original assertion is kept for the SDK's own
binding (SCA_WRAPPED=native), and a new test pins the new default: OCP measures solid.wrapped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@NiJingzhe
NiJingzhe merged commit cc9c347 into dev Oct 30, 2026
6 checks passed
This was referenced Oct 30, 2026
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.

1 participant