c# solidworks 自动标注折弯7 图可视化,清晰定义,画点改画线

https://wwamf.lanzouu.com/iJywN3r2gc1c

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

折弯标注规则(与 benddim 源码一致,2026-06)

画线替代画点,cursor写的算法用点距离一直算不对,清晰了一些定义:邻接非共用外一级

玩异环到10点就满足了,写代码到10点没啥感觉,要不是突然跑通了,真的是浪费时间,cursor写的c#代码又不能热重载

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

节点内:

复制代码
- 禁止:本折弯内弧侧二级面参与一级---二级

- 仅:本折弯外圆柱侧一级面 ↔ 另一侧二级/三级台阶面;一级侧优先图邻接「共享外一级」

- 约 90° 一级---二级:优先草图线---线(两面平行棱),面距仅作候选排序;末端小面(约 60 mm² 等)可走 ⊥ 棱线---线

- 约 90° 一级---三级:外圆柱一级 ↔ 本折弯另一侧来源的三级面(三级作二级入库);须由与当前外一级不同侧的一级面引出

- 三级面内外由路径上二级圆柱/圆弧判定:经内圆柱传出时,不以内侧台阶平面为三级面,改以对侧外一级面为三级面配对

- 三级台阶面距仅设下限(约 0.75×板厚,最小 0.8 mm),无上限;采用 BREP 面距分解 Pick 值,不假定固定台阶深

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

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

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

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

- 节点内草图线---线:skipGlobalMeasureDedup,允许与节点间同数值不同位置各标一次;但与节点间已标面距/面积对重复则跳过

- 边---边 / 线---线:仅用各面上非公共棱;公共棱不参与标注

- 视图中可见边:Select4 绑定工程图边;禁止对可见边中点盲目 SelectByRay

- 视图中不可见棱:限定在所属面上拾取;优先可见边 Select4;边线棱用端点/中点 SelectByRay

- AddDimension2 后:SystemValue 与期望面距、锚点距偏差须 ≤ 容差,否则 EditUndo2 撤销

- 同一次命令相同测量值(0.5 mm 分桶)不重复建尺(混合边内弧点---本折弯二级 / 邻接外一级 除外,registerUniqueMeasure=false)

- 禁止:一级---二级两面不平行时走边---边(90° 改走线---线或面点)

节点间(双侧均约 90° 的图边):

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

- 面距:BREP 分解后优先大跨距 ⊥ 棱 SelectByRay(如法向 <15 mm 且顶点距 ≥80 mm 时取顶点跨距);否则台阶带/沿折弯/面内分量 Pick

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

- 禁止:含内弧一级的节点间面---面候选优先于外一级非连接配对(双 pass:先外一级,再内弧一级兜底)

【折弯角非 90°】

节点内:

复制代码
- 内弧侧两一级面之间:标「角度」;各面一条与折弯轴非平行的直棱,棱中点 SelectByRay(不用 Select4);配对为图邻接大面 + 内法兰小面(如 2823 ↔ 1996)

- 一级---二级:仅内弧草图点---二级面(点---面,斜棱拾取优先);禁止边---边、禁止二级棱

- 内弧草图点---外三级面:台阶带法向距;与节点间已尝试同距/面积对则跳过

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

- 若本节点与约 90° 折弯图邻接(混合边):节点内不再做「内弧点---二级面」「内弧点---外三级面」,留给节点间混合边路径

节点间:

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

