推荐一本C#的书:《AutoCAD VBA & VB.NET开发基础与实例教程》(第二版即C#版)
本帖最后由 zhf7878 于 2013-6-6 10:05 编辑《AutoCAD VBA & VB.NET开发基础与实例教程》(第二版即C#版)
购买信息:
当当网
亚马逊
京东
互动出版网
电力图书网
本书内容
从内容上来看,本书可以分为19章。
第1章是学习.NET开发AutoCAD的基础。首先介绍了使用Visual Studio 2010创建AutoCAD .NET程序的基本步骤及环境搭建,然后讨论了如何进行程序的优化工作、调试及异常处理,最后讲解了使用增强型向导AutoCAD .NET Addin Wizard来简化AutoCAD .NET程序开发环境的搭建。
第2章详细地分析了在.NET中创建图形对象的基本原理,介绍了直线、圆、圆弧、多段线、椭圆、样条曲线、文字、图案填充、面域、尺寸标注、(多重)引线、形位公差等多种图形对象的创建,并以自定义函数的形式对这些图形对象的构造函数进行了封装,在实用性方面进行了一定的扩展。
第3章的主题是AutoCAD .NET二次开发应用程序和用户的交互,包括获取用户输入、构建选择集、自定义对象捕捉、鼠标停留提示及访问AutoCAD内部命令等内容,特别是引入LINQ功能使选择集的构建大大的得到简化。
第4章内容是符号表。通过多个实例介绍了层表、文字样式表、标注样式表、视图表、视口表、UCS表和线型表的新建、修改、遍历、导出等多种常用的处理方法。
第5章介绍了块和表格。本章开头介绍创建、插入与访问简单块、属性快、可缩放块、动态块的方法,然后介绍使用属性块制作自动编号系统,最后介绍了从块派生的表格。
第6章讨论扩展数据、扩展字典和对象字典。扩展数据和扩展字典都是向实体附加数据的一种手段,扩展数据能够向实体附加的数据量较小,扩展字典是推荐的新方法;对象字典则是向图形本身追加数据的一种手段,本章介绍了AutoCAD中常用的对象字典:组及多线样式字典。
第7章介绍了文档与AutoCAD图形数据库。其中文档部分涉及的内容包括文档的管理(新建、打开、保存、关闭及锁定)、图形摘要信息、外部参照和光栅图像,图形数据库部分则主要介绍如何创建和访问图形数据库以及在数据库之间传递数据。
第8章首先讨论常用几何类的基本应用,然后在此基础上以绘制三维管道的实例来介绍矩阵的主要作用,最后通过判断点和多段线的位置关系介绍计算实体交点及射线法的知识。
第9章介绍AutoCAD中的各类事件,应用程序事件以禁用命令、按照实体类型分层和系统变量变化时通知用户为例,文档事件以阻止文档的关闭为例,对象事件以对象位置的关联为例。
第10章讲解用户界面的实现,包括自定义对话框、AutoCAD对话框、标签式对话框、面板、菜单和工具栏、进度条、状态栏。
第11章首先介绍使用LINQ技术访问SQL Server及Access数据库的方法,然后介绍如何读/写外部文件(包括文本文件、二进制文件和XML文件),最后介绍如何与Excel进行交互。
第12章介绍了AutoCAD中的三维实体。本章首先介绍标准形状的三维实体的创建,然后在此基础上通过拉伸、旋转、扫掠、放样与布尔操作构建高级的三维实体,最后讨论如何对创建的三维实体进行修改。
第13章介绍了实现Jig(拖拽效果)的基本原理。动态创建圆、等边三角形及其内切圆的实例展示了EntityJig类的使用技巧以及点、距离和角度的拖拽输入方法;动态创建椭圆及模拟镜像命令的实例揭示了DrawJig类的运用方法及几何算法分析。
第14章介绍程序的自动加载与发布。首先介绍如何通过修改注册表的方式让AutoCAD自动加载.NET程序,然后介绍使用Inno Setup为.NET程序创建专业的安装包。
第15章的内容是混合编程。首先介绍使用P/Invoke技术在.NET程序中调用未封装的C++函数,然后通过调用COM对象来访问VBA提供的函数及属性,最后介绍如何在.NET程序中调用ObjectARX生成的arx文件、dll文件及自定义实体。
第16章讲解高级用户界面的实现,包括OPM(属性面板)、WPF界面及Ribbon选项卡。
第17章的内容是讨论AutoCAD 2010中新出现的规则重定义(Overrule)。通过规则重定义,可以改变实体的外观和行为。本章实例主要介绍了显示、亮显、变形及对象重定义。
第18章介绍了参数化绘图与约束。AutoCAD 2010引入了参数化绘图的概念,参数化绘图是一项用于具有约束设计的技术。AutoCAD中的约束分为几何约束和标注约束,本章实例将说明如何通过编程的方式实现这两种约束。
第19章讨论打印和布局的问题。首先介绍布局和工作空间的关系,然后通过一个模拟AutoCAD“页面设置对话框”的实例讲解打印的设置工作,最后介绍打印单页与多页文档的具体方法。
国内外高手对本书的评价
•加拿大Focus Corporation高级软件开发经理Norman Yuan(袁晓勤)
This book in front of us is not one toteach how to program, how to develop software application in correct way.Rather, it focuses on how to do specific AutoCAD task: accessing drawingdatabase, manipulating drawing entity, controlling AutoCAD drawing editor andAutoCAD itself as a running application, etc. It covers wide range of topics onAutoCAD .NET API, from how to get started, to how to apply some latest APIs,such as Overrule, Parametric drafting and Constraint. Not only an amateurAutoCAD user-turned programmer will find this book is very helpful to getstarted, a programmer who is good at generic programming will also find thisbook helps him/her to get to answers on specific AutoCAD functionality. Even anexperienced AutoCAD programmer can still find some interesting code samples inthis book that helps routine AutoCAD programming work.
这不是一本通用的,教你如何正确地开发应用软件的教材。相反,它侧重于怎样通过编程来执行AutoCAD任务:访问图形数据库,绘图实体操纵,控制AutoCAD绘图编辑器和AutoCAD作为一个正在运行的应用程序本身,等等。它涵盖了广泛的AutoCAD .NET API主题: 从如何开始AutoCAD编程,到如何运用一些最新的API,如规则重定义,参数化绘图等。不仅一个业余的,由AutoCAD使用者变为程序员的人会发现这本书能帮助他很快地起步,一个通用编程的程序员也会发现这本书能帮助他找到有关特定的AutoCAD功能的编程答案。即使是非常有经验的AutoCAD程序员,仍然可以在本书中发现一些令人感兴趣的趣的,有助于日常的AutoCAD编程工作的程序代码。
•AutoCAD Map3D/Civil3D专家 杜长宇
本书内容丰富,循循善诱,注重思路引导,并力争与工程实践紧密结合,运用业界新技术来简化问题的解决,不失为一线开发人员的案头参考书,同时也是AutoCAD.NET API初学者的入门参考书。
•明经通道 飞诗工具箱版主 李成明(飞诗fsxm)
今日有幸能为才鸟兄所邀,为《AutoCADVBA & VB.NET开发教程》第二版写作评论,实感荣幸之至,同时压力山大!
国内也正慢慢兴起一股学习使用AutoCAD.NET开发的热潮,这些与.NET平台的优越性以及第一版的出版并热卖有着密切关系。第二版的出版发行顺应潮流,与时俱进,相信会给广大读者新的惊喜。本书作者作为国内AutoCAD.NET的先行者,不仅技术功底深厚,更难能可贵地愿意与大家分享自己的劳动成果。
本书轻松而不失深度,生动而又不失严谨,是不可多得的好教程。书如其人,才鸟兄不仅是严谨的技术流派,更是亲切导师流派。相信读者在本书学习与交流过程中一定会有更深的体会!
•ObjectARX编程站C++版主(浙江台州华龙离合器有限公司技术质量部经理)蔡全胜(师兄)
现在的书多有雷同,亦或是费话连遍,等切入正题时,一本书已经写了一小半了,这本书从章节上看,并没有过多的无关内容,第1章以一个简单的程序使读者了解Autocad二次开发的基本过程,同时通过这个简短的程序使刚入门的读者有一些成就感,提高了学习兴趣;第2章到第6章基本涵盖了AutoCAD开发使用率频最高的内容。通过这几章的阅读,读者应能编制大部份AutoCAD应用程序了,建议读者对这几章内容进行反复练习。
第8章涉及到一些几何算法问题,特别是关于点是否在多段线内的一个典型算法,值得读者借鉴;第11章,作者将数据库及excel等讲得如此之详细,可见作者不一般的功底, 同时也表现出作者对技术方面没有任何保留。
如果你想写出更高级一些的程序,那么第13、15、17章是大家必读的。第13章详细讲了jig拖拽效果的实现,第15章讲了P/Inovke技术,第17章讲了规则重定义,可以做出类似于自定义实体的效果,这几章在其它作者的书中未曾出现或都是一笔带过,可见这本书值得拥有。
总之,对于初学者我认为这是一本很好的学习书籍;对于已经有一些基础的读者,也可以大量借鉴书中代码;对于能熟练编制程序的读者,你也完全可以通过此书的阅读来填补你知识空缺。
•南京农业大学GIS中心 宋奇海教授
AutoCAD是目前在WINDOWS环境下就用最广泛,使用人数最多的CAD支撑软件,目前一般用户还只是采用交互方式来使用它。随着CAD应用的不断深入,正有越来越多的用户意识到只有借助二次开发,才能完成大型复杂的CAD任务。
AutoCAD提供了VisualLisp、VBA、ObjectARX和.NET API等多种开发模式,其中基于.NET平台对AutoCAD进行二次开发,可充分利用.NET 的各种优势,在保证功能强大的前提下大大提高开发速度。
今天,有幸阅读课才鸟(曾洪飞先生,年轻的资深AutoCAD开发大师)等撰写的《.NET 开发AutoCAD编程基础》,非常过瘾,下面略谈此书,有如下以下几个方面的创新:
1、主题十分明确,紧密围绕AutoCAD结构体系,从编程理论到应用实践,全书涉及了图形对象、交互操作、数学几何、信息附加、数据库链接等各个方面;
2、条理十分清晰,从基本图形的绘制演进到自定义实体、从交互操作到参数化绘图、动态绘图的拖拽等,始终围绕“轻松绘图”这一主线;
3、拖拽效果、属性面板定制、WPF界面和Ribbon选项卡等是其他同类书籍所没有的内容,并且非常新颖;
4、既介绍了制图学的基本理论,又介绍了计算机编程的语言内容、算法优化等;
5、本书的撰写方案具有很重要的价值,例如每一章均按“引言——思路——案例代码——效果——小结——提示——小练习”,这样让读者能轻松阅读并熟练掌握。
•AutoCAD .NET二次开发高手郭飞(无情剑客)
关于CAD二次开发的资料和代码,倒是看过不少,也“拿来主义”了不少,但是完整的看过一本关于二开的书,这倒是头一次。在我的认知中,这是一本类似于“进阶版新华字典”的书籍。说它是本“新华字典”,因为你二次开发中想查到的知识几乎都能查得到;论它为“进阶版”,那是因为除却基础外,你还可以从中汲取到一些“高级”的知识。本书除了教您如何入门外,还在解决实际程序中可以用到的C#出现的一些新特性、新方法穿插着进行了一定的讲解,帮您于是俱进。
纵观现有的程序,无不是从一些小功能慢慢扩展起来的,把一些大程序仔细的抽丝剥茧,你会发现,其实都是些基础程序通过一些技巧巧妙的堆积并揉合在了一起而已。熟读此书后,把书中之知识融汇一起,你会发现,写一个大型的程序,其实是一件很容易的事情。
做这行的程序员很多都是半路出家的,不管C#程序员转入做CAD二次开发,还是直接就进行CAD二次开发,刚开始接触时肯定都会CAD提供的.Net API迷惑不解,对程序的结构写法感到很奇怪,在读完本书后,相信您的疑惑会迎刃而解。如同书中讲到的,AutoCAD中的图形对象基本上是无确切含义的几何对象,例如点、直线、圆等实体,但实际设计图中的每一个实体都有特定的意义。CAD的.NET API,其实就可以看作是被赋予了特殊称谓意义的C#里的class,把CAD的数据结构以及一些对象之间的关系弄清楚了,就和普通C#程序没什么太大的区别。当你对C#熟悉同时又了解了这些知识,你会发现CAD二次开发也没有那么难。本书从一开始,就不是教你怎么快速的写出一个多功能的程序,而是从CAD里常用的一些对象开始、到与用户的交互、继而到与外部数据库的联立使用,从CAD基本对象的创建编辑、到带预览效果的JIG,从程序基本对象的入门操作、到程序完成后的如何发布,同时穿插着当前微软出来的新技术,一步一步的帮你巩固基础知识,提升你的程序水平。
最后,我相信读过此书的人和即将读此书的人水平和能力能更上一层楼的。
•Autodesk 软件工程师 吴锋(Bill Wu)
此书是国内第一本相当全面的 .NET 版 AutoCAD 开发技术教程,涵盖了最新版 AutoCAD 的技术应用,像 Overrule,以及WPF,Ribbon,Linq 等在 AutoCAD 开发中的应用等。此书的出版填补了国内 AutoCAD 开发技术教材的部分空白,有望成为一部经典之作。
•明经通道.Net版主 李昭鸿(雪山飞狐)
受才鸟兄委托,为《AutoCAD VBA & VB.NET开发教程》第二版写评论,心里觉得实在惭愧,本身工作已经不涉及AutoCad的二次开发了,前段时间更是因为很忙也远离了明经通道的.Net论坛,相对于本人的一贯懈怠,本书的三位作者都是非常勤勉的,从AutoCad2005开始引入.NetApi以来就一直专注于相关领域,堪称AutoCad.Net的先行者。
AutoCad.Net二次开发从2004年至今,已有8个年头了,从最初的Bug成群,少人问津,到现在已逐渐成为AutoCad二次开发的一个大的趋势,作为AutoCad的新宠,她自然有自身的魅力所在:从功能性上,远远高于行将灭亡的VBA(自AutoCad2010,VBA已不作为必装组件安装);从易用性上,要好于ObjectArx;从执行速度上,要高于Lisp和VBA,略低于ObjectArx;从代码可读性,要比Lisp好。总之,不管你现在使用何种语言进行AutoCad二次开发,.NetApi已经势不可挡的进入了你的视野。
本书秉承第一版的宗旨,内容涉及.NetApi的方方面面,内容详实,是本很不错的AutoCad.Net二次开发教程。对比市面已有的相关书籍堪称佳作!本书的面世,可谓读者的福音。
这算广告不? 有电子版的下载吗? 书很不错,我喜欢~ 单从内容上看,是好书 GTJ116600 发表于 2013-5-27 16:14
单从内容上看,是好书
多谢支持。除了书名有点迷惑性外,里面的内容都是C#的,保证买了不后悔。;P 支持,才鸟的力作,已经有,当由于.NET不支持开发05以前的版本,都没怎么看,希望能出一本C++的。 Gdlprfcu 发表于 2013-5-27 17:33
支持,才鸟的力作,已经有,当由于.NET不支持开发05以前的版本,都没怎么看,希望能出一本C++的。
C++的等张帆的书;P 友情支持下,订单已下,等待收书,给签个名呗{:soso_e113:} zhf7878 发表于 2013-5-27 17:52
C++的等张帆的书
咦,付完款才发现,缺货? 提示那有一本,能收到书吗?
XDSoft 发表于 2013-5-27 22:49
咦,付完款才发现,缺货? 提示那有一本,能收到书吗?
多谢晓东老大的支持。
因为是最新上架,可能还没到货。 这个一定要顶 zhf7878 发表于 2013-5-28 09:20
多谢晓东老大的支持。
因为是最新上架,可能还没到货。
客气了,支持是必须的。
耐心等吧,好饭不怕晚。
对了,挣豆挺容易的,攒点豆子,换个广告位宣传下吧。
AutoCAD VBA & VB.NET开发基础与实例教程第一版是基于什么语言? 黑叶子 发表于 2013-5-28 11:27
AutoCAD VBA & VB.NET开发基础与实例教程第一版是基于什么语言?
第一版前半部分是VBA,后半部分是VB.NET。不过第一版的VB.NET是打酱油的。
第二版是用C#重新进行编写的,内容和深度上都不是一个级别的;P zhf7878 发表于 2013-5-28 11:43
第一版前半部分是VBA,后半部分是VB.NET。不过第一版的VB.NET是打酱油的。
第二版是用C#重新进行编写的 ...
我准备二个版本一起买的,看来还是买第二版