如何在3dMax中使用Python按类型选择对象?

news2024/9/25 21:30:59

如何在3dMax中使用Python按类型选择对象?

3dMax提供了pymxs API,这是MAXScript的Python包装器,可帮助您扩展和自定义3dMax,并更轻松地将其集成到基于Python的管道中。

pymxs模块包含一个运行时成员,该成员提供对MAXScript环境中的接口、函数、结构、对象、属性和变量的访问,无论这些接口是内置的还是由用户定义的。

如果需要选择特定类型的对象(节点),例如灯光、相机等。

可以使用INode类的GetObject()方法获取对节点对象的引用,或3dmax命令中的“modified object”,并使用对象的GetSuperClassID()方法获得表示对象超类的整数id。

此外,MaxPlus SuperClassIds类包含方便的常量,可以用来避免检查和记住超类的数字id。

下面给出一个选择场景中所有灯光对象的脚本示例:

from MaxPlus import SuperClassIds
from MaxPlus import SelectionManager

def scene_objects():
   def list_children(node):
      list = []
      for c in node.Children:
         list.append(c)
         list = list + list_children(c)
      return list
   return list_children(MaxPlus.Core.GetRootNode())

for o in scene_objects():
   obj = o.GetObject()
   if obj.GetSuperClassID() == SuperClassIds.Light:
      SelectionManager.SelectNode(o, False)

在3dMax中测试上面代码的执行:

1.在3dmax中创建一个由灯光、几何体和其他类型对象构成的简单场景,如下图:    

2.点击3dmax主菜单->脚本->新建脚本,将前面的Python代码复制粘贴到MAXScript脚本编辑器窗口中。(请注意的是:在复制和粘贴本例中的脚本时,缩进可能无法正确粘贴,这将影响代码的正确执行,所以,粘贴的时候要检查缩进的正确性。)

3.点击MAXScript脚本编辑器菜单中的“语言”,然后,选择“Python”作为当前编程语言,如图:    

4.取消场景中所有对象的选择状态。然后,按下“Ctrl+e”键执行Python脚本,可以看到场景中所有灯光对象在脚本执行后,都处于被选中状态,如图:

提示:Python运行环境随3dMax一起被安装,所以,不需要再另外安装Python运行环境。 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android HAL学习 及 与BSP的区别

Android HAL学习 及 与BSP的区别 参考链接: 1、https://www.cnblogs.com/looner/articles/11579335.html 2、https://blog.csdn.net/leesan0802/article/details/124087630 3、https://zhuanlan.zhihu.com/p/336531442 在HAL的学习之前,我们来先了解…

909-2015-T2

文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 编写算法,删除二叉搜索树(二叉排序树)的最小元素。叙述算法思想并给出算法实现,分析算法复杂性。二叉树采用链式存储结构,节点结构如下:…

利用逻辑过期解决缓存击穿问题

需求:修改根据id查询商铺的业务,基于逻辑过期方式来解决缓存击穿问题 思路分析:当用户开始查询redis时,判断是否命中,如果没有命中则直接返回空数据,不查询数据库,而一旦命中后,将v…

实验(四):指令部件实验

一、实验内容与目的 实验要求: 利用CP226实验仪上的小键盘将程序输入主存储器EM,通过指令的执行实现微程序控制器的程序控制。 实验目的: 1.掌握模型机的操作码测试过程; 2.掌握模型机微程序控制器的基本结构以及程序控制的基本原…

GDB Debugging Notes

1 Debugging programs using gdb 1.1 gdb简介 gdb是一个功能强大的调试工具,可以用来调试C程序或C程序。在使用这个工具进行程序调试时,主要涉及下面几个方面的操作: 启动程序:在启动程序时,可以设置程序运行环境。设置断点:程序…

Linux socket编程(5):三次握手和四次挥手分析和SIGPIPE信号的处理

在我之前写的Wireshark抓包:理解TCP三次握手和四次挥手过程中,通过抓包分析了TCP传输的三次握手和四次挥手的过程。在这一节中,将分析在Linux中的三次握手和四次挥手的状态和过程,另外还有一个在我们编程过程中值得注意的SIGPIPE信…

水果音乐制作软件FL Studio21.2中文版新功能介绍

FL Studio21.2中文版,一般又称水果音乐制作软件。 FL Studio 21.2简称FL,全称FruityLoopsStudio,因此国人习惯叫它"水果"。它让你的计算机就像是全功能的录音室,大混音盘,非常先进的制作工具,让…

