前阵子想打几颗带自己图案的键帽,折腾一圈发现:要么打开 SolidWorks 从头画,要么用在线生成器——要联网、要注册,导出的 STL 还得回切片软件里再补一遍材料。
干脆自己写了一个。纯静态网页。在线试:https://exile008.github.io/keycaps-free/
外形参数化:顶面四条边各自内缩(前后给不一样的值就是非对称的裙边)、底面四条边也能往外延或往里收,轴心始终不动。高度、前后倾、左右倾、圆角、碟形凹陷(柱面 / 球面 / 平面)、壁厚,全是单独拖的。预设给了 Cherry 、OEM 、SA 、DSA 、XDA 和一个平面,R1–R4 行高能选,但都只是起点,拖完就是自己的形状。
宽度 1u 到 7u ,2u 及以上自动加卫星轴,十字轴孔的公差能单独调松紧。左边调参数,中间实时出网格,左下角同步给俯视和侧面的尺寸图,改完不用等重新建模。
字符最多 6 个,字体可以导入本地的 ttf / otf 。除文字外也吃 SVG ,多部件的图会逐个问你是填色、描边还是挖空,拿来做 logo 挺顺手。
嵌入有四种:平齐双色、凹刻、凸起、透光,主体和字符颜色分开选。
导出 3MF 是一个对象两个部件、带材质颜色; STL 可以单导键帽 / 字符 / 轴体,也有合并版和不含字符的空白件。存工程是个 json ,导入的字体和 SVG 会一起打包,换台机器打开不会丢。
技术上没什么花活:three.js 负责显示,manifold-3d 的 WASM 做布尔运算,参数塞在 localStorage 里。
想彻底断网用也行,整个目录就是一堆静态文件,起个本地服务打开 index.html 即可
已知的坑:
- 预设是近似值,不是哪家厂家的精确复刻。倾斜的裙边按法向量量会比输入的壁厚略薄,打之前建议先打一颗 1u 的小样试试轴。特别是十字轴的公差,每个耗材收缩率不一样,建议先+0.2
- 打印建议用 0.2mm 的头打,不然细小的图案和文字看不清。
有什么想要的功能可以直接说,能加就加。

