Maxscript入门教程:Print与Format命令

2023-12-12 18:30

本文主要是介绍Maxscript入门教程:Print与Format命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文对Maxscript中的“Print”和“Format”命令之间的差异进行了一些小小的研究,得出的结论主要的差异是它们的结果中的引号“”。

“Print”很简单,直接使用,在调试时非常有用。为了工作,它只需要一个字符串(这是两个引号“”之间的一个正常句子)或变量,例如:

print "I love maxscript"
"I love maxscript"
Print $.pos -- this will print the position of the selected object
[10,10,0]

如果你想在$.pos和string等值之间混合,你必须在值后面使用(as string)命令将位置转换为字符串,如下所示:

print ("objPos="+ $.pos as string)
Result:
"objPos=[10,10,0]"

如果您想打印一个对话框,其中每行都包含一个句子,那么我们必须在每行后面添加(\n):

print "How are you today?\n I'm fine, thanx\n"
Result:
"How are you today?I'm fine, thanx
"

到目前为止,一切都很好,但print命令有一些局限性,例如,当你想写入外部文件(*.ms或*.txt)时,你会遇到这种情况(我将在教程的最后提供一个关于写入外部文件的完整示例,现在只关注print命令)。假设你想向ms文件写入以下代码:

print ("mergemaxfile @\"" + @"D:\temp\test.max" + "\"")
the result would be:
"mergemaxfile @"D:\temp\test.max ""

这是无用的,你不能执行这一行,因为它是一个字符串

我们要这行,但不要引号“”。

或者在另一种情况下,您希望将对象数据(如名称、位置和旋转)导出到txt文件:

objName = $.name as string
objPos = $.pos as string
objRot = $.rotation as string
print ("name:" + objName + " pos:" + objPos + " rot:" + objRot )
Result:
"name:Point01 pos:[5,5,5] rot:(quat 0 0 0 1)"

再次引用。

那么如何摆脱它们呢。这很简单,只需使用“格式”命令即可。我们可以将它与一个简单的字符串一起使用:

format "How are you today?\n I'm fine, thanx\n"
Result:
How are you today?I'm fine, thanx

与打印命令的结果相同,但没有引号。

如果我们想打印像$.pos这样的值,或者让它有点复杂,并引入字符串和值的混合,那么我们必须使用一种叫做字符串格式参数的东西。不要被这个名称吓倒,它是我们要打印的值之前的一个小字符串,可以使Format命令正常工作。

检查以下内容:

format "%" ( $.pos) -- Just make sure only one object selected in the scene
[10,10,0]
format "object position= %" ( $.pos)
object position=[10,10,0]
format "name:% pos:% rot:%" $.name $.pos $.rotation
name:Box001 pos:[10,10,0] rot:(quat 0 0 0 1)

简单地说,它打印第一个块(字符串),同时用下一个块中的变量或值替换每个%符号。它这样做的顺序是,第一个%将被$.name(在第三个代码中)取代,如图所示:

如果您希望每个结果都在一条单独的线上,那么在每个类似的后面使用:

format "name:%\n pos:%\n rot:%\n " $.name $.pos $.rotation
Result:
name:Box001pos:[10,10 ,0]rot:(quat 0 0 0 1)

还有一件事,假设您希望结果带有引号“”,让我们在上面的例子中将其添加到对象的名称中。我们可以通过在名称前后添加“”来实现这一点,因为名称由%表示,所以它将是“%”:

format "name:\"%\"\n pos:%\n rot:%\n " $.name $.pos $.rotation
Result:
name:"Box001"pos:[10,10 ,0]rot:(quat 0 0 0 1)

最后,让我们使用maxscript创建一个ms文件,并使用Print和Format在其中写入,看看区别:

-- Print example first make sure the directory exist before proceeding
Printfile=@"D:\temp\Print.ms" -- the file we are creating print.ms
Outfile = createfile Printfile -- createfile command will create the file for us
print ("Box()") to:Outfile -- write to the file using print method
close Outfile -- you have to close it before continuing or else you won't be able to edit it later
Result:
now open the created file and you will find a string inside it:
"Box()"
-- Format example just replace print by format "%"
Formatfile=@"D:\temp\Format.ms" 
Outfile = createfile Formatfile
format "%" ("Box()") to:Outfile 
close OutfileResult:
now open the created file and you will find a command that will create a box
Box()to take it one step further you can test it using:
filein Formatfile -- this will open the script and run it and you should see a box

感谢大家的耐心阅读,下期再见!

这篇关于Maxscript入门教程:Print与Format命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485554

相关文章

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文