如何着手“写”一个参数化模型,就好像我们写议论文一样,要提出论点,给出论据最后总结归纳一样。写模型的时候也有相应的“结构”。

一个完整的参数化组件的代码分为三部分。

首先来看第一部分



第一部分只包括第一行
from pyp3d import *

这一行的含义是引用“pyp3d”这个库。

Python有很多“库”,不论是第一方还是第三方。库可以理解为工具箱,函数可以理解为工具。一开始引用库就是为了使用库(工具箱)中的各种函数(工具)

第二部分从第二行开始,第二部分主要分为前半部分的参数定义和后半部分的模型造型。

首先我们用class,类的方式来定义参数和模型造型。这里我们给我们要定义的模型(类)起个中文名叫立方体,后面的括弧和component不动。

我们用细线红框给大家标注了出来第二部分里哪些是需要我们修改的,其他部分我们不要动,照抄就可以了。



定义部分,从def开始,def这一行和它下面的一行不用动。案例中我们需要自己写的部分是第五行开始。案例中第五行到第七行,是在自定义参数名称和参数默认值。self[‘’]中的字符串就是参数名。Attr中的数值就是该参数的默认数值,obviousreadonly是两个Tag,分别表示该参数的显隐性和只读性。这两个tag的默认值都是false。

obvious = True 参数可见,obvious = False或不输入该tag时,参数不可见。readonly = True时,参数只读,不可修改,readonly = False和不输入时,参数可修改。排列组合一下

第八行,我们要把我们的模型也作为一个 “特殊参数” 定义一下。这里注意,参数不需要修改,保持Noneshow = True。这里的None相当于占了一个【空位】,这个空位是为我们的模型预留的。

show = False或不输入show这个tag时,将不显示该“特殊参数”所对应的模型

第9-11的内容不动。

从第11行def replace(self)开始是第二部分的后半部分。也就是造型模型的部分。

注意,最终的模型必须要赋值给我们定义的那个“特殊参数”。也就是我们之前预先占了【空位】的那个参数



第19行开始,是在实现模型的布置。

20行中的Final Geometry必须指向第二部分的class,这是对模型的一个修饰过程,为的是能够使旋转布置、两点布置等功能正常使用,因此不可省略。
第21行作用是布置模型。20、21行中的FinalGeometry可以换成任何一个未出现过的变量名,但须保持一致