通过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命令来…的更多相关文章
- Android Java执行Shell命令
最新内容建议直接访问原文:http://www.trinea.cn/android/android-java-execute-shell-commands/ 主要介绍Android或Java应用中如何 ...
- C# 动态执行批处理命令
本文转载:http://www.cnblogs.com/lenic/p/4097045.html C# 动态执行一系列控制台命令,并允许实时显示出来执行结果时,可以使用下面的函数.可以达到的效果为: ...
- python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
python当前进程可以调用子进程,子进程可以执行其他命令,如shell,python,java,c... 而调用子进程方法有 os模块 参见:http://blog.csdn.net/longshe ...
- yii2 命令行执行php命令 commands(命令)
YII2可以在命令行执行php命令,作为半路出家的撩妹君可谓是抠脚福音.作为一个屌丝级的程序员必须要有智能提示代码的IDE,比如PHPstorm.至于如何免费使用嘛..... 首先明白YII2自带的c ...
- Java程序远程无法执行nohup命令
问题的上下文: 由于生产无法使用 jenkins 发布,所以采用 ch.ethz.ssh2 或叫 ganymed-ssh2 的开源 java 的 ssh api 进行远程发布. 在发起重启时,远程执行 ...
- java 执行shell命令及日志收集避坑指南
有时候我们需要调用系统命令执行一些东西,可能是为了方便,也可能是没有办法必须要调用.涉及执行系统命令的东西,则就不能做跨平台了,这和java语言的初衷是相背的. 废话不多说,java如何执行shell ...
- Makefile 描述的是文件编译的相关规则,它的规则主要是两个部分组成,分别是依赖的关系和执行的命令 PHONY伪目标实践
Makefile的工作流程 http://c.biancheng.net/view/7091.html Makefile文件是什么? 我们教程主要是讲的是 Makefile .很多 Linux(Uni ...
- 在程序中执行shell命令
在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...
- Linux远程执行Shell命令或脚本
## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...
随机推荐
- nodejs 批量修改、删除
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQhCAIAAABDaAVHAAAgAElEQVR4nOydeXxU5aH359733vd9b/ ...
- String,StringBuffer与StringBuilder的区别??
转自http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBu ...
- Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)
前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件. 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack ...
- 记一次ASP.NET MVC性能优化(实际项目中)
前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现, ...
- php上传功能集后缀名判断和随机命名
form.php <html> <head> <meta http-equiv="content-type" content="text/h ...
- 设计数据库字段或者java中使用boolean型时需谨慎
boolean型变量只有两个值 false和true,我们在设计数据库字段时或者定义java变量时会使用boolean,通常情况下开关类的变量使用无可非议,但请一定要考虑到扩展性. 使用前请仔细考虑一 ...
- NPTL vs PThread
NPTL vs PThread POSIX threads (pthread) is not an implementation, it is a API specification (a stand ...
- [Web API] Web API 2 深入系列(1) 路由
目录 ASP.NET 路由 注册路由 动态映射HttpHandler WebAPI 路由 注册路由 调用GetRouteData 2个路由系统衔接 GlobalConfiguration Hosted ...
- 那些年用过的xUnit.net的简单用法
0x01 前言 单元测试,总是伴随着我们的开发过程,优劣自行google.当然呢,不排除有些公司是不做单元测试的, 但是呢,学多一点东西用来防身还是可以的. 0x02 简单的Demo 写个两数求和的方 ...
- angular.js规范写法
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...