--------------------------------------------------------------------------------------------------------------------------------------------------------------------
【注】所有文字,权当个人留存。若君不幸踏访,切无讥讽,确有可取之处,不妨随心借取,确有错漏之处,还望不吝赐教。交流: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月写于新浪博客,发现略有价值,遂腾挪至此。

最新文章

  1. java开发连接Oracle 12c采用PDB遇到问题记录
  2. Ubuntu下postgresql安装
  3. iOS缓存使用的框架
  4. semanage: 未找到命令
  5. (转)android底部弹出iOS7风格对话选项框(QQ对话框)--第三方开源--IOS_Dialog_Library
  6. virt viewer Usbredir USB重定向
  7. RecyclerView, ListView 只显示一行内容 问题解决
  8. OutLook中发送用户密码加密的小技巧
  9. IIS限制ASP.Net 文件上传大小解决方案,修改IIS7/7.5配置
  10. 获取本机IP、mac地址、计算机名
  11. wcf安全
  12. TypeScript -- 面向对象特性
  13. C#键盘事件处理(来源网上)
  14. BeanUtils.copyProperties VS PropertyUtils.copyProperties
  15. Javascript 装饰器极速指南
  16. mac使用minikube
  17. 挖坑:handoop2.6 开启kerberos(全流程学习记录)
  18. Errors occurred during the build. Errors running builder 'Validation' on pro
  19. go中的无限极分类的问题
  20. 大数据入门第十四天——Hbase详解(二)基本概念与命令、javaAPI

热门文章

  1. LeetCode Beautiful Arrangement II
  2. 如何打开 Windows 的热键提示
  3. 开始写博客,与ITer们互相学习
  4. Redis codis 搭建测试
  5. Linux打包下载命令
  6. leetcode643
  7. DAY15-Django模板语言
  8. office 2010打开doc文档报错:Word 在尝试打开文件时遇到错误
  9. 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse
  10. JavaScript的流程控制语句