openscad 是否有任何用于字符串键关联数组(又名哈希映射,又名字典)的语言原语?或者是否有任何关于如何模拟关联数组的约定?
到目前为止,我能想到的只是使用向量并使用变量将向量中的索引映射到人类可读的名称。这意味着没有很好的、可读的方式来定义向量,你只需要评论它。
想象一下,我想写一些类似于 Python 数据结构的东西:
bobbin_metrics = {
'majacraft': {
'shaft_inner_diameter': 9.0,
'shaft_outer_diameter': 19.5,
'close_wheel_diameter': 60.1,
# ...
},
'majacraft_jumbo': {
'shaft_inner_diameter': 9.0,
'shaft_outer_diameter': 25.0,
'close_wheel_diameter': 100.0,
},
# ...
}
这样我就可以在模型定义中以某种可识别的类似哈希映射的方式引用它,比如传递bobbin_metrics['majacraft']
给某个东西 asmetrics
和引用metrics['close_wheel_diameter']
.
到目前为止,我的最大努力看起来像
# Vector indexes into bobbin-metrics arrays
BM_SHAFT_INNER_DIAMETER = 0
BM_SHAFT_OUTER_DIAMETER = 1
BM_CLOSE_WHEEL_DIAMETER = 2
bobbin_metrics_majacraft = [
9.0, # shaft inner diameter
19.5, # shaft outer diameter
60.1, # close-side wheel diameter
# ....
];
bobbin_metrics_majacraft_jumbo = [
9.0, # shaft inner diameter
25.0, # shaft outer diameter
100.0, # close-side wheel diameter
# ....
];
bobbin_metrics = [
bobbin_metrics_majacraft,
bobbin_metrics_majacraft_jumbo,
# ...
];
# Usage when passed a bobbin metrics vector like
# bobbin_metrics_majacraft as 'metrics' to a function
metrics[BM_SHAFT_INNER_DIAMETER]
我认为这会奏效。但它很丑。不完全是“我用bash
”丑陋的方式编写应用程序,但也不远了。
有没有更好的办法?
我准备在openscad之外维护数据集,如果需要的话,我准备了一个包含文件的生成器,但我宁愿不这样做。
另外,为了纪念 4 月 1 日,我想念闪烁标签,想知道滚动选框是否可以工作?试过了 :)