% 和 # 在 OpenSCAD 中的行为差异

Difference in behavior in OpenSCAD between % and #

在 Mac OS 10.15.7,

上使用 OpenSCAD 2019.05
difference() {
  cube(size = [14, 24, 17], center = false);
  % cube(size = [10, 20, 17], center = false);
}

失败(有时出现熟悉的“无几何”错误,有时出现没有减法的立方体)。

但是,仅用 # 替换 %,就会产生预期的行为。我是不是误解了 # 和 % 的语义?

(如您所料,我没有这样写代码,我从我的原始程序中提取了 CSG 输出并将其归结为这个示例。)

我以前也被他们搞糊涂了。 % 允许您在模型的 F5 预览中放置不会显示在 F6 实际渲染中的东西。参见 https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Modifier_Characters#Background_Modifier "在正常渲染过程中忽略此子树,并以透明灰色绘制(所有变换仍应用于此树中的节点)。"

因此,当您渲染它时,带有 % 的行将被忽略,它应该会导致第一个立方体被渲染为未修改。