布尔主要包括两种操作,分别是Fusion(布尔并和布尔减)和Intersection(布尔交),在布尔时,参与布尔的几何体会被抹除原有的颜色信息。因此需要重新设置颜色。
4.1 布尔并与布尔减
在新版的参数化组件中,布尔并与布尔减可以用加号“+”和减号“-”来表示。
布尔并示例:
# 融合(布尔并与布尔减)
testa = translation(100,100,0) * scale(1000,300,500) * Cube().color(1,0,0,1)
testb = translation(0,0,0) * scale(1000,300,500) * Cube().color(0,1,0,1)
testFusion = testa+testb
布尔减示例:
# 融合(布尔并与布尔减)
testa = translation(100,100,0) * scale(1000,300,500) * Cube().color(1,0,0,1)
testb = translation(0,0,0) * scale(1000,300,500) * Cube().color(0,1,0,1)
testFusion = testa-testb
4.2 布尔交
函数:Intersect
Intersect中可以装填多个几何体,最终生成所有几何体的“交集”。
testa = translation(100,100,0) * scale(1000,300,500) * Cube().color(1,0,0,1)
testb = translation(0,0,0) * scale(1000,300,500) * Cube().color(0,1,0,1)
testFusion = Intersect(testa,testb)
4.3 组合 Combine
组合不同于布尔,组合时并不会将两个几何体重叠的部分进行处理,同时,颜色信息也不会被抹除。如果对组合后的模型赋予颜色,那combine中的所有几何体都会变为该颜色。
示例:
testa = translation(100,100,0) * scale(1000,300,500) * Cube().color(1,0,0,1)
testb = translation(0,0,0) * scale(1000,300,500) * Cube().color(0,1,0,1)
TestCombine = combine(testa,testb)