有很多同学可能想要知道该如何实现属性表中的下拉选择,而不是完全由数值输入的形式来改变参数,毕竟有很多构件是有标准尺寸的,而标准尺寸是有多个固定的数值,并不允许随意更改。因此,下拉选择还是很有必要的

想要实现下拉选择的效果实际上很简单,我们只需要在设置参数时,在Attr里面新增一个Tag就可以了。

3.3.1 combo标签

通常,我们在设置参数时,一般会在Attr中放置文字(str)或数值(intfloat),以及obviousreadonly这两个tag。现在,我们有一个新的tag——combo

注意,obviousreadonlycombo这三个tag全部都是纯小写字母,不要输入大写字母。

combo标签的格式如下所示:

    self['长'] = Attr(1000.0, obvious=True, combo = [500,1000,2000,3000,4000])

需要将一个list赋值给combo标签。要注意的是,list中装填的元素应当与Attr中给定的默认参数保持相同类型,并且应当有一个元素与默认参数相同。

接下来,我们以长方体为例,将combo标签放入Attr中。

from pyp3d import *
class 立方体(Component):
    def __init__(self):
        Component.__init__(self)
        self['长'] = Attr(1000.0, obvious=True, combo = [500,1000,2000,3000,4000])
        self['宽'] = Attr(1000.0, obvious=True)
        self['高'] = Attr(1000, obvious = True)
        self['立方体'] = Attr(None, show=True)
        self.replace()
@export
    def replace(self):
        L = self['长']
        W = self['宽']
        H = self['高']
        TestCube = scale(L,W,H) * Cube()
        self['立方体'] = TestCube
if __name__ == "__main__":
    FinalGeometry =立方体()
    place(FinalGeometry)

此时,我们运行脚本并将长方体布置到工程文件中,并选中该长方体,可以看到,该长方体的参数“长”已经变成了下拉选单的形式。


注意,当使用了combo标签时,就不能再随意设置数值了。因此,一定要确认好是否需要任意修改参数的数值后,再决定是否使用combo标签。