近期热门
粉丝36
关注 0
获赞 27
批量添加/去除场景中所有Poly和Mesh类型Geometry的前缀

[脚本] 批量添加/去除场景中所有Poly和Mesh类型Geometry的前缀

[复制链接]
3756 0 0 0 12年前 举报
以下脚本可以批量添加删除Poly和Mesh的名称前缀,对已经含有指定前缀的,不会重复添加;对不含有指定前缀的或只由指定前缀构成名称的目标物体,也不会从原有名称中强制删除指定前缀所占位置的字符。

脚本为了适应Blog单页显示宽度,稍作了格式修改,可能会有些拖沓,但不影响使用。代码简单,不作过多注释了。

–MaxScript
–批量添加/去除场景中所有Poly和Mesh类型Geometry的名称前缀
–陆宗靖 2010.May.24
  1. fn fnAddPrefix2AllMeshNPoly paraStrPrefix =
  2. (
  3. for obj in geometry do
  4. (
  5. if (Editable_Mesh == classof obj) \
  6. or (Editable_Poly == classof obj) \
  7. or (PolyMeshObject == classof obj) \
  8. or (EditablePolyMesh == classof obj) do
  9. (
  10. if (obj.name.count <= paraStrPrefix.count) do
  11. (
  12. targetName = paraStrPrefix+obj.name
  13. format “Rename % to %\n” obj.name targetName
  14. obj.name = targetName
  15. Continue
  16. )

  17. prefix_str = substring obj.name 1 paraStrPrefix.count
  18. prefix_str = toLower prefix_str
  19. if (prefix_str != paraStrPrefix) then
  20. (
  21. targetName = paraStrPrefix+obj.name
  22. format “Rename % to %\n” obj.name targetName
  23. obj.name = targetName
  24. )
  25. else
  26. (
  27. format “Ignored %\n” obj.name
  28. )
  29. )
  30. )
  31. )

  32. fn fnRemovePrefix2AllMeshNPoly paraStrPrefix =
  33. (
  34. for obj in geometry do
  35. (
  36. if (Editable_Mesh == classof obj) \
  37. or (Editable_Poly == classof obj) \
  38. or (PolyMeshObject == classof obj) \
  39. or (EditablePolyMesh == classof obj) do
  40. (
  41. –跳过变量名过短的—
  42. –skip vars with shorter name length
  43. if (obj.name.count <= paraStrPrefix.count) do
  44. (
  45. Continue
  46. )

  47. prefix_str = substring obj.name 1 paraStrPrefix.count
  48. prefix_str = toLower prefix_str
  49. if (prefix_str != paraStrPrefix) then
  50. (
  51. format “Ignored %\n” obj.name
  52. )
  53. else
  54. (
  55. tgtNameOffset = paraStrPrefix.count+1
  56. tgtNameLen = obj.name.count-paraStrPrefix.count
  57. tgtName = substring obj.name tgtNameOffset tgtNameLen
  58. format “Rename % to %\n” obj.name tgtName
  59. obj.name = tgtName
  60. )
  61. )
  62. )
  63. )
复制代码
–使用例子—
fnAddPrefix2AllMeshNPoly “map04_”
–fnRemovePrefix2AllMeshNPoly “map04_”
MessageBox “Finished!”

转自:http://bloging.biz/wordpress/?tag=maxscript
0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论0
您需要登录后才可以回帖 登录

暂无评论,去成为第一人吧
您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器