通过API执行AutoCAD命令来…
大家知道AutoCAD功能丰富,而更可贵的是,这么多丰富的功能背后都有一个命令,有些东西,直接用API调用写起来可能很费劲或者无法实现,可如果能用命令的话却很简单,这时候我们就可以通过API来调用AutoCAD命令来实现通用的效果,简单而强大。
比如今天有人问,如何在AutoCAD里加入wmf文件,应用的场景是在图纸中加入设计人审核人的电子签名。其实通过搜索能很容易的找到这篇文章:
http://adndevblog.typepad.com/autocad/2013/01/insert-a-wmf-file-multiple-times.html
但他提到不懂里面的ARX语句是干什么的:
acedCommand(RTSTR,_T("_wmfin"),RTSTR,A_WmfFile, RT3DPOINT,point1,RTSTR,"",RTSTR,"", RTREAL, 0,0,RTNONE);
这个其实也不高深,就是用API调用了AutoCAD的 wmfin命令。
在.net环境下同样也可以做类似的事。比如下面的c#代码,在图纸中插入一个wmf文件:
[CommandMethod("MyGroup", "InsertWmf", "InsertWmf", CommandFlags.Modal)] public void MyCommand() // This method can have any name { // Put your command code here Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed; if (doc != null) { ed = doc.Editor; //save the filedia sysvar var filedia_old = Application.GetSystemVariable("filedia"); //set filedia to 0, not open the file dialogue Application.SetSystemVariable("filedia", 0); Point3d pnt = ed.GetPoint("select a point to insert:\n").Value; string wmfPath = @"C:\TEMP\flower.WMF"; ed.Command("_.wmfin", //command name wmfPath, //wmf file path pnt, //insert point 1, //scale X 1, //scale Y 0.0); //rotation //restore file dialogue sys var Application.SetSystemVariable("filedia", filedia_old); } }
另外,还可以使用p/invoke的方式调用ARX里的acedCommand方法,这里有个很好的例子:
最后,通过API调用AutoCAD命令时,最佳实践是使用前缀 _.英文命令 的方式,这样不管在任何语言的AutoCAD下都可以正常运行,具体介绍请看这里。
通过API执行AutoCAD命令来…相关推荐
- 通过API执行AutoCAD命令来
-大家知道AutoCAD功能丰富,而更可贵的是,这么多丰富的功能背后都有一个命令,有些东西,直接用API调用写起来可能很费劲或者无法实现,可如果能用命令的话却很简单,这时候我们就可以通过API来调用A ...
- AutoCAD中程序创建Ribbon界面执行AutoCAD命令
在基于AutoCAD做二次开发时,常见的教程讲的都是在DLL中定义一些自定义命令,然后通过netload命令加载这个DLL,通过执行自定义命令的方式来执行我们的自定义功能.这样的方式在在学习中是显得很 ...
- C# 动态执行批处理命令
C# 动态执行一系列控制台命令,并允许实时显示出来执行结果时,可以使用下面的函数.可以达到的效果为: 持续的输入:控制台可以持续使用输入流写入后续的命令 大数据量的输出:不会因为大数据量的输出导致程序 ...
- AutoCAD 命令参考手册
Auto CAD 命令参考手册 3D 创建三维多边形网格对象 3DARRAY 创建三维阵列 3DCLIP 启用交互式三维视图并打开"调整剪裁平面"窗口 3DCORBIT 启 ...
- python使用教程cmd啥意思-对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
- Windows 运行... 可执行的命令
Windows "运行..." 可执行的命令 以下内容与操作系统版本有关,并不保证所有Windows都能运行 winver 检查Windows版本 wmimgmt.msc 打开Wi ...
- Python 执行 shell命令 的几个方法小结
参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...
- python运行命令_对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
- python运行方法_对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
最新文章
- 拿到input输入的时间_【Keras 笔记】Input/Dense层的数学本质
- 机器学习 LR中的参数迭代公式推导——极大似然和梯度下降
- DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换—训练测试过程全记录
- 检查 ABAP/4 程序用户的 权限
- 根据条件查询某条记录的条数_「性能与架构」MySQL 8 查询优化新工具 Explain Analyze...
- 万国数据联合阿里云发布混合云系列产品 助力企业落地云端
- shell编程之文本处理工具sed
- 电脑上怎么配置mysql数据库服务器_Mysql数据库服务器安装与配置详解教程
- python 定义函数为什么有个长线_关于格式化:如何在Python中打破这条长线?
- git常用命令及冲突解决
- 【SpringCloud-Alibaba系列教程】14.一文教你入门RocketMQ
- Tarjan边的双联通
- Selenium应用代码(常见封装的方法二)
- 精选|2018年6月R新包推荐
- 哔哩哔哩APP导出缓存视频并合并成MP4
- 分布式机器学习(下)-联邦学习
- wxpy 扫码登录微信报错 KeyError: pass_ticket(网页版微信登录失败)
- Kotlin的SAM转换
- 媒体观察:08年度十大硬件新闻
- 我们要注意的问题.net