大家知道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命令来…相关推荐

  1. 通过API执行AutoCAD命令来

    -大家知道AutoCAD功能丰富,而更可贵的是,这么多丰富的功能背后都有一个命令,有些东西,直接用API调用写起来可能很费劲或者无法实现,可如果能用命令的话却很简单,这时候我们就可以通过API来调用A ...

  2. AutoCAD中程序创建Ribbon界面执行AutoCAD命令

    在基于AutoCAD做二次开发时,常见的教程讲的都是在DLL中定义一些自定义命令,然后通过netload命令加载这个DLL,通过执行自定义命令的方式来执行我们的自定义功能.这样的方式在在学习中是显得很 ...

  3. C# 动态执行批处理命令

    C# 动态执行一系列控制台命令,并允许实时显示出来执行结果时,可以使用下面的函数.可以达到的效果为: 持续的输入:控制台可以持续使用输入流写入后续的命令 大数据量的输出:不会因为大数据量的输出导致程序 ...

  4. AutoCAD 命令参考手册

    Auto CAD 命令参考手册 3D 创建三维多边形网格对象 3DARRAY 创建三维阵列 3DCLIP   启用交互式三维视图并打开"调整剪裁平面"窗口 3DCORBIT   启 ...

  5. python使用教程cmd啥意思-对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  6. Windows 运行... 可执行的命令

    Windows "运行..." 可执行的命令 以下内容与操作系统版本有关,并不保证所有Windows都能运行 winver 检查Windows版本 wmimgmt.msc 打开Wi ...

  7. Python 执行 shell命令 的几个方法小结

    参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...

  8. python运行命令_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

  9. python运行方法_对python中执行DOS命令的3种方法总结

    1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...

最新文章

  1. 拿到input输入的时间_【Keras 笔记】Input/Dense层的数学本质
  2. 机器学习 LR中的参数迭代公式推导——极大似然和梯度下降
  3. DL之CycleGAN:基于TF利用CycleGAN模型对apple2orange数据集实现图像转换—训练测试过程全记录
  4. 检查 ABAP/4 程序用户的 权限
  5. 根据条件查询某条记录的条数_「性能与架构」MySQL 8 查询优化新工具 Explain Analyze...
  6. 万国数据联合阿里云发布混合云系列产品 助力企业落地云端
  7. shell编程之文本处理工具sed
  8. 电脑上怎么配置mysql数据库服务器_Mysql数据库服务器安装与配置详解教程
  9. python 定义函数为什么有个长线_关于格式化:如何在Python中打破这条长线?
  10. git常用命令及冲突解决
  11. 【SpringCloud-Alibaba系列教程】14.一文教你入门RocketMQ
  12. Tarjan边的双联通
  13. Selenium应用代码(常见封装的方法二)
  14. 精选|2018年6月R新包推荐
  15. 哔哩哔哩APP导出缓存视频并合并成MP4
  16. 分布式机器学习(下)-联邦学习
  17. wxpy 扫码登录微信报错 KeyError: pass_ticket(网页版微信登录失败)
  18. Kotlin的SAM转换
  19. 媒体观察:08年度十大硬件新闻
  20. 我们要注意的问题.net

热门文章

  1. Safe3WVS 10.1 漏洞扫描
  2. IDEA如何远程断点调试jar包
  3. 树和二叉树知识要点(期末必考)
  4. G-140W-ME 光猫改桥接方法
  5. 系统开发c语言技术参数,1 C语言 gcc 介绍 C 语言编译 main接受参数
  6. 微信公众号开发《四》调用微信JS-SDK实现上传手机图片到服务器
  7. 大事!谷歌将关闭物联网开发平台 Android Things
  8. 忘不了手机随身私密管家发布,再也不用费心记密码
  9. 互联网行业的鄙视链之装逼与反装逼
  10. 两个时间相差距离多少天多少小时多少分多少秒