AutoCAD .NET二次开发(二)
今天专门讲一个——CommandMethod。我们都在知道CAD操作要快,必须要熟悉掌握各种命令。在Lisp开发中,在函数后C:即可添加一个命令,非常方法,在.NET API也可以非常方便的设置命令,它需要CommandMethod属性。
先来看CommandMethod的定义,它的构造函数很多,其中参数最全的一个如下图所示:

groupName组名,string,命令编组名称,一般在小项目开发中用得比较少。
globalName,全局名称, string,即命令,它应该是唯一的,不然在调用时会发生意外。
localizedNameId, 本地名称,string,指定语言的本地命令名称,不知道有什么用。
flags, 命令标志,CommandFlags,定义命令的行为。详见附表。
contextMenuExtensionType, 上下文菜单类型标志 ,Type, 定义命令处于活动状态时的上下文菜单行为。
helpFileName, 帮助文件名string,帮助文件,含有命令活动状态下按下F1时要显示的帮助主题。
helpTopic ,帮助主题,string。帮助文件中的主题。
除上面这个构造函数外,它还有5个:
CommandMethodAttribute(string globalName)
CommandMethodAttribute(string globalName, CommandFlags flags)
CommandMethodAttribute(string groupName, string globalName, CommandFlags flags)
CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags)
CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags, string helpTopic)
CommandMethodAttribute(string groupName, string globalName, string localizedNameId, CommandFlags flags, Type contextMenuExtensionType)
在使用时的注意事项有:
(1)CommandMethodAttribute和CommandMethod是一个,不管使用哪一个都可以;
(2)CommandMethodAttribut的使用需要添加相关引用,包括accoremgd,acdbmgd和acmgd三个;
(3)CommandMethod后的有效行必须是一个函数。
附表:Command Flags命令标志
|
枚举值 |
描述 |
|
ActionMacro |
可以用动作录制器录制命令动作; |
|
DocReadLock |
命令执行时将被只读锁定; |
|
Interruptible |
提示用户输入时可以中断命令; |
|
Modal |
别的命令运行时不能运行此命令; |
|
NoActionRecording |
不能用动作录制器录制命令动作; |
|
NoBlockEditor |
不能从块编辑器使用该命令; |
|
NoHistory |
不能将命令添加到repeat-last-command(重复上一个命令)历史列表; |
|
NoPaperSpace |
不能从图纸空间使用该命令; |
|
NoTileMode |
当TILEMODE置1时不能使用该命令; |
|
NoUndoMarker |
命令不支持撤销标记。用于不修改数据库因而也就无需出现在撤销记录中的那些命令; |
|
Redraw |
不清空取回的先选择后执行设置及对象捕捉设置; |
|
Session |
命令运行于应用程序上下文,而不是当前图形文档上下文; |
|
Transparent |
别的命令运行时可以运行此命令; |
|
Undefined |
只能通过全局名使用命令; |
|
UsePickSet |
清空取回的先选择后执行设置; |
AutoCAD .NET二次开发(二)的更多相关文章
- Linux基于webRTC的二次开发(二) 实现远程桌面共享
webRTC中的desktop_capture模块提供了捕获桌面和捕获窗口的相关功能,而实现远程桌面共享功能需要将desktop_capture捕获的画面作为peerconnection的视频源,下面 ...
- EasyDSS点播与直播服务器软件-二次开发接口对接说明示列
EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作.其中,点播版本主要包含:上传.转码.分发.直播版本,主要包含:直播.录像, 直播支持RTMP输 ...
- EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器软件二次开发接口对接说明示列
EasyDSS相关功能 EasyDSS流媒体服务器软件,提供一站式的转码.点播.直播.时移回放服务,极大地简化了开发和集成的工作.其中,点播版本主要包含:上传.转码.分发.直播版本主要包含:直播.录像 ...
- Jmeter二次开发——基于Java请求
简述 这近几年,越来越多非http的协议需要进行性能测试,包括不仅限于各类rpc.mq.缓存等.对于这些协议,市面上可能没有现成的工具可以直接使用,这个时候,我们可以自己动手,通过编写相应的JavaS ...
- 我的AutoCAD二次开发之路 (一)
原帖地址 http://379910987.blog.163.com/blog/static/33523797201011184552167/ 今天在改代码的时候,遇到了AddVertexAt方法的用 ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)
1.添加删除实体 C# ObjectARX二次开发添加删除实体是非常容易主要代码如下: 添加实体: objId = btr.AppendEntity(entity); trans.AddNewlyCr ...
- Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
不积跬步无以至千里,不积小流无以成江海.虽然创建一条直线.添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开 ...
- 利用C#进行AUTOCAD的二次开发
众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...
- AutoCAD二次开发——AutoCAD.NET API开发环境搭建
AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(CO ...
随机推荐
- linux在命令执行过程中ctrl +z 后[1]+ Stopped
进程挂起 stopped 代表有进程挂起 [1]是id号 可以通过Linux命令:jobs 查看挂起进程 fg 1 把任务1放到前台 bg 1 把任务1放到后台
- Structs2 校验框架
代码结构: 使用Struts校验框架,保证输入学生的基本信息:学号.姓名.性别.出生年月.专业.总学分等,要求输入满足以下条件:(1) 学号前两位大于“13”并且后面4位必须为数字:(2) 出生年月必 ...
- 洛谷P2556 [AHOI2002] 黑白图像压缩 [模拟]
题目传送门 黑白图像压缩 题目描述 选修基础生物基因学的时候, 小可可在家里做了一次图像学试验. 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 8 的倍数, 于是每 ...
- Nginx开启跨域访问
CORS on Nginx The following Nginx configuration enables CORS, with support for preflight requests. # ...
- 【序列莫队+树状数组】BZOJ3289-Mato的文件管理
[题目大意] 一共有n份,每份有一个大小和一个编号.Mato每天随机选一个区间[l,r],拷贝出来(即对原序列不影响),给它们排序,并且每次只能交换相邻两份文件.问每天最少交换几次? [思路] 显然, ...
- 【最大权闭合图】BZOJ1565-[NOI2009]植物大战僵尸
害怕地发现我以前写的Dinic几乎都是有错的……??!!! [题目大意] (以下摘自popoqqq大爷)给定一个m*n的草坪,每块草坪上的植物有两个属性:1.啃掉这个植物,获得收益x(可正可负)2.保 ...
- Vue2.X的路由管理记录之 钩子函数(切割流水线)2
$route可以在子组件任何地方调用,代表当前路由对象,这个属性是只读的,里面的属性是 immutable(不可变) 的,不过你可以 watch(监测变化) 它. 导航和钩子函数: 导航:路由正在发生 ...
- 改变element-ui滚动条设置,
基于vue的滚动条组件之--element隐藏组件滚动条scrollbar使用 在项目中,总是需要用到滚动条,但windows浏览器默认的滚动条是很丑的,为了页面美观,可以考虑优化滚动条样式. vu ...
- JavaScript基础入门教程(四)
说明 前面三篇博客介绍了js中基本的知识点,包括变量类型及其转换.表达式.运算符等小知识点,这篇博客主要讲的是对象.如果你学过java等语言,你也许在下文的阅读中发现在js中的对象与java中的对象存 ...
- Spring WebSocket入门(一) 转载
本文转载自:http://www.jianshu.com/p/60799f1356c5 WebSocket是html5带来的一项重大的特性,使得浏览器与服务端之间真正长连接交互成为了可能,这篇文章会带 ...