学习用MaxScipt批处理Max文件

需求

对几百个.max文件中的指定指定名称的骨骼进行重命名。

解决

考虑到是一次性需求,花了两个钟用maxscript实现了功能,基本逻辑把改名规则做成配置文本,然后一个个加载文件夹中的max档更加配置给节点改名。

为了方便以后使用,又用winform写了个带详细使用说明的界面,这个界面可以编辑配置文件,指定批处理文件夹,最后通过cmd来启动3dsmax执行这个脚本:

MaxScript:

-- by Tongyun Liu
-- 2017-4-27
----------------- define variables -------------------------------
logpath = @"D:\BoneRename.txt"
inipath = @"D:\RenameLog.ini"
batchpath = @"D:\batch_Directories.ini"outputLogs = #()
inifile = openfile inipath----------------- define functions -------------------------------
fn fn_RenameAllMax =
(batchfile = openfile batchpathwhile not eof inifile do(iniLine = #()iniLine = filterString (readline inifile) "="if(iniLine!= undefined) then(len = iniLine.countif(len == 2) then(oldName = trimRight iniLine[1] "\t"newName = trimLeft iniLine[2] "\t"if(oldName !=undefined) and (oldName !=undefined)and(oldName !=undefined) then(bobj = execute("$'"+oldName+"'")for o in objectswhere (classof(o) == biped_object) or (classof(0) == BoneGeometry) do(if((bobj != undefined) and (o.name == bobj.name)) then(append outputLogs ("\t["+oldName+"]\t\tRenameTo:\t\t["+newName+"]")bobj.name = newName))))))return 1
)--------------------------------- batch rename -------------------------------------
while not eof batchfile do
(maxpathline = readline batchfileif(maxpathline != "")and((findstring maxpathline ".max") != undefined) then(loadmaxfile maxpathlineappend outputLogs ("MaxFileName: "+maxpathline + "\t\t"+localtime)func_rename = fn_RenameAllMax()savemaxfile maxpathline clearNeedSaveFlag:true quiet:true)
)close inifile
close batchfile---------------------- output logs --------------------------------------------
append outputLogs ("\n-------------------------------------------------------")
logfile = openfile logpath mode:"a+"
print outputLogs to: logfile
close logfile
shelllaunch "notepad.exe" logpathquitmax #noPrompt

命令行启动和操作3dsmax

在winform中启动max并执行maxScript的方法:

private void RunCmd()
{Process process =  new Process();string maxExePath = "3dsmax.exe所在的文件夹路径";string maxScriptPath = "需要执行maxscript脚本的路径";process.StartInfo.WorkingDirectory = maxExePath;process.StartInfo.FileName = "3dsmax.exe"process.StartInfo.Arguments = " -silent -mip -u MAXScript " + maxScriptPath;process.Start();process.WaitForExit();if(process.HasExited){process.Close();}
}

转载于:https://www.cnblogs.com/CloudLiu/p/10746060.html

学习用MaxScipt批处理Max文件相关推荐

  1. 学习用Photoshop来设计简单的网页

    学习用Photoshop来设计简单的网页   从设计<动力文章系统2003>的两张网页开始: 一张是网站首页,一张是文章内容页 通过对这两张网页的完整设计初步掌握PS设计网页的基本操作. ...

  2. 【Flask】篇一:Error: Failed to find Flask application or factory in module “学习用“. Use “FLASK_APP=学习用:nam

    项目场景: 今天我们开始学习一下Flask,在运行到第一个最简单的应用时,出现了错误,让我们来看一下! 问题描述: 当我输入了flask run后,跳出一大堆的报错信息: Error: Failed ...

  3. 一起学习用Verilog在FPGA上实现CNN----(三)激活层设计

    1 激活层设计 LeNet-5网络的激活函数是双曲正切函数(TanH),项目中tanh函数模块由完整的层UsingTheTanh构成,该层由较小的处理单元HyperBolicTangent组成 1.1 ...

  4. doxygen 命令_学习用 doxygen 生成源码文档

    学习用 doxygen 生成源码文档 Arpan Sen 2008 年 10 月 13 日发布 维护用 C/C++ 开发的遗留系统并添加新特性是一项艰难的任务.这涉及几方面的问题:理解现有的类层次结构 ...

  5. 学习用 doxygen 生成源码文档

    学习用 doxygen 生成源码文档 Arpan Sen, 资深工程师, Studio B Productions 简介: 维护用 C/C++ 开发的遗留系统并添加新特性是一项艰难的任务.幸运的是,d ...

  6. 学习用C#在Unity中创建一个2D Metroidvania游戏

    学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...

  7. java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始

    java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...

  8. python中年大叔学编程_中年大叔学编程-Python简单操作文件

    原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...

  9. python批处理修改文件的名字

    [十一月的萧邦] 蛋蛋说我写的博客叫做情感博客,所以现在不忍心,出来水一篇,毕竟为了庆祝十一月的到来. 十一月有周杰伦的新专辑,当时我们买了藏在书包里,开运动会,一本漫画,一副耳机,躺在绿油油的草地上 ...

  10. thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE

    原标题:学习用 Thonny 写代码:一个面向初学者的Python IDE 编译自: https://fedoramagazine.org/learn-code-thonny-python-ide-b ...

最新文章

  1. php的匿名函数和闭包函数
  2. 第五章ThinkingInJava
  3. bitMap保存图片
  4. 机器学习中的逻辑回归
  5. HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)...
  6. 请求编码和响应编码乱码原因及解决方案
  7. 三、Express 路由
  8. 1113: 递归调用的次数统计(函数专题)
  9. python中id函数的用法_用id函数做几个测试
  10. java byte json_关于java:当前推荐的将byte []转换为JsonNode并返回的方法
  11. 从SVN资源库下载项目
  12. 二值图像中封闭孔洞的高效填充算法(附源码)。
  13. mysql 限制单个用户资源_限制MySQL数据库单个用户最大连接数等的方法
  14. php 中 的含义
  15. 校园网综合布线设计方案
  16. 刷题笔记(一)《王道计算机考研机试指南2》
  17. 打印机提示更换墨盒,但打印字仍很清晰,打印机设置还能用很久
  18. win10照片查看器_win10最好的看图软件?win10照片查看软件推荐
  19. mne.io.read_raw_edf()
  20. mysql里面的打钩框是什么东西_jquery 如何对checkbox打勾,取消打勾,打勾判断呢?...

热门文章

  1. 7-31 查验身份证 (15 分)
  2. STL-vector容器
  3. linux c 宏 文件名,C语言标准宏获取文件名、行号、函数名的方法以及#和##的用法...
  4. Android入门笔记04
  5. 【标注图像】windows下使用labelImg
  6. java图片转ASCII码_将图片转化成对应的Ascii字符图片
  7. param.requires_grad = False
  8. 程序的静态链接,动态链接和装载
  9. 三星手机怎么看html5,高端手机什么样?看三星S20 FE 5G就知道了
  10. 2021-07-07 分类页面结构