ObjectARX杂碎

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
【注】所有文字,权当个人留存。若君不幸踏访,切无讥讽,确有可取之处,不妨随心借取,确有错漏之处,还望不吝赐教。交流:dszhao0523@163.com 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
【正文】今已踏入通信行业年余,诸多ObjectArx繁杂事情间或缠身,为避此琐事,特就其所知一一整理,陆续记载于ObjectArx版块中。
    此篇为该版块第一篇,拟介绍ObjectArx一些繁杂琐碎的细节。后续篇章将从浅入深的介绍ObjectArx的相关知识(我所涉及)。
    该篇内容概览如下:
    1、ObjectArx简介
    2、ObjectArx环境搭建
    3、ObjectArx学习资料
    4、ObjectArx学习方法
【1】ObjeactArx简介
    这一节的知识通过关键字【ObjectArx】在百度和google,可以得到详细介绍。在此,引用百度百科和ObjectArx官网(即AUTOCAD官网:http://usa.autodesk.com/adsk/servlet/index?id=773204&siteID=123112)的内容做个简单的介绍。
    ObjectARX是什么?---------Autodesk公司提供的针对AutoCAD平台做二次开发的以C++为基础的软件包。
ObjectArx的主要用途就是对AutoCAD软件做二次开发,比如定制一些复杂的图形,开发一些快捷的绘图模式等,还有人在AutoCAD上用它开发各种小游戏。总之,ObjectArx是Autodesk公司特意开发的一个软件包,这个包提供了大量访问AutoCAD软件底层的接口(函数、api),通过这些接口你就能够在AutoCAD平台上做一些你想做,而AutoCAD又没有自带的事情。所以,你应该只能用ObjectArx处理AutoCAD,而不应该用来做其他事情,比如Web程序。
【2】ObjectArx环境搭建
    从上一节可知,ObjectArx是通过访问AutoCAD软件底层接口用来扩展AutoCAD软件的。然而,AutoCAD又各种不同的版本(2004、2006、2007、2008、2010等),他们的底层接口(函数、API)必然不尽相同,因而,ObjectArx也理应根据不同AutoCAD版本提供不同的版本。可是,ObjectArx只是一个软件包,对AutoCAD做二次开发需要借助开发平台(编写、编译程序的平台),支持ObjectArx的开发平台最好的莫过于Microsoft visual studio,而Microsoft visual studio也有自己不同时期的各个版本。因此,要搭建好ObjectArx开发环境就需要对ObjectArx软件包(SDK)版本、AutoCAD软件版本、Microsoft visual studio平台版本有正确的搭配(组合)。如果组合不合理,则会出现各种问题,增加不少烦恼,严重打击开发激情。  
    网上已经有很多这个知识点介绍的博客和文章。下面列举一篇比较详细的相关文章: 
AutoCAD ObjectArx vs  vc++  最佳组合  http://blog.csdn.net/houjinfeng210/article/details/7451346
AutoCAD与ARX SDK及VS版本对应关系 用VS2010一劳永逸解决AutoCAD ObjectArx开发中VS版本问题
    授人以鱼,不如授人以渔。
    通过正确的关键词就能检索到,推荐用:CAD  ObjectArx VS 开发环境  版本 组合 等词汇,先google检索一遍,如果没有满意的再百度检索一遍,如果都没有,则考虑换关键词不停的检索吧,一定是有的。
    为了防止其他连接都不在了,在此记录下,对应关系。

AutoCAD版本
ARX版本
VS版本
  
AutoCAD(R12)
ARX1
VC2
AutoCAD(R14)
ARX202
VC4.2
AutoCAD2000/2002(R15/R15.6)
ObjectARX2002
VC6
AutoCAD2004(R16)
ObjectARX2004
Vs2002(VC7.0)
AutoCAD2005(R16.1)
ObjectARX2005
Vs2003(VC7.1)
AutoCAD2006(R16.2)
ObjectARX2006
VS2003(VC7.1)
AutoCAD2007(R17)
ObjectARX2007
VS2005(VC8.0)
AutoCAD2008(R17.1)
ObjectARX2008
VS2005(VC8.0)
AutoCAD2009R(R17.2)
ObjectARX2009
VS2005(VC8.0)
AutoCAD2010(R18)
ObjectARX2010
VS2008(VC8.0)
  
ObjectARX2011
VS2008(VC8.0)
 
AutoCAD2011(R19)
  

选定版本后,就可以开始搭建开发环境了,我是3年前初次接触CAD二次开发,由于项目需求,指定版本为CAD2008+ObjectArx2008+VS2005。后续所有篇章都是基于该开发环境。关于这个环境的搭建将在下一篇中《AutoCAD2008+ObjectArx2008+VS2005开发环境搭建》中详细介绍。
【3】ObjectArx学习资料
   在国内,AutoCAD的使用是非常广泛的;在国内,不想出钱的企业是非常多的。所以,在国内,ObjectArx的学习资料也是不少的。ObjectArx的学习资料可以分为两类:书籍类和网络类。书籍类也可以为了两类:纸质的和电子版的。网络类指的是QQ群、BBS、博客、网络文章等。
   在使用ObjectArx过程中,购买了两本纸质书籍,《AutoCAD ObjectArx程序开发技术》、《AutoCAD2000 objectARX编程指南》,参考了大量电子版书籍,如下图所示:

   

这些书籍中《ObjectARX开发实例教程》最简单、实在;搭建好环境后,复制该书中的例子就可运行得到结果,所见即所得,是入门的最佳实践书籍之一。另外,一本是《AutoCAD2000 objectARX编程指南》,这本书是国外ObjectARX开发的经典书籍,详细介绍了ObjectARX开发的原理。虽然有点老,但永不失指导意义。吃透这两本书,就可以用ObjectArx做一些想做的事情了。
     网络类:国内比较好的是:ObjectArx编程站  明经CAD社区  国外的:Autodesk ObjectARX - Autodesk Discussion Groups 另外,想得到实时交互咨询,可以加入一些QQ群,BBS等。比较有人气,实力强劲的ObjectArx QQ群就是ObjectArx编程站附属的两个QQ群(人满为患,所以我被T了。QQ群号也不记得了,想加入的可以去他们的网站上问问)。
     当然,还有一个最重要的ObjectArx知识宝库,那就是ObjectArx SDK自带的帮助文档和示例文件

    

个人极端的认为,如果你熟悉了上面提到的两本书,也就是了解了ObjectArx开发的理论和基础知识。那么,按objectarx SDK自带的docs和samples操作一遍,并搞懂每一行代码的来由。在ObjectArx领域,你就算的上一个专家了。
【4】ObjectArx学习方法
    ObjectArx是一个基于C++的针对AutoCADR做二次开发的软件包。因此,在学习使用该方法之前,你必须有一定的C++基础和一定的AutoCAD基础。如果,二者有缺,你的补上先。否则,学习的路途上倍加艰辛。
    如果有C++基础和AutoCAD基础,那么就只有一个最简单、最有效的学习方法了:编程实践,不懂就问,不问就查。
    如何问? 问身边的高手,问网上的高手。如果没有问的机会,那就苦B了点。就只有直接查了,查书查文献查网络,网络查是最快捷了,但是不容易查得准,因为,提炼问题的关键字,也是一门学问。关键字对了,一查就准,关键字错了,天明查到天黑也可能一无所获。
   纸上得来终觉浅,绝知此事要躬行;眼过千遍,不如手动一遍;实践出真知。做程序开发更是如此。  
   用手练,用嘴问,终有所成。
  ======

后记:该文初于13年1月写于新浪博客,发现略有价值,遂腾挪至此。

(0)

相关推荐

  • ObjectARX之Mac os开发

    网上关于ObjectARX开发的相关介绍都基于Windows环境.Mac 环境的开发几乎没有,下面介绍Mac环境下ObjectARX的开发. AutoCAD ObjectARX开发必备条件: 1. 安 ...

  • (5条消息) opencv版本与vs版本

    首先是OpenCV的版本选择.不是所有版本的OpenCV都支持你的Visual Studio版本,同样的,不是所有版本的Visual Studio都与OpenCV的特定版本相兼容. vc6只能配置op ...

  • CloudCompare二次开发编译篇(内附交流群更新通知)

    前言 CloudCompare是另一款开源且完善的点云处理软件,我们可以在这款软件的基础上,任意的设计成我们想要的界面,可以说是点云处理软件的最佳选择,所以我认为如果你是研究点云算法的可以使用PCL, ...

  • 牛杂碎加工处理方法及卤牛杂配方拿走不谢!

    中国人有食用动物下水的习惯,而牛的全身都是可用的食材,除了下水,身上各个部位几乎都可用来入菜,为餐厅带来利润.那么,牛杂碎该怎么处理呢?下面,请看牛身上每个部位的处理方法. 牛毛肚处理 刚刚取出的牛肚 ...

  • 一个草根的日常杂碎(5月8日)

    5月8日 文/刘新吾 摄影/刘新吾 ●不要小看这个传宗接代.一个民族,要想绵延不绝,首先得有人力资源.少了人力资源,就会亡国灭种.中华文明,之所以一直存留,就是人力资源丰富.只要有人在,文化就会传承, ...

  • 一个草根的日常杂碎(5月7日)

    5月7日 文/刘新吾 摄影/刘新吾 ●牙医在当地很有名.很有名的牙医,钱自然挣了不少.然而,牙医却歇业了.一位老者,去找牙医拔牙.牙医端相了阵,不给拔.老者说,不给拔,给看一下,开些药也行.牙医不给看 ...

  • 一个草根的日常杂碎(5月9日)

    5月9日 文/刘新吾 摄影/刘新吾 ●当年计划生育,是国策,无可非议.然而,独生子女政策,却有着不可争议的硬伤.坦率地说,中国教育灾难,它就是罪魁祸首.最正确的选择,应该是一对夫妇生两个.因为只生一个 ...

  • 杂碎

    "杂碎"在孝义话中可以读zaә(三声) gә(一声),是"煮熟切碎供食用的牛羊等的内脏". 1.走罢,跟我出的吃一碗羊杂碎噻. 2.兀家爱吃杂碎,我不爱吃. 3 ...

  • 一个草根的日常杂碎(5月6日)

    5月6日 文/刘新吾 摄影/刘新吾 ●白岩松说:来毛坦厂读书的,大多是打工者孩子.把院墙外柳树当神树祭拜,都不是富裕父母.他们背后,是卑微家庭.父亲在外打工,几家母亲轮流给孩子做饭.高考那天,上万人守 ...

  • 一个草根的日常杂碎(5月10日)

    5月10日 文/刘新吾 摄影/刘新吾 ●魏国大臣庞恭,要陪太子到邯郸去做人质.临行前,对魏王说:大王,若有人说街市上有老虎,您相信吗?魏王答:不信.庞恭说:若两个人说呢?魏王答:我也不信.庞恭又说:若 ...

  • 一个草根的日常杂碎(5月5日)

    5月5日 文/刘新吾 摄影/刘新吾 ●在网络作家眼里,钱儿就是个数字.一个主人公,为求婚,拉了一大卡车钻石.开进来,往院子里一倒.求婚失败,又用铲车,全部铲到车上拉走.另一位,同样牛逼.入赘女方家,3 ...

  • 一个草根的日常杂碎(5月11日)

    5月11日 文/刘新吾 摄影/刘新吾 ●新浪微博里,有些日子,不见许开祯先生信息了.点进去,才发现,他发了公告,3月9日就停更了.目前,他已入驻头条号.虽然,我一直经营着头条号,但找许开祯,还是颇费了 ...