生成数据的网格式 3D 模型(非常适合展示 "一年内的每日数据")
个人小感慨一下
原本发布这篇内容后,我又添加了两张白色图表的照片。这些照片中的图表对我来说意义非凡——尤其是在当下(2020年3月22日),全球正面临新冠疫情带来的不确定性。照片中所示的图表,展示了2020年1月22日至3月20日期间,中国每日新增的活跃新冠病例(即尚未康复的患者)数量。
我生活在美国,那为什么我会选择中国呢?因为就目前情况来看,中国几乎是全球唯一一个新冠活跃病例数量持续下降的国家。这张图表象征着对未来的希望,也彰显了人类克服挑战的能力。
这一脚本(daily-by-year-elevation-graph.scad)可生成一个三维模型。
由一个网格单元(X轴和Y轴)组成。 该网格单元的海拔高度(Z轴)为:
每个单元格都由数据数组中的一个值来定义。
它还会(可选地)在模型的底部压印一个标签。
随附的STL文件仅供示例,展示了可创建的图表类型。这些图表基于示例数据(data-by-year__example.scad)生成,展示了美国犹他州锡安国家公园在2018年和2019年期间的天气数据(最高气温和降水量)。(OpenSCAD渲染图和红灰蓝色打印件展示的是2018年的每日最高气温数据。)
使用方法:
- 将文件 "data-by-year__example.scad" 保存为 "data-by-year.scad"。您可以在此文件中添加用于制作图表的数据。(或者,您也可以选择其他方式操作)
您可以随意为文件命名,只需在代码中更改包含语句即可。 2. 使用 打开 daily-by-year-elevation-graph.scad 文件。OpenSCAD3.运行脚本,查看图表。默认情况下,数据会以网格形式呈现(从上到下视图),类似于GitHub贡献图。每个“列”(y轴)代表一周,日期从周日到周六依次排列。
然而,该代码并不要求固定的数值数量或特定的网格尺寸。通过更改某些变量,您可以用它来显示(例如)天数、小时数,甚至是x轴和y轴根本不代表时间的数值。 4. 您可以在data-by-year.scad中更改数据。该格式在那里有详细说明。您还可以在daily-by-year-elevation-graph.scad中配置多个参数,以更改(除其他外)网格的尺寸、比例等。
请注意,此代码是使用 OpenSCAD 2018.10.13.ci145 版本开发的,且它
它使用了一些在早期版本中不可用的应用程序编程接口
这一代码的“主”存储库位于 GitHub 上:https://github.com/probertson/daily-by-year-elevation-graph
如果你进行了改进,请在那里以拉取请求的形式提交这些修改内容。
打印设置
打印机品牌:
普拉萨
打印机:
I3 MK3S
木筏:
不要
支持者:
不要
决议:
0.15
灯丝:
易盛 PLA+ 聚乳酸
注意事项:
关于这部分,我只是用了默认设置。根据你的图表,可能会有很多孤立的塔状结构(即大量线条堆积)出现。因此,你需要对打印机进行调试,并找到能最大限度减少线条堆积的打印设置参数。
我喜欢为"底座"和图表本身设置不同的层高——这样能让两者的分隔更明显(还能稍微提升打印速度)。通常,我会将底座的层高设为0.2毫米,图表的层高设为0.15毫米。对于那些刻度导致数值极小的图表,我会将图表的层高设为0.05毫米(否则这些微小的数值根本无法打印出来)。代码中有一个变量用于设置打印机的层高最低值,如果你的数据需要考虑这一点的话,可以适当调整。我的设计过程
这种方法可用于制作任何类型数据的三维柱状图。不过,最初它是为绘制 "按年份划分的每日数据" 三维图表而开发的——即每日对应一个数据值,整个图表则代表一整年的数据情况。
我的雇主HireVue公司提供了一个在线求职面试平台。最初的版本是作为"黑客周"项目创建的,旨在制作按年份分类的每日求职面试次数的3D打印模型。(见照片,展示了部分变体设计,包括使用默认2.5毫米x/y尺寸的塔状结构制作的"桌面级"尺寸模型,以及采用1毫米塔状结构的"口袋型"尺寸模型。)在这些图表中,每一根柱状图代表的是真实参与求职面试的人数!
标签
模型来源
