diff --git a/src/Mod/FreeCADExchange/AutoRouting.py b/src/Mod/FreeCADExchange/AutoRouting.py index caab10e..686e27a 100644 --- a/src/Mod/FreeCADExchange/AutoRouting.py +++ b/src/Mod/FreeCADExchange/AutoRouting.py @@ -1371,6 +1371,19 @@ def _missing_endpoint_label(sample, side): return label +def _missing_endpoint_side_summary(sample): + missing_sides = [] + if sample.get("start_found") is False: + missing_sides.append("起点") + if sample.get("end_found") is False: + missing_sides.append("终点") + if not missing_sides: + return "" + if len(missing_sides) == 2: + return "(缺失:两端)" + return "(缺失:{0})".format(missing_sides[0]) + + def format_eplan_connection_route_report(report): message = "批量生成布线连接完成:routed={0}, collision_warnings={1}, missing_terminals={2}".format( report.get("routed", 0), @@ -1457,9 +1470,10 @@ def format_eplan_connection_route_report(report): message += " 请先从 QET 重新导入/更新工程端子,使端子 UUID 不再是 local:...。" sample = (report.get("missing_endpoint_samples") or [None])[0] if sample: - message += "\n缺失示例:{0} -> {1}".format( + message += "\n缺失示例:{0} -> {1}{2}".format( _missing_endpoint_label(sample, "start"), _missing_endpoint_label(sample, "end"), + _missing_endpoint_side_summary(sample), ) return message diff --git a/tests/python/freecad_exchange_auto_routing_test.py b/tests/python/freecad_exchange_auto_routing_test.py index be90d14..0573821 100644 --- a/tests/python/freecad_exchange_auto_routing_test.py +++ b/tests/python/freecad_exchange_auto_routing_test.py @@ -1848,6 +1848,28 @@ class AutoRoutingTest(unittest.TestCase): self.assertIn("缺失示例:device-a/A1 (terminal-a) -> device-b/B1 (terminal-b)", message) + def test_route_eplan_connections_report_identifies_which_endpoint_is_missing(self): + _install_fake_freecad() + _terminal_objects, _wiring_objects, _routing_network, auto_routing = _reload_modules() + report = { + "routed": 0, + "collision_warnings": 0, + "skipped_missing_terminal": 1, + "missing_endpoint_samples": [ + { + "start_terminal_uuid": "terminal-start", + "start_found": True, + "end_terminal_uuid": "terminal-missing", + "end_found": False, + } + ], + } + + message = auto_routing.format_eplan_connection_route_report(report) + + self.assertIn("缺失示例:terminal-start -> terminal-missing", message) + self.assertIn("缺失:终点", message) + def test_route_eplan_connections_report_calls_out_clearance_collision_kind(self): _install_fake_freecad() _terminal_objects, _wiring_objects, _routing_network, auto_routing = _reload_modules()