feat: 端子未接入诊断显示阈值

dev
Zhaowenlong 3 weeks ago
parent ad24e96695
commit cbd898f2ec

@ -281,6 +281,8 @@ terminal_access_max_distance = 1000.0
`terminal_exit_length` 决定端子出线段长度;`terminal_access_max_distance` 决定端子出线点到最近路由网络的最大允许接入距离。两个参数都只保存在当前 FreeCAD 面板/调用选项中,不写数据库。
网络检查发现端子未接入时,诊断 JSON 会记录该端子到最近路由网络的距离、当前端子接入最大距离和端子出线长度;面板报告会显示当前最大接入距离,便于判断是设备/线槽位置还没摆好,还是需要临时调大接入阈值。
### 4.4 悬空线策略
当前版本默认:
@ -447,6 +449,7 @@ tests/python/freecad_exchange_auto_routing_test.py
29. 自动布线支持通过 `adjoining_duct_tolerance` 调整相邻线槽端点自动桥接容差,并在网络结果中记录桥接段数量。
30. `3D 布线连接` 面板提供“线槽桥接容差 mm”设置面板生成/检查/布线流程会使用该值;网络检查报告会显示自动桥接段数。
31. `3D 布线连接` 面板提供“端子接入最大距离 mm”和“端子出线长度 mm”设置用于适配真实机柜里端子离线槽远近不同、设备端子方向不同的情况。
32. 布线路径网络检查会在端子未接入诊断中记录当前端子接入最大距离和端子出线长度,并在中文报告里显示最大接入距离。
已完成 FreeCAD smoke

@ -2070,9 +2070,10 @@ def format_routing_path_network_report(diagnostic):
unconnected = _dict_items(diagnostic.get("unconnected_terminals", []) or [])
if unconnected:
sample = unconnected[0]
message += "\n端子未接入:{0},距离最近网络 {1}。请重新生成布线路径网络,或补一段线槽/辅助路径到该端子。".format(
message += "\n端子未接入:{0},距离最近网络 {1},当前端子接入最大距离 {2}。请重新生成布线路径网络,或补一段线槽/辅助路径到该端子。".format(
_diagnostic_terminal_text(sample),
_format_distance_mm(sample.get("nearest_network_distance_mm")),
_format_distance_mm(sample.get("terminal_access_max_distance_mm")),
)
possible_breaks = _dict_items(diagnostic.get("possible_breaks", []) or [])

@ -2959,6 +2959,8 @@ def diagnose_routing_path_network(
"access_carrier": getattr(access_carrier, "Name", "") if access_carrier is not None else "",
"nearest_network_distance_mm": None if distance is None else float(distance),
"nearest_network_point": None if nearest_point is None else _point_payload(nearest_point),
"terminal_access_max_distance_mm": float(max_distance),
"terminal_exit_length_mm": float(max(float(terminal_exit_length or 0.0), 0.0)),
"code": "terminal_access_missing" if not access_live else "terminal_access_too_far",
}
)

@ -1437,10 +1437,12 @@ class AutoRoutingTest(unittest.TestCase):
self.assertEqual("RoutingPathNetwork", diagnostic_group.Group[0].QetDiagnosticKind)
self.assertEqual(1, len(payload["unconnected_terminals"]))
self.assertEqual("terminal-far", payload["unconnected_terminals"][0]["terminal_uuid"])
self.assertEqual(1000.0, payload["unconnected_terminals"][0]["terminal_access_max_distance_mm"])
message = auto_routing.format_routing_path_network_report(result["diagnostic"])
self.assertIn("端子未接入", message)
self.assertIn("terminal-far", message)
self.assertIn("4900.0 mm", message)
self.assertIn("端子接入最大距离 1000.0 mm", message)
self.assertIn("补一段线槽/辅助路径", message)
def test_format_routing_path_network_report_tolerates_malformed_samples(self):

Loading…
Cancel
Save