详细的教程指南,介绍如何使用MaxScript在视口中直接显示对象名称、坐标和顶点索引等信息。
在本教程中,您将学习如何借助MaxScript在视口中直接显示对象信息或数据。
本教程介绍了如何显示简单的内容,如对象的名称、坐标,最后是可编辑多边形对象的顶点索引,并对代码进行了适当的解释。让我们开始吧。
第1步:
让我们打开Maxscript编辑器并编写下面给出的代码。
fn ViewportTextDisplay =
(
gw.setTransform (Matrix3 1)
for obj in objects where obj.isselected == true do
(
gw.text obj.pos (obj.name as string) color:Yellow
)
)
gw.UpdateScreen()
说明:
gw.setTransform (Matrix3 1)
将视口图形窗口的视口变换矩阵设置为标识矩阵。
for obj in objects where obj.isselected == true do
这是用于检查选定对象的For循环。这里,obj是for循环索引变量,它可以是除MaxScript保留的关键字之外的任何内容。
gw.text功能是创建文本。我使用obj.pos作为文本位置,因为我希望文本与选定对象保持相同的空间。
obj.name是要在视口中显示的选定对象的名称,gw.UpdateScreen()函数用于更新视口。
所有这些代码都在名为ViewportTextDisplay的函数中。
第2步:
现在,我们必须使用3ds max回调来注册函数ViewportTextDisplay。让我们继续,在脚本末尾再添加一行。
RegisterRedrawViewsCallback ViewportTextDisplay
此行使用函数ViewportTextDisplay注册重画视图回调。现在,每次3dsmax重绘视口时都会调用函数ViewportTextDisplay。
让我们创建几个对象,并通过按Ctrl+E热键来计算脚本。您可以注意到,选定对象现在有一个名称为字符串的文本。
第3步:
假设我们想显示对象的坐标而不是对象的名称,那么我们只需在脚本中将obj.name替换为obj.pos即可。
现在,再次评估脚本,注意我们在视口中显示了对象的位置数据,但前面带有对象名称的文本仍然存在,导致重叠。
第4步:
为了修复重叠的文本,我们必须首先注销函数以清除所有以前的数据或信息。
要注销函数,我们必须编写一行简单的代码
UnregistereDrawViewScallBack ViewportTextDisplay
显示在脚本的开头。
第5步:
显示顶点索引将更加有用。让我们学习如何做到这一点。让我们替换下面的所有内容
gw.setTransform(Matrix3 1)
for obj in objects where obj.isselected ==true and (classof obj == Editable_Poly) do
(
for vert in (polyop.getvertselection $) do
(
gw.text (polyop.getvert $ vert ) (vert as string) color:Yellow
)
)
说明:
for obj in objects where obj.isselected ==true and (classof obj == Editable_Poly) do
此代码检查选定的对象,如果选择了任何对象,则将检查该对象是否为可编辑多边形对象。
在第一个For循环中,我们有另一个For循环,
for vert in (polyop.getvertselection $) do
其中,vert是索引变量,polyop.getvertselection$用于获取所选顶点的数组作为序列。
gw.text我们知道是创建文本。我希望文本具有与顶点相同的位置,因此我们必须收集选定顶点的位置数据来放置文本。
polyop.getvert$vert提供选定顶点的位置。
vert as string将顶点索引显示为文本字符串。
现在,评估脚本,您就完成了。您可以轻松修改此脚本以显示所需的信息。
我希望你喜欢这个教程,并从中学到一些有用的东西。随时更新新教程。谢谢!
MAXScript简体中文版帮助文档本站下载:https://download.csdn.net/download/mufenglaoshi/85503966