钣金展开·折弯计算·免费版
红线
- K 因子必须实测标定:默认值只作起点,实际值受材料、厚度、折弯半径、模具、方向影响;批量生产前必须用试片标定。
- 不编造材料参数:回弹量、最小折弯半径需来自材料厂商数据或试片实测。
- 不保证一次成型合格:首件必须试折验证。
- 只用开源工具:Python 计算 + ezdxf 输出,不引用付费钣金模块。
何时使用
- 要把折弯件算成展开图(下料尺寸)。
- 不知道 K 因子、折弯扣除怎么取。
- 要判断孔离折弯边太近会不会变形。
- 要设计工艺缺口、止裂槽。
- 折弯开裂、回弹、尺寸对不上要排查。
反触发:
- 复杂拉伸/深冲件 → 需模具设计与试模,超出本技能范围。
- 精密回弹补偿 → 需模具厂实测数据。
职责边界
- 做:展开计算、工艺规则检查、DXF 输出、缺陷归因。
- 不做:替代试模与实测标定、保证成型尺寸。
主流程
第 1 步:参数确认(质检闸 A)
| 参数 | 说明 | 来源 |
|---|---|---|
| 料厚 t | 实际料厚(标称 vs 实测有差) | 实测千分尺 |
| 折弯内半径 R | 通常由下模开口决定 | 模具表 |
| 折弯角度 θ | 常见 90° | 图纸 |
| 材料 | SPCC / SECC / SUS304 / AL5052 | 图纸 |
| K 因子 | 中性层位置系数 | 试片标定 |
| 折弯方向 | 顺纹/横纹(影响开裂) | 排样时考虑 |
> 质检闸 A:K 因子未标定 → 结果标注「理论值,需首件验证」,不许直接下料批量。
第 2 步:中性层与 K 因子
中性层:折弯时既不伸长也不缩短的那一层,位于料厚内部。
def neutral_offset(t, K):
"""中性层距内表面的距离"""
return K * t
K 因子参考起点(必须标定):
| 情况 | K 因子起点 |
|---|---|
| R/t ≈ 1(小半径) | 0.33~0.40 |
| R/t ≈ 2 | 0.40~0.45 |
| R/t > 3(大半径) | 0.45~0.50 |
| 软铝、软铜 | 偏大(0.45~0.5) |
| 不锈钢、硬态 | 偏小(0.33~0.42) |
> ⚠️ 上表仅为起点。正确做法:切一根已知宽度试片,折弯后测量,
> 反推 K 因子,写入企业参数表。
# 试片反推 K 因子
def solve_K(t, R, theta_deg, L_total, flange_a, flange_b):
"""已知:料厚、内R、角度、实测总长、两直边长 → 反推 K"""
import math
theta = math.radians(theta_deg)
# L_total = a + b + BA,BA = theta*(R + K*t)
BA = L_total - flange_a - flange_b
return BA / (theta * t) - R / t
第 3 步:展开长度计算
折弯余量 BA(Bend Allowance):
import math
def bend_allowance(t, R, theta_deg, K):
"""中性层弧长"""
theta = math.radians(theta_deg)
return theta * (R + K * t)
def flat_length(straights, bends, t, R, K):
"""straights: 各直线段长度列表;bends: 各折弯角度列表(度)"""
L = sum(straights)
for th in bends:
L += bend_allowance(t, R, th, K)
return round(L, 2)
# 例:U 形件,底 50,两侧各 30,两个 90° 折弯,t=1.5,R=1.5,K=0.4
print(flat_length([30, 50, 30], [90, 90], 1.5, 1.5, 0.4))
折弯扣除 BD(Bend Deduction):
def bend_deduction(t, R, theta_deg, K):
"""BD = 2*外尺寸 - 展开长 = 2*(R+t)*tan(θ/2) - BA"""
theta = math.radians(theta_deg)
ossb = (R + t) / math.tan(math.pi / 2 - theta / 2) # 外表面交点偏移
return 2 * ossb - bend_allowance(t, R, theta_deg, K)
def flat_from_outside(outer_dims, t, R, theta_deg, K):
"""按外尺寸计算展开长(图纸常标外尺寸)"""
return sum(outer_dims) - sum([bend_deduction(t, R, theta_deg, K)] * (len(outer_dims) - 1))
BA 与 BD 换算关系:
展开长度 = Σ直边 + ΣBA
展开长度 = Σ外尺寸 - ΣBD
BD = 2 * (R + t) * tan(θ/2) - BA
> 不同软件(SolidWorks / Creo / FreeCAD)默认用 BA 或 BD 表,
> 对接时要确认对方用的是哪套,否则展开差一截。
第 4 步:最小折弯半径
MIN_R_RATIO = {
# 参考起点:最小内半径 / 料厚,需按材料状态与厂商数据确认
"SPCC": 0.5, "SECC": 0.5, "AL5052-O": 0.5,
"SUS304": 1.0, "AL6061-T6": 2.0,
}
def min_bend_R(material, t):
return MIN_R_RATIO.get(material, 1.0) * t
开裂风险判据:
- R/t 越小,外表面拉伸越大 → 越易开裂。
- 硬态材料(T6、硬态不锈钢)更易裂。
- 折弯线与轧制纹路平行时最易裂 → 排样时尽量让折弯线垂直于纹路。
> 出现开裂:加大 R、改软态材料、折弯线垂直纹路、加热(部分材料)。
第 5 步:孔与特征的最小距离
| 规则 | 参考值(t=1.5 起) | 原因 |
|---|---|---|
| 孔边距(孔到料边) | ≥ 1.5t 且 ≥ 3mm | 太近会豁口 |
| 孔到折弯线 | ≥ 2t + R | 太近孔会变形 |
| 两孔间距 | ≥ 2t 且 ≥ 3mm | 中间材料断裂 |
| 槽端到料边 | ≥ 1.5t | 同上 |
| 折弯边最小直边高 | ≥ 2t + R | 太短压不住(模具咬不住) |
| 缺口宽度 | ≥ t 且 ≥ 1mm | 激光切割能力 |
def check_rules(t, R):
return {
"孔边距": max(1.5 * t, 3.0),
"孔到折弯线": 2 * t + R,
"两孔间距": max(2 * t, 3.0),
"最小直边高": 2 * t + R,
}
print(check_rules(1.5, 1.5))
> 最小直边高是最常被忽略的:折弯边太短,模具压不住料,
> 会滑出或直接折不起来。设计时要保证 直边高 ≥ 2t + R。
第 6 步:工艺缺口设计
| 缺口 | 用途 | 画法 |
|---|---|---|
| 止裂槽 | 折弯转角处防撕裂 | 在折弯线两端切小圆孔(Φ≥t)或方缺口 |
| 让位缺口 | 避免折弯后两片相撞 | 在相交处预留间隙 |
| 工艺孔 | 定位、挂具、走线 | Φ3~Φ6 常用 |
| 拉深让位 | 局部凸起处 | 按展开图形状外扩 |
止裂槽:折弯线两端若与外部轮廓相交,必须在交点处切止裂槽,
否则折弯时材料会沿轮廓撕裂。
第 7 步:展开图输出
import ezdxf
def export_flat(contour, holes, t, R, K, filename):
"""contour: [(x,y)...] 外轮廓;holes: [((cx,cy), d)...]"""
doc = ezdxf.new("R2010")
msp = doc.modelspace()
msp.add_lwpolyline(contour, close=True)
for (cx, cy), d in holes:
msp.add_circle((cx, cy), d / 2)
# 折弯线用单独的图层(便于激光打标/折弯定位)
doc.layers.add("BEND", color=5)
doc.saveas(filename)
DXF 交付要点:
| 项 | 说明 |
|---|---|
| 图层 | 轮廓 / 折弯线 / 丝印 分层 |
| 单位 | mm(必须声明) |
| 闭合 | 外轮廓必须闭合,否则切割机报错 |
| 无重复线 | 重复线会被切两次 |
| 无极小线段 | 会拖慢或出错 |
| 折弯线 | 单独图层,标注折弯方向与角度 |
## 钣金下料清单
- 料厚:1.5 mm
- 材料:SPCC
- 展开尺寸:XXX × YYY mm
- 折弯数:N 处(90° × N)
- K 因子:0.40(试片标定 / 未标定⚠️)
- 折弯内 R:1.5 mm
- 表面处理:<...>
- ⚠️ 首件必须试折验证展开尺寸
第 8 步:首件校验(质检闸 B)
- [ ] 展开尺寸与实物实测对比(误差 < 0.2mm 才可接受)
- [ ] 折弯角度是否到位(回弹导致角度偏大)
- [ ] 孔位是否偏移(孔离折弯近时最容易偏)
- [ ] 折弯处有无开裂(尤其外表面)
- [ ] 装配间隙是否合适
- [ ] 若超差 → 反推修正 K 因子,写入参数表
> 质检闸 B:首件未验证 → 不许批量下料。
常见缺陷归因
| 现象 | 原因 | 处理 |
|---|---|---|
| 折弯开裂 | R 太小、硬态材料、折弯线顺纹 | 加大 R、换软态、改排样方向 |
| 角度不到位(回弹) | 材料回弹(不锈钢/铝明显) | 过折补偿、加大压料、换模具 |
| 尺寸偏大/小 | K 因子不准 | 试片反推修正 |
| 孔变形 | 孔离折弯太近 | 加大距离或先折后加工 |
| 折弯边压不住 | 直边太短 | 加大直边 ≥ 2t+R |
| 表面压痕 | 模具不洁/无保护膜 | 加保护膜、清洁模具 |
| 折弯处扭曲 | 长边无支撑、定位不准 | 加定位、分段折 |
| 展开后干涉 | 未设计让位缺口 | 加让位缺口 |
失败降级
- 无 K 因子数据 → 用 0.4 起点,明确标注「理论值,首件必验」,并给出试片标定方法。
- 复杂成型件 → 建议与钣金厂沟通,用其模具参数反算。
- 高精度要求 → 建议做试片 + 首件,把实测值写回企业参数表。
依赖
- Python 标准库(math)+
ezdxf(开源,输出 DXF)。 - 本地运行,不联网、不调用任何付费钣金模块。
免责声明
钣金展开尺寸受材料批次、模具、设备、操作影响。
本技能提供计算方法与工艺规则,首件必须试折验证,
批量生产前必须完成 K 因子标定。
致谢
- 原创免费技能,基于公开的钣金展开计算方法与通用工艺实践重新组织撰写。
- 采用 MIT 许可,不依赖任何专有实现或付费服务。