autocad

[AutoCAD二次开发][2017]Autocad2017 ObjectARX 开发 环境配置和踩到的坑

牧云@^-^@ 提交于 2020-03-23 13:07:48
碎碎念 不得不说autocad二次开发的相关资料真的少,大多数还很旧。图书馆里VBA的一本最近出版时间是2006,AutoLisp的2013(还是个十二五规划教材),ObjectARX的书是2014年出的,结果开发的是autocad2010,还配套VS2008,里面的内容也是......惨不忍睹...... 不过女朋友设计院的插件在AutoCAD2017上一用就崩也不是个办法(说实话用上2017就再也不想回2011了),只好自己找AutoCAD 2017的官方资料开搞。 首先是技术选型问题,就查找到的资料而言二次开发有三个流派,AutoLisp,VBA(ActiveX), Cpp/C#(.Net + ObjectARX)。AutoLisp不了解,目前主要是解决问题(实现那一用就崩的插件里的一个小功能,功能下文再详细叙述),暂时不打算从头开始撸Lisp。ActiveX的提供(据说)很少,VBA我也不是很熟,作为次要选择。那么首先就先试试ObjectARX的水。 正文 AutoCAD 2017 的官方开发文档地址: http://help.autodesk.com/view/ACD/2017/CHS/?home=homepage_dev 此外在Develop Center有 坑 学习资料。网址 http://usa.autodesk.com/adsk/servlet/index?id

autoCAD2014安装过程

这一生的挚爱 提交于 2020-03-04 07:28:51
autoCAD2014下载网址:http://www.3d66.com/softhtml/showsoft_216.html AutoCAD2014破解版的安装过程: 1、安装 AutoCAD 2014 2、输入序列号666-69696969安装。 3、输入产品密匙为001F1 4、安装完成后,启动Cad2014 5、点击激活,勾选同意协议. 6、在激活界面中选择“我拥有一个Autodesk激活码”。 7、启动对应版本的XFORCE Keygen 32bits 或 64bits注册机 。 8、先粘贴激活界面的申请号至注册机中的Request中, 9、先点击MEm patch按钮,然后再点击Generate算出激活码 10、最后复制Activation中的激活码至“输入激活码”栏中,并点击下一步完成激活。 这样就完成了CAD2014的注册了。 注意:   1、安装注册前断网;   2、使用注册机时,要把注册机放到CAD安装目录下以管理员的身份运行;   3、把申请码粘入 Request 中, 先点击MEm patch按钮,然后再点击Generate算出激活码 ;   4、 最后复制Activation中的激活码至“输入激活码”栏中,并点击下一步完成激活 ; 来源: https://www.cnblogs.com/chengshun/p/7372752.html

AutoCAD_ ID 、指针、句柄和 ads_name的区别

不想你离开。 提交于 2020-02-29 22:20:07
访问实体的特性必须通过对象指针,但是一旦你获得了实体的ID、句柄或者ads_name,都能通过ID作中介而获得对象的指针。其中ID是一个桥梁。句柄是Windows编程一个常用的概念,在ObjectARX编程中一般指AcDbHandle类(也可指Windows编程的界面元素),该类封装了一个64位整形标识符,随DWG文件一同保存。ads_name则是在ADS编程中出现的一个概念,其实际上是一个二维数组,数组元素类型为长整型,在与用户交互的函数中经常用到。 ID、句柄和 ads_name 具有各自的 特点 : (1) AcDbObjectId:当dwg图形被打开后,数据库中的实体对象都会在内存中对应一个唯一的id(AcDbObjectId),AcDbObjectId也是与对象相关联的唯一标识符.AcDbObjectId仅存在于其所存在的数据库从内存中产生到数据库被删除之间.如果操作多个dwg,AcDbObjectId在多个数据库之间都是唯一的. (2) AcDbHandle:dwg文件中每一个实体都有一个唯一的标识符,用AcDbHandle表示,在一个AutoCAD中,不能保证每个实体的句柄都唯一。在autoCAD的两个Dwg中同一实体的句柄是相同的。实体的AcDbHandle可以随dwg文件被保存,所以即使dwg未被cad打开,也可以根据句柄搜索dwg文件获取对象信息. (3)

How to get Only one acadobject by selection set

