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 ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

CSS @media print 使用详解

《CSS@mediaprint使用详解》:本文主要介绍了CSS中的打印媒体查询@mediaprint包括基本语法、常见使用场景和代码示例,如隐藏非必要元素、调整字体和颜色、处理链接的URL显示、分页控制、调整边距和背景等,还提供了测试方法和关键注意事项,并分享了进阶技巧,详细内容请阅读本文,希望能对你有所帮助...

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