CAD在工程实践中的二次开发.doc_第1页
CAD在工程实践中的二次开发.doc_第2页
CAD在工程实践中的二次开发.doc_第3页
CAD在工程实践中的二次开发.doc_第4页
CAD在工程实践中的二次开发.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要 为了解决困扰工程地质界的隧道地质编录绘图难题,探索实现隧洞设计及施工 地质展示图绘图自动化和计算机化的可能途径,本文以田坝岭隧道施工地质为范例, 说明铁路隧道地质编录自动成图系统概念和实施要点,通过对 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.1 开发的意义、背景 为了解决困扰工程地质界的隧道地质编录绘图难题,探索实现隧洞设计及施工 地质展示图绘图自动化和计算机化的可能途径,本文以田坝岭隧道施工地质为范例, 提出了铁路隧道地质编录自动成图系统概念和实施要点,实现了通过对 AutoCAD 平台的二次开发最终实现自动成图的目的。 1.2 本设计解决的问题 通过对 AutoCAD 平台的二次开发,完成“铁路隧道地质编录自动成图系统” 开发。解决的问题包括: (1)线路平面数据管理模块设计、实现 先在数据库里建立平面数据曲线的参数表把平面数据管理起来,然后在 VBA 中设计窗体和模块。用窗体代码把数据管理起来,模块代码负责显示工具栏菜单和 下拉菜单。 在 CommASS 模块中编写公共过程用来调用数据库、执行 SQL 语言的代码;在 窗体里编写可以执行添加、删除和更改,可以显示起点和终点的坐标里程且可以更 改数据的代码。 (2)地质编录数据管理模块设计、实现 为了使平面线路与其相应的地质情况连接起来我们需要把设计、施工时的地质 信息录入到数据库表中,为此需要设计两个表和一个窗体来实现本功能。这两个表 与 name 和 xianlu 表通过 E_ID 建立主键关系使得工程名称、线路特征、地质情况连 接起来。而窗体任然是对表进行修改的一个工具。 在数据库里建立 sheji 和 shigong 两个表,这两个表管理设计和施工的地质信息。 在 AutoCAD 操作系统中建立窗体和模块,地质编录数据管理模块是要把施工和设 计时隧道各个断面的地质情况记录到表中,并且可以通过窗体对其进行操作。同样 应用了 CommASS 模块中编写公共过程调用数据库、执行 SQL 语言的代码;窗体里 编写可以执行添加、删除和更改数据的代码。 (3)填充图例管理模块设计、实现 石家庄铁道大学毕业设计 2 填充管理模块用来实现管理岩石特性的功能。为此我们搜集了一个比较齐全的 岩性库,然后在数据库里建立表 yanxing,用 CommASS 模块中 GetWorkPath 过程调 用岩性库中我们使用的岩性添加到 yanxing 表中。具体操作: 在数据库里建立 yanxing 表,这个表管理岩石特性的信息。在 AutoCAD 操作系 统中建立窗体和模块,填充图例管理模块是要把隧道的地质岩性管理到 yanxing 表 中,并且可以通过窗体对其进行操作。同样我们在这里应用了 CommASS 模块中编 写公共过程调用数据库、执行 SQL 语言的代码;窗体里编写可以执行添加、删除和 更改填充比例的代码。 (4)自动绘图模块设计、实现 自动绘图要实现输入任意一段里程后计算机自动绘制展示图的功能。为此我们 需要设计一个窗体,而且此模块需要在 DZSub 里编写绘制图框、字体、调用展示图 投影岩性的代码。具体操作: 在 AutoCAD 操作系统中建立窗体和模块,自动绘图管理模块是要把隧道的投 影图绘制出来,并且可以通过窗体对其进行操作。 在 CommASS 模块中编写公共过程调用数据库、执行 SQL 语言的代码;DZSub 模块里编写字体、编写字体边框线、展示图图框定位、展示图文字定位、调用数据 库表里的字段记录信息等。窗体里编写可以输入任意起始里程、终止里程以及是否 绘制展示图及填充物的代码。 (5)控制模块设计、实现 控制模块主要是通过对全局的调整实现以上几个模块的链接,通过调试使程序 运用更加的方便。 1.3 采用的方法和步骤 1.3.1 方法 铁路隧道地质编录自动成图系统开发就是在可视开发工具提供的图形用户界面 上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、 列表框和滚动条等,由可视开发工具自动生成 的应用软件。 1.3.2 步骤 软件开发流程一般分为以下六步: 石家庄铁道大学毕业设计 3 (1)相关系统分析和应用需求的初步了解需求,然后用 WORD 列出要开发的 系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相 关的界面时,在这一步里面可以初步定义好少量的界面。 (2)系统分析深入了解和分析需求,根据自己的经验和需求用 WORD 或相关 的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大 功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。 (3)系统分析和用户再次确认需求。 (4)系统分析根据确认的需求文档所例用的界面和功能需求,用迭代的方式对 每个界面或功能做系统的概要设计。 (5)系统分析把写好的概要设计文档,根据所例出的功能一个一个的编写。 (6)测试编写好的系统。使用该程序,一个一个的确认每个功能。 1.4 预期成果 通过本设计过程,使学生掌握计算机辅助设计的基本技能,并具备 AutoCAD 二次开发的初步技能,提高其应用计算机解决实际问题的能力水平,预期达到以下 要求: (1)熟练掌握 AutoCAD 平台 Axtivex 开发技术; 利用 AutoCAD 平台 Axtivex 开发技术,在 AutoCAD 里实现了添加工具栏“地 质编录”菜单项,在菜单项编写下拉菜单记录数据最终实现自动绘制展示图的目的。 (2)初步具备利用关系型数据库管理工程数据的能力 数据库里表建立联系图约束数据的变化,使数据库中的表成为一个不可分离的 整体执行任务。 石家庄铁道大学毕业设计 4 第 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_IDInt工程地址主键 ENAMEnvarchar(50)工程名称 EPNAMEnvarchar(50)工程打印名称 EFXbit反向 LCnvarchar(15)工程里程 (2)Sheji 表主要记录了平面线路沿线的地质水文情况,E_ID 表示某个工程对 应的水文地质情况;GWID 表示不同水文地质的分界标识;GWQZ 表示工程水文地 质里程的前缀(DK) ;GWM 表示工程水文地质的描述信息;GWLC 不同工程水文 地质情况分界的里程,详细信息见表 2-2。 表 2-2 sheji(地质描述)表包括的字段及内容 石家庄铁道大学毕业设计 5 字段数据类型定义备注 E_IDint工程地址 GWIDint工程水文地质地址主键 GWQZnvarchar(10)工程水文地质前缀 GWMdecimal(18, 0)工程水文地质描述 GWLCnvarchar(200)工程水文地质里程 (3)Shigong 表主要记录了沿线施工时的地质情况,E_ID 表示不同的工程地址; DM_ID 表示施工时的隧道断面划分地址;DMDC 表示施工时隧道断面的地层岩性 特征;DMSW 表示施工时隧道断面的水文情况;DMGC 表示隧道断面工程地质特 征;DMCZ 隧道断面施工时隧道初期支护的概述;DMLC 表示施工隧道断面的里程; DMC 施工时隧道断面的围岩级别;DMQZ 表示施工时隧道断面的里程前缀(DK) , 详细信息见表 2-3。 表 2-3 shigong(线路里程上的地质情况)表包括的字段及内容 字段数据类型定义备注 E_IDInt工程地址 DM_IDInt线路里程地址主键 DMDCnvarchar(100)地层岩性特征 DMSWnvarchar(100)水文地质特征 DMGCnvarchar(100)工程地质特征 DMCZnvarchar(100)初期支护概述 DMLCdecimal(18, 0)线路里程 DMCnvarchar(20)施工围岩级别 DMQZnvarchar(10)线路里程前缀 (4)Weiyanfenji 表主要记录了在设计线路时各个工程上的地质变化、围岩级 别变化的分界里程。其中,E_ID 表示某个工程里围岩级别的变化情况;WCC 表示 某工程的围岩级别变化情况;WCID 表示围岩级别变化处的地址;WCLC 表示围岩 级别变化处的里程;WCQZ 围岩级别里程前缀(DK) ,详细信息见表 2-4。 表 2-4 weiyanfenji(围岩分级)表包括的字段及内容 字段数据类型定义备注 E_IDInt工程地址 WCCsmallint围岩级别 WCIDInt围岩分级地址主键 WCQZnvarchar(10)围岩级别前缀 续表 2-2 石家庄铁道大学毕业设计 6 字段数据类型定义备注 WCLCdecimal(18, 0)围岩级别里程 (5)Xianlu 表主要记录了平面线路中曲线的特征值,E_ID 表示某工程对应的 平面线路的曲线特征;JD_ID 表示本工程里线路走向变化的点(交点)信息;X 表 示平面线路交点的横向坐标值;Y 表示平面线路交点的纵向坐标值;R 表示缓和曲 线中圆曲线半径;lo 表示曲线上的缓和曲线长,详细信息见表 2-5。 表 2-5 xianlu(平面数据管理)表包括的字段及内容 字段数据类型定义备注 E_IDInt工程地址 JD_IDInt交点地址主键 XReal交点的 X 坐标 YReal交点的 Y 坐标 RReal曲线半径 lofloat缓和曲线长 (6)Yanxing 表主要描述了不同地段的岩性特征,YX_ID 表示岩性变化点的地 址,通过岩性地址与 YT 表建立某种联系是的不同隧道断面的岩性描述可以调用此 表里的信息;YXMC 储存了对不同岩性情况的描述;YXTCT 表示岩性的表示方法; YXTCBL 表示岩性的比例值,详细信息见表 2-6。 表 2-6 yanxing(岩性描述)表包括的字段及内容 字段数据类型定义备注 YX_IDInt岩性地址主键 YXMCnvarchar(30)岩性描述 YXTCTnvarchar(20)岩性的表示方法 YXTCBLfloat岩性比例 (7)YT 表主要记录各个地段的岩性特征及其分界点,YX_ID 表示岩性变化点 的地址,通过岩性地址与 YT 表建立某种联系是的不同隧道断面的岩性描述可以调 用此表里的信息;YTID 岩性特征的分界地址;YTQX 表示岩性特征岩石的倾向; YTQJ 表示岩性特征岩石的倾角;DM_ID 隧道断面地址,详细信息见表 2-7。 表 2-7 YT(岩性特征)表包括的字段及内容 字段数据类型定义备注 YX_IDInt岩性地址主键 YTIDInt岩性特征地址 YTQXdecimal(18, 0)f岩性特征倾向 石家庄铁道大学毕业设计 7 YTQJdecimal(18, 0)岩性特征倾角 DM_IDInt隧道断面地址 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 主要 描述了表格之间的关系。 石家庄铁道大学毕业设计 8 图 2-1 数据库表的关联图 石家庄铁道大学毕业设计 9 第 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。 石家庄铁道大学毕业设计 10 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 所示。 石家庄铁道大学毕业设计 11 图 3-1 工程管理 3.2.2 工程数据管理窗体 本窗体主要实现了工程项目施工和设计时层面特征、基本特征的数据录入,使 工程的信息完整化。设计时窗体按钮布局如图 3-2 所示,施工时窗体按钮布局如图 3-3 所示。 图 3-2 工程数据管理-设计 石家庄铁道大学毕业设计 12 本窗体同样需要初始化事件 Initalize,同时窗体的添加、删除、更新、退出等单 击事件 Click 与工程管理模式相同这里不再赘述。唯一需要说明的是选择框的实现, 它需要在窗体初始化时就调用否则在文本框里将不能同步显示围岩级别。下面代码 是围岩级别的定义。 图 3-2 工程数据管理-设计 3.2.3 平面数据管理 本窗体主要实现了工程与平面线路的对应关系,而且还实现了起点和终点坐标 里程的更改曲线特征的添加、删除和更改。窗体设置及按钮布局如图 3-3 所示。 石家庄铁道大学毕业设计 13 图 3-3 平面数据管理里 3.2.4 岩性表的管理 本窗体的功能是把沿线地质岩性类型添加到岩性表,使数据库数据完整方便绘 图时调用数据库,窗体设置及按钮布局如图 3-4 所示。 图 3-4 岩性表管理 3.2.5 编录出图 通过上面工程的建立数据的录入我们就可以通过编录出图窗体来实现调用模块 及数据库绘制图形的目的。窗体布置及按钮布局如图 3-5 所示。 石家庄铁道大学毕业设计 14 图 3-5 编录出图 3.2.6 打印 本窗体实现图形的打印,窗体设置及按钮布局如图 3-6 所示。 图 3-6 打印 石家庄铁道大学毕业设计 15 第 4 章 重点算法 为了实现展示图图例填充角度的计算,首先应该计算任意一点的方位角,然后 根据方位角确定线路走向,最后根据线路走向确定与沿线隧道断面的投影角度,最 终实现正确的展示图图例填充角度。 4.1 平面线路方位角的计算 计算任意里程的方位角需要的参数有:lo、R、X、Y、起点里程,将参数代入 以下公式计算任意里程的方位角。 4.1.1 任意里程的方位角计算 4.1.1.1 参数计算 圆曲线在 ZHXY 坐标下的切线角 (4-1) 00 =l2R 缓和曲线在 ZHXY 坐标下的切线角 (4-2) 0 2 0 2Rll 内移参数 (4-2)RlP24 0 增值参数 (4-3) 22 00 2402Rllq 4.1.1.2 主点定位参数 缓和曲线的切线长 (4-4)q a PRT) 2 tan()( 缓和曲线的曲线长 (4-5) 00 l2180)2-R(aL 缓和曲线的外失距 (4-6)R a PRE) 2 cos()( 4.1.1.3 计算主点里程 石家庄铁道大学毕业设计 16 ZH 点里程: (4-T-JDZH 里程里程 7) HY 点里程: (4- 0 lZHHY 里程里程 8) YH 点里程: (4- 0 2l-LHYYH 里程里程 9) HZ 点里程: (4- 0 lYHHZ 里程里程 10) QZ 点里程: (4-2L-HZQZ 里程里程 11) 4.1.2 线路走向计算 4.1.2.1 计算两点间距和方位角 已知起点坐标(qx,qy) 、终点坐标(zx,zy),求直线的方位角 (4-12)zxqxdx (4-13)qyzydy (4-14) 22 Ddxdy 1)如果 dx 0,dy 0 ,则方位角 a 在第一象限; 2)如果 dx 0 ,则方位角 a 在第三象限; 4)如果 dx 0,dy 0 ,则方位角 a 在第三象限; (4-15))tan(dxdyaca (4-16) 0 180a 方位角 判断线路走向:若 a0 则转角取 a-360 的正 值,否则取 a。 4.1.2.2 参数计算 1、圆曲线在 ZHXY 坐标下的切线角 (4-17)Rl2 00 石家庄铁道大学毕业设计 17 2、缓和曲线在 ZHXY 坐标下的切线角 (4-18) 0 2 0 2Rll 3、内移参数 (4-19) 0 24PlR 4、增值参数 (4-20) 22 00 2240qllR 5、缓和曲线的切线长 (4-21)()tan(2)TRPaq 6、缓和曲线的曲线长 (4-22) 0 (2 )1802LR al 7、缓直点坐标和里程 (4-23) 2 cos(180)hzXjdXTa (4-24) 2 hzjdsin(180)YYTa (4-25)()hzLCqlcL正向开挖 (4-26)hzLC qlc L()反向开挖 1)如果且,则所求里程点在直线上,lc qlclc qlc d1 T a1曲线走向 2)如果 且 ,则所求里程点在缓和曲lc qlc d1 T 0 lcqlc- d1Tl 线上 (4-27)ls qlc d1 T lc (4-28) 2 0 2180blsRl a0 时,曲线走向=a1+;aqlc- d1-T -l + l (4-29) 0 ( 1)lsqlcdTllc (4-30) 0 180bls R 。a0a1a0a1时,曲线走向;时,曲线走向 4)如果 且,则所求里程在另一缓 0 ( 1)lcqlcdTLl( 1)lcqlcdTL 和曲线 石家庄铁道大学毕业设计 18 (4-31)( 1)lslcqlcdTl (4-32) 2 0 2180blsRl a0 时,曲线走向=a2+;a 0 Then Set tlsj = currMenuGroup.Menus.Add(“隧道地质编录(“ Data Source=localhostSQLEXPRESS;Initial Catalog=CSHSQL;Persist Security Info=True;User 62 石家庄铁道大学毕业设计 ID=sa;Password=sa1.1“ dbCnn.CursorLocation = adUseClient dbCnn.Open DBOpen = True Exit Function Err_cnn: Set dbCnn = Nothing DBOpen = False End Function *函 数 名: ExecuteSQL *功能描述: 执行 SQL 查询 Public Function ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset If dbCnn Is Nothing Then If Not DBOpen() Then Set ExecuteSQL = Nothing Exit Function End If End If Dim rst As ADODB.Recordset Dim sTokens() As String On Error GoTo ExecuteSQL_Error sTokens = Split(sql) If InStr(“INSERT,DELETE,UPDATE“, UCase$(sTokens(0) Then dbCnn.Execute sql MsgString = sTokens(0) & “ query successful“ Else Set rst = New ADODB.Recordset rst.Open Trim$(sql), dbCnn, adOpenDynamic, adLockOptimistic Set ExecuteSQL = rst MsgString = “查询到“ & rst.RecordCount & “ 条记录 “ End If ExecuteSQL_Exit: Exit Function ExecuteSQL_Error: MsgString = “查询错误: “ & Err.Description Resume ExecuteSQL_Exit End Function *函 数 名: MakeLCStr *功能描述:里程书写格式换算 Public Function MakeLCStr(lc As Double) As String Dim kStr As String Dim mStr As String kStr = Trim(Str(Int(lc / 1000#) Dim m As Double m = lc - Int(lc / 1000#) * 1000 mStr = Trim(Str(m) MakeLCStr = kStr + “+“ + mStr End Function *函 数 名: MakeWCStr *功能描述:围岩分级 Public Function MakeWCStr(cNujm As Long) As String If cNujm = 1 Then MakeWCStr = “ 63 石家庄铁道大学毕业设计 ElseIf cNujm = 2 Then MakeWCStr = “ ElseIf cNujm = 3 Then MakeWCStr = “ ElseIf cNujm = 4 Then MakeWCStr = “ ElseIf cNujm = 5 Then MakeWCStr = “ Else MakeWCStr = “未定义“ End If End Function *函 数 名:MakeOldFWJ *功能描述:方位角 Public Function MakeOldFWJ(nfw As Double) As String If nfw 360 Or nfw 0 And nfw 90 And nfw 180 And nfw 1 Then rst.Close Set rst = Nothing Exit Sub End If Dim oneStr() As String, oneStrP() As Double ReDim oneStr(0 To 0): ReDim oneStrP(0 To 3) oneStr(0) = rst(“EPName“) + “地质展示图“ oneStrP(0) = 95 + yd(0): oneStrP(1) = 280 + yd(1): oneStrP(2) = 15: oneStrP(3) = 224 DrawLineText oneStr(), 66 石家庄铁道大学毕业设计 oneStrP(), acAttachmentPointMiddleCenter, 4 oneStr(0) = “纵向比例 1:300“ oneStrP(0) = 115 + yd(0): oneStrP(1) = 265 + yd(1): oneStrP(2) = 5: oneStrP(3) = 60 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “线路走向:“ + MakeOldFWJ(getXLzx(e_id, blc, isFX) oneStrP(0) = 35 + yd(0): oneStrP(1) = 265 + yd(1): oneStrP(2) = 5: oneStrP(3) = 60 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleLeft, 2.5 oneStr(0) = “作图单位:石家庄铁道大学 土 0801-3 班 崔素 花“ oneStrP(0) = 140 + yd(0): oneStrP(1) = 265 + yd(1): oneStrP(2) = 5: oneStrP(3) = 120 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleRight, 2.5 oneStr(0) = “展示图“ oneStrP(0) = 40 + yd(0): oneStrP(1) = 243 + yd(1): oneStrP(2) = 45: oneStrP(3) = 16 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “左边墙“ oneStrP(0) = 63.5 + yd(0): oneStrP(1) = 254 + yd(1): oneStrP(2) = 15: oneStrP(3) = 8 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “拱顶“ oneStrP(0) = 63.5 + yd(0): oneStrP(1) = 229 + yd(1): oneStrP(2) = 15: oneStrP(3) = 8 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “右边墙“ oneStrP(0) = 63.5 + yd(0): oneStrP(1) = 204 + yd(1): oneStrP(2) = 15: oneStrP(3) = 8 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “里程“ oneStrP(0) = 42 + yd(0): oneStrP(1) = 182 + yd(1): oneStrP(2) = 10: oneStrP(3) = 24 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “开挖揭示地质情况“ oneStrP(0) = 37.5 + yd(0): oneStrP(1) = 112.11 + yd(1): oneStrP(2) = 62: oneStrP(3) = 8 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 oneStr(0) = “设计工程地质水文地质“ oneStrP(0) = 42.5 + yd(0): oneStrP(1) = 168 + yd(1): oneStrP(2) = 16: oneStrP(3) = 24 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJGWText yd(), e_id, blc, elc, isFX oneStr(0) = “设计围岩分级“ oneStrP(0) = 42.35 + yd(0): oneStrP(1) = 148.4 + yd(1): oneStrP(2) = 67 石家庄铁道大学毕业设计 8: oneStrP(3) = 24 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJWCText yd(), e_id, blc, elc, isFX oneStr(0) = “施工围岩分级“ oneStrP(0) = 42.35 + yd(0): oneStrP(1) = 137.4 + yd(1): oneStrP(2) = 8: oneStrP(3) = 24 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJDMText yd(), e_id, blc, elc, isFX, “DMC“ oneStr(0) = “地层岩性特征“ oneStrP(0) = 53.17 + yd(0): oneStrP(1) = 122.78 + yd(1): oneStrP(2) = 20: oneStrP(3) = 16 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJDMText yd(), e_id, blc, elc, isFX, “DMDC“ oneStr(0) = “工程地质特征“ oneStrP(0) = 52.74 + yd(0): oneStrP(1) = 91.3 + yd(1): oneStrP(2) = 22: oneStrP(3) = 16 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJDMText yd(), e_id, blc, elc, isFX, “DMGC“ oneStr(0) = “水文地质特征“ oneStrP(0) = 52.95 + yd(0): oneStrP(1) = 59.75 + yd(1): oneStrP(2) = 20: oneStrP(3) = 16 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 DrawSJDMText yd(), e_id, blc, elc, isFX, “DMSW“ oneStr(0) = “初期支护概述“ oneStrP(0) = 43 + yd(0): oneStrP(1) = 35 + yd(1): oneStrP(2) = 15: oneStrP(3) = 24 DrawLineText oneStr(), oneStrP(), acAttachmentPointMiddleCenter, 2.5 Dra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论