3dsjs

可打印20面体3D模型

Printable D20

2023-03-27 04:33:23

使用说明

  1. 所有模型资源均由用户上传分享,内容来源于网络公开资源
  2. 侵权投诉:通过抖音私信 @jobsfan 联系我们(需附版权证明),24小时内处理
  3. 模型将通过邮件发送(5分钟内自动发货),感谢理解带宽压力
关于费用

我们是爱好者共建社区,为维持服务器成本,每个模型收取微量费用(仅覆盖基础开支)。我们承诺最低成本运营,感谢您的支持!

扫码手机访问
抖音私信 @jobsfan

这是一个在OpenSCAD中仅用一行代码构建的正二十面体,没有使用任何库,仅以黄金比例phi作为输入。我通过生成并将数字放置在表面上,将其制作成D20骰子,所有这些仅用额外的一行代码完成(使用了TBuser的位图字体模块作为输入:http://www.thingiverse.com/thing:2054)。我还包含了一个全为20的版本,以响应Makerblock的挑战(http://www.makerbot.com/blog/2011/09/29/openscad-challenge-regular-icosahedron/#comment-15998),并赢得最高效/优雅解决方案的虚拟奖项(我接受这个挑战是因为我想看看能用多短的代码实现它)。

我本想自己生成数字,考虑了罗马数字、七段数码管数字和各种二进制编码,但最终使用了库,因为我意识到在OpenSCAD中(目前?)没有优雅的生成数字的方法(如果有人能说服我改变看法,我愿意献上我的9000互联网积分)。

因为在我看来,这个作品的真正意义在于代码的简洁性,所以代码如下:

include ;

phi = (1+ sqrt(5))/2;

scale(20) translate([0, 0, cos(atan((phi - 1) / phi)) * phi]) rotate([0, atan((phi - 1) / phi) * 2), 0]) difference() {
intersection_for(a = [0:4]) rotate([0, 31.75, 72 * a]) intersection_for(r = [[0,0,0],[90,90,0],[90,0,90]]) rotate(r) linear_extrude(height = 10, center = true) polygon(points=[[phi,1],[phi,-1],[0,-phi],[-phi,-1],[-phi,1],[0,phi]], paths=[[0,1,2,3,4,5]]);
for(n = [1:20]) rotate([180 * (ceil(n / 10) % 2), atan((phi - 1) / phi) * 2) + atan((phi - 1) / phi) * 2 * (ceil((n - 5) / 10) % 2), 180 + 72 * n]) translate([0, 0, 1.5 - .1]) scale(0.008) for(d = [0, floor(log(n))]) translate([0, 35 * floor(log(n)) + d - 70, 0]) 8bit_char(str(floor(n % pow(10, d + 1) / pow(10, d))), 10, 100, false);
}

可打印20面体3D模型
朋友,你觉得上面这个模型,属于下面的哪个分类?
必须全中文,且长度不超过15