如何在3dMax中使用MaxScript在视口中显示数据?

如何在3dMax中使用MaxScript在视口中显示数据?

详细的教程指南,介绍如何使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/127405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode算法题解(回溯、难点)|LeetCode51. N 皇后

LeetCode51. N 皇后 题目链接:51. N 皇后 题目描述: 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。…

[PyTorch][chapter 61][强化学习-免模型学习 off-policy]

前言: 蒙特卡罗的学习基本流程: Policy Evaluation : 生成动作-状态轨迹,完成价值函数的估计。 Policy Improvement: 通过价值函数估计来优化policy。 同策略(one-policy):产生 采样轨迹的策略 和要改…

【K8s集群离线安装-kubeadm】

1、kubeadm概述 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令快速完成一个kubernetes集群的部署。 2、环境准备 2.1 软件环境 软件版本操作系统CentOS 7Docker19.03.13K8s1.23 2.2 服务器 最小硬件配置:2核CPU、2G内存…

19.5 Boost Asio 传输结构体

同步模式下的结构体传输与原生套接字实现方式完全一致,读者需要注意的是在接收参数是应该使用socket.read_some函数读取,发送参数则使用socket.write_some函数实现,对于套接字的解析同样使用强制指针转换的方法。 服务端代码如下所示 #incl…

「Verilog学习笔记」4位数值比较器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 这里要注意题目的“门级描述方式”,所以我们只能使用基本门电路:&,|,!,^,^~。 具体实现思路:通过真值表得出Y0 Y1 Y2的逻辑表达…

Vue3使用vue-print-nb插件打印功能

插件官网地址https://www.npmjs.com/package/vue-print-nb 效果展示: 打印效果 根据不同的Vue版本安装插件 //Vue2.0版本安装方法 npm install vue-print-nb --save pnpm install vue-print-nb --save yarn add vue-print-nb//Vue3.0版本安装方法: npm install vue3…

优思学院|CTP和CTQ是什么?有什么区别?

CTQ 关键质量特性 CTQ是在六西格玛管理中常用的重要词汇,所以很多不同界别的人仕都可能听过,CTQ的意思是关键质量特性,Critical To Quality 的缩写。 六西格玛管理提倡的方法是通过客户的声音 (Voice of customer-VOC) ,然后把它…

绝对力作:解锁string的所有关键接口,万字深度解析!

W...Y的主页 😊 🍔前言: 通过博主的上篇文章,我相信大家已经认识了STL并且已经迫不及待想学习了,现在我们就走近STL的第一种类——string。 目录 为什么学习string类? C语言中的字符串 标准库中的str…

使用 Socks5 来劫持 HTTPS(TCP-TLS) 之旅

MITM 劫持的过程中,HTTP 协议并不是唯一选择。 实际在 MITM 使用过程中,BurpSuite 和 Yakit 提供的交互式劫持工具只能劫持 HTTP 代理的 TLS 流量;但是这样是不够的,有时候我们并不能确保 HTTP 代理一定生效,或者说特…

【js逆向实战】某sakura动漫视频逆向

写在前面 再写一个逆向实战,后面写点爬虫程序来实现一下。 网站简介与逆向目标 经典的一个视频网站,大多数视频网站走的是M3U8协议,就是一个分段传输,其实这里就有两个分支。 通过传统的m3u8协议,我们可以直接进行分…

python回文日期 并输出下一个ABABBABA型回文日期

题目: 输入: 输入包含一个八位整数N,表示日期 对于所有的测评用例,10000101 ≤N≤89991231,保证N是一个合法日期的8位数表示 输出: 输出两行,每行一个八位数。第一行表示下一个回文日期第二…

【论文阅读】DALL·E: Zero-Shot Text-to-Image Generation

OpenAI第一代文本生成图片模型 paper:https://arxiv.org/abs/2102.12092 DALLE有120亿参数,基于自回归transformer,在2.5亿 图片-文本对上训练的。实现了高质量可控的text to image,同时也有zero-shot的能力。 DALL-E没有使用扩…

【腾讯云 HAI域探秘】探索AI绘画之路:利用腾讯云HAI服务打造智能画家

目录 前言1 使用HAI服务作画的步骤1.1 注册腾讯云账户1.2 创建算力服务器1.3 进入模型管理界面1.4 汉化界面1.5 探索AI绘画 2 模型参数的含义和调整建议2.1 模型参数的含义和示例2.2 模型参数的调整建议 3 调整参数作画的实践和效果3.1 实践说明3.2 实践效果13.3 实践效果23.4 …

专门为Web应用程序提供安全保护的设备-WAF

互联网网站面临着多种威胁,包括网络钓鱼和人为的恶意攻击等。这些威胁可能会导致数据泄露、系统崩溃等严重后果。 因此,我们需要采取更多有效的措施来保护网站的安全。其中WAF(Web application firewall,Web应用防火墙&#xff0…

网站接口测试记录

1.被测试服务器端口输入htop指令进行cpu监控 2.测试机器安装宝塔-》我的工具-》进行网站测试 访问地址:https://www.bt.cn/bbs/thread-52772-1-1.html

Spring Cloud智慧工地管理平台源码,智慧工地APP源码,实现对劳务人员、施工进度、工地安全、材料设备、环境监测等方面的实时监控和管理

智慧工地管理平台源码,智慧工地APP源码, 智慧工地管理平台实现对人员管理、施工进度、安全管理、材料管理、设备管理、环境监测等方面的实时监控和管理,提高施工效率和质量,降低安全风险和环境污染。智慧工地平台支持项目级、公司…

SpringCloud——负载均衡——Ribbon

负载均衡分为集中式LB(Nginx实现)和进程内LB(Ribbon)。 Ribbon简单来说就是负载均衡RestTemplate调用。 1.Ribbon在工作中分成两步 1.先选择EurekaServer,它优先选择在同一个区域内负载较少的EurekaServer。 2.在根据用户指定的策略,从服务注册的列表…

Go 什么是循环依赖

Go 中的循环依赖是指两个或多个包之间相互引用,形成了一个循环依赖关系。这种情况下,包 A 依赖包 B,同时包 B 也依赖包 A,导致两个包之间无法明确地确定编译顺序,从而可能引发编译错误或其他问题。循环依赖是 Go 中需要…

js实现向上、向下、向左、向右无缝滚动

向左滚动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, ini…

ClickHouse Keeper: Coordination without the drawbacks没有缺点的分布式协作系统

ClickHouse Keeper 介绍 现代分布式系统需要一个共享和可靠的信息存储库和共识系统来协调和同步分布式操作。对于ClickHouse来说&#xff0c;ZooKeeper最初是被选中的。它的广泛使用是可靠的&#xff0c;提供了简单而强大的API&#xff0c;并提供了合理的性能。 然而&#xf…