总结
这一 OpenSCAD 脚本将为用户自定义尺寸的设备生成一个由两部分拼接而成的包装。通过特殊的数组变量,用户可轻松在包装的任意面板上添加任意数量的各种形状的切口、支撑柱、雕刻文字和标志。若想了解如何使用这些功能,请查看下方说明,以及代码中的示例和注释,获取更多相关信息。
作者:马克・加夫尼
版本:2.6c(版本d、e和f是对特定项目的微调,缺乏适当的控制措施,但这些改进将纳入v2.7版本中)
日期:2013年4月4日
待办事项:
添加用户可控制的法兰和互锁唇形结构特征
警告:
某些数值、形状和位置等组合可能会导致生成无效或非流形的形状,从而阻止你导出.stl文件。
若出现这种情况,请先尝试删除或更改部分特征或数值,直至获得有效的形状。然后逐步将这些特征或数值重新添加,直到找到导致问题的项,再对其进行修改,确保不再引发问题。
相较于之前版本的变化:
版本2.6c
- 实现了选择盒子形状的功能,包括"长方体"、"四边圆角"、"六边圆角"和"六边倒角"等选项。
- 确保在生成每个“box_half”模型时,都使用了“box_type”模块。
版本 2.6b - 检查并调整了上唇位置不正的问题
版本 2.6 - 实现加载外部对象(例如.stl文件)并将其放置在物体表面上的功能。
- 实现了对前一版本中面部文字翻译功能的优化,解决了之前版本中文字翻译不准确的问题。
- 已在 make_cutouts 函数中修复了 box_t 变量的问题。
v2.5版本(又名 cutouts_on_faces_for_loop-v0_2.scad) - 使用“lip_fit”功能对两个半部件之间的连接进行公差处理。
- 将文字投射到人脸上
- 完整的文档资料
v2.4(又名 cutouts_on_faces_for_loop-v0_4.scad) - 用户提供设备尺寸及内部间隙参数后,系统会据此计算出包装尺寸。
- 进行相关准备工作,以便在x、y、z三个方向上设置不同的墙体厚度。
- 实施职位安排措施
- 老鼠耳朵能正常工作了
- 采用“并排”布局的两个部分,通过联合连接在一起。
v2.3 2013-03-23(又名 cutouts_on_faces_for_loop-v0_3.scad)
- 修复了 make_box 和 half_box 模块的调用问题。
- 增加了处理 "hole" 数组的功能,用于在 make_box 和 half_box 模块中创建切口区域。
- 添加了用于生成圆角长方体的模块
- 修正了圆形长方体切割图案中使用 a_bit 时的相关错误。
- 修正了在盒子上绘制嘴唇时的翻译错误。
- 确保所有零件都在z轴原点处生成。
- 将顶部(呈绿色)和底部(呈红色)分别涂成不同颜色,以便于识别。
- 将“beside”布局中的顶部元素进行了旋转,使其朝向更符合用户直观的阅读习惯。
- 添加了箱体交叉模块,并将其纳入船体计算模型中,以确保即使在侧面数量较少的情况下,箱体尺寸也能精准无误。
- 添加了 box_type 模块,用户可以选择不同形状的包装盒,或者根据当前变量自动切换包装盒的形状。
- 添加了 mouse_ears 模块
注意:在堆叠模式下,您可能会发现红色部分看起来像是完整长度。这似乎是 OpenSCAD 中的一个可视化错误,实际上,零件是正确生成的。
v2.2 2013-03-22(又名 cutouts_on_faces_for_loop-v0_2.scad)
基于我自己的架构设计
- 新的格式:[人脸名称、形状名称、形状位置
-
- 面部名称("N"、"S"、"E"、"W"、"T"、"B")
-
- 形状名称("正方形"、"矩形"、"圆形矩形"、"圆柱体"、"椭圆"、"圆锥体")
-
- shape_position[x_pos,y_pos,x_offs,y_offs,rotate,align=("inside" or "outside")]
-
-
- 方形,尺寸为[深度、长度、宽度]。
-
-
-
- 矩形形状,尺寸为[深度、长度、宽度]。
-
-
-
- "圆角矩形" 形状的尺寸参数:深度、长度、宽度、边角半径以及边角侧边数。
-
-
-
- "圆柱体" 形状_尺寸[深度、半径、侧面数]
-
-
-
- "椭圆"形状_尺寸[深度、半径长度、半径宽度、边数]
-
-
-
- "锥形"形状_尺寸[深度、底部半径、顶部半径、边数]
-
- 选择 pos_x 和 pos_y 的坐标是为了与从北面、顶面或东面拍摄的图像对齐,使它们分别与 [-x,+z]、[+x,+y] 和 [+y,+z] 坐标系对齐。
- 旋转是沿顺时针方向进行的,旋转平面为北面、顶面或东面(以原点为参照点)。因此,对于相对的面
- 选择这两个约束条件,是为了更便捷地定位与相对侧边对齐的切口区域。例如,设计一个能完美包裹旋转椭圆形管道的盒子时,就可以利用这些约束条件来精准定位切口位置,确保最终设计效果符合预期。
v2.1 2013-03-22(又名 cutouts_on_faces_for_loop-v0_1.scad)
- 基于Kitlaan的阵列结构,支持圆锥体和矩形模型
- 来自Kitlaan的可定制电子设备包装套装http://www.thingiverse.com/thing:8607
-
- 矩形 [ 偏移量 X,偏移量 Y,宽度 X,宽度 Y,边角半径,边角侧面,深度,以及旋转角度 ]
-
- 圆柱体 [ 偏移量 X,偏移量 Y,内半径,外半径,侧面,深度,以及旋转角度 ]
操作指南
这一过程首先需要用户输入一些基本参数:
- 待包装物体的尺寸(设备_xyz,[x,y,z])
- 物体各侧面与包装内部壁之间的间隙大小(clearance_xyz,[x,y,z])
- 包装材料的厚度是多少(壁厚)?
- 包装盒圆角的外部半径(corner_radius)
- 这些圆角一共有几条边?(corner_sides,多数物品选择3到10条边比较合适,选择1条边会得到倒角边缘效果)
- 连接两个半边的唇缘高度是多少?(lip_h,多数应用场景下1.5至3mm的厚度比较合适)
- 顶部相对于底部的高度是多少?(top_bottom_ratio,取值范围0.1至0.9,设为0.5时会生成两个等高的一半部分)
- 那个部件有没有老鼠耳朵?(has_mouseears,真或假)
- 制作老鼠耳朵的扁平圆盘应该有多厚呢?(mouse_ear_thickness,建议厚度为打印层厚度的两倍)
- 制作老鼠耳朵的扁平圆盘尺寸有多大(mouse_ear_radius,通常取5到15mm效果不错)
- 你想要哪些部件,以及它们的排列方式(布局方式,[并排、堆叠、上下排列等)
- 在“并排”布局中,两半部分之间的间距应保持适当(间隔距离在2个像素左右比较合适)。
- 内唇和外唇表面之间存在多大的重叠(负值)或间隙(正值)?(lip_fit,若该值为0,则意味着两者在中间完美贴合。这一数值会受到材料、打印机等因素的影响,因此可能需要对该变量进行多次调整)
接下来,用户可以修改数据结构,以便在包装盒的每个面创建孔洞、标签和文字。这些操作比较复杂,可能需要用户调整相关参数,或仔细阅读代码中后续部分的注释说明。
- 包装上使用的切口和凹陷设计(孔洞=[])
每个孔的格式为 [面名、形状名、形状位置[x_pos,y_pos,x_offs,y_offs,旋转,对齐]、形状尺寸[深度,,,]] - 包装上使用的内部支撑结构(支柱 = [[]])
每条帖子的格式为:[人脸名称、形状名称、形状位置 -
包装上使用的雕刻文字(文本=[])
每段文本的格式包括:[人脸名称、待写文本、形状位置你希望这个功能出现在包装的哪六个侧面?(正面、顶面、底面、北面、东面、西面、南面)
“T”,即顶部或Z+面
“B”,即底部或Z型面
“N”,代表北面或Y+面
“E”,即东侧或X+面
“W”,代表西方或X型面孔
“S”,即南面或Y形面坡
您希望将这个特征(形状位置 [x_pos,y_pos,x_offs,y_offs,rotate,align])绘制在脸部的哪个位置?
x_pos,你在X方向上移动到脸部的哪个位置了?
y_pos,你在Y方向上沿着脸部移动了多远?
请问 x_offs,你是在脸部的哪个位置进行 X 方向的测量呢?
纵向偏移量
旋转,你希望将对象旋转多少度呢?
若您不使用上述任何功能,请将其设置为0!不要直接将其留空!
请问,您希望将物件与包装面的"内侧"还是"外侧"对齐呢?你想要什么形状?(形状名称:圆锥体/椭圆体/圆柱体/圆形矩形/正方形/矩形/凸柱/凹柱/空心圆柱体)
这些形状的尺寸是多少(shape_size[depth,,,])……你需要仔细阅读下文,因为每种形状的尺寸都不同。
方形,尺寸为[深度、长度、宽度]。
矩形形状,尺寸为[深度、长度、宽度]。
"圆角矩形" 形状的尺寸参数包括:深度、长度、宽度、拐角半径以及拐角边数。
"圆柱体"形状_尺寸[深度、半径、侧面数]
"椭圆"形状_尺寸[深度、半径长度、半径宽度、边数]
圆锥形_尺寸[深度、底部半径、顶部半径、边数]
"凸台"形状的尺寸参数包括:深度、底部半径、顶部半径、凸台深度以及侧面数量。
"Dip_Post" 形状尺寸[深度、底部半径、顶部半径、倾斜深度、侧面尺寸]
"空心圆柱体" 形状尺寸 [深度、外径、内径、侧面数量]
您希望刻在面部上的文本字符串(text_to_write)
用于文本形状的参数包括:尺寸[深度、字体高度、字体间距、镜像效果]。
用户提供这些数据后,形状的制作步骤如下:
- 基于“device_xyz”、“clearance_xyz”和“wall_t”参数,计算包装的外部尺寸。
- 通过将稍小一点的立方体与稍大一点的立方体进行差分操作,创建出中空的立方体形状。
- 通过“帖子”,创建内部支持结构,并将其与之前的形状相结合。
- 通过在每个面板上创建"孔洞",并将其与之前的形状进行区分,来塑造出独特的造型效果。
- 将“文字”转化为每个面上的字母,并使其与之前的形状有所不同。
- 基于包装的高度、"唇部高度"、"顶部与底部比例"以及"唇部贴合度",将之前的形状拆分为上下两部分。
- 按照用户的要求,通过布局和分隔来合理安排各个部分的位置。
- 通过调整布局,结合使用 "mouse_ears"、"mouse_ear_thickness" 和 "mouse_ear_radius" 等属性,将老鼠耳朵正确地与之前的形状进行拼接。
- 完成了!
Tags
Source du modèle
