https://www.bilibili.com/video/BV1CQGq6jEDJ

https://wwamf.lanzouu.com/irtvK3qar9sj

[benddim 可见边] GetPolylines7 折线段 28 条(视图空间坐标,匹配时用并行 Edge 的模型坐标),其中并行 Edge 非空 28 条;GetVisibleEntities 直线 20 条
全局注释文字高度设置为 0.0035,结果: True
厚度:1
[benddim] 跨圆弧一级—二级台阶面距下限 0.80 mm(无上限;面距优先 5~100 mm 台阶带,常见 ~20 mm) · 板厚 1.00 mm
[benddim] 零件已处于视图引用配置「默认」
找到折弯特征基体折弯1
最大圆柱面面积: 163.670694066721 mm^2
折弯「基体折弯1」角度≈90°(90.0°,容差±10°):本折弯二级面不标;外圆柱一级面—跨圆弧另一侧台阶二级面边—边(台阶面距约 5~100 mm);节点间外圆柱非连接一级面边—边;不使用内弧中心标注
识别到折弯内外圆柱面:R内=0.74 mm, R外=1.74 mm
找到 4 条与轴线平行的边
找到 4 个下一级面
其中外圆柱来源一级面: 2 个
其中内圆柱扫出一级面: 2 个,内弧一级面(剔除外一级): 2 个(面积 mm²: 2823.96, 2823.96)
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
外圆柱一级面上找到 4 条与轴线平行的边(用于引出二级面)
未找到可用二级面:保留折弯节点,仅参与图结构/跨节点处理
找到折弯特征基体折弯2
最大圆柱面面积: 163.670694066721 mm^2
折弯「基体折弯2」角度≈90°(90.0°,容差±10°):本折弯二级面不标;外圆柱一级面—跨圆弧另一侧台阶二级面边—边(台阶面距约 5~100 mm);节点间外圆柱非连接一级面边—边;不使用内弧中心标注
识别到折弯内外圆柱面:R内=0.74 mm, R外=1.74 mm
找到 4 条与轴线平行的边
找到 4 个下一级面
其中外圆柱来源一级面: 2 个
其中内圆柱扫出一级面: 2 个,内弧一级面(剔除外一级): 2 个(面积 mm²: 2791.61, 2791.61)
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
外圆柱一级面上找到 4 条与轴线平行的边(用于引出二级面)
未找到可用二级面:保留折弯节点,仅参与图结构/跨节点处理
找到折弯特征基体折弯3
最大圆柱面面积: 163.670694066721 mm^2
折弯「基体折弯3」角度≈90°(90.0°,容差±10°):本折弯二级面不标;外圆柱一级面—跨圆弧另一侧台阶二级面边—边(台阶面距约 5~100 mm);节点间外圆柱非连接一级面边—边;不使用内弧中心标注
识别到折弯内外圆柱面:R内=0.74 mm, R外=1.74 mm
找到 4 条与轴线平行的边
找到 4 个下一级面
其中外圆柱来源一级面: 2 个
其中内圆柱扫出一级面: 2 个,内弧一级面(剔除外一级): 2 个(面积 mm²: 2791.61, 2791.61)
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
外圆柱一级面上找到 4 条与轴线平行的边(用于引出二级面)
找到 1 个二级面(仅外圆柱一级面引出)
找到折弯特征边线折弯1
最大圆柱面面积: 54.5568980222392 mm^2
折弯「边线折弯1」非约90°(30.0°):节点内相交一级面间标角度;一级—二级仅内弧草图点—二级面;节点间双侧非约90°草图双点;与约90°邻接时草图点—邻折弯非共边一级面
识别到折弯内外圆柱面:R内=0.74 mm, R外=1.74 mm
找到 4 条与轴线平行的边
找到 4 个下一级面
其中外圆柱来源一级面: 2 个
其中内圆柱扫出一级面: 2 个,内弧一级面(剔除外一级): 2 个(面积 mm²: 1996.28, 1996.28)
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
二级面候选为圆柱面,已按规则跳过
外圆柱一级面上找到 4 条与轴线平行的边(用于引出二级面)
找到 1 个二级面(仅外圆柱一级面引出)
折弯图构建完成:节点=4,边=3
折弯图已保存: E:\code\csharp_sw\sw_plugin\bin\Debug\net48\bend_graph.json
[benddim 节点间面距] #0:基体折弯1 ↔ #1:基体折弯2 · A=2823.96 B=2791.61 mm² · 采用=161.02 mm · 分解 法向10.0 沿折弯2.5 面内2.5 顶点161.0 Pick10.0
[benddim 已建尺寸] 面约束棱—棱 · SystemValue=161.0000 mm,Value=161000.0000 mm · 文字「(无附加文字)」 · 类型=0 · RD1@工程图视图12@零件1.Drawing · 放置点图纸(76.949,99.122) mm
  [边—边] 双侧无可见边,已用两侧面约束棱拾取标注
