目 录第一章 CAD 技术引论 § 1.1 CAD 技术的基本概念 § 1.2 CAD 技术的发展历程 § 1.3 CAD 技术的研究和应用领域 § 1.4 CAD 硬件系统 § 1.5 CAD 软件系统 习题一 第二章 AutoCAD 基本操作 § 2.1 AutoCAD 简介 § 2.2 绘制二维图形 § 2.3 文本及其样式 § 2.4 绘图设置 § 2.5 显示控制和绘图查询 § 2.6 图形编辑 § 2.7 图块和填充 § 2.8 尺寸标注 § 2.9 参数化图形设计 § 2.10 三维建模和编辑 习题二 第三章 AutoCAD 文件及其二次开发 § 3.1 AutoCAD 文件概述 § 3.2 MENU 菜单文件 § 3.3 CUI 用户界面文件 § 3.4 SCR 脚本文件 § 3.5 DXF 文件 § 3.6 STL 文件 习题三 第四章 Windows 图形交互技术 § 4.1 C++中的类§ 4.2 用 AppWizard 创建应用程序§ 4.3 文档/ 视图框架结构 § 4.4 在窗口中绘制图形 § 4.5 使用图形对象 § 4.6 接受用户输入 § 4.7 菜单和工具条设计 § 4.8 对话框设计 § 4.9 保存和加载数据文件 习题四 第五章 ObjectARX 开发技术 § 5.1 AutoCAD 二次开发概述 § 5.2 ObjectARX 简介 § 5.3 创建第一个应用程序 HelloARX § 5.4 常用的几何类和实体类 § 5.5 生成二维实体 § 5.6 生成三维实体 § 5.7 用户交互函数 § 5.8 MFC 对话框交互 § 5.9 遍历块表记录和实体数据操作 § 5.10 交互式实体数据操作§ 5.11 实体扩展数据 § 5.12 复杂实体处理 § 5.13 Mac 系统 ObjectARX 开发 习题五 参考文献
前 言CAD(计算机辅助设计)技术已经成为现代工业不可或缺的基石,当前几乎所有的工程图纸均由CAD绘制并保存为数字化形式的CAD数据库,而CAE(计算机辅助工程)和CAM(计算机辅助制造)等技术都需要由CAD提供几何模型。不学习CAD技术将与现代工业脱节,因此目前国内外大多数理工科专业的教学计划都涉及CAD和CAE方面的课程。 AutoCAD是目前国际范围内使用最广泛的CAD软件之一,自1982年推出第一个版本至今已在各工程领域得到了广泛的应用,积累了大量的用户。AutoCAD的文件格式和操作方式已成为事实上的行业标准。此外,AutoCAD在二次开发环境和接口开放方面也是业界标杆,支持多种开发平台和编程语言,提供功能强大的函数库和众多的技术和数据接口。本书的教学内容主要基于AutoCAD平台。本书的主要内容包括:CAD技术的基本概念和基础知识,AutoCAD的二维绘图和三维建模,基于AutoCAD文件的二次开发技术,基于MFC类库的Windows图形交互技术,ObjectARX二次开发技术。本书与国内外同领域的教材相比有以下几个鲜明的特色:1.面向CAD领域的全面解决方案,内容既有主流CAD软件的操作,又有基于CAD平台的二次开发(包括直接开发和间接开发),还有基于MFC的图形交互CAD系统开发;2.本书适应性好、学习门槛低,通过简化代码和提供大量示例,本教材适合没有接触过CAD软件,仅学过C或C++语言编程的初学者学习,适应于理工科院校非计算机类专业本科生的知识水平;3.本书面向主流平台,涉及的CAD和开发平台较新,选用了AutoCAD 2022版,以及Visual Studio 2019开发平台;4.本书融入了笔者多年的教学和开发经验积累,特别在AutoCAD的间接开发方面,国内目前很少有教材涉及;5.与国内此类教材通常面向机械和土木工程专业不同,本书适合大多数理工科专业的学生学习。本书对于培养学生形成CAD/CAE知识体系,提高编程能力和水平,培育工业软件开发人才等方面均具有重要意义和作用,可作为理工科类院校的CAD应用教材,也可供相关CAD技术开发人员参考。需要特别指出的是,为适应初学者的开发水平,本书中的示例代码力求简单易懂、可读性强。因此,本书中的代码大多忽略了出错处理(处理函数的返回值),对代码的运行效率也没有进行专门的优化,对程序结构的简化也可能不适合某些应用,读者在实际应用开发中可能需在以上几个方面对代码加以改进。本书中的所有示例代码均可通过扫描二维码下载。此外,本书教学内容的编排顺序主要考虑编程难度的循序渐进以及各部分知识之间的相互关系,具体教学时可根据实际需求灵活安排教学顺序。周鑫成、张世炫两位博士研究生在本书的编撰过程中承担了部分图表的绘制和代码检验工作,在此表示感谢。由于作者水平有限,编写时间仓促,书中难免有错误或不当之处,敬请读者批评指正。编 者 2023年8月
本书与国内外同领域的著作相比有以下几个鲜明的特色:1.面向CAD领域的全面解决方案,本书内容既有主流CAD软件的操作,又有基于CAD平台的二次开发(包括直接开发和间接开发),还有基于MFC的图形交互CAD系统开发;2.本书适应性好、学习门槛低,简化了代码并提供大量示例,适合没有接触过CAD软件,仅学过C或C++语言编程的初学者学习,适应于理工科院校非计算机类专业本科生的知识水平;3.本书面向主流平台,涉及的CAD和开发平台较新,选用了AutoCAD 2022版,以及Visual Studio 2019开发平台;4.本书融入了笔者多年的教学和开发经验积累,特别在AutoCAD的间接开发方面,国内目前很少有教材涉及;5.与国内此类教材通常面向机械和土木工程专业不同,本书适合大多数理工科专业的学生学习。本书对于培养学生形成CAD/CAE知识体系,提高编程能力和水平,成为工业软件开发人才具有重要意义和作用,可作为理工科类院校的CAD应用教材,也可供相关CAD技术开发人员参考。
李水乡 ---------------------------- 在教学方面,李水乡副教授在工学院长期主讲本科生“计算方法”和“工程CAD”课程,曾获2012年度北京大学教学优秀奖。作为专业负责人筹建了工学院航空航天工程本科专业,并主持制定了工程和科学计算本科专业的教学计划。指导博士研究生9人,硕士研究生6人,指导的博士生曾获2020年度北京大学优秀博士论文,入围2019年度中国力学学会优秀博士论文奖。在科研方面,李水乡副教授长期从事计算力学领域中的颗粒材料填充、有限元网格及动网格生成等方向的研究。曾担任教育部博士点基金力学专家评审组组长,教育部和航空工业总公司科技奖励评审专家,科技部863项目新材料领域评审专家组成员,第6届国际计算力学大会分会场主席。作为项目负责人承担了国家自然科学基金项目6项。担任国际期刊Scientific Reports编委,以及国际国内30多种重要学术刊物的审稿人。以第一作者和通讯作者在国际国内重要期刊发表论文50多篇。
本教材的主要内容包括CAD基础知识以及CAD系统的开发和二次开发技术。本教材面向CAD领域的全面解决方案,内容既有主流CAD软件的操作,又有基于CAD平台的二次开发(包括直接开发和间接开发),还有基于MFC的图形交互CAD系统开发。融入了编著者多年的开发经验积累,特别在AutoCAD的间接开发方面,国内目前尚无教材涉及。面向主流平台,选用了AutoCAD最新版本2022版,以及Visual Studio 2019开发平台,故本教材使用寿命长。具有一定的专业特色,本教材中的开发实例涉及计算力学和计算物理中的颗粒填充和网格生成等领域,与国内此类教材通常面向机械和土木工程行业不同,本教材适合偏理科专业的学生学习。本教材是院系专业核心课程教材,理工科通用。适合没有接触过CAD软件,仅学过C语言编程的初学者学习,适应性好、学习门槛低,也适应于工学院二、三年级本科生的知识水平。