利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法_第1页
利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法_第2页
利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法_第3页
利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法_第4页
利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法_第5页
全文预览已结束

下载本文档

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

文档简介

1、利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法    利用CAD的数据编程实现等值线图和3D曲面图自动生成的方法摘要: 在岩土工程勘察报告中,地基土(岩)层顶板埋深、标高、厚度等值线图和地基土(岩)层顶板3D曲面图是对设计和施工具有直接指导作用的专题地图。SURFER具有由规格数据快速构建散点图、代写硕士论文等值线图、3D曲面图的功能。本文介绍了利用目前流行的理正勘察CAD的数据,编程实现等值线图和3D曲面图自动生成的方法,取得了较好的应用效果,具有较高的推广应用价值。  关键词: SURFER;岩土工程勘察;专题地图  

2、1.前言岩土工程勘察报告中,除常规钻孔柱状图、地质剖面图、各种测试图表和其他计算统计表外,地基土(岩)层顶板标高、埋深、厚度等值线图和地基土(岩)顶板3D曲面图是两种十分重要的专题地图,尢其是在软弱地基和高层建筑物的桩基础设计施工过程中,具有直接的指导作用。以前岩土工程师们只能手工制作等值线图,工作效率低下,3D曲面图根本无法实现,随着计算机的普及以及图形学技术的发展,自动生成等值线图和3D曲面图的技术已经成熟,在许多大型GIS系统中已得到广泛应用,并产生了一些专门构建等值线图和3D曲面图的工具软件如SURFER等。理正勘察CAD软件作为国内岩土工程勘察单位使用广泛的CAD软件,具有强大的辅助

3、计算与成图功能,但其基本软件配置中并未提供等值线图的生成功能,需另行购买,而3D曲面图的生成功能尚没有提供,难以满足使用单位和技术人员快速制作等值线图和3D曲面图的要求。SURFER是Goldren Software公司的产品,具有基于规格点数据快速构建散点图、等值线图、3D曲面图和相应的图文编辑功能,并提供丰富的宏命令和OLE支持,为我们自己编程实现等值线图和3D曲面图的自动生成提供了可能。在实际工作中,我们充分利用了理正勘察CAD系统的数据,通过VB编程调用SURFER软件的图形构建功能,实现了等值线图、3D曲面图的实时快速制作,满足了设计施工单位的需求,取得了较好的应用效果。  

4、;2.专题图制作岩土工程等值线图、3D曲面图的制作就是在钻探点地基土(岩)层顶板标高、埋深、厚度数据和钻探点坐标数据的基础上,通过构建三角网进行数据内插和视角转换构建而成。我们利用VB编程从理正勘察CAD系统数据库中提取所需地层数据(x,y,标高、埋深、厚度)和钻探点数据,通过OLE技术,使用SURFER软件的宏命令进行格网数值内插和图形绘制,既利用了理正勘察CAD的数据,又省去了编写插值和视角转换算法的复杂工作,操作简便,快速可行,效果明显。2.1编程中用到的函数与命令在编程过程中,我们需要用到VB的数据访问对象等许多函数和语句以及SURFER软件的一些宏命令,下面简要介绍编程中需要用到的S

5、URFER宏命令:(1)StartupPath() :得到SURFER软件启动路径。(2)GridData(DataFile,xCol,yCol,zCol, .,OutGrid,.):由datafile点数据文件构造栅格文件,其中参数datafile为点数据文件名,采用表格方式,每行一个点数据,各列用","分开即可,xcol表示栅格X坐标对应数据文件的列(0255),ycol表示栅格Y坐标对应数据文件的列(0255),zcol表示栅格Z坐标对应数据文件的列(0255),outgrid表示生成的栅格文件名,其他参数可采用系统默认值。(3) MapPost (datafile,

6、xCol,yCol, LabCol,SymCol,., SymSize.):由数据文件生成点符号图,其中datafile,xcol,ycol与GridData()命令中参数相同,Labcol表示点符号标注列(0255),SymCol表示点符号类型值,SymSize表示点符号大小值(绘图单位),且要求小于10,其他参数可采用系统默认值。(4)MapContour(InGrid, ., Smooth Amount):由栅格文件生成等值线图,其中参数InGrid表示栅格文件名,Smooth Amount表示等值线曲线园滑程度(0,1,2),2表示最高园滑效果,其他参数可采用系统默认值。(5)MapS

7、urface(InGrid,.):由栅格文件生成3D曲面图,其中参数InGrid表示栅格文件名,其他参数可采用系统默认值。(6)FilePrint(Method, ., Scale):打印图形,其中参数Method表示打印方式,Scale表示缩放比例,100%表示不缩放。(7)FileExit(Save):退出SURFER系统,参数Save表示退出系统时图形存盘方式。2.2专题图用数据的处理SURFER软件对数据文件的格式要求是2维表格形式,以","分隔或对齐方式均可,我们采用","分隔方式的文本文件格式,数据由理正勘察CAD数据库中取得,使用人员选择工

8、程编号和地基土层名称自动检索生成数据文件,我们用VB编程实现数据文件的生成和程序界面控制。在理正勘察CAD系统中,钻探点坐标与层位数据存放于zzuankong表、zgtuceng表中,工程信息数据存放于xgongcheng表中,各表以GCSY字段关联,数据处理流程如下:选择工程编号选择工程地层名称检索工程钻探点数据逐孔检索选择层顶板埋深数据,或据钻孔坐标与埋深计算选择层顶板标高和厚度形成目标数据文件。在处理层位数据时,经常会碰到某些钻探点选择地层缺失的情况,对由于钻探深度不够,选择地层及以下地层都缺失的钻探点数据予以剔除,对选择地层缺失但其下覆地层存在的钻探点,则取选择地层上层层位数据,如其上

