Lab Hardware CAD 制造极限指南:为科研硬件选对工艺、公差与材料
【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000+ scientists worldwide. 165 ready-to-use validated skills plus 100+ scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills
这篇指南以 scientific-agent-skills 仓库中 lab-hardware-cad 技能的制造极限参考文档为主体,系统讲解 FDM、SLA/DLP、SLS、CNC 铣削与激光切割五种工艺的典型公差、最小壁厚与最小特征,配合间隙与螺纹嵌件的设计规则,以及热、化学、生物相容性、光学四个维度的材料选型。读者读完将掌握"先选工艺、再定几何、后配材料"的完整决策链,并学会用仓库自带的check.py脚本把最大实体条件(MMC)、配合间隙等关键数字变成机器可验证的检查项。
为什么要在画任何几何之前读这份文档
fabrication-limits.md的第一句话就点明了它的地位:"Read this before finalising any geometry. Process determines what geometry is possible; material determines whether the part survives the lab."(在确定任何几何之前先读它。工艺决定几何是否可实现,材料决定零件能否在实验室存活。)
这与 SKILL.md 规定的强制工作流第 3 步完全对应:"Choose the process before choosing the geometry"(先选工艺,再选几何)。SKILL.md 明确指出,FDM 无法保证 ±0.05 mm 的精度,未做后固化与测试的 SLA 树脂通常不适合接触细胞,工艺与材料必须记录在模型 docstring 中。一个几何上完美但材料选错的零件会在服役中失败:高温灭菌循环使 PLA 变形、许多溶剂使亚克力龟裂、未固化的 SLA 树脂具有细胞毒性。
文档中的每一个公差数字都附带同样的警告:具体数值取决于特定的机器、材料与操作者,它们的作用是帮助选择工艺和确定首件(first article)的尺寸,最终必须用试切样件(test coupon)验证。
工艺公差总览:一张表看懂五种工艺的边界
原文档给出了核心的工艺公差规划表,这是整个技能选型决策的起点:
| 工艺 | 典型公差 | 最小壁厚 | 最小特征 | 备注 |
|---|---|---|---|---|
| FDM | ±0.3 mm(超过 100 mm 时常更差) | 1.2 mm(3 × 0.4 mm 喷嘴) | ~0.8 mm | 各向异性:跨层方向弱得多。多孔。 |
| SLA / DLP | ±0.1 mm | 0.8 mm | ~0.3 mm | 表面与细节更好。树脂种类主导性能。 |
| SLS(尼龙) | ±0.2 mm | 0.8 mm | ~0.5 mm | 各向同性,无需支撑,表面略多孔。 |
| CNC 铣削 | ±0.05 mm 或更好 | 金属中 0.8 mm | 由刀具直径决定 | 内角带有刀具圆角——无法铣出尖锐内角。 |
| 激光切割 | ±0.1 mm | 不适用 | 切缝(kerf)~0.1–0.3 mm | 仅限 2D。厚板材有边缘锥度。必须补偿切缝。 |
这些数字与 SKILL.md 中的公差与配合章节互为印证:SKILL.md 明确写道"标称尺寸不等于配合"(A nominal dimension is not a fit),每个配合尺寸都需要根据工艺公差刻意选择间隙,并建议在投入完整零件前先打印关键接口的试切样件。
从源码层面看,公差意识贯穿了整个验证体系。check.py 的facts子命令(见 check.py)会报告is_valid、包围盒、体积、表面积、质心与实体数;gen.py 在每次生成时都会评估模型声明的checks()量规并打印 PASS/FAIL,任一失败即非零退出——一个违反自身声明几何的零件永远不会悄悄变成交付物。数值检查之外,SKILL.md 第 6 步强制要求渲染快照并真正查看,因为is_valid与正确的包围盒完全可能伴随一个切错面的口袋或一个被倒角吃掉的凸台。
两个最容易踩的坑
原文档特别指出两个常被忽视的后果:
- 孔打印出来偏小:FDM 和 SLA 都是如此。一个建模为 6.0 mm 的孔通常实测小于 6.0 mm。功能孔径要加大(oversize),或者预留铰孔(ream)余量。这也解释了 standards.json 中光学面包板数据的一个细节:M6 螺钉的"正常配合"(normal fit)间隙孔是 6.6 mm 而非 6.4 mm,注释明确写着"打印件上优先选这个"(Prefer this on printed parts);optomechanics.md 同样强调打印孔偏小,所以打印件用 6.6 mm 而不用 6.4 mm。
- 铣削内角无法做到尖锐:如果铣削的型腔必须容纳方形零件,需要加角部避让(corner relief)切口。对于圆角零件,只要刀具半径不超过零件的最小圆角半径,刀具圆角就无害——详见 labware-adapters.md 中的圆角半径规则。
激光切割专项规则
激光切割最容易在交接环节出错,原文档给出了完整规则:
- 切缝方向由物理决定,必须在交接时讲清楚。光束会移除一条以绘制线为中心的宽度为 k(约 0.1–0.3 mm)的条带。因此沿线上切割会让孔与内部切口偏大约 k,而零件外轮廓偏小约 k。必须说明 DXF 采用哪种约定(默认假定为"沿线"on-the-line),要么让加工厂补偿,要么自己补偿几何并声明,绝不能两者都做。
- 切割几何放在命名图层上,每个操作一个图层(如
CUT、ENGRAVE)。加工厂按图层或颜色设定功率与速度,放在 layer 0 的几何会迫使他们猜测。 - 切割顺序很重要:先切内部特征再切外轮廓,否则零件一旦从板材上脱离就会移位。
- 板材不是标称厚度:"3 mm"亚克力实际常在 2.8–3.2 mm 之间,按标称设计的槽位会偏松或偏紧。溶剂焊接接头优先用**浇铸(cast)**亚克力而非挤出(extruded)——切边更干净、蒸汽龟裂更少——但要记住醇类无论如何都会使亚克力龟裂(见下文化学部分)。
- 激光切割边缘锋利且略带锥度,任何人手接触或动物接触的部件都要注明去毛刺或火焰抛光。
配合与间隙:标称尺寸不产生配合
原文档给出了按工艺、按配合类型的每侧间隙规划表:
| 配合类型 | FDM | SLA | CNC |
|---|---|---|---|
| 自由滑动(板落入型腔) | 0.40 mm | 0.20 mm | 0.10 mm |
| 定位但可徒手拆卸 | 0.25 mm | 0.10 mm | 0.05 mm |
| 压配 / 过盈 | -0.05 mm | -0.03 mm | -0.02 mm |
这张表在 SKILL.md 中作为"常用默认值"再次出现,并强调它们只是首件的起点而非保证。
最大实体条件(MMC):另一半的零件也有公差
原文档反复强调一个核心原则:记住"另一个"零件也有公差。当与标准化组件配合时,接收特征必须按该组件的**最大实体条件(maximum material condition)**设计,而不是标称值——按标称设计的型腔只能适配合规零件中较小的那一半。
以 standards.json 中的 SLAS 微孔板足迹为例:ANSI/SLAS 1-2004 规定足迹 127.76 × 85.48 mm,公差 ±0.25 mm,因此处于公差上限的板是 127.76 + 0.25 =128.01 mm。按 127.76 + 间隙切出的型腔会在约一半的板上卡死。设计说明中给出的正确算法是:型腔 = 最大实体条件(128.01)+ 每侧间隙。labware-adapters.md 给出了完整计算示例:pocket_l_mm = plate_l_mm + plate_tol_mm + 2 * fit_clearance_mm,即 127.76 + 0.25 + 2 × 0.40 =128.81 mm。
在模型中,这个意图通过intent: "envelope"声明并交给机器检查。SKILL.md 的接口声明契约定义了两种意图:
"envelope"——该特征必须容纳任何合规零件(型腔、孔、槽),按最大实体条件加间隙做单侧检查;"match"——该零件自身必须符合标准(对称公差带)。
检查脚本的实现位于 check.py 的_evaluate函数:envelope意图下,接受下限为nominal + tol_plus + offset(即 MMC 加总间隙),只做单侧判定;match意图下则是nominal ± tol ∓ offset的对称带。offset(间隙)必须非负——代码注释明确指出,负间隙会让声明移动自己的接受带,从而认证一个不合格的值;如果特征是刻意做小的,应该在报告中说明,而不是编码成负间隙。
原文档给出了两条实战命令。一是检查 manifest 中声明的所有接口:
python scripts/check.py interfaces out/part.manifest.json二是手工检查单个数字(适用于接口是内部特征——型腔、孔、槽,外部包围盒无法体现的情况):
python scripts/check.py fit --standard slas-microplate-footprint \ --intent envelope --clearance 0.8 --value footprint_length=128.81注意--clearance 0.8是总间隙:每侧 0.40 mm 就是 0.80 mm。从源码看(check.py),--value模式直接比较声明数值,无需几何内核即可运行;而--intent envelope会按nominal + tol_plus + clearance计算单侧下限并报告余量(headroom)。
但 SKILL.md 对check.py interfaces的能力边界有严格说明:它检查的是声明的数字——能抓住抄错的尺寸、选错的标准、标称代替 MMC 的错误——但从不测量实际几何。用与检查相同的常量计算出的值必然以零余量通过。因此"接口检查通过"绝不能作为"几何正确"的证据,几何正确性要靠facts和快照来验证。同样,check.py fit测量的是外包围盒,labware-adapters.md 明确指出:对载板(carrier)使用fit会得到比型腔大 6 mm 的外墙尺寸,无论型腔多正确都会失败——所以内部接口必须声明,而不是从包围盒测量。
值得注意的相邻规则:圆角公差方向
原文档引用了 labware-adapters.md 中的"圆角半径规则",值得在此展开:SLAS 板的角半径是 3.18 ±1.6 mm,真实角半径在 1.58 到 4.78 mm 之间。方向很关键——板角是凸的,型腔倒角是向内凸出的凹材料,所以尖锐的内部型腔角永远能避开圆角板(未用的角是空的空间);反而是大于板角半径的型腔倒角会卡住。把倒角做到板的最大角半径恰恰是反的——它只适配处于公差上限的板。安全选项按优先级是:角部避让切口(永远清除、打印铣削都干净、是标准修法)、不大于板最小角半径(SLAS 板为 1.58 mm)的倒角、以及仅当R ≤ r_min + ~3.4 × 每侧间隙时才能用的大倒角(作为最后手段)。
螺纹与嵌件:打印螺纹通常是错误
原文档对螺纹给出了一个斩钉截铁的判断:"Printed threads are usually a mistake."(打印螺纹通常是错误。)因为层分辨率与螺距同量级,打印螺纹强度弱、尺寸不可靠、还会脱落颗粒。
按偏好降序,原文档给出四级方案:
- 热熔螺纹嵌件(heat-set threaded inserts)——打印件的标准解决方案。建模一个直孔到嵌件制造商规定直径(随嵌件而异,需查数据表),并保证足够的周边壁厚,通常至少 2 mm。
- 通孔加六角槽内的嵌入式螺母(captive nut)——可靠且便宜。
- 直接在打印材料上攻丝——仅适用于轻载荷、不常拆装的接头。
- 打印螺纹——只用于粗螺纹(大约 M6 及以上),绝不要用于细螺纹,如 0.635 mm 螺距的 SM1。
第四点的典型案例在 optomechanics.md 与 standards.json 中:SM1 是 1.035 inch-40 螺纹,螺距 0.635 mm——这个数字接近甚至低于大多数 FDM 打印机的实用分辨率,在桌面 SLA 上也很勉强;打印的 SM1 螺纹要么咬合不上,要么磨损并把颗粒脱落进光路。正确做法是:钻一个间隙孔配合购买的 SM1 转接件或压环、设计金属螺纹嵌件、或直接用压紧法兰和螺钉夹持光学元件。
取向与各向异性:FDM 的取向是设计决策
原文档强调,对于 FDM 尤其如此:取向是设计决策,不是打印细节。
- 零件跨层方向比沿层方向弱得多。取向要使载荷沿层方向传递,并在模型 docstring 中声明预期取向。
- 超过约 45° 的悬垂需要支撑,支撑面粗糙且尺寸差。若某表面是密封面或配合面,应使其取向避免被支撑。
- 轴垂直打印的孔是圆的;水平打印的孔顶部会下垂。需要保持圆形的水平孔要加泪滴形(teardrop)或倒角。
- 树脂打印中的每个封闭腔体都需要排液路径,详见 microfluidics.md。该文档进一步给出工艺级的最小通道数据:台式 SLA/DLP 的实用最小通道约 200–500 µm,封闭通道低于约 0.5 mm 时常打印堵塞;FDM 层间孔隙会泄漏,不适合密封通道,只用于支架与歧管。
材料选型:热、化学、生物相容性、光学四个维度
热性能
原文档给出了材料服务温度上限与能否高压灭菌(121 °C)的对照表:
| 材料 | 近似服务上限 | 可高压灭菌(121 °C)? |
|---|---|---|
| PLA | ~50-60 °C | 否——远低于灭菌温度即变形 |
| PETG | ~70-80 °C | 否 |
| ABS / ASA | ~90-100 °C | 勉强,通常否 |
| 聚丙烯 | ~100 °C | 勉强 |
| 尼龙(SLS) | ~120-160 °C | 有时;按牌号验证 |
| PEEK | >250 °C | 是 |
| 不锈钢、铝、玻璃 | 高 | 是 |
除非是验证过的高温材料,否则默认打印件不可高压灭菌。替代方案是化学或气体灭菌,但要对照下面的溶剂说明检查其兼容性。validation.md 第 6 节把这条落实为检查项:灭菌方法必须明确声明且材料必须真正耐受——"捕获:亚克力在 70% 乙醇下龟裂;PLA 在高压灭菌器中变形"。
化学兼容性
清洗剂兼容性常常比样品兼容性更致命,原文档列出关键事实:
- **亚克力(PMMA)**接触醇类(包括 70% 乙醇)会龟裂——对用乙醇消毒一切设备的实验室是严重问题。
- 聚碳酸酯被许多溶剂和部分碱性清洁剂侵蚀。
- PLA会水解,在温热、潮湿或反复清洗的服役环境中降解。
- PP、PTFE、PEEK化学耐受性广,是接触溶剂的稳妥选择。
原文档的最终建议是:永远要问零件将被什么清洗,而不只是装什么。清洗剂兼容性比样品本身更容易导致失效。
生物相容性
- **未固化的 SLA 树脂有细胞毒性。**即使标称生物相容的树脂也要求制造商完整的后固化与清洗方案,且溶出物仍可能影响敏感细胞实验。
- 任何接触细胞、组织或动物的部件:接触表面优先选择玻璃、医用级聚合物或 PTFE,打印件用作不接触样品的支架。
- 树脂数据表上的"生物相容"指的是特定认证工艺和应用,不会自动转移到你的打印机、你的固化方案或你的实验。要明说这一点,而不是暗示打印件对细胞安全。
光学性能
- 打印和铣削表面会散射,不是光学表面。
- 大多数打印树脂自发荧光,且常常很强,会污染荧光读数。
- 黑色并不自动不反光。
- 需要光学表面时使用玻璃或键合薄膜,并围绕它建模支架。optomechanics.md 补充了细节:黑色树脂和黑色耗材常常相当镜面反射;螺纹和层线在焦点附近会充当衍射结构;microfluidics.md 则指出成像窗口应使用键合盖玻片或薄膜,模型必须规定其厚度以使物镜工作距离成立。
成本与交期现实
原文档要求推荐工艺时必须提及成本现实:FDM 是数小时和几毛钱;SLA 是数小时和中等成本;SLS 与 CNC 通常外包,交期数天且成本高得多。一个需要 ±0.05 mm 的设计已经把用户绑定到 CNC——要在报价阶段之前就点明这个权衡,而不是让用户到询价时才发现。
这一现实也反哺到验证流程:validation.md 第 8 节要求在报告中给出工艺与材料及理由、每个接口尺寸的来源与公差、所选间隙与配合类别、快照所见、未通过的检查与无法验证的尺寸,以及——只要设计依赖配合——就建议先打印关键接口的试切样件再投入完整零件。
制造前的最终检查
原文档的结尾指向 validation.md 的制造前检查清单。该清单把"后果写在每条检查项旁边",因为"没有后果的清单会被跳过",共八节:
- 溯源:STEP 必须由
gen.py从当前模型源码生成;manifest 的source.sha256必须与模型文件匹配(捕获:静默编辑导出的 STEP 使设计不可复现);参数必须带单位命名。 - 几何健全:
is_valid为真、solid_count符合预期(通常为 1)、体积合理、每个几何要求在checks()中声明并通过。 - 接口:每个接口尺寸有书面来源(标准 ID、厂商图纸或用户测量),没有一个是凭记忆写的;标准覆盖的接口必须声明并通过
check.py interfaces;接收标准件的特征用intent: "envelope";verified: false的标准条目必须对照原始文档确认;公制与英制确认无误且表达式中不混用。 - 配合与装配:每个配合尺寸有按工艺选择的刻意间隙;多件装配做过干涉检查(
check.py clearance out/a.step out/b.step --min 0.3);刚性多孔安装图案至少有一个槽(捕获:四孔螺栓图案在累积公差下卡死)。 - 可制造性:最小壁厚与特征尺寸在所选工艺范围内;打印/加工取向已声明且载荷沿层方向;螺纹用嵌件或嵌入式螺母而非打印螺纹(除非粗螺纹);封闭腔体有排液路径;铣削内角有刀具圆角避让。
- 材料:材料兼容清洗剂而不只是样品;灭菌方法已声明且材料耐受;接触细胞/组织/动物的部件材料有依据或已设计为不接触;光学要求(自发荧光、散射、透射)已处理。
- 视觉审查(强制):最近一次生成后已渲染并查看快照,确认特征在预期面上、极性正确、每个端口/孔/凸台存在且在体内并贯穿、没有特征被倒角吞掉、孔径畅通。这一步绝不被数值检查通过而豁免。
- 报告:显式给出工艺与材料及理由、每个接口尺寸的来源与公差、所选间隙与配合类别、快照所见(描述而非"已生成快照")、未通过的每项检查与无法验证的每个尺寸,以及试切样件建议。
清单中的验证命令与 SKILL.md 规定的五步检查流水线一致:gen.py生成并评估量规、check.py facts报几何事实、check.py interfaces检查声明接口、check.py geometry对导出的 STEP 重跑量规(因为 STEP 才是权威产物)、snapshot.py渲染六视图。注意check.py standards与针对 manifest 的check.py interfaces仅用标准库即可运行(check.py 明确说明),而facts、geometry、probe、bores、clearance需要 build123d。
与其他家族参考文档的分工
这份制造极限文档是整个 lab-hardware-cad 技能的"横向支撑层",它与四份纵向家族参考配合使用——SKILL.md 第 1 步要求按零件类型只加载一个家族参考,而制造极限是所有家族在进入几何设计前都必须先读的:
| 文档 | 主题 | 与制造极限的交叉点 |
|---|---|---|
| microfluidics.md | 芯片、模具、流道 | 最小通道按工艺划分;封闭通道排液;树脂细胞毒性 |
| optomechanics.md | 面包板、笼式系统、透镜管 | 打印孔偏小→M6 用 6.6 mm;SM1 细螺纹不打印;散射与自发荧光 |
| labware-adapters.md | 微孔板、比色皿、管架 | 型腔按 MMC+间隙计算;圆角方向规则;公差表 |
| behavior-rigs.md | 动物行为装置 | 清洁与耐用性(对齐化学兼容性) |
| validation.md | 制造前检查清单 | 本文最后一节的完整展开 |
其思想贯穿始终:工艺决定几何上限,材料决定服役下限,两者都必须在画第一笔之前确定,并在模型的 docstring、interfaces()声明和check.py检查中留下机器可验证的证据。
【免费下载链接】scientific-agent-skillsTurn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 190,000+ scientists worldwide. 165 ready-to-use validated skills plus 100+ scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.项目地址: https://gitcode.com/GitHub_Trending/cl/scientific-agent-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考