ZYNQ_project:lcd_pic_400x400

在lcd液晶屏上显示400x400像素的图片, 像素信息通过电脑的串口调试助手,发送给fpga,存储在例化的双端口ram中, 在要显示图像区域,读取ram中的像素信息。 模块框图: 时序图: 代码:…

代码随想录刷题】Day16 二叉树03

文章目录 1.【104】二叉树的最大深度(优先掌握递归)1.1 前言1.2 题目描述1.3 递归法java代码实现1.4 迭代法java代码实现1.5 相关练习题【559】N叉树的最大深度 2.【111】二叉树的最小深度(优先掌握递归)2.1 题目描述2.2 递归法ja…

新建模板,或组件自适应

1,***一定要改为固定布局(才可以自适应) 2, 3, 4,系统序号“1”就是第一根柱 5,系列-自动-配色这里1就是第一根柱颜色,2..... 6,坐标柱 标红的去掉,在那里设…

seismicunix基础-声波波动方程推导

seismicunix基础-声波波动方程推导 接触波动方程的研究人员都绕不开这个公式,这是在一维状态下波动方程 但是对于这个方程是怎样来的很少有人能说清楚,其中涉及到牛顿第二运动定律,物体的加速度与受到的力有关。 假设一维弦是大量紧密连接的质…

Python Web框架的三强之争:Flask、Django和FastAPI

JetBrains 公布 2022 Python 开发者调查结果。 完整报告地址:https://lp.jetbrains.com/zh-cn/python-developers-survey-2022/ 这是由 Python 软件基金会 (PSF) 和 JetBrains 共同开展的第六次官方年度 Python 开发者调查,回复于 2022 年 10 月至 12 …

SpringBoot:ch02 配置文件(日志)

前言 简单介绍 Spring Boot 中常见的配置文件类型&#xff0c;如 application.properties 和 application.yml 等&#xff0c;并说明它们各自的特点和用途。 一、前期准备 1、新建项目&#xff0c;结构如下 2、添加依赖 <?xml version"1.0" encoding"UTF…

七、HDFS文件系统的存储原理

1、总结 之所以把总结放在文件开头&#xff0c;是为了让读者对这篇文章有更好的理解&#xff0c;&#xff08;其实是因为我比较懒……&#xff09; 对于整个HDFS文件系统的存储原理&#xff0c;我们可以总结为一句话&#xff0c;那就是&#xff1a; 分块备份 2、存储结构和问题…

智能座舱架构与芯片- (4) 硬件篇 中

2.4 高速视频传输(GMSL) 为了解决未来汽车系统所面临的问题&#xff0c;美信(Maxim)推出了全新下一代GMSL技术&#xff0c;即吉比特多媒体串行链路(GMSL)串行器和解串器&#xff0c;用来支持未来ADAS和信息娱乐系统要求的宽带、互联复杂度和数据完整性的要求。 GMSL技术可以支…

图Graph的存储、图的广度优先搜索和深度优先搜索(待更新)

目录 一、图的两种存储方式 1.邻接矩阵 2.邻接表 生活中处处有图Graph的影子&#xff0c;例如交通图&#xff0c;地图&#xff0c;电路图等&#xff0c;形象的表示点与点之间的联系。 首先简单介绍一下图的概念和类型&#xff1a; 图的的定义&#xff1a;图是由一组顶点和一…

webpack 配置

1、基础配置 // node js核心模塊 const path require(path) // 插件是需要引入使用的 const ESLintPlugin require(eslint-webpack-plugin) // 自动生成index.html const HtmlWebpackPlugin require(html-webpack-plugin); // 将css文件单独打包&#xff0c;在index.html中…

Windows系统如何安装与使用TortoiseSVN客户端,并实现在公网访问本地SVN服务器

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

计算机基础知识56

choices参数的使用 # 应用场景&#xff1a; 学历&#xff1a;小学、初中、高中、本科、硕士、博士、1 2 3 4 5 6 客户来源: 微信渠道、广告、介绍、QQ、等等 性别&#xff1a;男、女、未知 # 对于以上可能被我们列举完的字段我们一般都是选择使用…

【JavaEE】Spring的创建和使用(保姆级手把手图解)

一、创建一个Spring项目 1.1 创建一个Maven项目 1.2 添加 Spring 框架支持 在pom.xml中添加 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.3.RELEASE&…