形态筛选器 - 三维度可建造性评分系统。兼容 IronPython 2.7 / CPython 3 (Rhino 8)。用于规则矩形网格和任意拓扑网格的力学优美度、构件标准化、围护拟合评分。
This server exposes 18 tools with minimal MCP structure. Tools lack proper naming conventions (no verb prefixes like 'get_', 'calculate_', 'score_'), descriptions are domain-specific Chinese text without LLM-optimized English, and input schemas are present but incomplete. Most critically, NO output schemas are documented anywhere, LLMs cannot predict what these tools return. Tools like 'score_morphology' and 'score_morphology_mesh' perform nearly identical operations (violates single-responsibility). Parameter descriptions exist but are terse and lack format/range guidance. No error handling, no recovery guidance, no permission gates. This reads as a research/internal script exposed as-is, not a production-grade agent tool.
通用 Collider handler,委托给 d0_solid_collision。
碰撞找形达成度: 顶点接触率。goal_params['solids']: [{'type':'sphere','center':[x,y,z],'radius':r}, ...]。返回 (D0, details)。
SphereCollide 双模式: 若 goal_params 含 'solids' → 披覆模式 (同 SolidPointCollide); 否则 → 自碰撞模式: 测顶点紧密程度 (min_pairwise_dist / 2R)。
三维欧氏距离计算。
由面邻接关系判定边界边 (naked edge): 统计每条边被多少个面引用, 只被 1 个面引用的就是边界边。适用于任意拓扑 (规则/非规则/三角/四边混合)。返回 set of edges。
手写 K-Means 聚类 (不依赖 numpy/scipy)。返回 (labels, centroids)。
从 CSV 文本加载圆钢管截面库。返回格式同 load_section_library。
No output schemas documented for any tool. LLMs cannot predict return types, field names, or structure. This breaks downstream tool chaining and forces agents to guess what data is available.
Tool names lack action verbs. 'score_morphology' is acceptable, but 'dist_3d', 'vec_len', 'parse_number' are utility names without clear intent. LLMs struggle to infer when to call these vs alternatives.
Duplicate/overlapping tools: score_morphology and score_morphology_mesh perform nearly identical operations (both compute D1/D2a/D2b/D3 scores). Violates single-responsibility principle. LLMs will waste reasoning cycles choosing between them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | 2026-07-28+ | v2 |
从 CSV 文本加载标准面板库。返回 [(material, width_mm, height_mm, area_m2, thickness_mm, flatness), ...]。
从 CSV 文本加载截面库。返回 [(name, A_mm2, N_allow_N, I_mm4, W_mm3, weight_kg_m, B_mm, t_mm), ...],其中 N_allow_N 已从 kN 转换为 N。
在标准板库中找最小包络规格。返回 (material, width, height, fits) 或 (None, 0, 0, False)。
在截面库中找最小够用截面。返回 (name, A, N_allow, utilization)。utilization = force / N_allow。如果找不到匹配 → 返回 (None, 0, 0, 0)。
安全解析数字,失败返回 None。
D0 分发器: 遍历 goal_types, 找到第一个可用的 handler 并计算 D0 (找形达成度)。返回 (D0: float|None, details: dict)。D0=None 表示无适用 handler (D0 不参与总分)。
规则矩形网格 (nx×ny 行主序顶点) 的三维度可建造性评分。返回 D1/D2a/D2b/D3 分项 + 总分 + 体检等级。
任意拓扑 (SubD 转换 / 三角网格 / 非规则网格) 的三维度可建造性评分。返回 D1/D2a/D2b/D3 分项 + 总分 + 体检等级。
轮廓系数的采样封装 (O(n^2) 性能保护)。data 超过 max_n 条时, 先均匀降采样到 max_n 再算轮廓系数。返回 (silhouette, sample_rate, est_error)。
轮廓系数 (手写)。返回 (-1, 1), 越高聚类越清晰。
向量长度计算。
Descriptions are domain-specific Chinese text without English translation or LLM-optimized phrasing. Descriptions like '规则矩形网格 (nx×ny 行主序顶点) 的三维度可建造性评分' are inaccessible to English-speaking LLMs and lack WHEN/WHY context.
No error handling or recovery guidance. Tools like 'match_section' return (None, 0, 0, 0) on failure with no explanation. LLMs cannot determine if the failure is retryable, user-fixable, or fatal.