≡放荡痞女 提交于 2020-02-25 05:28:08
问题 I have some trouble to select the targeted acadObject . I get the input via selectionset.SelectonScreen method. Here i can get more number of object from modelspace based on my filter condition.But i need only one object from the user. Here i mentioned my code below: AcadSelectionSet selset= null; selset=currDoc.selectionset.add("Selset"); short[] ftype=new short[1]; object[] fdata=new object[1]; ftype[0]=2;//for select the blockreference fdata[0]=blkname; selset.selectOnScreen ftype,fdata; /

CAD_2018

别来无恙 提交于 2020-02-17 19:12:18
Auto CAD 2018 软件下载: 64位||||32位 软件介绍 Auto CAD 2018(Autodesk Computer Aided Design)是Autodesk(欧特克)公司开发的自动计算机辅助设计软件,用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。AutoCAD广泛应用于机械设计、工业制图、工程制图、土木建筑、装饰装潢、服装加工等多个行业领域。 来源: CSDN 作者: lzw625520 链接: https://blog.csdn.net/lzw625520/article/details/104359344

添加和读取扩展数据

偶尔善良 提交于 2020-02-14 01:55:26
1、添加扩展数据 Private Sub 添加扩展数据(ByVal ent As Entity, ByVal DictName As String, ByVal TypedValue As TypedValue) If ent.ExtensionDictionary = Nothing Then ent.CreateExtensionDictionary() End If Using tr As Transaction = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction Dim xDict As DatabaseServices.DBDictionary = tr.GetObject(ent.ExtensionDictionary, OpenMode.ForWrite) If Not xDict.Contains(DictName) Then xDict.UpgradeOpen() Dim xrec As New Xrecord Dim rb As New ResultBuffer rb.Add(TypedValue) xrec.Data = rb xDict.SetAt

AutoCAD事件

こ雲淡風輕ζ 提交于 2020-02-08 00:08:04
1、CommandEnded AddHandler Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.CommandEnded, AddressOf CommandEnded 来源: https://www.cnblogs.com/rf8862/p/12275183.html

Excel坐标自动在AutoCad绘图_3

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-07 04:56:44
众所周知,Excel对数据处理的功能非常强大,它可以进行数据处理、统计分析已经辅助决策的操作,该软件已经渗透到各个领域。作为一个测绘人,GISer, 也经常利用excel完成一些测量表格的自动化计算,例如计算坐标方位角,附合导线平差,计算断面土方等,确实非常方便,而且用excel的VBA代码来编程,控制AutoCad,可以自动化完成很多重复的绘图工作,小编自从工作后就一直在关注测绘自动绘图方面的技术,觉得这真是一个炫酷的技术~~~~~ 用excel 的VBA代码控制CAD来绘制一条多段线,方法有多种,这是第3个版本,喜欢的测量朋友可以收藏~~~~ 下面是演示 是不是很方便呢, 链接: https://pan.baidu.com/s/1vyfHdQQlDvZne2_CN5sccg 提取码: bvxa 请大家多多支持一下,关注  测绘3S资源  微信公共账号,更多更全的原创测绘GIS技术文章,下载资源会在微信公众号中推送! 扫描下方的二维码,赶快行动哦 来源: https://www.cnblogs.com/ch3s/p/9784096.html

AutoCAD阵列中实现编号递增

我的未来我决定 提交于 2020-02-04 20:36:37
AutoCAD阵列中实现编号递增 去网站下载脚本 http://lee-mac.com/incrementalarray.html 把下载下来的脚本放在CAD的安装目录的Support文件夹 我这里是:D:\Program Files\AutoCAD 2010\Support 打开CAD,在管理选项卡中点击加载应用程序,加载刚才复制的脚本 在CAD中运行incarray,按照提示操作 视频演示: B站视频地址 来源: CSDN 作者: 星空你好 链接: https://blog.csdn.net/xingkongtianyuzhao/article/details/104173181

Attribute alignment after edit in AutoCAD

混江龙づ霸主 提交于 2020-01-24 00:32:33
问题 I have a simple routine that updates the text value of an attributereference . After the routine runs the values are updated in the drawing but the text is left justified and not centered. I have not been able to find any command that will cause AutoCAD to update the text location. So any help would be appreciated. My Code using (Transaction acTrans = db.TransactionManager.StartTransaction()) { BlockTable bt = (BlockTable)acTrans.GetObject(db.BlockTableId, OpenMode.ForRead); foreach (ObjectId