总结
我需要一个大型的螺纹螺母,用来套在一根管子上。针对这种需求,有很多优秀的库可供选择,比如https://www.thingiverse.com/thing:8793并且https://www.thingiverse.com/thing:193647,不过我觉得自己动手制作一个会更有趣。
通过这款库,你可以制作公制螺丝。其螺纹几何形状符合公制标准,具体说明请参见相关文档。https://www.machiningdoctor.com/charts/metric-thread-charts/#c-mc另见http://www.apollointernational.in/iso-metric-thread-chart.php用于 ISO 螺纹公差标准。
在我误导你们之前,我应该提一下,OpenScad的库页面(<链接>)……https://openscad.org/libraries.html)有多个库可提供各种螺丝和螺母。特别是,您可以看看 BOSL2、BOLTS 和 threads.scad 模块。我还没试用过这些库,但如果现有库无法满足您的需求,它们绝对是值得探索的绝佳选择。即便现有库已经能满足需求,它们同样值得一试!
理想化的公制螺纹横截面是一个等边三角形,其中一条三角形边沿着螺丝轴线(我假设为垂直轴线)布置。三角形的外侧顶角被修剪掉,因此实际的螺纹横截面是一个梯形。公称螺纹直径(“M”值)对应修剪后的梯形面,但实际的螺纹尺寸会略有偏小。
更新日期:2022年8月17日:我添加了"角度"参数,支持非公制螺纹几何形状。该参数默认值为60度
进行3D打印时,我们需要对原始几何模型进行修改,因此我们提供了参数来调整直径,并进行修剪和填充操作。通常情况下,您可以将修剪和填充参数保留为默认值,只需调整"diam_adj"参数即可。
该库包含五个模块:
- 螺丝段 - 构建一个螺丝段,并包含所有的螺纹逻辑处理功能。
- nut_core - 构建一个内向螺纹,其外部包裹着薄壁。该螺纹是通过将圆柱体上的合适螺旋段进行差分处理而生成的。
- hex_bolt - 生成一个六角螺栓,螺栓主体部分可选择不带螺纹。
- hex_nut - 用于生成六边形螺母。
- 翼螺母——制造一个翼螺母。
如果你运行 OpenSCAD 来处理这个文件,它会生成 M4、M5、M6、M8 和 M10 尺寸的螺栓和螺母示例部件。
每个模块都需要两个或三个位置参数,以及多个可选的命名参数。位置参数与用于指定公制螺丝尺寸的参数相同:直径、螺距和长度,均以毫米为单位。长度参数仅传递给螺丝和螺栓模块,而螺母则根据六边形厚度参数推算长度。我们使用命名参数hex_thickness来明确该参数可省略,若省略,则厚度(及对应的螺纹长度)将自动计算得出。
命名参数可对螺丝形状进行如下优化和调整:
常见参数:
参数fn = 50:每回合生成的多面体分段数。
直径调整值 = +/-0.1:名义外径变化(调整间隙),其中螺杆为负值,螺母为正值。
截断值 = -1:用于裁剪外部峰值的幅度。若设为 -1,则截断幅度为峰值高度的四分之一。
fill = -1:填充内部山谷的量。-1:高度/8
角度 = 60:螺纹横截面三角形外螺纹的角度。公制螺纹在进行任何修整之前,其横截面为等边三角形,因此这个角度为60度。较小的角度会形成较深的螺纹,较大的角度则会形成较浅的螺纹。
倒角_顶部 = 真:对螺丝或螺母的顶部进行倒角处理
底部倒角 = 关闭:对螺丝或螺母的底部进行倒角处理
仅限螺旋段:
lead_top = true : 顶部有导向螺纹(螺纹向内凹陷)
lead_bottom = false : 将主帖置于底部
仅限六边形螺栓:
螺纹长度 = -1:螺纹长度以毫米为单位,-1表示等于螺栓长度。
六角螺栓、六角螺母和翼形螺母:
hex_width = -1 : 六角扳手的尺寸,以毫米为单位,-1表示自动检测尺寸
六角螺母厚度 = -1:螺母(或螺栓头)的厚度,单位为毫米;若设置为 -1,则系统会自动计算厚度值。
假设螺丝是垂直安装的,因此“底部”和“顶部”分别指螺丝的两端。
我们遵循ISO的逻辑,即外螺丝直径应以外表面为准,也就是在扣除修边量之后的尺寸。您可以将修边和填充参数设为默认值,只需根据需要调整对角线偏移量即可。通常来说,外螺丝需要稍微收缩一些,螺栓则需要稍微扩展一些,以弥补3D打印件不如机械加工金属件那么锋利的缺陷。
代码可以自动生成M3、M4、M5、M6、M8和M10等各种尺寸的螺栓与螺母组合。在我的打印机上,使用PLA材料时,螺栓的直径调整范围是-0.7至-0.3,而螺母的直径则保持在0.3。根据你的螺丝尺寸、打印材料和打印质量,可能需要调整这些参数。
以下参数对我来说效果不错(见下方打印设置),但你应该测试一下哪些参数适用于你的打印机。这些参数适用于M5、M6、M8和M10型号。M4螺栓对我来说太细了,但我还是附上了M4螺母的参数。在所有情况下,螺栓和螺母都能与彼此以及对应的金属公制螺丝和螺母完美适配。
hex_bolt( 5, 0.8, 15, 直径调整量 = -0.5, 法兰厚度 = 50, 螺纹长度 = -1, 六角头厚度 = 5 ) ;
hex_bolt( 6, 1.0, 15, diam_adj=-0.5, fn=50, thread_length=-1, hex_thickness=-1 ) ;
六角螺栓(直径 8 毫米,长度 1.25 毫米,厚度 15 毫米,直径调整系数为 -0.7,螺纹长度为 -1,六角头厚度为 -1);
hex_bolt( 10, 1.5, 25, diam_adj=-0.7, fn=50, thread_length=15, hex_thickness=-1 ) ;
hex_nut( 4, 0.7, 直径调整值=0.3, 法向数=50, 六边形厚度=5 ) ;
六角螺母(5, 0.8,直径调整值=0.3,法向间距=50,六角厚度=5);
六边形螺母(6 个,直径 1.0,调整直径 0.3,法向数 50 个,六边形厚度为 -1 );
hex_nut(8, 1.25, 直径调整值=0.3, 法向厚度=50, 六边形厚度=-1 ) ;
六角螺母(直径:10mm,高度:1.5mm,直径调整量:0.3mm,法兰厚度:8mm,螺纹密度:50牙
请在代码开头设置真/假标志,以选择要渲染的内容。默认情况下,除了M3尺寸以外的所有尺寸都会生成。M3尺寸需要极高的打印质量来确保螺丝的精度(螺母可以接受,但即便使用合适尺寸的空心圆柱体作为M3螺母也难以达到理想效果),而且M3螺丝的强度太低,实际使用价值有限。
生成螺旋线程的算法与我见过的其他库中使用的算法略有不同。不是为每个线程段构建一个多面体,而是将整个螺旋作为一个单独的多面体。两种算法生成的线段是相同的,只是组装整个螺旋的方式有所不同。
理论上,人们或许希望这样做能稍微提高效率,但缺点是 OpenSCAD 很难在预览中正确显示用这种方式生成的螺纹。不过它最终会正确渲染出来,所以你可以考虑在调用螺纹相关函数时添加 render() 操作,或者在用户界面中频繁按 F6 键来强制渲染。
我添加了一些注释,以便更清楚地说明程序的运作原理。您可以在此处找到此代码的最新版本,以及我的其他 OpenSCAD 基本几何体模型。GitHub
打印设置
打印机:
自行组装的可配置织物加工机器
木筏:
不要
支持者:
不要
分辨率:
0.4毫米
填充部分:
20%
注意事项:
所有样品都是在以下条件下制作的:使用PLA材料,温度设定为205摄氏度,玻璃平台加热至60摄氏度,并以Elmer's胶水作为粘合剂。
Fuente del modelo
