Skip to content

Beta tools fixed, checked on SolidWorks and promoted to stable (2.0.0) - #219

Merged
andrewbartels1 merged 3 commits into
mainfrom
fix/beta-tool-faults
Nov 10, 2026
Merged

andrewbartels1 merged 3 commits into
mainfrom
fix/beta-tool-faults

Conversation

@andrewbartels1

Copy link
Copy Markdown
Owner

Item 7 in the work queue: every beta tool's recorded fault is fixed, each fix is checked on SolidWorks 2026, and the 23 tools move from beta to stable. Version 2.0.0, because two changes break callers.

Breaking changes

  • Inputs that did nothing are refused. A call that sends one gets invalid_input, and the message says what to use instead. The check sits in the shared tool boundary (input_compat.REMOVED_INPUTS). The CHANGELOG lists every removed field with its replacement.
  • Moments of inertia are in kg·mm². calculate_mass_properties labelled them kg·mm² but returned kg·m², so the numbers are now a million times larger.

What each tool now does

  • create_extrusion and create_revolve use the sketch sketch_name names. create_revolve also turns about the reference axis axis_entity names.
  • create_sketch names the sketch. SolidWorks won't rename an open sketch, so exit_sketch gives the name and replies with it.
  • create_part assigns material, and get_material reports the density.
  • pattern_circular and mirror_feature accept a cut, and report volume_change.
  • delete_feature names every feature it removed, and can delete a sketch a feature uses, taking that feature with it. Its description tells the agent to check with the user first, and the reply carries a warning naming everything else that went.
  • check_interference honours include_hidden.
  • save_as keeps an existing file unless overwrite is on.
  • execute_macro runs repeat_count times.
  • create_technical_drawing takes projection, and add_drawing_view refuses operations other than add.
  • sketch_tutorial_simple_hole points at create_cut_extrude.

Found by the live runs

  • Sketch names: a rename of an open sketch is accepted but doesn't take, so the name is now given when exit_sketch closes the sketch.
  • Deleting a used sketch: EditDelete, and DeleteSelection2 on its own, both refuse to delete a sketch a cut uses. The fallback deletes the cut with the "children" and "absorbed" options, taking the sketch with it. The option values were read from swconst.tlb.
  • Products of inertia: the GetMassProperties fallback for older versions swapped Ixz and Iyz. The 2026 path was already right.
  • Agent guides: some examples sent direction: "cut" (now refused) or a sketch line as axis_entity (which fails). Both are fixed.

Checks

  • Live: the 16 tests in tests/live/test_live_sw_beta_tools.py pass on SolidWorks 2026 SP4, run one at a time with the maintainer watching.
  • Mock suite: 3,807 passed at 100% coverage. Ruff is clean, and mkdocs build --strict passes.
  • Two small faults queued for later: the drawing-view tools place a view off the sheet without saying so, and export_stl logs a type mismatch before its fallback writes the file.

OpenSpec change: openspec/changes/beta-tool-faults. I'll archive it after the merge.

…ork with its research questions; reorder the queue; plan the beta tool fixes
…e; inertia in kg·mm², cuts pattern and mirror, delete names its dependents
…2.0.0

Live runs on SolidWorks 2026 settled the plan's open questions and found
three more faults, all fixed here:

- create_sketch: SolidWorks won't rename an open sketch, so exit_sketch
  gives the name create_sketch was asked for and replies with it
- delete_feature: SolidWorks refuses to delete a sketch a feature uses;
  the features built from it are deleted (DeleteSelection2 with children
  and absorbed), taking the sketch with them. The description asks the
  agent to check with the user first, and the reply warns, naming
  everything else that went
- the GetMassProperties fallback swapped Ixz and Iyz

Also: the 23 tools move to stable; the skill's faults table keeps only
add_mate and gains an invalid_input row; the agent guides stop sending
direction "cut" and a sketch line as axis_entity; name on create_part,
create_assembly and create_drawing is described as a label; evidence
printing survives a cp1252 console; two new small faults are queued
(off-sheet views, the STL first-save type mismatch).

BREAKING: inputs that did nothing are refused, and moments of inertia are
in kg·mm². Version 2.0.0.
@andrewbartels1
andrewbartels1 merged commit f84e60f into main Nov 10, 2026
15 checks passed
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