// 打开 OpenSCAD -> 按 F6键 -> 导出 STL 文件
$fn = 80;
// --- 墙壁尺寸 ---
孔径 = 8.6; // 孔的直径(毫米)
间距 = 38.0; // 缝线从中间到中间的距离(毫米)
间隙 = 0.25; // 间隙(PETG 0.20–0.35,PLA 0.15–0.25)
panel_t = 3.5; // 面板厚度(毫米)(如有需要,可根据实际情况调整)
// --- 口袋的尺寸 ---
钩子长度 = 70; // 排泄物输出量(毫米)
钩子下落距离 = 25; // 钩子下落的距离(毫米)
钩子厚度 = 8; // 钩子的厚度(Z方向)
钩子宽度(Y方向)为18厘米。
鼻子半径 = 4; // 鼻梁的圆润处理
// --- 安装步骤 ---
杆径 d = 孔径 d - 间隙;// 穿过孔的部分
茎的长度 = 面板厚度 + 2.0;// 略微超出面板边缘
头部直径 = 孔径 + 3.0; // 头部垫片
头部厚度 = 2.2;
// --- 卢基图什哈拉(灵活的胡须) ---
barb_h = 1.0; // 外凸度(毫米)
barb_len = 3.2; // 长度(毫米)
barb_t = 1.6; // 厚度(毫米)
barb_zpos = panel_t - 0.4; // 位于 Osuu 唱片的背面
圆角盒子模块(x,y,z,r):
明科夫斯基空间(Minkowski space):
cube([x-2*r,y-2*r,z-2*r], center=true);
球体(半径为 r);
}
』
模块 barb() {
翻译(干细胞直径的二分之一减去0.3,再加上0,最后加上鱼叉的Z轴位置)
线性挤出(高度=胡须长度,中心位置设为关闭)
多边形(点集 = [ ])
[0, -barb_t/2],
[barb_h, 0],
[0, 巴布·T/2]
]);
』
模块 stem_with_head():
// 埃图拉皮亚
翻译([0,0,头部厚度/2])
圆柱体(直径 = 头部直径,高度 = 头部厚度,中心对齐);
// varsi
翻译([0,0,头部厚度 + 茎干长度的一半])
圆柱体(直径=杆径,高度=杆长,是否为中心对称=是);
两个方向相反的刷头
翻译([0,0,头部厚度])胡须生成;
旋转([0,0,180])
』
模块钩子函数 hook_body():
// 考拉 + 钩子
颈部长度 = 18;
// 考拉(位于拍手位置的前方)
翻译([0,0,头部厚度 + 茎干长度 + 钩子厚度/2])
旋转([90,0,0])
圆形盒子(钩子厚度、钩子宽度、颈部长度、1.2);
// 瓦卡库克
translate([颈部长度/2 + 钩子长度/2, 0, 头部厚度 + 茎部长度 + 钩子厚度/2])
旋转([90,0,0])
圆角矩形(钩子厚度、钩子宽度、钩子长度,半径为1.2);
// 唉,掉落了
translate([颈部长度/2 + 钩子长度 - 钩子厚度/2, 0, 头部厚度 + 茎部长度 - 钩子下垂距离/2])
旋转([90,0,0])
圆角盒子(钩子厚度、钩子宽度、钩子下垂距离,1.2);
// 圆形尖头
translate([颈部长度/2 + 钩子长度,0,头部厚度 + 茎部长度 - 钩子下垂量])
球体(半径为鼻子的半径);
』
模块背板(){
// 将支架安装在门把手之间,位置略微超出门把手范围。
这样一来,固定装置就会变得非常坚固耐用。
盘子宽度 = 音高 + 头部距离 + 8; // X
plate_h = hook_w + 8; // Y
板厚度 t = 4.0; // Z 方向(位于底板背面)
翻译([0,0,头部厚度 + 板厚度/2])
圆角盒子(板材宽度、板材高度、板材厚度、圆角半径);
』
联合(union):
// 2个按钮:左边和右边的
翻译(-音高/2, 0, 0)并加上头部部分;
translate([ pitch/2, 0, 0]) stem_with_head();
// 加固装置 + 中间位置的挂钩
背板;
hook_body();
』