本发明涉及地质工程及岩土工程勘察技术工程图绘制,尤其涉及一种基于标签布置优化算法的工程勘察平面图的方法。
技术背景
在地质工程和岩土工程勘察领域,作为技术文件中一个重要的图件——平面图,主要用来显示勘察作业中钻孔位置、钻孔编号、钻孔深度、剖面线位置及编号、钻孔坐标等相关信息。通过浏览平面图,可以直观获取勘察作业的规模大小、钻孔布置位置以及其与设计建筑物以及各剖面线在平面上的空间位置相互关系。平面图在工程勘察所有图件中具有提纲携领的作用,通过浏览平面图可以获取技术文件中其他图件如钻孔柱状图、剖面图的相互关系。
由于现有行业软件采用一定固定角度例如45度,添加一固定长度例如10mm引线从钻孔圆圈连接其标签块,不考虑标签与平面图中如剖面线、其他标签等构图要素发生冲突造成相互叠加的可能性,结果导致生成的平面图,可能大量出现各构图要素相互叠加的情况,所以采用现有行业软件的生成平面图的最大问题是,需要技术人员进行后期的人工修改,移动出现重叠的标签。在图件较复杂时,出现的类似情况较多时,需要耗费较多时间进行修改。
技术方案
本发明要解决的技术问题在于提供一种能够自动地、智能地生成工程勘察平面图的方法,应用于地质工程和岩土工程等相关领域中,可无人值守、无需作任何修改生成平面图。
一种工程图的自动绘制方法,包括如下步骤:
s1,将钻孔坐标数据以及剖面线数据录入数据库;数据包括钻孔编号、钻孔坐标、钻孔尝试、剖面线编号、剖面线中钻孔序列编号信息;
s2,检验是否有钻孔标签与剖面线及剖面线延长线存在重叠冲突情况;在钻孔位置,依顺时针或逆时针从0度到360度进行扫描,比较钻孔标签的四个角点与剖面线是否存在切点或交叉点;如果存在,则记录下标签信息进入下一步优化布置;如果没有切点冲突;则不用进行优化布置;
s3,根据s2得到的需要优化布置的标签信息,通过两种方式之一或两种方式结合调整,其一,依次选择钻孔标签处于钻孔圆圈右上角45度,或左上角45度,或左下角45度,或右下角45度;其二,调整钻孔标签与钻孔位置之间的距离,然后再次回到s2进行比较检验,直到不存在钻孔标签与剖面线重叠冲突情况;
s4,确定相应比例尺及图纸旋转角度,将钻孔坐标转换为图纸坐标,将钻孔和剖面线信息绘制在平面图上。
优选地,步骤s2含有如下步骤:
s2.1,通过钻孔标签所占的扇区与剖面线形成的扇区进行比较,得到钻孔标签的冲突检验。以brute-force算法伪代码计算钻孔标签所处的扇区。(bruteforce算法是普通的模式匹配算法,bf算法的思想就是将目标串s的第一个字符与模式串t的第一个字符进行匹配,若相等,则继续比较s的第二个字符和t的第二个字符;若不相等,则比较s的第二个字符和t的第一个字符,依次比较下去,直到得出最后的匹配结果。)
输入:l={v1,v2,v3,v4=v1}是钻孔标签的四个角点
p是钻孔所在位置的坐标
vr=vl=v1;
foreach定点vi(i=2,4)
{
eprev=(pisleftofvi-1vi);//leftofedgeei-1
enext=(pisleftofvivi+1);//leftofedgeei
if((noteprev)andenext)
{
if(viisnotbelowvr)//handlesnonconvexcase
vr=vi;
}
elseif(eprevand(notenext)){
if(viisnotabovevl)//handlesnonconvexcase
vl=vi;
}
}
返回vr和vl两切点。
在钻孔位置,依序顺时针从0度到360度扫描,比较在钻孔标签的两切点vr和vl在图2中也就是v1和v4是有剖面线与的方位角位于两切点方位角之间,如果有那么钻孔标签与该剖面线相互冲突;如果没有,那么钻孔标签与所有的剖面线都没有冲突;
优选地,步骤s3含有如下步骤:
s3.1,在钻孔标签布置中有以下原则:
(1)钻孔标签尽量与钻孔位置保持一固定距离,在出现与平面图中其他因素发生冲突时,以最少限度增大或是缩小这一距离;
(2)钻孔标签尽量处于钻孔圆圈的右上角45度,即图3中所示为钻孔标签1号位置为最优位置,2号位置为左上45度、3号位置为左下45度、4号位置为右下45度,钻孔标签可选位置优先度依次降低,其他钻孔标签位置较上4位置的可选优先度低;
针对上述第一条原则,假设在各钻孔标签与钻孔有一根弹性系数为l(以下公式里写作小写l)连接的弹簧连接,文字的最优分布就是,整场的弹性势能最小的情形,也就是全局最优的情况;
针对第二条原则,通过给予较优位置较小的权值,将标签的位置优先可选性反应在以下公式中:
(1)
式中:为平面图钻孔总数目,为钻孔标签可选位置,为第个钻孔在第个钻孔标签位置的得分权值,为选择第个钻孔的第个钻孔标签位置,为虚拟弹簧的弹性系数,为第个钻孔距离其钻孔标签的距离,为钻孔距离其钻孔标签的最优距离。
优选地,对于钻孔距离其钻孔标签的最优距离,由平面图的大小和比例尺决定,优选地,在平面图比例尺为1:1000的尺度下,可以取10mm。
有益效果
与现有技术相比较,采用本发明的绘制工程勘察平面图方法,是通过标签优化布置算法得到钻孔标签最优分布,实现在计算机中全程自动绘制,不需要人工对图件后期的手动处理,大大减少了对人工后期对钻孔标签移动的人工处理过程,极大节约了人力成本。本发明的绘制工程勘察平面图的方法自动化程度高,处理后钻孔标签分布合理,生成的工程勘察平面图规范、美观,适用于地质工程和岩土工程勘察中平面图的绘制,高效而且专业性强。
附图说明
图1是现有软件生成的平面图存在的问题;
图2是钻孔标签相对于钻孔位置所占的扇区大小;
图3是钻孔标签四个优化布局;
图4是采用本发明程序生成的未经后期人工修改的平面图。
具体实施方式
1.现有平面图钻孔标签存在问题
图1为采用现有行业软件生成的一张工程勘察平面图,标签以右上45度角长度为10mm的引线固定模式进行钻孔标签绘制,导致钻孔tp08、tf02与相邻的剖面线相互重叠,导致图件的可读性、美观性及规范性方面不符合要求。
出现所述情况时,需要在autocad软件中,人工选择钻孔tp08、tf02的钻孔标签向上适当移动,避免钻孔标签与相邻的剖面线重叠,然后连接移动后的钻孔标签和相应的钻孔之间的引线。在图形复杂的情况下,会出现大量此种情况或是标签与标签之间冲突情况。这些简单又重复的工作,需要耗费技术人员大量的时间,通过本发明,实现一种智能化的钻孔标签的最优化布置分布程序,可以避免出现上述的情况,从而节约了大量技术人员宝贵的时间。
2.标签布置优化算法
针对上述问题,本发明采用标签布置优化算法进行解决,标签布置优化算法主要包括以下冲突检验和优化布置两个主要模块。
2.1冲突检验模块
冲突检验模块,是用来检验是否钻孔标签冲突情况的模块。从图1中,可以看出,钻孔之间采用剖面线连接,形成一个以钻孔为中心的几个绘图区域,例如钻孔tp08通过剖面线8、12、23,形成了6个小的扇形绘图区域,也就是说从钻孔出发一共有6条射线,冲突检验机制就是检验钻孔标签是否与此6条射线进行重叠。
图2为钻孔标签相对于钻孔位置所占的扇区大小,通过钻孔标签所占的扇区与剖面线形成的扇区进行比较,得到钻孔标签的冲突检验。以下程序brute-force算法伪代码计算钻孔标签所处的扇区。
输入:l={v1,v2,v3,v4=v1}是钻孔标签的四个角点
p是钻孔所在位置的坐标
vr=vl=v1;
foreach定点vi(i=2,4)
{
eprev=(pisleftofvi-1vi);//leftofedgeei-1enext=(pisleftofvivi+1);//leftofedgeeiif((noteprev)andenext)
{if(viisnotbelowvr)//handlesnonconvexcasevr=vi;
}elseif(eprevand(notenext)){if(viisnotabovevl)//handlesnonconvexcasevl=vi;}}返回vr和vl两切点。
在钻孔位置,依序顺时针从0度到360度扫描,比较在钻孔标签的两切点vr和vl在图2中也就是v1和v4是有剖面线与的方位角位于两切点方位角之间,如果有那么钻孔标签与该剖面线相互冲突;如果没有,那么钻孔标签与所有的剖面线都没有冲突。
2.2标签优化布置模块
在钻孔标签布置中有以下原则:
(1)钻孔标签尽量与钻孔位置保持一固定距离,本发明实例采用10mm,即钻孔标签与钻孔圆圈中心的长度为10mm,在出现与平面图中其他因素发生冲突时,以最少限度增大或是缩小这一距离;
(2)钻孔标签尽量处于钻孔圆圈的右上角45度,即图3中所示为钻孔标签1号位置为最优位置,2号位置为左上45度、3号位置为左下45度、4号位置为右下45度,钻孔标签可选位置优先度依次降低,其他钻孔标签位置较上4位置的可选优先度低;
针对上述第一条原则,假设在各钻孔标签与钻孔有一根弹性系数为l连接的弹簧连接,文字的最优分布就是,整场的弹性势能最小的情形,也就是全局最优的情况;
针对第二条原则,通过给予较优位置较小的权值,将标签的位置优先可选性反应在以下公式中:
式中:
上式1中钻孔标签位置的得分权值对于任何钻孔有:
对于钻孔标签位置,显然需要满足:
上式(3)说明只能选择一个钻孔标签可选位置。对于虚拟弹簧的弹性系数可以为任意大于零的数,不失一般性这里可以选择
式中
对于钻孔距离其钻孔标签的最优距离
3.下面结合附图,对本发明的优选实施例作进一步的描述:
步骤s1、钻孔采样,
在工程工地采用钻机进行钻探作业,得到一个工程项目的所有钻孔的工程地质信息。
步骤s2、建立钻孔数据库,
采用业内常用的工程地质数据库管理信息系统软件建立钻孔数据库并录入各个钻孔数据,钻孔数据包括钻孔编号、钻孔坐标、钻孔深度、剖面线编号、剖面线中钻孔序列编号等信息。
步骤s3,输入相应比例尺及图纸旋转角度,将钻孔坐标转换为图纸坐标,例如采用比例尺为1:1000,钻孔tf08的坐标为x=2424172.007,y=393623.4352,经过图纸坐标转化为x’=2424.172007,y’=3936.234352,再次旋转得到最终坐标。
步骤s4,将钻孔和剖面线等信息绘制按上述步骤s3绘制在平面图上。
步骤s5,将所有信息输入公式(1),采用非线性规划迭代求得所有标签的最优解。
步骤s6,采用以上计算结果为优化布局后钻孔标签位置,在autocad中基于c#编制程序绘制,最终效果见图3所示,实现了地质描述文字的智能布局的功能和一种无需任何人工修改的工程地质钻孔柱状图程序。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。