[benddim 节点间占用] #0 基体折弯1 · 外一级面 2823.96 mm² · 节点间 #0:基体折弯1 ↔ #1:基体折弯2 · 面距 161.02 mm · 对面 #1 基体折弯2
[benddim 节点间占用] #1 基体折弯2 · 外一级面 2791.61 mm² · 节点间 #0:基体折弯1 ↔ #1:基体折弯2 · 面距 161.02 mm · 对面 #0 基体折弯1
节点间配对成功:NodeA=0, NodeB=1, A面积=2823.96 mm^2, B面积=2791.61 mm^2(仅各自折弯上的该外一级面不再参与本节点内跨折弯一级—二级)
[benddim 节点间面距] #1:基体折弯2 ↔ #2:基体折弯3 · A=9451.61 B=3495.80 mm² · 采用=50.00 mm · 分解 法向50.0 沿折弯0.0 面内0.0 顶点50.0 Pick50.0
[benddim 已建尺寸] 边—边 可见×可见 中点距50.0mm · SystemValue=50.0000 mm,Value=50000.0000 mm · 文字「(无附加文字)」 · 类型=0 · RD2@工程图视图12@零件1.Drawing · 放置点图纸(63.625,108.504) mm
  [边—边] 配对成功(1 组候选,两面距≈50.0mm,棱中点距≈50.0mm)
[benddim 节点间占用] #1 基体折弯2 · 外一级面 9451.61 mm² · 节点间 #1:基体折弯2 ↔ #2:基体折弯3 · 面距 50.00 mm · 对面 #2 基体折弯3
[benddim 节点间占用] #2 基体折弯3 · 外一级面 3495.80 mm² · 节点间 #1:基体折弯2 ↔ #2:基体折弯3 · 面距 50.00 mm · 对面 #1 基体折弯2
节点间配对成功:NodeA=1, NodeB=2, A面积=9451.61 mm^2, B面积=3495.80 mm^2(仅各自折弯上的该外一级面不再参与本节点内跨折弯一级—二级)
[benddim 节点间占用] 汇总(共 4 条,按折弯节点分组;仅阻塞本节点内跨折弯一级—二级):
  #0 基体折弯1:
    外一级 2823.96 mm² ← #0:基体折弯1 ↔ #1:基体折弯2,面距 161.02 mm,对面 #1 基体折弯2
  #1 基体折弯2:
    外一级 2791.61 mm² ← #0:基体折弯1 ↔ #1:基体折弯2,面距 161.02 mm,对面 #0 基体折弯1
    外一级 9451.61 mm² ← #1:基体折弯2 ↔ #2:基体折弯3,面距 50.00 mm,对面 #2 基体折弯3
  #2 基体折弯3:
    外一级 3495.80 mm² ← #1:基体折弯2 ↔ #2:基体折弯3,面距 50.00 mm,对面 #1 基体折弯2
