## 3D打印与光子学:低成本迈克尔逊干涉仪
本项目探索了3D打印的潜力,通过构建一个功能性的迈克尔逊干涉仪——一种利用光干涉精确测量距离变化的设备——来实现低成本的目标。作者利用光子学背景和3D打印日益普及的优势,旨在创建一个经济高效的替代方案,以取代昂贵的商业光机械设备。
干涉仪使用Python (build123d) 设计,并使用PLA打印,大部分组件均以实惠的价格从亚马逊采购。设计的关键在于定制的运动学镜架,允许使用现成的螺钉和弹簧进行精确调整。
总成本(不包括可选的分光镜,可用显微镜载玻片代替)低于3美元。该项目表明,3D打印可以促进光学领域的易于获取的实验,从而无需昂贵的实验室设备。所有CAD文件均在Github上公开可用,鼓励其他人复制和改进此设计。本项目是结合CAD、3D打印和基础科学探索的绝佳起点。
## shreg: Python 中的形状正则化
`shreg` 是一个纯 Python 库,用于清理和正则化噪声或不精确的几何数据,特别是线段和闭合轮廓。它利用二次规划优化线段方向和位置,创建更干净、更规则的形状,且无需外部依赖。
**主要特性:**
* **线段正则化:** 将线段对齐到公共角度和偏移量。
* **轮廓正则化:** 通过将边缘对齐到主方向来简化闭合多边形。
* **吸附正则化:** 连接附近的端点以创建水密多边形,提供聚类、硬约束和软约束(带有 T 型接头检测)等方法。
* **度量正则化:** 约束线段尺寸——强制相等长度、长度量化到网格以及平行线之间的等间距。
* **灵活配置:** 允许控制容差(角度、偏移量、长度)和优化方法。
* **可视化:** 包含绘图工具,用于比较前后效果。
该库将正则化形式化为一个通过二次规划(使用 OSQP)求解的能量最小化问题。它为每种正则化类型提供了一种管道方法,包括邻居检测、约束构建和优化。`shreg` 适用于 CAD 清理、建筑图纸和网格生成等应用。
**安装:** `pip install shreg`
**仓库:** [https://github.com/nickp/shreg](https://github.com/nickp/shreg)