最近接手了 3DSMAX的项目,学习了一些maxscript知识,进行总结一下。
加载数据 保存数据
loadMaxFile "路径" //加载数据
saveMaxFile "路径"//保存数据
可以设置几个button 来进行数据的打开和保存
max file open //打开
max file save //保存
max file saveas //另存为
对于对象顶点坐标的修改,在修改前需要将对象选中后,将其转换为可编辑网格。
select $Box01//选中打开的图像
macros.run "Modifier Stack" "Convert_to_Mesh"//转换为可编辑网格
getnumverts $ 获取选中网格的 顶点数目
getvert $ 顶点序号 获取顶点坐标 //getvert $ 1
setvert $ 顶点序号 修改顶点坐标 //setvert $ 1 [1,2,3]
deletevert $ 顶点序号
setvertselection $ #{1..6} 指定某个点被选中,(示例为选中1到6号点)
move $.selectedverts [10,0,0] 对选中的点进行移动
若一个场景中有多个对象,则需要加入循环语句来遍历。
for g in geometry do //遍历场景中的 gemoetry
(
select g //选中当前的 gemoetry
macros.run "Modifier Stack" "Convert_to_Mesh"
x=getnumverts $//当前对象的顶点数
for i=1 to x do //遍历所有顶点
(
vert = getvert $ i //将顶点数值保存在vert中
vert[1]=vert[1]+(random 0 100) //修改示例
vert[2]=vert[2]+(random 0 100)
vert[3]=vert[3]+(random 0 100)
setvert $ i vert
)
messagebox "修改成功"
)