两点布置中,需要选定一个变量作为线性变量,通常选择为长、高等。
要点:线性布置的构件中,要进行线性变化的变量需要放在X轴上。放置在Y轴或Z轴时,需要对几何体进行旋转。
我们以长度为线性变量的长方体两点布置为例。(案例为非参数化,可自行改为参数化模型脚本)
示例:
from pyp3d import *
class 立方体(Component):
def __init__(self):
Component.__init__(self)
self['长'] = Attr(1000.0, obvious=True)
self['宽'] = Attr(300.0, obvious=True)
self['高'] = Attr(500, obvious = True)
self['立方体'] = Attr(None, show=True)
self['旋转角度'] = Attr(0,obvious = True)
self['X'] = Attr(0.0, obvious=True)
self['Y'] = Attr(0.0, obvious=True)
self['Z'] = Attr(0.0, obvious=True)
self.replace()
@export
def replace(self):
L = self['长']
W = self['宽']
H = self['高']
x = self['X']
y = self['Y']
z = self['Z']
Angle = self['旋转角度']
TestCube = translate(x,y,z) * rotation(math.pi/180 * Angle) * scale(L,W,H) * Cube()
self['立方体'] = TestCube
if __name__ == "__main__":
# 第一行 对【立方体】这个class进行装饰
FinalGeometry = 立方体()
# 第二行 实现两点布置
TwoPointPlace.linearize(FinalGeometry,'长')
place(FinalGeometry)

图4.2-1