设置面板操作
因为修改器的 许多操作 是要在修改器面板上实现的,所以通过脚本来控制时 可能当前面板不是修改器面板,有可能出现些奇怪的错误,所以这个命令会比较常见
setCommandPanelTaskMode #modify
-- 可以设置的其它面板包括: #create | #modify | #hierarchy | #motion | #display | #Utility
子物体
-- 修改器子物体
subObjectLevel = 0 / 1 / 2 / 3 / 4 / 5
-- 设置物体的subLevel
-- 正确设置会返回True,否则Falsefn fnSetSubLevel iLevel=
(
try
(
-- 强制转到Modify面板
-- 因为在其他面板做此操作是无效的
setCommandPanelTaskMode #modify
-- 设置SubLevel
subObjectLevel = iLevel
return true
)
catch(return false)
)
/* -- 调用例子:
-- 如果能够设置到那个层级会返回True,进行下一步操作,否则就什么都不做了
if(fnSetSubLevel 5)then
(
-- 做一些事情
)
else(print "set subLevel failed!")
*/
mods = $.modifiers
-- 声明一个修改器
smoothMod = smooth()
-- 显示所有属性 showproperties smoothMod
-- 设置属性:
smoothMod.autoSmooth = truesmoothMod.threshold = 180
-- 添加到所选的物体上
for s in selection do addmodifier s smoothMod
-- 注意这里所有选择的物体用得是同一个修改器
-- 如果要给每个物体赋予独立的修改器,那么把修改器声明放在遍历里面
deleteModifier <node> <modifier_or_index>
fn fnGetModifiers obj=
(
mods = obj.modifiers
return (for m in mods collect (m.name as name))
)
-- 调用: 获得单个选择物体的修改器列表
-- mods = fnGetModifiers $
-- 返回一个列表(因为一个物体上可能有 多个同名的修改器)
fn fnFindModifier obj modName=
(
local foundList = #()
local mods = obj.modifiers
for m in mods do
(
if(m.name == modName)then
(
append foundList m
)
)
return foundList
)
-- 例子: 查找Smooth
-- smMod = fnFindModifier $ "Smooth"
/*
随意在场景里建一些几何体
随意加上Smooth修改器,或其他的修改器
脚本会查找Smooth修改器并设置属性
*/
-- 批量设置物体修改器
fn fnBatchSetSmoothModifiers=
(
-- 遍历所有几何体
for g in geometry do
(
-- 用于收集修改器的数组
local modList = #()
-- 查找物体上是否有Smooth修改器
if(g.modifiers[#Smooth] != undefined)then
(
-- 搜集到列表内
append modList (g.modifiers[#Smooth])
)
-- 遍历修改器列表
if( modList.count > 0 )then for m in modList do
(
m.AutoSmooth = true
m.threshold = 180
)
)
)
作者:TAZORN
著作权归作者所有
【相关阅读】:
Maxscript_基础_回调函数:http://tk.v5cg.com/help/246.html
Maxscript_基础_材质处理:http://tk.v5cg.com/help/247.html
Maxscript_基础_修改器操作:http://tk.v5cg.com/help/248.html
Maxscript_基础_创建窗口:http://tk.v5cg.com/help/249.html
Maxscript_基础_遍历与递归:http://tk.v5cg.com/help/250.html
Maxscript_与DotNet交互:http://tk.v5cg.com/help/251.html
【上传发布插件】:
编写3DMAX插件到发布上线全流程:http://tk.v5cg.com/help/147.html
代码上传与工具发布:http://tk.v5cg.com/help/99.html
代码发布,部署实例参考:http://tk.v5cg.com/help/140.html
PS【动作库】代码部署指南:http://tk.v5cg.com/help/141.html
CG云盘 - 开发者使用说明:http://tk.v5cg.com/help/34.html