刚从Autodesk的论坛上看到的,官方.NET开发向导,内容不算很多,但值得系统研究一下。
(另:本资源地址直接链接至网络,不包证永久有效)
P.S. 这段时间工作上的事情比较多,要学习的东西也很多,累得也没有心力更新这里了,真是抱歉,以后争取能恢复到每周一贴的频率^_^
刚从Autodesk的论坛上看到的,官方.NET开发向导,内容不算很多,但值得系统研究一下。
(另:本资源地址直接链接至网络,不包证永久有效)
P.S. 这段时间工作上的事情比较多,要学习的东西也很多,累得也没有心力更新这里了,真是抱歉,以后争取能恢复到每周一贴的频率^_^
前几天收到的邮件,只是订阅了没有准时收看在线版的,里面有最新版本产品2010的东东,现将下载地址分享给大家:
The recording of “Developer Days Online – AutoCAD” webcast
http://download.autodesk.com/media/adn/DeveloperDaysOnline_AutoCAD2010.zip
The recording of “Developer Days Online – AEC” webcast
http://download.autodesk.com/media/adn/developerdaysonline_aec2010.zip
新年过去了,按照Autodesk的贯例新版的AutoCAD 2010也将要发布了。来看看新版有哪些另人期待的功能吧,看了这些介绍,给偶印象最深的就是2010在三维建模方面的功能改进,借助这方面三维网格创建工具应该可以解决现在钢结构建筑中的一些特殊不规则曲面的创建,而不用向以前那样必须用3d max之类的软件来解决了;再加上AutoCAD开放的二次开发功能,相信2010完全能够解决一些复杂建筑的建模要求,就像AutoCAD 2010的宣传封面上的那个建筑一样。下面整理出一些介绍链接,供有兴趣的朋友参考:
除了上一篇中提到的用.NET程序实现的方法外,另一种用LISP加载.NET的程序集的方法由来已久。思路是用lisp语言程序化调用“Netload”命令,代码也比较简单,速度也还可以,示例如下:
(defun c:LOADNET()
(command "netload" "E:/documents/DotNetFile.dll")
(command "LOADNET")
(princ)
)
如果要加载的*.dll文件中正好也有一个名为"LOADNET"的目标命令,那么当第一次输入"LOADNET"命令时,程序会先netload那个dll文件,然后执行其中定义的"LOADNET"目标命令;接下来再输入"LOADNET"命令时,程序会“忽略”lisp的命令,进而执行dll文件中定义的"LOADNET"目标命令。这从表面看起来有点儿像“唤醒加载”,其实偶感觉每运行一次命令,CAD都要加载一次dll程序集,还是有差别的。
...
前面的文章已经介绍过,通过修改注册表可以实现.NET程序集随AutoCAD的启动自动加载,这两天Kean又介绍了一种程序化的加载方法:用.NET程序加载.NET程序集,用到了微软的核心类库mscorlib中的System.Reflection命令空间。加载时只要一个函数Assembly.LoadFrom()可以了,试了下速度还是很快地。下面转一下Kean的测试代码(C#):
...
在对两条直线进行剪裁(Trim)时,如果这两条线不相交,你会怎么办?通常的做法是先延长两条直线以使其相交,之后再进行Trim操作。如果在绘图中,这种不相交的情况大量存在,剪裁岂不是很麻烦?AutoCAD已经为我们考虑到了这种情况,通过修改系统变量EDGEMODE,我们可以轻松实现对不相交的直线进行Trim操作。
在命令行输入“EDGEMODE”,将其值设为1,如下:
Command: edgemode
Enter new value for EDGEMODE <0>: 1
这时,我们的Trim命令就具有了对不可见边界进行延伸的功能,对两个不相交的直线进行任意的Trim,试试看...下图是用一段圆弧剪裁与其不相交的两条直线得到的效果(修剪时无需对圆弧进行延长操作):
剪裁前的状态:
...
AutoCAD从2007版开始,增加了这个复制实体到指定图层的命令:COPYTOLAYER,可以复制实体到目标实体所在图层,或者直接指定图层名。功能虽小,用起来方便多了。下图是AutoCAD 2009中该命令的按钮位置:
操作很简单,先选要复制的实体,然后指定目标图层(通过拾取实体或者直接输入图层名)即可。其命令行提示如下:
...
在对AutoCAD进行二次开发过程中,有时会需要获取当前程序集所在的路径,以便通过相对路径进行数据库连接,避免打开不同的dwg文件后系统当前相对路径被修改而造成的数据库连接错误。以下的代码实现了当前执行程序集路径的获取功能(更多路径的取得办法可参考这篇帖子):
...
在使用.NET开发AutoCAD时,获取的选择集可以用SelectionFilter对象进行过滤,这样用户就可以只选择对自己操作有用的实体了。关于这个SelectionFilter选择过滤器,偶以前只知道用DxfCode.Start组码来过滤单种类形的实体(如直线、圆、圆弧等)。今天在才鸟兄的指点下,找到了几个多重选择CAD实体的方法,现总结如下:
只过滤直线实体
...