光机械安装座与光学平台硬件设计指南:lab-hardware-cad Skill 中的网格规格、笼式系统与可验证建模
光机械安装座与光学平台硬件设计指南lab-hardware-cad Skill 中的网格规格、笼式系统与可验证建模【免费下载链接】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技能的家族参考文档 optomechanics.md 为核心系统讲解如何为光学平台breadboard、30 mm 笼式系统cage system与光束路径设计可安装、可装配、可验证的定制硬件。你将掌握公制与英制网格为何不可互换、如何在建模前确定规格、如何用 clearance hole 槽孔吸收累计公差、为什么不要打印 SM 螺纹以及如何借助仓库自带的check.py工具链对接口尺寸做机器可验证的检查。先问系统再建模公制与英制网格不可互换光机械硬件中最昂贵、也最常见的错误是把公制光学平台当英制平台用。Metric 与 Imperial 光学硬件不可互换且差异小到像舍入误差、大到足以阻止装配。项目MetricImperial网格间距Grid pitch25.0 mm25.4 mm1 英寸螺纹孔Tapped holeM6 x 1.01/4-20 UNC典型边距Border12.5 mm12.7 mm一个跨四孔的距离上两套网格相差1.6 mm—— 远超任何 clearance hole 能吸收的余量。因此无法从请求中推断用户用的是哪套系统必须询问如果答案不可得把安装特征建模为**沿螺栓线的槽孔slots along the bolt line**而非圆孔让同一零件兼容两套系统并明确告知用户你这么做以及为什么。仓库在 assets/standards.json 中把这两套系统登记为两个独立标准条目optical-breadboard-metric与optical-breadboard-imperial并在设计注记中直接警告Ask which table the user has. Assuming the wrong system is the most common optomechanical design error.询问用户拥有哪套平台假设错系统是最常见的光机械设计错误。测试 tests/lab-hardware-cad/test_scripts.py 中的test_metric_and_imperial_grids_are_distinct也专门断言了两套网格的 nominal 值不同防止任何人把它们当成同一个数。你可以随时用内置工具查看标准数据python skills/lab-hardware-cad/scripts/check.py standards --show optical-breadboard-metric python skills/lab-hardware-cad/scripts/check.py standards --show optical-breadboard-imperial python skills/lab-hardware-cad/scripts/check.py standards --show cage-system-30mm python skills/lab-hardware-cad/scripts/check.py standards --show sm1-lens-tube-thread注意standards子命令仅依赖标准库即可运行无需安装 build123d这在 SKILL.md 中有明确说明。安装到光学平台clearance、counterbore 与两孔定位原则把零件固定到光学平台时遵循以下规则零件上开 clearance hole而不是攻丝孔。平台是攻丝的一方零件只负责过孔。M6 建议用 6.6 mmnormal fit而不是 6.4 mm——打印孔会偏小FDM 与 SLA 皆然详见 fabrication-limits.md。如果零件表面必须保持平整为螺钉头做沉孔counterboreM6 内六角螺钉头约需 11 mm 直径1/4-20 约 11.2 mm。沉孔深度按螺钉头高度而非习惯取值M6 头高 6.0 mm、1/4-20 头高 6.35 mm两个值都登记在optical-breadboard-metric/optical-breadboard-imperial的screw_head_height字段中4 mm 深的沉孔会让任何一种螺钉头高出 2 mm——那不叫平齐。永远不要依赖超过两个孔来定位零件。网格公差叠加打印公差后刚性四孔阵列必然卡死。标准做法是圆孔 槽孔一个孔定位槽孔吸收误差。这条原则在 validation.md 的装配检查清单中也被列为必须项Rigid multi-hole mounting patterns have at least one slot.打印零件是柔顺体。任何指向稳定性pointing stability有要求的场景打印件只是原型辅助工具而非最终零件——聚合物的热漂移和蠕变相对光学对准公差而言是巨大的。推荐打印件时必须向用户说明这一点。从源码看check.py的接口检查正是围绕这些数字建立的check.py interfaces会逐一核对模型声明declared的接口尺寸比如 clearance 值必须非负——check.py 中明确拒绝负数 clearanceA clearance widens the acceptance band; it cannot shift it.支柱与基座beam height 是项目级常量行业惯例各厂商略有差异使用前务必对照产品目录确认英制支柱 Ø1/2 英寸12.7 mm通常一端攻 8-32 螺纹另一端为 1/4-20 螺柱或过孔公制支柱 Ø12 mm通常攻 M4 螺纹通过 M6 接口连接平台支柱架post-holder 支柱可调高度但引入了柔顺关节基座pedestal或实心机加工垫块riser更刚硬。光束高度beam height是项目级常量不是单件零件的自由选择。平台上每个安装座都必须把光学元件放到同一高度。常见惯例是 3 英寸76.2 mm或 100 mm但这是逐实验室的选择向用户询问这个数字在模型中以beam_height_mm命名常量定义一次所有安装座的光学中心都从它推导。gen.py支持--param beam_height_mm100.0之类的参数覆盖因此把beam_height_mm设为模块级命名常量后同一个模型文件可以按需调整整条光路的基准高度。30 mm 笼式系统四孔共方阵的过约束陷阱30 mm 笼式系统是小尺寸自由空间装配的主导惯例杆间距 30.0 mm正方形布局以光轴为中心杆直径 Ø6 mmER 系列标准笼板厚 0.35 英寸8.9 mm。定制笼板custom cage plate时在 30 mm 正方形上布置四个杆孔孔径aperture放在四个杆孔的质心杆孔按你工艺的自由滑动间隙钻孔——fabrication-limits.md的参考值是CNC 约 6.2 mmSLA 约 6.4 mmFDM 约 6.8 mm。6.1 mm 是铰孔金属的数字——打印孔偏小且同一方阵上的四个孔彼此过约束所以这里更紧并不意味着更好。卡死在杆上的笼板比没有更糟因为它会把应力传导到整个装配体。笼板沿杆堆叠所以定制板的厚度直接消耗光程长度optical path length需要纳入光程预算。仓库的cage-system-30mm标准条目assets/standards.json完整记录了rod_spacing30.0、rod_diameter6.0、plate_thickness_typical8.9并在 design_note 中给出了按工艺选择孔径的完整建议与警告。按 build123d-patterns.md 中的模型约定一张定制笼板可以这样声明接口def interfaces() - list[dict]: return [ {feature: cage rod bore spacing, standard: cage-system-30mm, dimension: rod_spacing, value: rod_spacing_mm, intent: match}, {feature: cage rod bore diameter, standard: cage-system-30mm, dimension: rod_diameter, value: rod_bore_d_mm, intent: envelope, clearance: 0.4}, ]这里的语义在 check.py 的_evaluate中有精确定义intent: match—— 本零件自身必须符合标准对称公差带intent: envelope—— 该特征必须接受任何符合标准的零件口袋、孔、槽按最大实体条件maximum material condition名义值 正公差 你的 clearance 做单侧最小值检查。按名义值设计的特征只能装下合格零件中较小的那一半。这就是check.py interfaces能替你抓住 25.0 写成 25.4 这类替换错误的机制把网格间距、杆间距、孔径在模型的interfaces()中对照optical-breadboard-metric、optical-breadboard-imperial或cage-system-30mm声明而不是留给读者肉眼核对。SM 系列镜筒螺纹不要打印 0.635 mm 螺距SM1 是 1.035 英寸-40 螺纹用于固定 Ø1 英寸25.4 mm的光学元件螺距 0.635 mm25.4 / 40sm1-lens-tube-thread标准条目中登记为pitch: 0.635、thread_major_dia: 26.289、optic_dia: 25.4。不要打印 SM 螺纹。0.635 mm 螺距已达到或低于 FDM 的实际分辨率桌面级 SLA 也很勉强打印的 SM1 螺纹要么咬合不上要么会磨损galling并把颗粒剥落进光束路径。替代方案钻一个 clearance 孔使用购买的 SM1 转接环或压环retaining ring设计用于螺纹金属镶件threaded metal insert的直孔直接用压环 螺钉夹持光学元件。如果设计确实需要打印螺纹必须明确说明它需要试打印、且很可能失败。这条建议在 fabrication-limits.md 的Threads and inserts一节得到佐证打印螺纹按优先级排序在热熔镶件、过孔六角袋中的防松螺母、直接攻打印材料之后只允许粗螺纹约 M6 及以上使用永远不要用于 SM1 这类细螺纹。固定光学元件光学孔径神圣不可侵犯永远不要夹持光学元件的光学孔径clear aperture。只能接触正面的外环或边缘。在模型中把clear_aperture_mm定义为命名参数并在快照中确认没有东西侵入它。三点接触在运动学上正确且不会使光学元件变形。连续环形座continuous circular seat会过约束并引入应力双折射stress birefringence这对偏振实验至关重要。为热膨胀留出间隙。20 °C 时过盈配合的金属-聚合物安装在温度波动中可能开裂或卡死。保持力要轻且分散。单个紧定螺钉set screw压玻璃是弄碎玻璃的快捷方式。在checks()中把光学孔径内无侵入落成可测的 go/no-go 量规是可行做法例如为光束走廊声明一个clear圆柱区参考 build123d-patterns.md 中的beam clear at 15 mm above the bench示例。gen.py每次生成都会评估这些量规并在失败时让构建失败check.py geometry则针对已导出的 STEP 重新测量——这是interfaces比较声明数字之外真正触碰几何的检查。杂散光与散射STEP 文件看不见的敌人几何不是设计的全部STEP 文件展示不了以下任何一项打印表面散射强烈。任何会被光束照射的表面都应设置挡板baffled、偏离光轴倾斜或做表面处理。黑色不代表不反光。黑色树脂和黑色耗材常常相当镜面反射。在关键位置必须指定真正吸光的表面处理。螺纹线和层线在焦点附近会充当衍射结构。荧光实验场景下样品附近的打印材料可能自发荧光autofluoresce污染检测光路。这些都要向用户明示不要默认为打印外壳就是隔光的。fabrication-limits.md的Optical一节与 SKILL.md 的 Scientific caveats 也重复强调了同一组警告黑树脂不自动等于低散射打印/铣削表面不是光学表面。检查清单建模完成后必须运行对光机械零件完成建模后按以下命令链运行完整检查python skills/lab-hardware-cad/scripts/gen.py mount_model.py --outdir out/ python skills/lab-hardware-cad/scripts/check.py facts out/mount.step python skills/lab-hardware-cad/scripts/check.py interfaces out/mount.manifest.json python skills/lab-hardware-cad/scripts/snapshot.py out/mount.step --out out/mount.png各命令职责详见 SKILL.md 的脚本表gen.py执行模型的build()导出 STEP权威工件、STL网格预览与 manifest 清单记录源码哈希、已解析参数、声明的接口、库版本、实测包围盒与体积check.py facts报告is_valid、包围盒、体积、表面积、质心与实体数——is_valid: false说明几何已损坏先修源码再往下走check.py interfaces把模型声明的每个接口与标准数据库核对失败时以非零退出码终止snapshot.py生成六视图正交投影 等轴测渲染然后必须真正读这张 PNG。没有自动的螺栓阵列检查。接口检查比较的是尺寸而非孔的位置。因此在模型中从命名常量grid_pitch_mm计算螺栓阵列并在快照中确认所有安装孔都存在且完全贯通光学孔径位于预期位置且无遮挡沉孔在可操作的那一面没有任何东西侵入光学孔径或光束路径。关于快照有一条重要提醒六个视图是真实正投影轮廓是模型真实边线且未做隐藏线消除——透过材料看到的圆是远侧的孔不是窗口零件并不透明。公差与配合把 clearance 变成显式决策SKILL.md 与 fabrication-limits.md 都给出了每侧 clearance 的起步参考值配合类型FDMSLACNC自由滑动板入口袋0.40 mm0.20 mm0.10 mm可定位可手拆0.25 mm0.10 mm0.05 mm压入 / 过盈-0.05 mm-0.03 mm-0.02 mm这些只是首件的起点而非保证报告时要说明这一点并建议在投入整件前打印关键接口的试件test coupon。配合表之外还有一个经常被忽略的原则对方零件也有公差。与标准化组件配合时接收特征应按组件的最大实体条件设计这正是intent: envelope所强制的内容——测试 test_envelope_intent_requires_maximum_material_condition 用 128.56名义 0.8 clearance失败、128.81MMC 0.8 clearance通过的直接对比展示了这一点。从源码理解为什么这个工具链值得信任lab-hardware-cad的核心设计哲学在 SKILL.md 中讲得很清楚实验室硬件的难点几乎从来不是几何而是零件必须与由公开标准或厂商图纸固定了尺寸的设备配合——比板孔距宽 0.5 mm 就装不进读板机25.4 mm 的螺栓阵列拧不上 25.0 mm 的光学平台。这套 skill 的存在就是为了让这些数字正确且被检查。几个值得注意的实现事实模型文件是被执行而非被解析的。gen.py、check.py、snapshot.py都会导入*_model.py并调用其build()运行任意 Python。这是参数化 CAD 的本质——源码即设计。只运行本会话编写或用户从可信位置提供的模型文件对来自互联网或共享盘的模型先读再跑。interfaces()写成函数而非模块级列表。模块级INTERFACES列表在 import 时求值早于--param应用任何派生值都会被记录错gen.py在检测到静态列表 --param时给出显式警告gen.py。check.py interfaces只验证声明数字不测量几何。它抓转写错误、抓错标准、抓名义值代替 MMC 的错误但一个由与被检查常量同源计算出的声明会以零余量通过——不要引用它作为几何正确的证据facts和快照才是几何检查check.py。声明接口为空的清单是合法的。如果零件与内置数据库中的任何标准都不匹配正确的做法是声明无接口并在报告中把每个接口尺寸及其来源用户规格、厂商图纸、测量值命名为未检查——编造一个声明来填补空白比诚实的没人检查过这个更糟。标准数据的边界哪些已验证、哪些需自查assets/standards.json中每个条目都携带verified标记。与光机械相关的五个条目中optical-breadboard-metric、optical-breadboard-imperial、cage-system-30mm、sm1-lens-tube-thread均为verified: true条目内还记录了 authority权威来源与 document文件编号供追溯核对。测试 test_unverified_entries_say_so_in_their_notes 则保证任何verified: false的条目必然在其注记中带 UNVERIFIED 字样。同时请记住 optomechanics.md 的明确提醒支柱尺寸、光束高度与厂商特有的螺纹惯例是行业惯例而非已发布标准使用前必须对照产品目录确认。相关仓库资源家族参考文档optomechanics.md本指南主体Skill 主文档与完整工作流SKILL.md工艺极限与材料fabrication-limits.md制造前检查清单validation.mdbuild123d API 速查build123d-patterns.md标准数据库assets/standards.json检查脚本实现scripts/check.py、scripts/gen.py无依赖测试tests/lab-hardware-cad/test_scripts.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),仅供参考