The evidence for tracks B and G, in the shape tracks A and E used.
- benchmarks/tasks_v5.py: 18 tasks, DEFAULT_MATRIX = "v5"; v4, v3 and v2 stay
addressable so an earlier report reproduces exactly rather than being only
described. mech_assembly is roadmap criterion 3 - a flange-coupling sheet
built from the part model and the sheet standard, through the code the
tools call (apply_titleblock, draw_part/add_view/dimension_part,
insert_std_part, extract_records -> draw_bom_table, add_balloon), gated on
two numbers that cannot be negotiated: drawing_critique(focus=None) returns
zero issues and the finalize score is at least 90 (it scores 100, 18/18 on
the v5 matrix). The adapter returns the focuses that fired, so a
regression names itself, and a test drops one balloon to prove the gate
fails and names mech_bom_balloon_mismatch.
- Seven correctness checks (32 -> 39). mech_section_hatch_area is the one
that cannot be faked: a sleeve of length 60, outside diameter 40 and bore
20 cuts two faces totalling 1200 mm^2 exactly, read back out of the drawing
through entity_measure. sheet_frame_iso5457_a3 pins the A3 frame (20,10 to
410,287 inside the 420 x 297 trimmed sheet); mech_iso286_on_dimension pins
40 H7 at +0.025/0 through the layout; std_part_iso4014_m12 pins s = 18 and
k = 7.5 by value; mech_thread_unrepresented_is_caught is the seventh: a
quality gate that never fires is not a gate.
- scripts/smoke_mech_com.py executed every new COM path once on AutoCAD 2026
(25.1s): frame, title block, a sectioned shaft with 12 dimensions, an ISO
4014 block with 1 ACADMCP_MECH chunk, a weld symbol, the parts list read off
the drawing, a linked balloon, an xref attached / listed / detached, a
31687-byte .dwg (AC1032) through ActiveX SaveAs, critique 0 issues, exit 0,
every scratch document closed. It retries RPC_E_CALL_REJECTED (measured:
the first call after Documents.Add is refused) and tracks its documents by
the document list, since SaveAs renames them.
- Defects the evidence found, each fixed with a test that fails on the old
code:
* ezdxf dimension_diameter put the text beyond the SECOND chord point;
ActiveX AddDimDiametric puts it beyond the first (measured live: a d50
from (x,170) to (x,220), leader 10, text at (x,160)). Headlessly every
front-view diameter stood on its own chain dimension. ezdxf now follows
ActiveX.
* draw_part's anchor goes on MECH; ActiveX refuses entity.Layer on a
missing layer (measured -0x7ffdfff7 'Key not found'). draw.py ensures
every target layer before the first entity.
* bom.extract_records filtered on INSERT; ActiveX names it BLOCKREFERENCE
(ObjectName AcDbBlockReference) - the live parts list was empty.
* COM _entity_info reported no dimension text_position: ModelSpace.Item
narrows to IAcadEntity, which has no TextPosition (measured
AttributeError); read through _com_unnarrow (TextPosition measured on
AcDbDiametricDimension, WCS). dim_overlap compared bbox centres and a
diameter collided with its own bore.
* pid graph raised KeyError 'start' mid-critique on a LINE whose point read
AutoCAD refused while busy; such a line is left out.
* the validator read "ISO 4014 - M12x60" as fake dimension text.
- The published A/B report is re-run over the grown suite rather than
re-typed (26/39 -> 39/39, 13 fixed, 0 regressed), check_doc_numbers derives
the task count from the v5 matrix, the token table is remeasured with a
TOOL_PACKS=core,mech row (193 tools / 61,673 tokens), and the README's
collected-tests figure is retaken (3990).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
248 lines
5.0 KiB
JSON
248 lines
5.0 KiB
JSON
{
|
|
"summary": {
|
|
"baseline_ref": "v1.5.1",
|
|
"total": 39,
|
|
"old_pass": 26,
|
|
"new_pass": 39,
|
|
"old_pct": 66.7,
|
|
"new_pct": 100.0,
|
|
"fixed": 13,
|
|
"regressed": 0
|
|
},
|
|
"rows": [
|
|
{
|
|
"check": "core_line_length",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "core_circle_radius",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "core_layer_create",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "core_polyline_closed",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "core_linear_dim",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "core_save_dxf_roundtrip",
|
|
"category": "Core",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "dim_aligned_no_error",
|
|
"category": "Dimensions",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "dim_angular_no_error",
|
|
"category": "Dimensions",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "array_polar_360_distinct",
|
|
"category": "Modify",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "point_intersection_line_line",
|
|
"category": "Geometry",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "point_tangent_external",
|
|
"category": "Geometry",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "arc_has_length",
|
|
"category": "Query",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "arc_select_by_length",
|
|
"category": "Query",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "ezdxf_bounding_box",
|
|
"category": "Query",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "mtext_rotation_roundtrip",
|
|
"category": "Entities",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "screenshot_png",
|
|
"category": "Render",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "dim_overlap_critique_fires",
|
|
"category": "Quality gate",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "iso13567_dim_layer",
|
|
"category": "Quality gate",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "construction_left_iso_caught",
|
|
"category": "Quality gate",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "gear_no_self_overlap",
|
|
"category": "Engineering",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "center_linetype_applied",
|
|
"category": "Entities",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "hatch_area_subtracts_its_island",
|
|
"category": "Measurement",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "boundary_area_agrees_with_measure",
|
|
"category": "Measurement",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "two_vertex_circle_has_area",
|
|
"category": "Measurement",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "diameter_dim_measures_the_diameter",
|
|
"category": "Dimensions",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "radius_dim_ignores_the_leader_length",
|
|
"category": "Dimensions",
|
|
"old": "pass",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "pid_block_define_attdef_roundtrip",
|
|
"category": "P&ID",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "pid_tag_parse_fic",
|
|
"category": "P&ID",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "pid_graph_edge_count",
|
|
"category": "P&ID",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "settings_dimstyle_iso25_values",
|
|
"category": "Settings",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "settings_layer_state_roundtrip",
|
|
"category": "Settings",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "settings_pdf_mediabox_a3",
|
|
"category": "Settings",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "mech_part_roundtrip",
|
|
"category": "Mechanical",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "mech_section_hatch_area",
|
|
"category": "Mechanical",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "mech_iso286_on_dimension",
|
|
"category": "Mechanical",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "mech_thread_unrepresented_is_caught",
|
|
"category": "Mechanical",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "std_part_iso4014_m12",
|
|
"category": "Mechanical",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "sheet_frame_iso5457_a3",
|
|
"category": "Sheet",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
},
|
|
{
|
|
"check": "bom_balloon_link",
|
|
"category": "Sheet",
|
|
"old": "miss",
|
|
"new": "pass"
|
|
}
|
|
]
|
|
} |