我对OpenSCAD相当陌生,我遇到了一个我不明白的问题。在下面的片段中,变量"ofs“不是从'for‘迭代的前一个值中积累的。
slots = [5, 7, 11, 17];
ofs = 0;
for (i = slots) {
ofs = ofs + i;
echo (ofs);
translate([ofs,0,0])
cube([1, 50, 30]);
}我希望从echo (ofs)中看到的是这些值:
实际上,我看到的只是时隙数组的值:
有人能告诉我如何通过循环的迭代积累ofs的值吗?任何帮助都将不胜感激。
发布于 2021-08-28 16:56:58
通常的策略是在进入几何生成之前先计算值,例如:
slots = [5, 7, 11, 17];
ofs = [ for (o = 0, i = 0;i < len(slots);o = o + slots[i],i = i + 1) o + slots[i]];
echo(slots = slots, ofs = ofs);
for (o = ofs) translate([o,0,0]) cube([1, 50, 30]);发布于 2021-08-28 07:22:51
一个非常片面的答案是:正如文档中提到的,
变量绑定到表达式,并在其整个生命周期中保持单个值。
它们就像常量。所以你不能用for循环他们的想法。
我没有答案。你可能需要找到一种聪明的、基于矢量的方法来准备你的5,7,12,13矢量。也许如果你知道如何构造你的初始向量,我可以帮助你的想法。或者,您可以等待一个更有经验的用户的回答:)
https://stackoverflow.com/questions/68960320
复制相似问题