3dsmax maxscript教程-间隔取一个多边形面小脚本

重新编写一段关于editpoly间隔一格取一个面的算法,我之前也写过一个类似的算法,但是觉得算法太过于依赖数学运算而不是3dsmax maxscript的运算流程的,数学运算的通用性感觉不大好,而且修改繁琐,这次改进的算法就简练多了,可重用性还不错,只要稍微修改几个参数就能得到各式各样的效果,

算法分解:

–建立空数组

n=#()

–分列数。就是一个网格格子纵向的数量

k=32

–数组n的系列排序,初始量为1

u=1

–for循环 a的值等于网格的行数量

for a =0 to 20 do

(

–mod是取余数的运算,当余数等于0时运算代码,不等于0时运行代码

if (mod a 2)==0 then

(

–在if语句中嵌套for循环函数,当等于0时,做k值范围内的循环运算,b的值每次加2取值

for  b=1 to k by 2 do

(

–数组赋值

n[u]=a*k+b

u+=1

)

)

else

(

–同上

for  b=2 to k by 2 do

(

n[u]=a*k+b

u+=1

)

)

)

–定义变量m,把n数组的数据类型转化为bitarray

m=n as bitarray

–选择bitarray值的曲面

$.EditablePoly.SetSelection #Face m

 

零刻学堂是专注建筑设计建模技术研究的网站,站长本人也在犀牛领域担任高级讲师多年,精通犀牛建模、建筑参数化和工业建模。
本站文章除了注明【转载】的,均为本人和本站用户原创,如需转载无需通过本人同意,但务必在转载文章内部添加本文链接和作者署名,违者追究其责任。
零刻学堂 » 3dsmax maxscript教程-间隔取一个多边形面小脚本

发表评论