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月写于新浪博客,发现略有价值,遂腾挪至此。
ObjectARX杂碎--(学习指南及书籍)的更多相关文章
- 《Shell脚本学习指南》书籍目录
摘要:Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更 ...
- 项目管理之道--纪我的新书《PMP项目管理认证学习指南(第4版)》出版并预祝大卖!
新年伊始,我最新的项目管理书籍——<PMP项目管理认证学习指南(第4版)>也出版了,真是新年新气象啊!翻译英文书籍是一件任重道远的工作,除了要具备扎实的基本功,熟悉相关的领域外,还需要细致 ...
- Unix和Linux下C语言学习指南
转自:http://www.linuxdiyf.com/viewarticle.php?id=174074 Unix和Linux下C语言学习指南 引言 尽管 C 语言问世已近 30 年,但它的魅力仍未 ...
- Java工程师学习指南 中级篇
Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- 写给大忙人的spring cloud 1.x学习指南
这几天抽空搞了下spring cloud 1.x(2.0目前应该来说还不成熟),因为之前项目中使用dubbo以及自研的rpc框架,所以总体下来还是比较顺利,加上spring boot,不算笔记整理,三 ...
- 《CWNA官方学习指南(第3版):认证无线网络管理员PW0-105》
<CWNA官方学习指南(第3版):认证无线网络管理员PW0-105> 基本信息 原书名:CWNA: Certified Wireless Network Administrator Off ...
- Java工程师学习指南(入门篇)
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java工程师学习指南(中级篇)
Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...
随机推荐
- TP中登录验证
loginpro 1.建立控制器 loginController.calss.php <?php namespace Admin\Controller; header('Content-type ...
- 详解Top命令 输出命令行选项及代码
Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运 ...
- HDU5468(dfs序+容斥原理)
Puzzled Elena Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- Lib之过?Java反序列化漏洞通用利用分析
转http://blog.chaitin.com/ 1 背景 2 Java反序列化漏洞简介 3 利用Apache Commons Collections实现远程代码执行 4 漏洞利用实例 4.1 利用 ...
- java中的死锁现象
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不可能正常终止. java 死锁产生的四个必要条件: 1.互斥使用,即当资源被一个线 ...
- 开发环境入门 linux基础 基本操作命令(部分) 文本结构和基本命令
文本结构和基本命令 linux系统中系统提示符:$ 表示普通用户 su root切换用户命令(用户名 root),输入密码,切换到其他用户状态 root 命令提示符:# exit 退出当前用户,返回 ...
- HOOK技术演示
前提:64位系统需要用64位编译dll 一.首先创建一个dll工程,取名为KeyboardHookDll,代码如下: // KeyboardHookDll.cpp : 定义 DLL 应用程序的导出函数 ...
- 第三章 Java内存模型(上)
本章大致分为4部分: Java内存模型的基础:主要介绍内存模型相关的基本概念 Java内存模型中的顺序一致性:主要介绍重排序和顺序一致性内存模型 同步原语:主要介绍3个同步原语(synchroized ...
- [hdu4333]Revolving Digits
/*注意注意:本题非hdu4333原题,而是简化版,原版有多组数据.但此代码在修改输入后依旧可以通过多组数据*/ 给出一个数字串,问有多少本质不同同构串比原串小,一样,大.同构串是指,对于原串S[1- ...
- 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args
设置与读取C#控制台应用程序Main函数中的参数args 在项目属性面版->调试->命令行参数设置.空格分隔.读取:string[] str = Environment.GetComman ...