0

有没有办法直接从根目录中产生差异?我想做这样的事情:

difference(){
    root();
    cube();
}

而不是这个:

difference(){
    union(){
        object1();
        object2();
        .
        .
        objectN();
    }
    cube();
}
4

2 回答 2

1

你已经在那里了。您只需要像这样定义root()cube()作为模块:

difference(){
  root();
  cube();
}

module root(){
  object1();
  object2();
  ...
}

module cube(){
  //some cube definition
}

在后台,OpenSCAD 会在每个模块周围秘密地为你创建一个 union(),就像你写的一样:

module xyz(){
  union(){
    //objects
  }
}

所以在这个例子中,一个对象root()被创建并且cube()将从这个对象中减去。通过使用模块定义,您可以使您的代码像您要求的那样模块化。

您可能还想在这里查看官方文档和备忘单。

于 2019-01-25T08:00:40.957 回答
0

difference() 模块从第一个模块中减去所有其他孩子。在第一个片段中,第一个孩子是 root(),第二个第一个孩子是 union(),并且在两个立方体中都被减去。

于 2018-12-14T12:54:55.200 回答