我对OpenScad中的If语句有问题。我有4个变量
a=20;
b=14;
w=1;
c=16;我想看看女巫的号码是大的,a还是b。在依赖于较小的变量之后,获取较小变量的值(在本例中为b < a),并使用c变量( c=b-w)进行简单操作。
我试过这样做但不起作用。
a=20;
b=14;
w=1;
c=16;
if(a>b)
{
c=b-w;
}
if (a<b)
{
c=a-w;
}
if (a==b)
{
c=a-w;
}这似乎是合乎逻辑的,但在openscad中,正如我所理解的那样,您不能在If语句中更改变量的值。我能用什么技巧来达到我的目标。谢谢!
发布于 2016-04-09 14:19:48
OpenSCAD的变量分配是不同的。只能在括号内分配变量。因此,c = b - w将只被分配给在中的if括号。在外面,如果这个支架仍然是16,不要问我为什么。您可以在OpenSCAD文档中阅读更多内容。
发布于 2015-03-25 19:15:52
在第3节中,您将赋值运算符“=”与相等运算符“==”(正确的if (a==b))混淆。在你的3条腿中,你做的和2一样,所以你可以作为一个“其他”的-leg来处理这两个问题。
正确:在if-语句中不允许赋值.在openscad中,您可以使用?操作符来代替:
c = a > b ? b-w : a-w;在=遵循条件后。如果条件为true,则?后的语句将变为值,如果条件为false,则:后的语句将变为值。嵌套条件是可能的,例如您的条件:
c = a > b ? b-w : (a < b ? a-w : a-w);文档中的更多信息。
发布于 2015-03-25 20:39:03
c = min(c,min(a,b)/2-w);这也解决了这个问题)
https://stackoverflow.com/questions/29260613
复制相似问题