学习用MaxScipt批处理Max文件
学习用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文件相关推荐
- 学习用Photoshop来设计简单的网页
学习用Photoshop来设计简单的网页 从设计<动力文章系统2003>的两张网页开始: 一张是网站首页,一张是文章内容页 通过对这两张网页的完整设计初步掌握PS设计网页的基本操作. ...
- 【Flask】篇一:Error: Failed to find Flask application or factory in module “学习用“. Use “FLASK_APP=学习用:nam
项目场景: 今天我们开始学习一下Flask,在运行到第一个最简单的应用时,出现了错误,让我们来看一下! 问题描述: 当我输入了flask run后,跳出一大堆的报错信息: Error: Failed ...
- 一起学习用Verilog在FPGA上实现CNN----(三)激活层设计
1 激活层设计 LeNet-5网络的激活函数是双曲正切函数(TanH),项目中tanh函数模块由完整的层UsingTheTanh构成,该层由较小的处理单元HyperBolicTangent组成 1.1 ...
- doxygen 命令_学习用 doxygen 生成源码文档
学习用 doxygen 生成源码文档 Arpan Sen 2008 年 10 月 13 日发布 维护用 C/C++ 开发的遗留系统并添加新特性是一项艰难的任务.这涉及几方面的问题:理解现有的类层次结构 ...
- 学习用 doxygen 生成源码文档
学习用 doxygen 生成源码文档 Arpan Sen, 资深工程师, Studio B Productions 简介: 维护用 C/C++ 开发的遗留系统并添加新特性是一项艰难的任务.幸运的是,d ...
- 学习用C#在Unity中创建一个2D Metroidvania游戏
学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- python中年大叔学编程_中年大叔学编程-Python简单操作文件
原标题:中年大叔学编程-Python简单操作文件 在计算机中,经常打交道的就是各种文档,用得比较多的软件就是office和记事本来操作文件,那么我们试试用Python来简单读写文件. Open函数的用 ...
- python批处理修改文件的名字
[十一月的萧邦] 蛋蛋说我写的博客叫做情感博客,所以现在不忍心,出来水一篇,毕竟为了庆祝十一月的到来. 十一月有周杰伦的新专辑,当时我们买了藏在书包里,开运动会,一本漫画,一副耳机,躺在绿油油的草地上 ...
- thonny python ide_学习用 Thonny 写代码:一个面向初学者的Python IDE
原标题:学习用 Thonny 写代码:一个面向初学者的Python IDE 编译自: https://fedoramagazine.org/learn-code-thonny-python-ide-b ...
最新文章
- php的匿名函数和闭包函数
- 第五章ThinkingInJava
- bitMap保存图片
- 机器学习中的逻辑回归
- HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)...
- 请求编码和响应编码乱码原因及解决方案
- 三、Express 路由
- 1113: 递归调用的次数统计(函数专题)
- python中id函数的用法_用id函数做几个测试
- java byte json_关于java:当前推荐的将byte []转换为JsonNode并返回的方法
- 从SVN资源库下载项目
- 二值图像中封闭孔洞的高效填充算法(附源码)。
- mysql 限制单个用户资源_限制MySQL数据库单个用户最大连接数等的方法
- php 中 的含义
- 校园网综合布线设计方案
- 刷题笔记(一)《王道计算机考研机试指南2》
- 打印机提示更换墨盒,但打印字仍很清晰,打印机设置还能用很久
- win10照片查看器_win10最好的看图软件?win10照片查看软件推荐
- mne.io.read_raw_edf()
- mysql里面的打钩框是什么东西_jquery 如何对checkbox打勾,取消打勾,打勾判断呢?...
热门文章
- 7-31 查验身份证 (15 分)
- STL-vector容器
- linux c 宏 文件名,C语言标准宏获取文件名、行号、函数名的方法以及#和##的用法...
- Android入门笔记04
- 【标注图像】windows下使用labelImg
- java图片转ASCII码_将图片转化成对应的Ascii字符图片
- param.requires_grad = False
- 程序的静态链接,动态链接和装载
- 三星手机怎么看html5,高端手机什么样?看三星S20 FE 5G就知道了
- 2021-07-07 分类页面结构