MAX之不关闭MAX脚本开发
今天教大家如何将max插件开发与C#结合起来,以弹出框为例。
这种开发方式的三大优点
1.开发过程中不需要关闭MAX
2.可以引用三方组件
3.开发过程可以调试
1.新建类库,命名:TestPlugin
2.右键属性,修改项目输出路径
我的路径为:E:\Program Files\Autodesk\3ds Max Design 2015\plugins\TestPlugin
3.新建MAX脚本
4.编写一些基础代码
global m_hand = undefinedrollout form "演示插件"
(button btnTest "测试按钮" pos:[60,60] width:180 height:25/*窗体打开事件*/on form open do(local assembly = dotNetClass "System.Reflection.Assembly"local rootpath = getdir #maxrootlocal maxcorepath = rootpath + "\\plugins\\TestPlugin\\TestPlugin.dll"local ass = assembly.Load ((dotnetClass "System.IO.File").ReadAllBytes maxcorepath)local types = ass.ExportedTypesfor type in types do(if type.name == "Hand" do(m_hand = (dotNetClass "System.Activator").CreateInstance typebreak))if m_hand == undefined do messagebox "核心组件初始化失败! ")on btnTest pressed do(m_hand.ShowMSG 0)
)createdialog form 300 300
5.运行(Ctrl+E),点击测试按钮
6.添加Hand类,代码实现如下
public class Hand{public static string Startup { get; private set; }#region 加载依赖static Hand(){AppDomain domain = AppDomain.CurrentDomain;Hand.Startup = Path.Combine(domain.BaseDirectory, "plugins", "TestPlugin");domain.AssemblyResolve += CurrentDomain_AssemblyResolve;}static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args){string strName = args.Name.Substring(0, args.Name.IndexOf(",")) + ".dll";if (!File.Exists(Path.Combine(Hand.Startup, strName))) return null;return Assembly.LoadFrom(Path.Combine(Hand.Startup, strName));}#endregionpublic void ShowMSG(int val){MessageBox.Show("C# ShowMSG");}}
7.运行(Ctrl+E),点击测试按钮
8.可以在类库设计UI,添加Form
修改ShowMSG的实现
public void ShowMSG(int val){TestForm tf = new TestForm();tf.ShowDialog();}
8.运行(Ctrl+E),点击测试按钮
引用其他三方类库,当然也是没有问题的,这里就不做演示了,有兴趣的可以自己引用,然后在ShowMSG中调用试试。
10.调试
在vs的调试菜单下,找到“附加到进程”,搜索MAX引用程序,点击附加即可。
11.附加完毕之后,在需要调试的地方加断点,然后在MAX中运行插件,点击相应功能,vs就会进入调试,停在断点处。
12.至于如何直接使用MAXScript开发脚本,不做详细解释(因为我也是野路子)。
不知到以上方法是否对大家有所帮助,这是我之前研究的时候走的另外一条路,虽然遇到了诸多坎坷,最终还是搞定了。早期发过另外一篇文章,当时写的也比较加单,但也是MAX二开的另外一条路径。
https://blog.csdn.net/yang_sen_/article/details/56279936
这篇文章的思路源于欧特克的所有产品的框架,做过Revit二次开发的同仁或许理解的更深一点,这里就不做详细说明了。
喜欢我博客的朋友可以关注一下,有问题需要帮忙解决的也可以整理好发我邮箱,有时间就会去解答(前提是会的情况下^.^)。
邮箱:ys0309@126.com
MAX之不关闭MAX脚本开发相关推荐
- Autojs脚本开发实战第一课 基础入门
Autojs脚本开发课程 课件代码下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed Autojs概述 1.Autojs是什 ...
- 脚本自启动oracle,自动启动和关闭Oracle 脚本
配置完ASM实例后,每次启动oracle数据库服务器的时候要先启动ASM实例,然后启动数据库实例:关闭的时候,需要先关闭oracle数据库实例,然后关闭ASM实例:敲起命来来麻烦的很,因而改进了原来的 ...
- Selenium+C#自动化脚本开发学习
Selenium+C#自动化脚本开发知识学习 1:Selenium中对浏览器的操作 首先生成一个Web对象 IWebDriver driver = new FirefoxDriver(); //打开指 ...
- illustrator插件-拼版功能开发-阵列复制-js脚本开发-ai插件
文章目录 1.算法程序 2.作者答疑 1.算法程序 illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是拼版,开发一个阵列复制功能,以下功能仅用于学习交流, ...
- Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数
Polyworks脚本开发学习笔记(十一)-玩转获取参数(GET)与设置参数 Polyworks采用了脚本语言作为二次开发的工具,因此语言格式上非常规范和统一.其中一个重要的特点就是,几乎所有的对象都 ...
- Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理
Polyworks脚本开发学习笔记(十四)-WORKSPACE信息读取及管理 Polyworks的工作任务存储分为工作区和项目两级,通过WORKSPACE命令获取工作任务信息,实现更好的任务管理. 下 ...
- 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发
文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...
- vim配置文件收集(作为c/c++和脚本开发的环境)
vim配置文件收集(作为c/c++和脚本开发的环境) - StamHe的专栏 - 博客频道 - CSDN.NET vim配置文件收集(作为c/c++和脚本开发的环境) 分类: Linux系统配置 20 ...
- Loadrunner脚本开发简单几种方式
1.通过录制方式 成功后: lr_start_transaction("1_lgin");web_submit_data("login.php", " ...
最新文章
- 嵌入式课程安排 嵌入式培训课程大纲参考
- 基于python物流管理系统毕业设计-Python程序设计实验报告一 :熟悉IDLE和在线编程平台...
- 如何真正理解用户标签体系?
- FileCoin (1) 初步介绍
- 大厂没有方法论(上)
- Day 3 in India
- 11.SolrJ索引操作
- Python+Selenium练习篇之7-利用name定位元素
- 解决tex中参考文献出现[S.l.: s.n.]、[S.l.]、 [s.n.]问题
- VRRP实现AC双机备份原理详解与配置实例
- ubuntu14.04 caffe安装前先要将gcc版本降到4.7.x
- oracle物理块坏了重启,Oracle 物理结果损坏处理
- 利用C++的stringstream对各种数据类型转换
- 【C/C++】使用PDFLIB创建一个带中文的pdf文件
- C 语言 运算符 全网最全整理
- 华为s8600手机驱动_深度丨国产OLED驱动芯片玩家的机遇与困难
- Visual Studio 2019 VSIX插件
- Java基础——环境变量配置、注释、关键字、标识符
- 阿里一面:SQL 优化有哪些技巧?
- 作者:吴力波(1974-),女,复旦大学大数据学院教授、副院长、博士生导师...
热门文章
- matlab中bp创建多层神经网络,三层 BP 神经网络 matlab 实现
- 栋的周评 | 第五回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)
- jmeter UDV
- playbook使用
- 《算法和数据结构》算法篇
- 工信部:1-2月我国软件业务收入9074亿元 同比增13.6%
- openwrt网络唤醒计算机,OpenWrt实现WOL(Wake-on-LAN)网络唤醒
- 创业报告——在科技园和大学创业基地揭牌仪式上
- 越狱开发之配置MobileSubstrate Dylib模板
- 六级考研单词之路-七