[benddim 节点内跳过] #0 基体折弯1 · 外一级面 2823.96 mm² 本折弯已在节点间占用(节点间 #0:基体折弯1 ↔ #1:基体折弯2,面距 161.02 mm,占用面 2823.96 mm²,对面 #1)
[benddim 跨圆弧一级—二级] #0 基体折弯1 · 外一级 9451.61 mm² 为图邻接共享面(邻 #1 基体折弯2);仅配对本折弯跨圆弧另一侧台阶二级(台阶面距约 5~100 mm,常见 ~20 mm)
[benddim 跨圆弧无候选] #0 基体折弯1 · 外一级 9451.61 mm² · 本折弯二级扫描 0 个 · 同侧来源:0 · 面距<0.80mm:0 · 不平行:0
[benddim 节点内跳过] #1 基体折弯2 · 外一级面 2791.61 mm² 本折弯已在节点间占用(节点间 #0:基体折弯1 ↔ #1:基体折弯2,面距 161.02 mm,占用面 2791.61 mm²,对面 #0)
[benddim 节点内跳过] #1 基体折弯2 · 外一级面 9451.61 mm² 本折弯已在节点间占用(节点间 #1:基体折弯2 ↔ #2:基体折弯3,面距 50.00 mm,占用面 9451.61 mm²,对面 #2)
[benddim 节点内跳过] #2 基体折弯3 · 外一级面 3495.80 mm² 本折弯已在节点间占用(节点间 #1:基体折弯2 ↔ #2:基体折弯3,面距 50.00 mm,占用面 3495.80 mm²,对面 #1)
[benddim 跨圆弧一级—二级] #2 基体折弯3 · 外一级 2791.61 mm² 为图邻接共享面(邻 #1 基体折弯2);仅配对本折弯跨圆弧另一侧台阶二级(台阶面距约 5~100 mm,常见 ~20 mm)
[benddim 已建尺寸] 边—边 可见×可见 中点距24.5mm · SystemValue=60.0000 mm,Value=60000.0000 mm · 文字「(无附加文字)」 · 类型=0 · RD3@工程图视图12@零件1.Drawing · 放置点图纸(68.781,122.226) mm
  [边—边] 配对成功(1 组候选,两面距≈0.0mm,棱中点距≈24.5mm)