- 一侧约 90°、一侧非约 90°(混合图边):不走外圆柱非连接一级面边---边;改走「内弧草图点」两条独立路径,同一图边可各成功一项:

    (1) 本折弯二级(种类:节点间·混合边内弧点---本折弯二级)

        · 非约 90° 侧内弧草图点 → 本折弯真实二级面(点---面,斜棱拾取 preferSlantEdgePick)

        · 候选来源:本折弯 SecondaryFaces,且剔除与约 90° 邻接节点任意一级面共面的面(如 9451 实为邻接 90° 外一级,不得当作 #3 二级)

        · 另从内弧一级面沿 ∥ 折弯轴棱传播补全本地二级(内弧一级引出二级)

        · 末端小面(约 60 mm²)可参与;不假定固定 mm 台阶深

        · 校验:拒绝板厚/弧半径量级;拒绝实测 ≈ 法向面距(斜棱拾取失败)

    (2) 邻接非共用外一级(种类:节点间·混合边内弧点---邻接非共用外一级)

        · 非约 90° 侧内弧草图点 → 约 90° 侧外圆柱一级面,排除图边连接共用面(如 2823 内弧一级)

        · 先斜棱拾取,失败再法向距拾取;与 (1) 独立去重,可同时落尺(如 ~33.5 mm + ~49 mm)

        · 成功后占用约 90° 侧该外一级面(仅阻塞本节点内跨折弯一级---二级)

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

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

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

  • 一级面:外圆柱侧一级面用于引出二级面(∥ 轴棱 → 邻面;内圆弧一级不引二级;须平面)

  • 邻面为圆柱/圆弧面时:沿 ∥ 折弯轴棱继续传递到下一平面,将该平面当作二级面(三级作二级);记录路径上二级圆弧面;二级面列表按平面去重

  • 若传播路径经内圆柱:三级面改用以配对的外一级面代替内侧台阶平面;须与当前外一级面平行

  • 约 90° 一级---三级:外圆柱一级 ↔ 本折弯另一侧来源的三级面;图边共用外一级面同样参与且优先,不受节点间占用阻塞

  • 圆柱轴垂直于工程图视图时,∥ 轴棱在图纸上常表现为轮廓边线

【命令执行顺序】

  1. 构建折弯图(节点 + 图边 ConnectedFirstFace)

  2. ProcessGraphEdges:先节点间(约 90° 外一级---外一级;混合边走内弧点双路径)

  3. 逐节点 ProcessBendNode(约 90° 一级---二级/三级;非 90° 角度 + 内弧点路径)

  4. ProcessGraphEdgesInnerArcMidpointDimensions(双侧非 90° 内弧中点,约 90° 图边跳过)

  5. 输出 benddim_reason_stats.log 原因统计

【公共】

  • 工程图引用零件:直接读 ReferencedDocument;引用装配体:从视图可见组件中取含边线折弯最多的零件

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

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

  • 不可见棱:所属面法向偏移后 SelectByRay,或可见时 Select4;可见棱仅 Select4

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

  • 节点间外一级占用按折弯节点记账;仅阻塞该节点上同一外一级参与本节点内跨折弯一级---二级

相关推荐
solidwork_s8 天前
SOLIDWORKS格式处理干货:STEP、IGS、X_T 优化技巧
solidworks
njsgcs17 天前
导出glb可视化让vlm看图找面 自己配合
智能制造·solidworks
花开月满西楼18 天前
零基础速学SolidWorks2026【曲面】曲面缝合
3d建模·solidworks·机械设计·机械绘图绘制
花开月满西楼18 天前
零基础速学SolidWorks2026【曲面】删除面
3d建模·solidworks·机械设计·机械绘图绘制
花开月满西楼18 天前
零基础速学SolidWorks2026【曲面】加厚曲面
3d建模·solidworks·机械设计·机械绘图绘制
花开月满西楼21 天前
零基础速学SolidWorks2026【曲面】边界曲面和等距曲面
3d建模·solidworks·机械设计·机械绘图绘制
花开月满西楼21 天前
零基础速学SolidWorks2026【曲面】平面区域和填充曲面
3d建模·solidworks·机械设计·机械绘图绘制
蓝悦无人机22 天前
SOLIDWORKS高级应用之方程
solidworks·参数化建模·if 判断语句
花开月满西楼22 天前
零基础速学SolidWorks2026【曲面】分割线
3d建模·solidworks·机械设计·机械绘图绘制
花开月满西楼24 天前
零基础速学SolidWorks2026【曲面】建模核心基础
solidworks·机械设计·机械绘图绘制