3dmax中的插件系统(c++/maxscript/.net/python)

概述

在开发帮助页面可以看到,主要包含三大模块
https://help.autodesk.com/view/MAXDEV/2022/ENU/

  • 原生c++SDK

  • 最流行的 Maxscript api,在稍早3dmax仅有c++sdk和mxs开发,mxs通过友好的包装c++接口可以方便的调用3dmax各种功能

  • Ephere发布了一个对3dmax/c++接口一对一包装的.net/sdk,将3dmax插件开发带到了c#/vb上
    在max2013版本被autodesk收购集成到内部

  • 在max2014之后,新添加的 Python MaxPlus 接口,MaxPlus同样是对c++/sdk的封装,但比.net的更进一步

  • 在max2016,安装包内多了一个MaxPlusDotNet.dll文件,但autodesk似乎在公开文档中不曾提及过它

  • 到了max2017,添加了更加友好的pymxs接口,让python模拟maxscript接口的使用方式 ,在这里的python你甚至可以忽略大小写

纵观3dmax的开发发展史,在ui中,他们使用了mfc/winform/wpf/qt
在插件系统集成中,他们以原生c++为基础,他们自创了maxscript,包装了.NET和Python接口
在跨平台大行于市的今天,3dmax仍然是一个强依赖windows的软件
在max202x后的路线图中,他们将越来越多旧ui翻新为qt5,
移除了Python的MaxPlus
按照这个步伐,在未来的未来,3dmax也许会通过将所有ui变为qt5,
将底层的算法翻新为跨平台,实现在liunx和mac上运行
但他们也曾在发布会上说过,会通过windows远程的方式来实现跨平台...
最终能保留下来的插件开发模式可能只有:c++、maxscript和pymxs
但,未来的事,谁说得准呢

用各个接口创建一个box

通过手动点击按钮拖拽创建一个box

通过 Maxscript 创建一个box

b = box name:"box01"

通过 Python MaxPlus 创建一个box

import MaxPlus

theBox = MaxPlus.Factory.CreateGeomObject(MaxPlus.ClassIds.Box)
node = MaxPlus.Factory.CreateNode(theBox)

(Python MaxPlus 在后面的版本已被移除)

通过 Python pymxs 创建一个box

import pymxs

pymxs.runtime.Box(Name="box02")

通过C# SDK创建一个box

需要先引用根目录下的Autodesk.Max.dll

...未完待续

posted @ 2021-09-29 23:56  trykle  阅读(1677)  评论(0)    收藏  举报