Umut CAN and Claude Opus 5.5
54325e6de0
feat(understand): drawing_diff - two revisions matched by geometric signature
...
engineering/understand/diff.py reads each revision once into entity
records and matches them in three stages: exact signature (type, layer,
geometry rounded to tol, text, block, rotation, scale, attributes;
handles ignored), then handle while at least half of the exact matches
kept theirs, then type + layer + nearest anchor within move_tol (default
2 % of the 1st-99th percentile diagonal). The report counts changes by
layer and type, says what changed per entity (moved by, text, attribute,
radius ... from -> to), compares named block definitions by content and
groups the changes into clusters.
drawing_diff opens group D's copy of SECTION 26. It is read-only unless
markup=True, which files revision clouds around the model-space clusters
on the current document through add_revision - refused before any read
with new_path, without a valid rev, or on an engine without revcloud.
A revision path that is neither .dxf nor .dwg is refused naming the
parameter (old_path: / new_path:), like every other path refusal.
Tests: the synthetic plant P&ID edited five ways (a move, a text, an
attribute, an add, a delete) under renumbered handles reports exactly
those five edits; renumbering alone reports nothing.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
2026-09-24 11:51:19 +03:00
..
2026-09-23 23:20:05 +03:00
2026-09-24 11:51:19 +03:00
2026-04-27 12:20:57 +03:00
2026-09-22 19:49:28 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 22:35:44 +03:00
2026-09-23 22:35:44 +03:00
2026-09-23 23:20:05 +03:00
2026-09-23 23:00:05 +03:00
2026-09-23 23:00:05 +03:00
2026-09-23 22:33:37 +03:00
2026-09-23 22:27:00 +03:00
2026-09-23 22:27:00 +03:00
2026-09-23 22:51:41 +03:00
2026-09-23 22:33:37 +03:00
2026-09-23 22:48:36 +03:00
2026-09-23 22:56:05 +03:00
2026-09-23 22:56:05 +03:00
2026-09-23 23:20:05 +03:00
2026-09-23 22:51:41 +03:00
2026-09-23 22:42:42 +03:00
2026-09-23 22:42:42 +03:00
2026-09-23 23:09:03 +03:00
2026-09-23 22:46:39 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:47:05 +03:00
2026-07-23 15:14:51 +03:00
2026-07-17 15:08:15 +03:00
2026-07-17 15:48:43 +03:00
2026-09-16 13:06:52 +03:00
2026-09-23 23:35:46 +03:00
2026-09-23 23:35:46 +03:00
2026-09-23 23:35:46 +03:00
2026-09-18 00:11:38 +03:00
2026-08-06 09:45:20 +03:00
2026-09-15 13:21:16 +03:00
2026-09-15 13:34:47 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:46:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 11:35:00 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 23:35:46 +03:00
2026-09-22 12:25:11 +03:00
2026-09-21 21:46:08 +03:00
2026-07-23 15:15:45 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 23:07:50 +03:00
2026-07-07 11:03:08 +03:00
2026-09-23 13:30:02 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 13:07:31 +03:00
2026-09-21 22:04:22 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-23 13:30:02 +03:00
2026-07-23 15:14:51 +03:00
2026-04-27 12:20:57 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 21:34:26 +03:00
2026-07-23 15:14:51 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-07 11:03:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 14:28:35 +03:00
2026-04-27 12:20:57 +03:00
2026-09-22 13:07:31 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 15:08:50 +03:00
2026-09-22 19:15:33 +03:00
2026-09-22 19:07:53 +03:00
2026-09-23 12:48:44 +03:00
2026-09-22 23:04:25 +03:00
2026-09-23 13:30:02 +03:00
2026-09-22 19:07:53 +03:00
2026-09-22 19:48:00 +03:00
2026-09-22 20:12:11 +03:00
2026-09-22 17:04:59 +03:00
2026-09-22 18:52:39 +03:00
2026-09-22 17:04:59 +03:00
2026-09-22 22:16:47 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 20:02:06 +03:00
2026-09-22 20:02:06 +03:00
2026-09-22 19:12:00 +03:00
2026-09-22 21:40:29 +03:00
2026-09-22 17:04:59 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-22 13:07:31 +03:00
2026-09-24 11:38:59 +03:00
2026-09-21 16:55:05 +03:00
2026-08-06 09:45:20 +03:00
2026-09-16 12:01:37 +03:00
2026-09-21 22:44:35 +03:00
2026-09-21 21:46:08 +03:00
2026-09-23 13:30:02 +03:00
2026-09-15 16:44:06 +03:00
2026-09-22 13:07:31 +03:00
2026-09-22 11:06:04 +03:00
2026-09-16 12:42:54 +03:00
2026-09-15 23:48:35 +03:00
2026-09-15 13:27:59 +03:00
2026-09-15 15:04:01 +03:00
2026-09-24 11:42:09 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-09-22 23:35:44 +03:00
2026-08-06 23:07:50 +03:00
2026-08-06 09:45:20 +03:00
2026-07-07 11:03:08 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 23:07:50 +03:00
2026-07-17 15:48:43 +03:00
2026-08-06 23:07:50 +03:00
2026-09-17 10:14:05 +03:00
2026-09-23 13:30:02 +03:00
2026-09-22 23:03:57 +03:00
2026-09-22 19:49:28 +03:00
2026-09-22 22:39:10 +03:00
2026-09-22 19:49:28 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:22:49 +03:00
2026-08-06 09:45:20 +03:00
2026-07-23 15:14:51 +03:00
2026-07-23 15:14:51 +03:00
2026-09-21 16:48:20 +03:00
2026-09-22 13:07:31 +03:00
2026-09-22 12:25:11 +03:00
2026-09-22 12:25:11 +03:00
2026-09-23 22:56:05 +03:00
2026-09-21 22:48:31 +03:00
2026-09-23 23:35:46 +03:00
2026-08-06 09:45:20 +03:00
2026-09-23 23:20:05 +03:00
2026-08-06 09:45:20 +03:00
2026-09-24 11:51:19 +03:00
2026-09-22 13:07:31 +03:00
2026-09-24 11:51:19 +03:00
2026-09-24 11:51:19 +03:00
2026-09-24 11:38:59 +03:00
2026-09-24 11:38:59 +03:00
2026-09-24 11:38:59 +03:00
2026-08-06 09:45:20 +03:00
2026-08-06 09:45:20 +03:00
2026-09-21 16:48:19 +03:00
2026-09-15 14:49:43 +03:00