CAD在工程实践中的二次开发.doc

上传人:wux****ua 文档编号:9481589 上传时间:2020-04-05 格式:DOC 页数:87 大小:1.31MB
返回 下载 相关 举报
CAD在工程实践中的二次开发.doc_第1页
第1页 / 共87页
CAD在工程实践中的二次开发.doc_第2页
第2页 / 共87页
CAD在工程实践中的二次开发.doc_第3页
第3页 / 共87页
点击查看更多>>
资源描述
摘 要 为了解决困扰工程地质界的隧道地质编录绘图难题 探索实现隧洞设计及施工 地质展示图绘图自动化和计算机化的可能途径 本文以田坝岭隧道施工地质为范例 说明铁路隧道地质编录自动成图系统概念和实施要点 通过对 AutoCAD 平台的二 次开发最终实现自动成图的目的 通过本设计过程 使学生掌握计算机辅助设计的基本技能 并具备 AutoCAD 二次开发的初步技能 提高其应用计算机解决实际问题的能力水平 预期达到以下 要求 熟练掌握 AutoCAD 平台 Axtivex 开发技术 初步具备利用关系型数据库管理 工程数据的能力 本设计可以实现加入窗体模块编程 每确认一个窗体模块即可实现一项模块功 能 使工作量由软件从已编写的数据库文件中提取数据自动生成图形 用铁路隧道 地质编录自动成图系统绘制隧道展示图比手工快几十倍甚至更多 关键词 地质展示图 数据库 二次开发 Abstract In order to solve the trouble DeZhiJie tunnel engineering geological record drawing problem explore and realize tunnel in the design and construction of geological display figure drawing automation and computerized possible approach based on the tunnel construction geological field dam as an example explain railway tunnel geological record to be automatic mapping system concept and the key points realized through to the second development AutoCAD platform eventually realize the purpose of automatic mapping Through the design process make the students master the basic skills of computer aided design and with AutoCAD secondary development preliminary skills improve its application computer solution actual problem ability level expected to reach the following requirements master AutoCAD platform development technology Axtivex Initially have use of relational database management engineering data ability This design can realize to join form module programming each confirmed a form module can be realized a module function Make work from already written by software database file extract data automatically generate graphics Use railway tunnel geological record to be automatic mapping system draw tunnel show than a few times fast figure by even more Key word Geological display figure database Second development 目 录 第 1 章 绪 论 1 1 1 开发的意义 背景 1 1 2 本设计解决的问题 1 1 3 采用的方法和步骤 2 1 3 1 方法 2 1 3 2 步骤 2 1 4 预期成果 3 第 2 章 数据库结构设计 4 2 1 数据库中的表 4 2 2 数据库中表的关联图 7 第 3 章 程序结构 9 3 1 模块 9 3 1 1 Caidan 模块 9 3 1 2 Caidanxianshi 模块 9 3 1 3 CommASS 模块 10 3 1 4 DZSub 模块 10 3 2 窗体 10 3 2 1 工程管理窗体 10 3 2 2 工程数据管理窗体 11 3 2 3 平面数据管理 12 3 2 4 岩性表的管理 13 3 2 5 编录出图 13 3 2 6 打印 14 第 4 章 重点算法 15 4 1 平面线路方位角的计算 15 4 1 1 任意里程的方位角计算 15 4 1 2 线路走向计算 16 第 5 章 主要应用技术 19 5 1 ADO 技术简介 19 5 1 1 Connection 连接对象 19 5 1 2 Recordset 对象 20 5 2 AUTOCAD VBA 简介 23 5 2 1 什么是 AutoCAD VBA 23 5 2 2 用 VBA 管理器组织工程 24 5 2 3 处理宏 25 5 2 4 VBA IDE 编辑工程 26 第 6 章 工程实例 28 6 1 工程名称的录入 28 6 2 岩性表设置 29 6 3 平面数据录入 29 6 4 工程地质数据录入 31 6 5 编录出图 37 第 7 章 结 论 39 7 1 最终成果 39 7 2 总结 39 7 3 展望 39 参考文献 40 致 谢 41 附录 A 外文资料翻译 42 附录 B 代 码 56 第 1 章 绪 论 1 1 开发的意义 背景 为了解决困扰工程地质界的隧道地质编录绘图难题 探索实现隧洞设计及施工 地质展示图绘图自动化和计算机化的可能途径 本文以田坝岭隧道施工地质为范例 提出了铁路隧道地质编录自动成图系统概念和实施要点 实现了通过对 AutoCAD 平台的二次开发最终实现自动成图的目的 1 2 本设计解决的问题 通过对 AutoCAD 平台的二次开发 完成 铁路隧道地质编录自动成图系统 开发 解决的问题包括 1 线路平面数据管理模块设计 实现 先在数据库里建立平面数据曲线的参数表把平面数据管理起来 然后在 VBA 中设计窗体和模块 用窗体代码把数据管理起来 模块代码负责显示工具栏菜单和 下拉菜单 在 CommASS 模块中编写公共过程用来调用数据库 执行 SQL 语言的代码 在 窗体里编写可以执行添加 删除和更改 可以显示起点和终点的坐标里程且可以更 改数据的代码 2 地质编录数据管理模块设计 实现 为了使平面线路与其相应的地质情况连接起来我们需要把设计 施工时的地质 信息录入到数据库表中 为此需要设计两个表和一个窗体来实现本功能 这两个表 与 name 和 xianlu 表通过 E ID 建立主键关系使得工程名称 线路特征 地质情况连 接起来 而窗体任然是对表进行修改的一个工具 在数据库里建立 sheji 和 shigong 两个表 这两个表管理设计和施工的地质信息 在 AutoCAD 操作系统中建立窗体和模块 地质编录数据管理模块是要把施工和设 计时隧道各个断面的地质情况记录到表中 并且可以通过窗体对其进行操作 同样 应用了 CommASS 模块中编写公共过程调用数据库 执行 SQL 语言的代码 窗体里 编写可以执行添加 删除和更改数据的代码 3 填充图例管理模块设计 实现 填充管理模块用来实现管理岩石特性的功能 为此我们搜集了一个比较齐全的 岩性库 然后在数据库里建立表 yanxing 用 CommASS 模块中 GetWorkPath 过程调 用岩性库中我们使用的岩性添加到 yanxing 表中 具体操作 在数据库里建立 yanxing 表 这个表管理岩石特性的信息 在 AutoCAD 操作系 统中建立窗体和模块 填充图例管理模块是要把隧道的地质岩性管理到 yanxing 表 中 并且可以通过窗体对其进行操作 同样我们在这里应用了 CommASS 模块中编 写公共过程调用数据库 执行 SQL 语言的代码 窗体里编写可以执行添加 删除和 更改填充比例的代码 4 自动绘图模块设计 实现 自动绘图要实现输入任意一段里程后计算机自动绘制展示图的功能 为此我们 需要设计一个窗体 而且此模块需要在 DZSub 里编写绘制图框 字体 调用展示图 投影岩性的代码 具体操作 在 AutoCAD 操作系统中建立窗体和模块 自动绘图管理模块是要把隧道的投 影图绘制出来 并且可以通过窗体对其进行操作 在 CommASS 模块中编写公共过程调用数据库 执行 SQL 语言的代码 DZSub 模块里编写字体 编写字体边框线 展示图图框定位 展示图文字定位 调用数据 库表里的字段记录信息等 窗体里编写可以输入任意起始里程 终止里程以及是否 绘制展示图及填充物的代码 5 控制模块设计 实现 控制模块主要是通过对全局的调整实现以上几个模块的链接 通过调试使程序 运用更加的方便 1 3 采用的方法和步骤 1 3 1 方法 铁路隧道地质编录自动成图系统开 发 就 是 在 可 视 开 发 工 具 提 供 的 图 形 用 户 界 面 上 通 过 操 作 界 面 元 素 诸 如 菜 单 按 钮 对 话 框 编 辑 框 单 选 框 复 选 框 列 表 框 和 滚 动 条 等 由 可 视 开 发 工 具 自 动 生 成 的 应用软件 1 3 2 步骤 软件开发流程一般分为以下六步 1 相关系统分析和应用需求的初步了解需求 然后用 WORD 列出要开发的 系统的大功能模块 每个大功能模块有哪些小功能模块 对于有些需求比较明确相 关的界面时 在这一步里面可以初步定义好少量的界面 2 系统分析深入了解和分析需求 根据自己的经验和需求用 WORD 或相关 的工具再做出一份文档系统的功能需求文档 这次的文档会清楚例用系统大致的大 功能模块 大功能模块有哪些小功能模块 并且还例出相关的界面和界面功能 3 系统分析和用户再次确认需求 4 系统分析根据确认的需求文档所例用的界面和功能需求 用迭代的方式对 每个界面或功能做系统的概要设计 5 系统分析把写好的概要设计文档 根据所例出的功能一个一个的编写 6 测试编写好的系统 使用该程序 一个一个的确认每个功能 1 4 预期成果 通过本设计过程 使学生掌握计算机辅助设计的基本技能 并具备 AutoCAD 二次开发的初步技能 提高其应用计算机解决实际问题的能力水平 预期达到以下 要求 1 熟练掌握 AutoCAD 平台 Axtivex 开发技术 利用 AutoCAD 平台 Axtivex 开发技术 在 AutoCAD 里实现了添加工具栏 地 质编录 菜单项 在菜单项编写下拉菜单记录数据最终实现自动绘制展示图的目的 2 初步具备利用关系型数据库管理工程数据的能力 数据库里表建立联系图约束数据的变化 使数据库中的表成为一个不可分离的 整体执行任务 第 2 章 数据库结构设计 为了使工作简单化 我们现将平面线路所测数据 沿线围岩级别及地质情况描 述录入数据库 这样将具体情况数据化 然后将数据从数据库中调用并在 AutoCAD 中应用 VBA 绘制地质情况展示图 2 1 数据库 中的表 本设计所解决的问题是使隧道中绘制复杂展示图的工作简便 为此我们在 SQL 数据库中建立一个数据库将线路的信息分类记录到表格中 下面是本程序解决问题 时需要在数据库中所建立的几个表及其内容的具体介绍 本工程所建立的数据库中有 7 个表组成 表名分别为 Name sheji shigong weiyanfenji xianlu yanxing YT 以下是几个表的主要信 息 1 Name 表主要记录了工程的名称 工程的里程信息 并详细记录了字段名 称 类型 定义 主键名称等 其中 E ID 表示工程的地址 不同的工程用不同的 E ID 来区分 ENAME 表示工程名称 不同工程名称用不同的 E ID 表示 EPNAME 表示工程打印名称 EFX 表示是否反向 LC 表示工程包含的里程 详细 信息见表 2 1 表 2 1 Name 工程名称 表包括的字段及内容 字段 数据类型 定义 备注 E ID Int 工程地址 主键 ENAME nvarchar 50 工程名称 EPNAME nvarchar 50 工程打印名称 EFX bit 反向 LC nvarchar 15 工程里程 2 Sheji 表主要记录了平面线路沿线的地质水文情况 E ID 表示某个工程对 应的水文地质情况 GWID 表示不同水文地质的分界标识 GWQZ 表示工程水文地 质里程的前缀 DK GWM 表示工程水文地质的描述信息 GWLC 不同工程水文 地质情况分界的里程 详细信息见表 2 2 表 2 2 sheji 地质描述 表包括的字段及内容 字段 数据类型 定义 备注 E ID int 工程地址 GWID int 工程水文地质地址 主键 GWQZ nvarchar 10 工程水文地质前缀 GWM decimal 18 0 工程水文地质描述 GWLC nvarchar 200 工程水文地质里程 3 Shigong 表主要记录了沿线施工时的地质情况 E ID 表示不同的工程地址 DM ID 表示施工时的隧道断面划分地址 DMDC 表示施工时隧道断面的地层岩性 特征 DMSW 表示施工时隧道断面的水文情况 DMGC 表示隧道断面工程地质特 征 DMCZ 隧道断面施工时隧道初期支护的概述 DMLC 表示施工隧道断面的里程 DMC 施工时隧道断面的围岩级别 DMQZ 表示施工时隧道断面的里程前缀 DK 详细信息见表 2 3 表 2 3 shigong 线路里程上的地质情况 表包括的字段及内容 字段 数据类型 定义 备注 E ID Int 工程地址 DM ID Int 线路里程地址 主键 DMDC nvarchar 100 地层岩性特征 DMSW nvarchar 100 水文地质特征 DMGC nvarchar 100 工程地质特征 DMCZ nvarchar 100 初期支护概述 DMLC decimal 18 0 线路里程 DMC nvarchar 20 施工围岩级别 DMQZ nvarchar 10 线路里程前缀 4 Weiyanfenji 表主要记录了在设计线路时各个工程上的地质变化 围岩级 别变化的分界里程 其中 E ID 表示某个工程里围岩级别的变化情况 WCC 表示 某工程的围岩级别变化情况 WCID 表示围岩级别变化处的地址 WCLC 表示围岩 级别变化处的里程 WCQZ 围岩级别里程前缀 DK 详细信息见表 2 4 表 2 4 weiyanfenji 围岩分级 表包括的字段及内容 字段 数据类型 定义 备注 E ID Int 工程地址 WCC smallint 围岩级别 WCID Int 围岩分级地址 主键 WCQZ nvarchar 10 围岩级别前缀 续表 2 2 字段 数据类型 定义 备注 WCLC decimal 18 0 围岩级别里程 5 Xianlu 表主要记录了平面线路中曲线的特征值 E ID 表示某工程对应的 平面线路的曲线特征 JD ID 表示本工程里线路走向变化的点 交点 信息 X 表 示平面线路交点的横向坐标值 Y 表示平面线路交点的纵向坐标值 R 表示缓和曲 线中圆曲线半径 lo 表示曲线上的缓和曲线长 详细信息见表 2 5 表 2 5 xianlu 平面数据管理 表包括的字段及内容 字段 数据类型 定义 备注 E ID Int 工程地址 JD ID Int 交点地址 主键 X Real 交点的 X 坐标 Y Real 交点的 Y 坐标 R Real 曲线半径 lo float 缓和曲线长 6 Yanxing 表主要描述了不同地段的岩性特征 YX ID 表示岩性变化点的地 址 通过岩性地址与 YT 表建立某种联系是的不同隧道断面的岩性描述可以调用此 表里的信息 YXMC 储存了对不同岩性情况的描述 YXTCT 表示岩性的表示方法 YXTCBL 表示岩性的比例值 详细信息见表 2 6 表 2 6 yanxing 岩性描述 表包括的字段及内容 字段 数据类型 定义 备注 YX ID Int 岩性地址 主键 YXMC nvarchar 30 岩性描述 YXTCT nvarchar 20 岩性的表示方法 YXTCBL float 岩性比例 7 YT 表主要记录各个地段的岩性特征及其分界点 YX ID 表示岩性变化点 的地址 通过岩性地址与 YT 表建立某种联系是的不同隧道断面的岩性描述可以调 用此表里的信息 YTID 岩性特征的分界地址 YTQX 表示岩性特征岩石的倾向 YTQJ 表示岩性特征岩石的倾角 DM ID 隧道断面地址 详细信息见表 2 7 表 2 7 YT 岩性特征 表包括的字段及内容 字段 数据类型 定义 备注 YX ID Int 岩性地址 主键 YTID Int 岩性特征地址 YTQX decimal 18 0 f 岩性特征倾向 YTQJ decimal 18 0 岩性特征倾角 DM ID Int 隧道断面地址 2 2 数据库中表的关联图 上一节介绍了数据库中建立的表及其内容 具体这几个表之间有什么样的关系 我们是如何利用它们发挥作用的呢 1 表 xianlu 里面将 E ID JD ID 设为主键且 E ID 为自动标识列 表 name 中 E ID 设为主键 两个表通过字段 E ID 建立约束关系 其中 xianlu 是主键表 name 是外键表 强制外键约束 强制与复制 标识名称是 xianlu name pk 只有当 xianlu 表里的内容清空后 name 表里的工程才可以删除 2 表 sheji 里面将 GWID 设为主键并与 name 表通过字段 E ID 建立约束关系 其中 sheji 是主键表 name 是外键表 强制外键约束 强制与复制 标识名称是 sheji name pk 只有 sheji 表里的内容清空后 name 表才可以被删除 否则无法对 name 表进行某些操作 3 表 Shigong 里面将 DM ID 设置为主键并与 name 表通过字段 E ID 建立约束 关系 其中 shigong 是主键表 name 是外键表 强制外键约束 强制与复制 标识 名称是 shigong name pk 只有 shigong 表里的内容清空后 name 表才可以被删除 否则无法对 name 表进行某些操作 4 表 weiyanfenji 里面将 WCID 设置为主键并与 name 表通过字段 E ID 建立约 束关系 其中 weiyanfenji 是主键表 name 是外键表 强制外键约束 强制与复制 标识名称是 weiyanfenji name pk 只有 weiyanfenji 表里的内容清空后 name 表才可 以被删除 否则无法对 name 表进行某些操作 5 表 YT 里面将 YX ID 设置为主键并与 yanxing 表通过字段 YX ID 建立约束 关系 其中是 YT 主键表 yanxing 是外键表 强制外键约束 强制与复制 标识名 称是 YT yanxing pk 只有表 YT 里的内容清空后 yanxing 表才可以被删除 否则无 法对 yanxing 表进行某些操作 6 表 YT 里面将 YTID 设置为主键并与 shigong 表通过字段 DM ID 建立约束关 系 其中 YT 是主键表 shigong 是外键表 强制外键约束 强制与复制 标识名称 是 YT shigong pk 只有 YT 表里的内容清空后 shigong 表才可以被删除 否则无法 对 shigong 表进行某些操作 总的来说就是 表 YT 约束 shigong yanxing 表 而表 shigong sheji weiyanfenji xianlu 分别通过不同的主键约束表 name 图 2 1 主要 描述了表格之间的关系 图 2 1 数据库表的关联图 第 3 章 程序结构 在 AutoCAD 中新建工程 根据实现功能的需要在新建工程里建立四个模块 六个窗体 四个模块名称分别为 Caidan Caidanxianshi CommASS DZSub 窗 体名称分别为 工程管理 工程数据管理 平面数据管理 编录出图 岩性表管理 打印 3 1 模块 通过 caidan 模块添加菜单项及子菜单项 Caidanxianshi 项通过 show 显示各个 子菜单对应的窗体 CommASS 项调用数据库 工作目录及执行 SQL 语句 DZSub 项包含了本次设计的主要计算部分 它主要包括 图框的绘制 字体大小及位置的 设置 里程在那条曲线的判断 方位角的计算 断面投影的计算等 3 1 1 Caidan 模块 模块功能说明 本模块属于通用命令 主要功能是创建工具栏菜单 以及下拉 菜单项 本模块只有一个 Inimenu 过程 在该过程里实现了创建新菜单 隧道地质编录 项的目的 且在 隧道地质编录 里添加了工程管理 数据编录 平面数据管理设 置 岩性表设置 编录出图 图表打印几个菜单项 在模块里根据要实现的功能编写代码 实现创建新菜单及下拉菜单的目的 Caidan 模块代码见附表 3 1 3 1 2 Caidanxianshi 模块 模块功能说明 本模块主要功能是显示下拉菜单项窗体 并实现其相应操作的 功能函数 本模块有两个不同的过程 一个是用 frm Show 函数实现工程管理 数据编录 平面数据管理设置 岩性表设置 编录出图几个菜单项窗体的显示功能 另一个同 样也使用了 frm Show 函数实现图表打印窗体的显示 但在本模块里设置了打印字体 及图纸的选择 显示窗体的代码详见附表 3 2 3 1 3 CommASS 模块 模块功能说明 本模块主要功能是通用辅助 总调用模块用来实现连续调用其 它几个模块 本模块共包括 10 个过程 其中在函 数 SetWorkPath 里设置工作目录 在函数 GetWorkPath 里获得工作目录 在函数 GetDBName 里获得数据库表名称 在函数 GetTKSize 里获取边框尺寸 本过程设置图框选项包括 A0 A1 A2 A3 A4 图框 尺寸 在函数 DBOpen 里设置数据库表所在的位置打开本地数据库 函数 ExecuteSQL 在本过程里执行 SQL 查询 例如 select update delete insert 语句 函数 MakeLCStr 本过程主要是规范里程书写格式 是里程书写规范化 函数 MakeWCStr 里实现了围岩分级由数字转化为希腊数字的功能 在函数 MakeOldFWJ 里方位角的度数表示 模块具体的代码见附表 3 3 3 1 4 DZSub 模块 本模块包含了图框的绘制 字体的大小及定位 图框布局的设计 方位角的计 算等程序的编写 这里应用了 CommASS 模块中编写公共过程调用数据库 执行 SQL 语言的代码 DZSub 模块里编写字体 DrawOneText 过程 编写字体边框线 DrawLineText 过程 展示图图框定位 DrawOneZHSK 过程 展示图文字定位 DrawOneZHSText 过程 调 用数据库表里的字段 GetJLDMID GetJLWCID GetJLWCID BW GetJLGWID BW GetJLDMID BW 的记录 编写计算方位角的函数利用 getXLzx getZXzx getQXzx GFfwj 调用函 数 窗体里编写可以任意起始里程 终止里程 以及是否绘制展示图及填充物的代 码 本模块详细代码见附表 3 4 3 2 窗体 本设计共有 7 个窗体其中一个窗体是被工程管理这个窗体添加工程时调用的 下面介绍几个窗体的作用 3 2 1 工程管理窗体 工程管理窗体的作用是实现对工程的操作 在本窗体里我们可以用 insert 语句 在数据库 name 表里添加新的工程 用 delete 语句删除 name 表里不用的工程 还可 以对原有工程名称用 update 语句进行修改 窗体按钮布局如图 3 1 所示 图 3 1 工程管理 3 2 2 工程数据管理窗体 本窗体主要实现了工程项目施工和设计时层面特征 基本特征的数据录入 使 工程的信息完整化 设计时窗体按钮布局如图 3 2 所示 施工时窗体按钮布局如图 3 3 所示 图 3 2 工程数据管理 设计 本窗体同样需要初始化事件 Initalize 同时窗体的添加 删除 更新 退出等单 击事件 Click 与工程管理模式相同这里不再赘述 唯一需要说明的是选择框的实现 它需要在窗体初始化时就调用否则在文本框里将不能同步显示围岩级别 下面代码 是围岩级别的定义 图 3 2 工程数据管理 设计 3 2 3 平面数据管理 本窗体主要实现了工程与平面线路的对应关系 而且还实现了起点和终点坐标 里程的更改曲线特征的添加 删除和更改 窗体设置及按钮布局如图 3 3 所示 图 3 3 平面数据管理里 3 2 4 岩性表的管理 本窗体的功能是把沿线地质岩性类型添加到岩性表 使数据库数据完整方便绘 图时调用数据库 窗体设置及按钮布局如图 3 4 所示 图 3 4 岩性表管理 3 2 5 编录出图 通过上面工程的建立数据的录入我们就可以通过编录出图窗体来实现调用模块 及数据库绘制图形的目的 窗体布置及按钮布局如图 3 5 所示 图 3 5 编录出图 3 2 6 打印 本窗体实现图形的打印 窗体设置及按钮布局如图 3 6 所示 图 3 6 打印 第 4 章 重点算法 为了实现展示图图例填充角度的计算 首先应该计算任意一点的方位角 然后 根据方位角确定线路走向 最后根据线路走向确定与沿线隧道断面的投影角度 最 终实现正确的展示图图例填充角度 4 1 平面线路方位角的计算 计算任意里程的方位角需要的参数有 lo R X Y 起点里程 将参数代入 以下公式计算任意里程的方位角 4 1 1 任意里程的方位角计算 4 1 1 1 参数计算 圆曲线在 ZH XY 坐标下的切线角 4 1 0 l2R 缓和曲线在 ZH XY 坐标下的切线角 4 2 020l 内移参数 4 2 RlP40 增值参数 4 3 220lq 4 1 1 2 主点定位参数 缓和曲线的切线长 4 4 qaPRT 2tn 缓和曲线的曲线长 4 5 00l18 L 缓和曲线的外失距 4 6 RaPRE 2cos 4 1 1 3 计算主点里程 ZH 点里程 4 T JDZH里 程里 程 7 HY 点里程 4 0lY 里 程里 程 8 YH 点里程 4 02l L 里 程里 程 9 HZ 点里程 4 0lHZ 里 程里 程 10 QZ 点里程 4 2L Q里 程里 程 11 4 1 2 线路走向计算 4 1 2 1 计算两点间距和方位角 已知起点坐标 qx qy 终点坐标 zx zy 求直线的方位角 4 12 zxqd 4 13 y 4 14 2D 1 如果 dx 0 dy 0 则方位角 a 在第一象限 2 如果 dx 0 dy 0 则方位角 a 在第二象限 3 如果 dx 0 则方位角 a 在第三象限 4 如果 dx 0 dy 0 则方位角 a 在第四象限 5 如果 dx 0 则方位角 a 在第三象限 4 15 tn dxyc 4 16 018 方 位 角 判断线路走向 若 a 0 说明左转 否则右转 12a 转 角 如果 a0 则转角取 a 360 的正 值 否则取 a 4 1 2 2 参数计算 1 圆曲线在 ZH XY 坐标下的切线角 4 17 Rl20 2 缓和曲线在 ZH XY 坐标下的切线角 4 18 020Rl 3 内移参数 4 19 04Pl 4 增值参数 4 20 220qlR 5 缓和曲线的切线长 4 21 tan TPq 6 缓和曲线的曲线长 4 22 0 2 18LRl 7 缓直点坐标和里程 4 23 2cos hzXjdTa 4 24 in180Y 4 25 zLCql正 向 开 挖 4 26 h c 反 向 开 挖 1 如果 且 则所求里程点在直线上 lc q lcd1T a 曲 线 走 向 2 如果 且 则所求里程点在缓和曲 l 0lc q l 线上 4 27 ls d1 Tlc 4 28 208bRl a 0 时 曲线走向 a1 a 0 时 曲线走向 a1 3 如果 且 则所求里程在圆曲线上 0lcql d1l 4 29 sTlc 4 30 08blR a0a10a1 时 曲 线 走 向 时 曲 线 走 向 4 如果 且 则所求里程在另一缓 lcqdTLl cqldL 和曲线 4 31 1 lscqldTl 4 32 208bR a 0 时 曲线走向 a2 a 0 时 曲线走向 a2 5 如果 或者 则里程不在工程范围lc q lc q L 6 如果 则所求里程在直线上 线路走向 d1 T 且 a1 4 1 2 3 规范方位角 方位角必须定位在 360 360 之间 如果超出此范围则需要修正 4 33 00a36a36 则 4 34 则 第 5 章 主要应用技术 5 1 ADO 技术简介 ADO 是一种为基于 Internet 并且以数据为中心的应用程序而提供的数据访问接 口 这种应用程序接口和应用程序使用的语言无关 通过 ADO 应用程序可以方便 地存取 查询 操作数据库中的数据 ADO 提供了几个独立的子对象 利用这些子对象 就可以实现对数据库的访问 在这几个对象中 Connection Command 和 RecordSet 对象是整个 ADO 的核心 5 1 1 Connection 连接对象 Connection 对象用于建立和管理应用程序与数据源的连接 也可以用它来执行 一个命令 想要读取数据库中的数据 第一步就是要与数据库取得连接 最常用的 连接方式是利用连接字符串进行直接连接 1 建立连接对象 在进行连接之前 必须要先声明一个对象来作为 ASP 程序和数据库之间的连接 媒介 声明的方法如下 Set 对象变量名称 Server CreateObject ADODB Connection 2 连接数据源 Connection 对象中有一个方法 OPEN 专门用来打开 Connection 对象与数据库 之间的通道 实现数据源与 ASP 程序的真正连通 1 OPEN 方法使用格式如下 对象变量 OPEN 连接字符串 其中 连接字符串是说明欲连接数据库的类型及数据库的名称 连接字符串有 两种不同格式的描述方法 2 对于 ACCESS 类型的数据库的连接字符串格式 Driver Microsoft Access Driver mdb DBQ 指向 MDB 文件的物理路径 UID PWD 密码 3 对于 SQL Server 类型的数据库的连接字符串格式 Driver SQL Server Database 数据库名称 server 服务器名称 UID 用户名 PWD 密码 3 关闭连接 当不再需要使用连接对象时 需要用 CLOSE 方法来关闭连接以释放系统资源 1 关闭连接对象的命令格式为 连接对象变量名 Close 或 Set 连接对象变量名 Nothing 关闭对象并非将它从内存中删除 以后仍可以更改它的属性设置并且再次打开 2 若要将对象从内存中完全删除 可将对象变量设置为 Nothing 4 执行 SQL 查询 通过 Connection 对象的 Execute 方法执行 SQL 命令 根据 SQL 命令执行后是 否返回记录集 Execute 方法的使用格式可分以下两种方式 1 执行 SQL 命令后 不返回记录集 在执行像 Insert Delete Update 等命令时 操作结果不会返回记录集 它只是 对数据库完成一种操作 可以使用下列格式的命令 连接对象名 Execute SQL 命令 n N 是一个可选项变量名 用于保存命令执行后受影响的记录的条数 如删除的记录数 2 执行 SQL 查询命令 返回查询得到的记录集 用 Execute 方法对数据表进行查询得到的结果通常是一个二维表形式的数据集 合 为了更好地应用查询结果 经常把查询结果存储在一个记录集对象中 格式如 下 Set 记录集对象变量名称 连接对象变量名 Execute SQL 命令 例如 Set Rs Cn Execute SELECT FROM 注册用户 查询表 注册用户 中所有字段所有记录 以此建立名为 rs 的 RecordSet 对象的 实例 以后就可以应用 Rs 对象的各种方法进行操作 非常方便 5 1 2 Recordset 对象 Recordset 对象是一个记录的集合 它用于保存通过查询所获得的记录结果 RecordSet 对象包含多条记录 每个记录包含多个字段 在任何时刻 只有一条记录 是当前记录 通过使用 Recordset 对象可以对记录进行各种操作 如增删记录 更 新记录 在表中移动指针等 1 创建 Recordset 对象 第一种方法前面介绍过的通过连接对象的 Execute 方法返回的查询结果自动创 建 RecordSet 这种方法创建的记录集对象可以直接使用 而不用先创建对象实例 实现的语法分别如下 Set 对象变量名 连接对象变量名 Execute SQL 命令 如 Set RS Cn Execute Select From 注册用户 执行查询 产生记录集 另一种方法是先用 Sever 对象的 CreateObject 方法创建记录集对象实例 Set 对象变量名 Server CreateObject ADODB RecordSet 2 利用 RecordSet 对象的 Open 方法读取数据 RecordSet 对象建立完成后 其中还没有任何可供使用的记录数据 可以通过 RecordSet 对象中的 Open 方法获取真正的记录数据 Open 方法用来向数据源提出一 个操作请求并执行具体的操作 Open 方法的使用格式如下 记录对象变量名 Open 数据来源 连接对象 指针类型 锁定方式 数据源类型 3 显示记录集中的数据 记录集创建好后 可以通过它的属性 方法和集合完成对记录集中数据的显示 1 记录集中的属性 记录集对象中有许多属性 它们对遍历记录集是有用处的 AbsolutePosition 用来设置或读取当前记录在记录集中的位置顺序号 BOF 用来测试并返回记录指针是否到达记录集的头部 是为 True 不是为 False EOF 用来测试并返回记录指针是否到达记录集的尾部 是为 True 不是为 False RecordCount 返回一个记录集中的记录总数 AbsolutePage 用来设置或返回当前记录所在的页号 PageCount 返回当前记录集所包含总页数 PageSize 设置每页所包含的记录个数 2 记录集中的方法 记录集有一些方法是用来在记录之间移动记录指针的 移动当前指针的方法有 5 种 除了 Move 方法有两个参数外 其余的四个不含参数 使用很方便 但要注意 当指针类型参数设置为 adOpenForwardOnly 时 光标向前移动的方法是不可用的 五个方法分别是 MoveFirst 移动到第一条记录 MoveLast 移动到最后一条记录 MoveNext 移动到下一条记录 MovePrevious 移动到上一条记录 Move N Start 移动 N 个记录 3 记录集的子集合 RecordSet 对象包含一个字段子集合 Fields 它储存记录的全部字段 Fields 中 的每个元素是一个字段对象 Field 对象包含如下属性 Name 字段名 Type 字段的数据类型 Value 字段的值 Count 返回记录集中一条记录的字段个数 可以通过以下方式调用 Field 对象的不同属性 记录集对象变量名 Fields 字段名或字段序号 Value 记录集对象变量名 Fields 字段名或字段序号 Type 记录集对象变量名 Fields Count 记录集对象变量名 Fields 字段序号 Name 其中字段序号表示当前字段在字段子集合 Fields 中的排列位置 若有 n 个字段 则其值从 0 1 2 n 1 通过字段序号获取字段名称 记录变量名 字段序号 Name 通过字段序号获取字段值 记录变量名 字段序号 vaule 直接读取指定名称的字段值 记录变量名 字段名 4 记录的增加及编辑修改 RecordSet 对象有 5 个可直接更新记录的方法 其中 UpdateBatch 方法是用于成 批处理记录的 其它 4 种方法都是对当前记录操作的 所以不带任何参数 AddNew 添加一条新的空记录 该方法执行后指针指向该新记录 可以对其 各个字段赋值 但不写回到数据表中 只有通过执行 Updete 方法才可以完成真正的 插入功能 虽然连接对象的 Execute 方法也能用 Insert 命令实现记录的插入 但对 于有较多字段名和多个字段值的情况来说 用 Insert 命令实现记录的插入书写代码 比较麻烦 而且容易写错 不适合大量字符串的插入 而用记录集对象的 Addnew 是常用的插入记录的方法 Delete 删除当前记录 这种方法每次只删除一条记录 而且不能带条件 所 以我们一般都用连接对象的 Execute 方法实现对记录的删除 这种方法更灵活 功 能也较完善 Update 更新当前记录 将记录集中编辑修改的记录写入数据库中 用 AddNew 或 Delete 方法增加或删除记录后 最终要通过 Update 方法实现 CancalUpdate 撤消更新操作 撤消了 AddNew 和 Delete 命令的效果 UpdateBatch 更新 保存 一个或多个记录的修改 1 增加记录 向表中插入新记录时 如果该记录的字段较多 且字段值大都是由用户实际输 入的 我们一般都使用 RecordSet 对象的 AddNew 方法 具体实现过程如下 首先向表中插入一条空记录 通过赋值语句向该记录的不同字段赋值 最后通 过 Update 方法完成对数据库的数据真正更新 在实际应用时一般要设计 2 个网页文档 一个是数据输入界面 另一个是完成 记录插入的数据更新的 2 删除记录 从表中删除记录有两种方法 一种是通过连接对象的 Execute 方法执行 SQL 命 令中的 Delete 命令 另一种方法是利用记录集对象的 Delete 方法删除当前记录 我们一般使用通过连接对象的 Execute 方法执行 SQL 命令中的 Delete 命令的方 法 这种方法可以带删除条件 一个命令可以删除多条满足条件的记录 而利用记 录集对象的 Delete 方法只能删除当前记录 所以必须通过循环语句才能删除多条记 录 运行效率较低 通过输入界面输入删除条件 这种方式一般要设计两个页面 一个静态页面用 于提供输入删除的条件值 另一个动态页面用于获取静态页面所提交的删除值 然 后判断是否存在要删除的记录 如果不存在则显示提示信息 如果存在则执行删除 命令 Sample7 14 htm 就是这种应用的例子 通过复选框选择多条要删除的记录 这种方式一般要设计两个动态页面 一个 动态页面用于提供可供选择的删除记录 每个记录前有一个复选框 供用户确定该 记录是否要删除 另一个动态页面用于获取选择页面所提交的删除记录的特征值 从而确定要删除的记录 通过超连接的方式确定要删除的记录 这种方式一般要设计两个动态页面 一 个动态页面用于提供可供选择的删除记录 每个记录的主键字段包含一个超连接 当用户单击此超连接时 即可调另一网页获取选择页面所提交的删除记录的特征值 实现对该记录的删除 在这种情况下被删除的记录已经显示的屏幕上了 也不用判断它是否存在 直 接执行 SQL 中的 Delete 删除命令 3 修改记录 对于一次要修改多条记录 且被修改的多条记录修改的方法相同时 一般使用 通过连接对象的 Execute 方法执行 SQL 命令中的 Update 命令 用这种修改记录的方 法建议被修改的值不宜过多 如果被修改的值过多书写代码复杂且容易出错 如果一次要修改某条记录的多个字段值 而且不同记录被修改的字段值也不相 同时 建议使用记录集对象的 Update 方法修改当前记录 5 2 AutoCAD VBA 简介 5 2 1 什么是 AutoCAD VBA VBA 是 Visual Basic for Applications 的英文缩写 它是一个功能强大的开发工 具 在工作中 有很多任务仅用 AutoCAD 命令不可能完成的 学好 VBA 可以成 倍甚至成百 成万倍提高工作效率 5 2 2 用 VBA 管理器组织工程 你可以使用 VBA 管理器查看装载在当前 AutoCAD 进程的所有 VBA 工程 VBA 管理器一个 AutoCA D 工具 它允许你装载 卸载 保存 创建 嵌入和分 离 VBA 工程 打开 VBA 管理器的步骤 在工具菜单中选择宏 VBA 管理器或者在 AutoCAD 中调用 VBAMAN 命令 装载现存的工程 当你装载工程到 AutoCAD 中 所有的公用的子程序 也称 为宏 都可以使用 嵌入于图形中的工程在图形打开时就被装载 保存在 DVB 文件中的工程必须单独装载 装载现存的 VBA 工程文件 在 VBA 管理器中 使用装载项可弹出打开 VBA 工程对话框 在打开 VBA 工程对话框中 选择打开的工程文件 该 VBA 工程对话框允许你打开有效的 DVB 文件 如果你尝试打开不同类型的文件 你将 会得到出错信息 选择打开 你也可以使用 VBALOAD 命令直接出现打开 VBA 工程对话框以装载工程文 件 另外 当工程装载后 该工程所引用的其它工程将会自动地装载 还有 AutoCAD 在启动时将自动装载名称为 acad dvb 的工程文件 相关主题 病毒警告 每次当你装载工程时 你会看到启用或禁用工程中的代码以阻止宏病毒的警告 框 如果你选用启用代码 如果工程中含有宏病毒时病毒可能会发作 如果你禁用 代码 工程同样会装载 但工程中的所有代码将不能运行 卸载工程以释放内存并保持装载的工程列表的长度以方便管理 你不能卸载嵌 入工程或由其它已装载工程所引用的工程 卸载 VBA 工程的操作 在 VBA 管理 器中 选择要卸载的工程 选择卸载或者使用 VBAUNLOAD 命令 它将提示你所 要卸载的工程 嵌入工程到图形中 当你嵌入一个工程时 你是将工程的一个副本置于图形数 据库中 无论何时 当所包含工程的图形打开或关闭时 工程会同时被装载和被卸 载 一个图形只有在同一时间包含一个嵌入工程 如果图形已经包含有一个嵌入工 程 你必须在同样地入其它工程之前将该嵌入工程分离出 嵌入工程到 AutoCAD 图形中的操作 打开 VBA 管理器并选择你所要嵌入的 工程 选择嵌入 当你分离工程时 其实是将工程从图形数据库中删除 同时会提示你将工程保 存为外部的工程文件 如果你没有将其保存为外部工程文件 该工程的数据将会删 除 从 AutoCAD 图形中分离工程的操作 打开 VBA 管理器并选择要从图形中分 离的工程 选择分离 如果你想保存工程信息为外部工程文件 可以在 你是否 想在删除 VBA 工程前将其输出 的提示下选择 是 此时会显示另存 为对话框 允许你保存文件 如果你不想保存该工程信息到外部文件 可以在 你是否想在删除 VBA 工 程前将其输出 的提示下选择 否 此时工程信息将在没有保存的情况 下从图形中删除 创建新的工程 新的工程将作为未保存的全局工程被创建 当工程创建时 你 可以将工程嵌入图形中 或将其保存为工程文件 创建新的 VBA 工程的操作 打 开 VBA 管理器 选择新建 新创建的工程将使用默认的工程名称 ACADproject 你必须到 VBA IDE 中 才可以更改工程名称 保存嵌入工程 嵌入工程是在图形保存时同时保存的 全局工程必须使用 VBA 管理器或 VBA IDE 进行保存 使用 VBA 管理器保存工程的操作 打开 VBA 管理器并选择要保存的工程 选择另存为 此时另存为对话框打开 选择用 于保存工程的文件 选择保存 5 2 3 处理宏 与设置 VBA 工程选项一样 宏对话框允许你运行 编辑 删除和创建宏 宏 是公用 可执行 的子程序 每一工程通常至少一个宏 打开宏对话框的操作 从工具菜单中选择宏 或在 AutoCAD 中调用 VBARUN 命令 在对话框中显示的是所有在有效范围内的宏名称 你可通过下拉列表来改变有 效范围 该列表指定所要显示的宏所在的工程或图形 你可在以下列表内容选择所 要显示宏范围所有图形和工程所有图形所有工程在当前所打开的单独图形在当前所 装载的单独工程 通过限制有效范围你可控制显示在列表中的宏名称的数量 它可帮助你注意到 当前有多少宏装载到图形中或指定工程中有多少宏 运行宏 运行宏就是在当前 AutoCAD 进程中执行宏代码 当前活动图形指的 是当宏执行开始时处于打开并处理激活状态 所有在全局工程的宏中所涉及的 ThisDrawing 对象将指向当前活动图形 在嵌入工程中 ThisDrawi ng 对象通常指向 嵌入该宏的图形 运行宏的操作 打开宏对话框并选择要运行的宏 选择运行 编辑宏 编辑宏将打开 VBA IDE 并打开所选定宏的代码窗口 详细的介绍请 参考 用 VBA IDE 编辑工程 编辑宏的操作 打开宏对话框并选择要编辑的 宏 选择编辑 逐语句运行宏指的是开始运行宏并在第一行代码时暂停 VBA IDE 也随之打 开所选定的宏的代码窗口并高亮显示所执行宏所在的行 逐语句运行宏的操作 在 宏对话框中 选择要逐语句运行的宏 选择逐语句 选择逐语句 创建新的宏操作 打开宏对话框并输入新宏的名称 在宏位置下拉列表中选择 所创建宏所要存在的位置 选择创建 如果所指定宏的名称已经存在 系统将提示你是否替换现在的宏 如果你在提 示下选择 是 则现在的宏代码将被删除 而一个新的而没有内容的宏也会以指定 名称而创建 如果你在提示下选择 否 这时会返回宏对话框以输入另外的宏名称 如果你在提示下选择 取消 宏对话框将消失 宏也没有创建 删除宏操作 打开宏对话框并选择要删除的宏 选择删除 系统会提示你是否 确认删除 在提示下 选择 是 而删除宏 或者选择 否 以取消删除的操作 5 2 4 VBA IDE 编辑工程 打开 VBA IDE 当打开 VBA IDE 时 它就可以访问所有已装载的工程 按需 要打开 VBA IDE 的操作 你可以从命令行或从菜单栏中打开 VBA IDE 从命令行 可输入 VBAIDE 或从工具菜单 使用宏 V isual Basic 编辑器 在 AutoCAD 启 动时自动打开 VBA IDE 的操作 1 查看工程信息 VBA IDE 包含名称为工程窗口的窗口 其中显示了所有已装载 VBA 工程的 列表 它也显示包含在工程中的代码 类和窗体模块 还有关联到该工程的文档 在该工程所引用的 VBA 工程 以及工程的物理 位置 也称路径 工程窗口有 它自己的工具栏 使用其工具栏可打开不同的工程部件进行编辑 使用查看代码按 钮可打开选定模块的代码 使用查看对象按钮可显示如窗体之类的选定对象 VBA IDE 工程窗口 工程窗口默认为可见 如果不可见 可从查看菜单中选择 工程窗口 或按 CTRL R 定义工程的部件 每个工程可包含多个不同的部件 在工程中包含的不同部件 可以是对象 窗体 标准模块 类模块和引用 对象部件声称了 VBA 代码可访问的对象或文档的类型 在 AutoCAD VBA 工 程 该对象声称为当前 AutoCAD 图形 窗体部件包含了当前你在工程中为了使用而建立的自定义对话框 该代码部件 包含了普通程序和函数
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!