小包的包身需要的布片是表布和里布各两片「矩形」,缝纫过程中再裁掉底部两个正方形,用来制作包底。所以我最开始的想法只是打印一个矩形的框,这个东西做起来也简单,在 OpenSCAD 里面直接用 difference() 让一个矩形(长方体)减去另一个就好了。
打印很快,二十分钟不到就好了。有了第一代模板,然后我就想,改进模型,把要裁掉的两个角也加到模板里。于是,修改后的到了最终版的「凸」字形的模板。
另外,包盖也得到了一个添加了圆角的模板。

成品的小包长这个样子,因为不是很挺阔的包身,所以包盖多裁掉了一部分:

最后,OpenSCAD 很好用!虽然 Fusion 360 也很好用还免费,但是 OpenSCAD 很轻便。而且很灵活,需要框框的话,直接自定义 module, 然后 difference 就可以。
顺便,多个 object 组合在一起又只需要外部的面的情况下,hull() 比 union() 的面数会少一点。
module bag_cover(x, y, z, rad) {
hull() {
translate([0, rad, 0]) {
cube([x, y - rad, z]);
}
translate([rad, rad, 0]) {
cylinder(1, rad, rad);
}
translate([x - rad, rad, 0]) {
cylinder(1, rad, rad);
}
translate([rad, 0, 0]) {
cube([x - rad * 2, rad, z]);
}
}
}