资讯动态

keygen核心源码剖析:key_blank与key_bitting如何用布尔运算生成可开门的钥匙

发布时间:2026/10/10 0:01:42 来源:尧图企业网站定制
keygen核心源码剖析key_blank与key_bitting如何用布尔运算生成可开门的钥匙【免费下载链接】keygenOpenSCAD tools for generating physical keys项目地址: https://gitcode.com/gh_mirrors/ke/keygenkeygen 是一套基于OpenSCAD 的实体钥匙生成工具输入钥匙的 bitting 码数如25536就能得到可 3D 打印、真正能开门的钥匙 STL 模型。整个项目的核心逻辑都浓缩在 scad/keygen.scad 中其中key_blank钥匙坯与key_bitting齿槽切割两个模块正是它用布尔运算雕刻出钥匙的主角。本文带你看懂这套机制的 3 个关键设计。一、整体流程一串数字如何变成一把钥匙在 keygen 中一把钥匙 坯体 − 锁芯余料 − 齿槽全部用布尔差集完成步骤源码位置作用码数 → 深度key_code_to_heights把 25536 逐位查表成切割深度生成坯体key_blank轮廓 ∩ 锁芯腔体再挖掉多余部分雕刻齿槽key_bitting用梯形切刀按深度差集削出齿形以 Kwikset 锁为例各钥匙文件最后都长这样先key_blank()建坯再用difference()减去key_bitting()产生的切削体见 scad/kwikset.scad。上图中红色的钥匙轮廓、绿色与紫色的 warding 线正是key_blank需要的原始二维数据由 SVG 路径转换为多边形见 scad/kwikset.gen.scad 等生成文件。二、key_blank三步布尔运算浇铸出钥匙坯key_blank内部是一个三层嵌套的布尔结构每一步都值得新手学习intersection()求交集把外轮廓 key_outline多边形拉伸成薄片与半空间 刀体求交。交集的一侧是无限大半空间保证握手bow部分不被误删另一侧是 key_blade。刀体 锁芯腔体的负空间key_blade先把 warding 轮廓沿无限长方向拉伸再与锁芯圆柱plug cylinder做交集——钥匙刀身因此自然获得与锁芯匹配的厚度和圆底。difference()求差集用 key_warding_cutter 模拟真实铣床的旋转刀具。它由minkowski()膨胀 rotate_extrude()旋转成形负责把锁芯防拨筋的余料从刀身上铣掉同时 key_engrave 在握手两侧浅刻出纹路。三、key_bitting梯形切刀按码数刨出齿槽钥匙能否开门取决于每个齿槽的深度是否精确。keygen 的解法非常巧妙——用虚拟刀具做差集而非直接绘制齿形key_bitting_cutter 定义了一个梯形切削截面angle参数模拟真实铣刀的刃角默认 100°key_bitting为每个码位生成一个拉伸切刀translate([locations[i], heights[i]])把它移到指定位置与高度union()合并后整体从坯体中减去深度由depth_table查表得到如 scad/kwikset.scad 中0.329±0.023英寸对应码数 1–7。更妙的是Medeco 双轴锁还能在码数中附加 L/C/R 字母控制切割角度见 scad/medeco_classic.scadangles参数让每个切刀绕 Y 轴偏转 ±20°——同一套布尔框架覆盖了一整族钥匙。四、上手体验3 步生成你的钥匙打开 scad/kwikset.scad 等模板了解参数或直接走命令行运行生成命令bitting即钥匙码数bin/keygen.py scad/kwikset.scad --bitting 25536 -o housekey.stl用 OpenSCAD 渲染或导出 STL 即可打印。完整参数说明见 README.md。五、关键文件速查 文件说明scad/keygen.scad核心key_blank、key_bitting 及全部辅助布尔模块scad/kwikset.scadKwikset 钥匙模板码数 1–71 最浅scad/schlage_classic.scadSchlage 经典钥匙模板scad/medeco_classic.scad支持切割角度的 Medeco 模板doc/how_to_model_keys.md如何为自己的钥匙建模的官方指南MakefileSVG → 多边形、钥匙库 JSON 的构建脚本小结keygen 用intersection定义钥匙该多粗用difference定义钥匙该削多少——warding 决定形状、bitting 决定深度布尔运算就是它开门的钥匙。【免费下载链接】keygenOpenSCAD tools for generating physical keys项目地址: https://gitcode.com/gh_mirrors/ke/keygen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