跨圆弧配对成功(#2 基体折弯3·跨圆弧台阶二级):已创建尺寸
[benddim 内弧一级面间] #3 边线折弯1:2823.96 mm² ↔ 1996.28 mm²(相交面,标角度)
  [一级面间] 两面锐角 30.0°,公共棱 0 条(SelectByRay 两棱中点标角度)
  [一级面间A] 候选标注边(内一级面间·与轴非平行优先),长度: 47.07 mm
  [一级面间A] 候选标注边(内一级面间·与轴非平行优先),长度: 47.07 mm
  [一级面间B] 候选标注边(内一级面间·与轴非平行优先),长度: 33.27 mm
  [一级面间B] 候选标注边(内一级面间·与轴非平行优先),长度: 33.27 mm
[benddim 已建尺寸] 节点内一级面间·角度 · SystemValue=2617.9939 mm,Value=150000.0000 mm · 文字「(无附加文字)」 · 类型=1 · RD4@工程图视图12@零件1.Drawing · 放置点图纸(99.205,72.301) mm
  [一级面间·角度] SelectByRay棱中点已创建(期望≈30.0°,棱夹角误差≈0.0°)
节点内一级面间(独立)角度尺寸已创建(期望≈30.0°)
[benddim 已建尺寸] 节点内内弧点—二级面 · SystemValue=33.4619 mm,Value=33461.9255 mm · 文字「(无附加文字)」 · 类型=0 · D1@草图14@零件1.Drawing · 放置点图纸(104.984,75.691) mm
节点内非90°配对成功(#3 边线折弯1):内弧草图点—二级面,面距≈162.4 mm
[benddim 节点间内弧点—非共边面] #0:基体折弯1 ↔ #3:边线折弯1 · 一级 9451.61 mm² · 面距≈47.99 mm
[benddim 已建尺寸] 节点间内弧点—非共边面 · SystemValue=47.2620 mm,Value=47262.0306 mm · 文字「(无附加文字)」 · 类型=0 · D2@草图14@零件1.Drawing · 放置点图纸(91.998,44.763) mm
节点间内弧点—非共边面配对成功:#0:基体折弯1 ↔ #3:边线折弯1,一级 9451.61 mm²,面距≈47.99 mm
标注完成,共 6 个尺寸,涉及 2/4 个折弯节点
[benddim 原因统计 v2] 2026-05-23 22:46:34
若下面明细行没有「·」及折弯名/边信息,说明 SW 仍在使用旧版 DLL;请重新编译 sw_plugin 后完全退出并重启 SolidWorks。
当前程序集: E:\code\csharp_sw\sw_plugin\bin\Debug\net48\sw_plugin.dll

标注原因统计(明细,「·」后为折弯或节点边):
  节点内_跳过_本折弯外一级面已用于节点间 · #1 基体折弯2: 2
  节点构建_无可用二级面 · 基体折弯1: 1
  节点构建_无可用二级面 · 基体折弯2: 1
  节点间_配对成功 · #0:基体折弯1 ↔ #1:基体折弯2: 1
  节点间_配对成功 · #1:基体折弯2 ↔ #2:基体折弯3: 1
  节点间_约90与非约90留内弧点非共边面 · #0:基体折弯1 ↔ #3:边线折弯1: 1
  节点间内弧点非共边面_配对成功 · #0:基体折弯1 ↔ #3:边线折弯1: 1
  节点间内弧中点_折弯角约90跳过画点 · #0:基体折弯1 ↔ #1:基体折弯2: 1
  节点间内弧中点_折弯角约90跳过画点 · #0:基体折弯1 ↔ #3:边线折弯1: 1
  节点间内弧中点_折弯角约90跳过画点 · #1:基体折弯2 ↔ #2:基体折弯3: 1
  节点内_配对成功_内弧点二级面 · #3 边线折弯1: 1
  节点内_跳过_本折弯外一级面已用于节点间 · #0 基体折弯1: 1
  节点内_跳过_本折弯外一级面已用于节点间 · #2 基体折弯3: 1
  节点内一级面间_配对成功_角度 · #3 边线折弯1: 1
  跨圆弧_配对成功 · #2 基体折弯3: 1
  跨圆弧_无另一侧二级面候选 · #0 基体折弯1: 1

按原因类型汇总(合并相同原因、忽略折弯/边上下文):
  节点内_跳过_本折弯外一级面已用于节点间: 4 次,分布于 3 条明细
  节点间内弧中点_折弯角约90跳过画点: 3 次,分布于 3 条明细
  节点构建_无可用二级面: 2 次,分布于 2 条明细
  节点间_配对成功: 2 次,分布于 2 条明细
  节点间_约90与非约90留内弧点非共边面: 1 次
  节点间内弧点非共边面_配对成功: 1 次
  节点内_配对成功_内弧点二级面: 1 次
  节点内一级面间_配对成功_角度: 1 次
  跨圆弧_配对成功: 1 次
  跨圆弧_无另一侧二级面候选: 1 次

[benddim] 本日志路径: E:\code\csharp_sw\sw_plugin\bin\Debug\net48\benddim_reason_stats.log

折弯标注规则(与 benddim.cs 一致)

【折弯角约 90°,±1°】

  节点内:

    - 禁止:无图邻接关系时,用本折弯内弧侧等二级面做一级—二级

    - 仅:本折弯外圆柱侧一级面 ↔ 跨圆弧另一侧台阶二级面边—边(面距≈板厚,如 ~330/323 mm²);一级侧优先图邻接「共享外一级」(如折弯12 的 6566.7、折弯17 的 3431.3)

    - 「跨」= 同一折弯上跨圆弧到另一侧二级面(二级须由与当前外一级不同侧的一级面引出),不是折弯图邻接节点、不扫邻折弯二级
    - 典型台阶二级(约 200–500 mm²,如 330/323):面距优先 5~100 mm 台阶带(常见 ~20 mm);勿仅用外法向距(易误为 ~245 mm 展开距)

    - 禁止:内圆柱侧一级面参与一级—二级

    - 禁止:内弧一级面之间标注

    - 禁止:内弧中心 ↔ 二级面

    - 边—边仅用各面上非公共棱(排除与对侧面交界的匹配棱);公共棱不参与标注

    - 视图中可见边:Select4 绑定工程图边(selData.View),禁止对可见边中点盲目 SelectByRay

    - 视图中不可见棱:限定在所属面上拾取;优先可见边 Select4;边线棱用端点/中点 SelectByRay(Z=0,容差0.0001,与宏一致),再试面法向微偏移

    - 边—边仍要求图纸 XY 投影成线;SelectByRay 回退可用边线棱(射线拾取轮廓点)

    - 一侧不可见、一侧可见:隐藏侧面约束棱 + 可见侧 Select4;两侧均不可见:允许两侧棱 SelectByRay(跨圆弧台阶,无面距上限,200+ mm 大跨度边允许)

    - 可见边按与两面代表点距离排序;期望>25mm 时排除<8mm 短边与过长边;可见×可见 优先棱中点沿测量方向距接近面距的组合

    - AddDimension2 后:SystemValue 与两面距、与本次锚点/棱中点距偏差须 ≤0.1mm,否则 EditUndo2 撤销(Finalize 前勿 ClearSelection2);锚点/棱中点距为模型空间沿与两面几何面距一致的测量方向投影(平行面法向/沿折弯/面内台阶),非 3D 弦长、非图纸 XY

    - 90° 跨圆弧一级—二级:台阶候选按板厚优先(非「最小面距」);同一邻接折弯的同一二级面只尝试一次;本折弯每个外一级面至多成功标注一次

    - 已参与节点间(外一级—外一级)标注时:仅「本折弯节点」上的该外一级面不再做跨圆弧一级—二级(对面折弯占用不阻塞本折弯其它外一级面)

    - 跨圆弧台阶面距仅设下限(约 0.75×板厚,最小 0.8mm),无上限;候选排序优先 5~100 mm 台阶带(常见 ~20 mm,非 1.8 mm 板厚)

    - 同一次命令相同测量值(0.5mm 分桶)不重复建尺

    - 禁止:一级—二级两面不平行时任何标注

  节点间:

    - 仅:两节点外圆柱来源一级面中「非连接面」且法向平行的边—边

    - 面距:平行面分解后,法向距 &lt;15 mm 且顶点最小距 ≥80 mm 时优先顶点跨距(如 161 mm);否则法向很小时优先沿折弯/面内 35~120 mm;再否则台阶带 5~100 mm 内取最接近 ~20 mm

    - 禁止:两节点内弧中心点距标注

【折弯角非 90°】

  节点内:

    - 内弧侧两一级面之间:标「角度」;各面一条与折弯轴非平行的直棱,在棱中点(图纸端点投影中点)SelectByRay 拾取(限定所属面,Z=0/法向偏移与全局一致),两侧均不用 Select4;边线折弯为图邻接大面+内法兰小面(如 2823↔1996)

    - 一级—二级:仅内弧草图点—二级面(点—面,SelectByRay);禁止边—边、禁止两面代表点、禁止二级棱

    - 禁止:外圆柱一级面—二级、约 90° 跨圆弧路径

  节点间:

    - 双侧均非约 90°:图边相连时,两节点内圆弧中心草图双点标距

    - 一侧约 90°、一侧非约 90°:非约 90° 侧内弧草图点 ↔ 约 90° 侧非共边一级面(非图连接面,点—面 SelectByRay)

    - 禁止:约 90° 与非约 90° 之间外圆柱非连接一级面边—边(仅双侧约 90° 可用)

【面层级(构建折弯图)】

  - 圆柱面:与折弯轴平行的直线棱 → 邻面为一级面(内外圆柱均扫;90° 标注仅用外圆柱来源一级面)

  - 一级面:仅外圆柱侧一级面用于引出二级面(与折弯轴平行的直线棱 → 邻面为二级面;内圆弧一级不引二级;须平面;圆柱邻面跳过)

  - 当圆柱轴垂直于工程图视图时,上述 ∥ 轴棱在图纸上常表现为轮廓边线/点,与「垂直视图」的直观一致

【公共】

  - 工程图引用零件:直接读 ReferencedDocument;引用装配体:从视图可见组件中取含边线折弯最多的零件(勿强转 PartDoc)

  - 圆柱轴须垂直于工程图视图平面,否则该折弯/图边跳过

  - 二级面候选为圆柱面时构建阶段即跳过

  - 标注在视图引用配置下取 BREP(与展开图一致)

  - 不可见棱:所属面法向偏移后 SelectByRay,或可见时 Select4;可见棱仅 Select4;不建草图点

  - 两面配对标注:候选棱排除两面的公共直线棱(交界),只用面上轮廓侧非交界棱

总体结论

本次运行是端到端成功:4 个折弯节点、3 条图边全部识别;按 benddim_rule.txt 完成节点间 / 跨圆弧 / 非 90° 节点内 / 90°↔30° 混合节点间配对;共创建 6 个工程图尺寸,原因统计与日志一致,且程序集路径确认为新版 sw_plugin.dll


1. 几何与视图基础(前置条件满足)

项目 结果 含义

板厚

1.00 mm

跨圆弧下限 0.80 mm(0.75×板厚)已生效

内外圆柱

R内≈0.74、R外≈1.74 mm

四个折弯半径一致,识别稳定

可见边

GetPolylines7:28 段;GetVisibleEntities:直线 20 条;并行 Edge 28/28

视图边与模型棱一一对应,边—边 / Select4 有数据基础

配置

「默认」

BREP 与展开图引用一致

文字高度 0.0035 设置成功,不影响几何逻辑。


2. 折弯图(bend_graph.json

#0 基体折弯1 ──9451── #1 基体折弯2 ──2791── #2 基体折弯3

2823(共面)

#3 边线折弯1(30°)

  • 节点 4、边 3:与日志「折弯图构建完成」一致。
  • 共享面面积是后续「谁该标节点间、谁该标跨圆弧」的关键键:
    • 9451.61:#0↔#1、#1↔#2 的图连接面(不参与外一级—外一级边—边)
    • 2823.96:#0↔#3 连接面
    • 2791.61:#1↔#2 连接面

构建阶段预期跳过:基体折弯1/2 的二级候选全是圆柱面 →「无可用二级面,仅参与图结构」;基体折弯3、边线折弯1 各找到 1 个平面二级面,供跨圆弧 / 内弧点—二级面使用。


3. 六个尺寸分别是什么、为何成功

① RD1 — 161 mm(节点间,约 90° 外一级—外一级)

  • 配对:#0 基体折弯1 ↔ #1 基体折弯2
  • 面:A=2823.96、B=2791.61 mm²(非连接外一级面)
  • 面距策略:分解为法向 10 / 沿折弯 2.5 / 面内 2.5 / 顶点 161 → 采用 161.02 mm(符合规则:法向很小、顶点跨距大时优先顶点距)
  • 拾取:双侧无可见边 → 两侧面约束棱(规则允许的不可见回退)
  • 占用:两面记入节点间占用,本折弯上该外一级不再做节点内跨折弯一级—二级 ✓

② RD2 — 50 mm(节点间,边—边 可见×可见)

  • 配对:#1 基体折弯2 ↔ #2 基体折弯3
  • 面:A=9451.61、B=3495.80 mm²
  • 面距≈50 mm,棱中点距≈50 mm,1 组候选即成功
  • 典型 台阶带 5~100 mm 场景,与规则「常见 ~20~50 mm」一致

③ RD3 — 60 mm(跨圆弧一级—二级,#2 基体折弯3)

  • 外一级:2791.61 mm²(与 #1 图邻接共享面,日志已标明只配「跨圆弧另一侧台阶二级」)
  • 拾取:可见×可见,棱中点距≈24.5 mm,SystemValue=60 mm(Finalize 校验通过,说明沿测量方向的面距/锚点与 60 mm 一致,非简单 3D 弦长)
  • #0 基体折弯1 同路径:跨圆弧无候选(二级扫描 0)→ 合理跳过,未误标

④ RD4 — 30°(节点内,边线折弯1,非 90°)

  • 规则分支:30° → 内弧侧相交一级面标角度
  • 面:2823.96 ↔ 1996.28 mm²(图邻接大面 + 内法兰小面,与规则示例一致)
  • 方法:公共棱 0 条 → 两侧非平行于轴的直棱中点 SelectByRay,棱夹角误差≈0°
  • 类型=1(角度尺寸)✓

⑤ D1@草图14 — 33.46 mm(节点内,内弧点—二级面)

  • #3 边线折弯1:非 90° 唯一允许的一级—二级路径(点—面,非边—边)
  • 配对日志写面距≈162.4 mm 是几何筛选语境;最终 SystemValue≈33.46 mm 为草图点—二级面实际标注值

⑥ D2@草图14 — 47.26 mm(节点间,90° ↔ 30°)

  • 配对:#0 基体折弯1 ↔ #3 边线折弯1
  • 约 90° 侧:外一级 9451.61 mm²(非共边一级面)
  • 非 90° 侧:内弧草图点 ↔ 约 90° 非共边面(规则「一侧约 90°、一侧非约 90°」专用路径)
  • 未走外圆柱边—边(禁止 90°↔非 90° 外一级边—边)✓

4. 规则执行是否「干净」(跳过项 = 成功的一部分)

现象 解读

三个基体折弯 90°:「本折弯二级面不标」

节点内不标本折弯外一级—二级,改走节点间 / 跨圆弧 ✓

二级候选为圆柱面 ×4/折弯

构建阶段过滤,避免误把圆柱当台阶 ✓

节点内跳过 ×4(外一级已用于节点间)

占用表生效,防止同一面重复标距 ✓

节点间内弧中点「约 90° 跳过画点」×3

90° 节点间禁止内弧中心距 ✓

#0 跨圆弧无候选

本折弯另一侧无合格台阶二级,不强行建尺 ✓

原因统计里成功 6 类、跳过/无候选 若干类并存,说明流水线是「能标的标、不能标的记原因」,而不是静默失败。


5. 与规则文档的对照亮点

  1. 161 mm:走「顶点跨距优先」而非法向 10 mm — 对应 benddim_rule.txt 节点间面距分解逻辑。
  2. 50 mm:可见边边—边 + 面距≈棱距一致 — 台阶带典型成功样本。
  3. 跨圆弧 #2:共享外一级 + 另一侧台阶二级,且未与节点间占用冲突(占用的是 3495/9451 等其它面)。
  4. 30° 边线折弯:角度 + 内弧点—二级面 + 与 #0 的点—面 — 三条非 90° / 混合路径齐全。
  5. 未出现内弧中心(90° 节点间)、内弧一级面之间(90°)、外圆柱一级—二级(30° 节点内)等禁止项。

6. 仍可留意的细节(非失败)

  • 「涉及 2/4 个折弯节点」:4 个节点都参与图与尺寸链,但只有 基体折弯3、边线折弯1 在构建时带有可用二级面;基体折弯1/2 主要靠节点间与图结构,无本折弯二级面尺寸 — 与日志一致。
  • RD3 日志中「两面距≈0、棱中点≈24.5、SystemValue=60」:说明 Finalize 以测量方向上的有效面距/锚点为准,不是简单取棱中点弦长 — 符合规则对 AddDimension2 后校验的描述。
  • 基体折弯1 跨圆弧未标:若零件上确有另一侧台阶,需后续看该侧二级是否未扫出或面距 <0.8 mm;当前日志显示扫描 0 候选,属保守正确。

7. 一句话总结

这是一次规则分层清晰、占用与图邻接约束生效、可见/不可见拾取分流正确的成功样本:2 条约 90° 节点间外一级距(161 / 50 mm)、1 条跨圆弧台阶(60 mm)、1 个 30° 内弧角度、2 个草图点相关距(33 / 47 mm),且所有应跳过的 90° 内弧/圆柱二级/重复面路径均被原因统计记录,与 benddim_rule.txt 设计意图一致。

若你希望,我可以把上述 6 个尺寸整理成「尺寸编号 → 规则条款 → 面面积键」对照表,方便写进设计笔记或回归用例。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