Отличие операции от root - PullRequest
0 голосов
/ 18 ноября 2018

Есть ли способ отличить напрямую от root? Я хочу сделать что-то вроде этого:

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

вместо этого:

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

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы уже там.Вам просто нужно определить root() и cube() как модули следующим образом:

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

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

module cube(){
  //some cube definition
}

В фоновом режиме OpenSCAD будет тайно создавать union () для каждого модуля для вас, как если бы вы написали:

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

Таким образом, в этом примере объект root() создан и cube() будет вычтено из этого объекта.Используя определение модуля, вы сохраняете свой код таким же модульным, как и просили.

Возможно, вы также захотите взглянуть на официальный документ и шпаргалку здесь .

0 голосов
/ 14 декабря 2018
Модуль

diff () вычитает всех остальных потомков из первого.В первом фрагменте первый дочерний элемент является root (), во втором первом дочернем элементе union (), и в обоих кубах вычитается.

...