首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有变量的openscad语句问题

带有变量的openscad语句问题
EN

Stack Overflow用户
提问于 2015-03-25 15:59:48
回答 3查看 8K关注 0票数 9

我对OpenScad中的If语句有问题。我有4个变量

代码语言:javascript
复制
a=20;
b=14;
w=1;
c=16;

我想看看女巫的号码是大的,a还是b。在依赖于较小的变量之后,获取较小变量的值(在本例中为b < a),并使用c变量( c=b-w)进行简单操作。

我试过这样做但不起作用。

代码语言:javascript
复制
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语句中更改变量的值。我能用什么技巧来达到我的目标。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-09 14:19:48

OpenSCAD的变量分配是不同的。只能在括号内分配变量。因此,c = b - w将只被分配给中的if括号。在外面,如果这个支架仍然是16,不要问我为什么。您可以在OpenSCAD文档中阅读更多内容。

票数 9
EN

Stack Overflow用户

发布于 2015-03-25 19:15:52

在第3节中,您将赋值运算符“=”与相等运算符“==”(正确的if (a==b))混淆。在你的3条腿中,你做的和2一样,所以你可以作为一个“其他”的-leg来处理这两个问题。

正确:在if-语句中不允许赋值.在openscad中,您可以使用?操作符来代替:

代码语言:javascript
复制
c = a > b ? b-w : a-w;

=遵循条件后。如果条件为true,则?后的语句将变为值,如果条件为false,则:后的语句将变为值。嵌套条件是可能的,例如您的条件:

代码语言:javascript
复制
c = a > b ? b-w : (a < b ? a-w : a-w);

文档中的更多信息。

票数 13
EN

Stack Overflow用户

发布于 2015-03-25 20:39:03

代码语言:javascript
复制
c = min(c,min(a,b)/2-w);

这也解决了这个问题)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29260613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档