9、层缺失,则顺次向上取其上上层数据,其至地面数据为止。主要代码如下:Private Sub FormLoad()打开理正数据库并取出工程信息显示在表格中Dim gcdat As Database , gcinfo As Recordset, gcdc AsRecordsetDim gcsy as long ,mdbfile as string,password as stringOn Error Resume Nextmdbfile = App.Path + "databasegicad5.mdb"'理正勘察CAD数据库set gcdat=OpenDatabase(m

10、dbfile,False,False, ;UID=sa;PWD=password)Set gcinfo = gcdat.OpenRecordset("select gcsy,gcbh,gcmcfrom xgongcheng")Set Data1.R        ecordset = gcinfo检索工程编号,名称信息显示到表格中End SubPrivate Sub DBgrid1Click()选择工程,检索工程地层信息On Error Resume NextGcsy=gcinfo(gcsy&#

11、39; )Sql=" select distinct tczcbh,tcycbh,tccycbh, tclm from zgtuceng where gcsy="+trim(str(gcsy)Set gcdc=dcdat.openrecordset(sql)检索工程地层名称等信息到列表框中Set Data2.Recordset = gcdcEnd SubPrivate Sub DBlist1DblClick()生成选择层顶板数据文件On Error Resume Nextdatfile = App.Path + "conture.dat"输出数据文件zk

12、file = App.Path + "postzk.dat"输出钻探点符号标注文件Dim symbh As Integer ,zkbh as string钻探点符号类型值,钻孔编号变量Open datfile For Output As #1Print #1, "X,Y,BG,' MS' ,' HD' "x,y坐标,标高,埋深,厚度Open zkfile For Output As #2Print #2, "X,Y,ZKBH,smbh"x,y坐标,钻孔编号,符号类型值Dim hole as record

13、set ,zkfc as recordset定义钻探点信息、钻探点分层信息记录集SQL = "select zkbh,zkx,zky,zkbg from zzuankong wheregcsy=“+trim(str(gcsy)+”order by zkbh"检索工程钻孔信息(钻孔编号、坐标、孔口标高等)Set hole = gcdat.OpenRecordset(SQL)hole.MoveFirstDo While Not hole.EOF循环检索钻孔分层数据x0 = hole ( " xh"): y0 = hole ( " yh")

14、: z0 = hole ( "groundlevel")钻孔坐标及孔口标高zkbh = hole("zkbh")钻孔编号sql1 = "select zkbh,tczcbh,tcycbh,tccycbh,tccdsd,tchd fromzgtuceng where gcsy=" +trim(str(gcsy)+”and zkbh='”+ zkbh + "order by zkbh"Set zkfc = gcdat.OpenRecordset(sql1)检索工程钻孔编号=zkbh的钻孔分层及厚度数据。'

15、;计算或取得钻探点层位埋深、厚度或标高数据并写入文件hole.MoveNextLoopClose #1Close #2End Sub2.3专题图生成岩土工程专题图的生成就是在以上形成选择地层数据文件的基础上,利用OLE技术驱动SURFER的绘图宏命令,进行图形的绘制。程序代码如下:Private Sub Command1Click() '生成标高等值线图Dim suf as object定义surfer对象变量Set suf = GetObject(, "surfer.App") '如果SURFER已启动,取得SURFER系统控制权If Err ThenEr

16、r.ClearSet suf = CreateObject("Surfer.App")'如果SURFER没有启动,则启动SURFER系统Elseid = suf.FileNew()打开一个新的绘图空间End Ifid1 = suf.GridData(Path+ "conture.DAT", xcol=0,ycol=1,zcol=2,OutGrid = Path+ "conture")id2 = suf. MapContour ( app. path + " conture ",SmoothAmount =

17、2)绘制等值线id4 = suf.MapPost(app.path + "postzk", xCol = 0, yCol= 1, LabCol = 2, SymSize =0.3, Symbol = 12)绘制钻探点符号并标注,第1列为X坐标,第2列为Y坐标,第3列为标注字符,符号大小0为0.3 cm(作者设置绘图单位为cm),符号类型为第12个符号。End SubPrivate Sub Command1Click()生成顶板标高3D曲面图Dim suf as object定义surfer对象变量Set suf = GetObject(, "surfer.App&

18、quot;)如果SURFER已启动,取得SURFER系统控制权If Err ThenErr.ClearSet suf = CreateObject("Surfer.App")'如果SURFER没有启动,则启动SURFER系统Elseid = suf.FileNew()打开一个新的绘图空间End Ifid1 = suf.surface(Path+ "conture.")'生成3D曲面图End Sub对于其他等值线图的生成与标高等值线图的生成相同,只需将Griddata命令中的zcol更改为相应数据的列(作者的数据文件中埋深=3,厚度=4)即可。  3.结语随着现代城市建设的快速发展,岩土工程设计施工对岩土工程勘察报告提出了越来越高的要求,只包含简单的文字和剖面图、柱状图的成果报告显然已不符合时代发展的需求,

温馨提示

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

评论

0/150

提交评论