APP下载

带状地形图连续排版分幅软件设计

2020-01-08

智能城市 2019年24期
关键词:图幅分割线梯形图

(湖南省第三测绘院,湖南 长沙 410118)

随着各级政府对基础建设加大投入,越来越多的铁路、公路、管线等线性工程开始进行规划、设计、建设、使用,地形图作为各项工作的基础,贯穿线性工程的整个生命周期。线性工程使用的地形图呈条带状,为区别于其他地形图,一般称之为带状地形图。

带状地形图形状不规则,呈条带状展开,如果使用常规的矩形分幅或梯形图幅,图幅内势必存在大量空白区域,浪费严重,图幅数量巨大,管理不便。

1 现有的分幅方法分析

为解决常规分幅带来的问题,各位研究者提出了多种解决方案,并且在AutoCAD、ArcGIS等软件平台进行了实践。

舒玲霞等[1]采用线性回归的方法对线性工程中心线进行分析,将带状地形图按A3幅面进行分幅,能充分利用图纸,且布局较为美观。杨善文等[2]采用矢量数据结构中的Spaghetti结构与拓扑数据结构相结合的数据结构来表达矢量数据模型,对带状地形图进行分幅。党涛等[3]研究了在ArcGIS下采用C#语言进行带状地形图分幅。

目前已有的分幅方法主要考虑充分利用图纸,未对图件管理和使用进行充分研究,分幅后图幅数量多,相邻图幅首尾中心线指向不一,拼接麻烦,使用不便。

2 软件设计

笔者采用C++语言,基于AutoCAD2007软件平台,使用ObjectARX开发了带状地形图分幅软件,采用连续排版方式,将带状地形图打印在长度不限的单张图纸,采用手风琴式折叠,折叠后宽度为210 mm,与普通A4纸一致,便于保存归档。使用时可方便地展开至所需要的任意区域,沿分幅图框线对折即可完成拼接。

2.1 软件设计流程

软件主要流程:

(1)获取线路中心线,采用固定宽度缓冲的方式获得地形图范围。(2)计算包含带状地形图的最小矩形。如果最小矩形的宽度小于图纸宽度,则输出为单一图框图纸,跳过(3)(4)(5)步骤。(3)以线路中心线第一条折线作为起始边,确定第一个图幅的梯形图框范围。(4)确定下一图幅范围,直到终点,图幅范围数据包括起终点的中心线位置,起终点分幅裁切线的方向。(5)计算各图框外接矩形需要的总长度,确定各分幅图框在总图中的目标位置。(6)按分幅裁切线分割图形,并移动至总图中的目标位置,绘制梯形图幅图框。(7)添加矩形图廓,矩形图廓图框包含全部梯形图幅。(8)加入折叠标志,从矩形图幅起点开始,每210 mm(图上距离)在矩形图框的两条长边添加3 mm长的短线,作为折叠标记。(9)加入封面、封底。封面主要包括线路名称、线路起点里程、线路终点里程、图形比例尺等信息。封底主要包括图例和必要的备注信息。

2.2 主要数据结构辅助函数

软件设计了多个数据结构和辅助函数,以下说明部分数据结构和辅助函数。

用于保存梯形图框信息的数据结构如下:

class CTrapezoidFrame

{

public:

CTrapezoidFrame():drct(0),startAngle(0),endAngle(0){};

AcGePoint3d startPt;//中线的起点

AcGePoint3d endPt;//中线的终点

double drct;//中线的方向

double startAngle;//起点边的方向

double endAngle;//终点边的方向

AcGePoint3d extStartPt;//外接矩形中线起点

AcGePoint3d extEndPt;//外接矩形中线终点

double extStartLen;//外接矩形的中线起点至图框中线起点的距离

double extEndLen;//外接矩形的中线终点至图框中线终点的距离

};

基于同名坐标点构建转换矩阵的辅助函数:

AcGeMatrix3d GetFourParamsXform(

AcGePoint3d &srcPt1,//原始点1

AcGePoint3d &srcPt2,//原始点2

AcGePoint3d &destPt1,//目标点1

AcGePoint3d &destPt2//目标点2

3 关键技术说明

3.1 图幅裁切位置确定

要实现连续横排的图纸在对折后完整接边,图幅之间的分割线方向必须是线路中心线的垂直方向,如果是线段的折点处,则分割线的方向必须是折点的角平分线方向。

为提高搜索效率,图幅分割点按线路中心线逐折点搜索,如果相邻折点间距离大于500 m,则以500 m为步进逐步搜索,在各搜索点形成分割线。

为减少软件计算时间,以线路中心线外扩固定距离形成的边线构成图形范围,图幅分割线与边线求交点,如果交点与图框中线的距离超过内图框宽度的一半,则视为图形超出图框,确定前一个点为图幅间分割点,该处垂线或角平分线为分割线。

3.2 图幅长度优化

在长直线路段如果第一幅图的图幅中线方向与直线段不平行,直线段将被进行多次裁切,形成的图幅数量多,因此需要对较长图幅进行优化。

从长直路段第二幅图开始,搜索到本图幅的末尾分割点时,记录本图幅和上一图幅的长度之和,作为已有最大长度的参考值。将本图幅起始分割点逐节点往回撤,计算回撤后本图幅的末尾分割点,计算此时本图幅和上一图幅的长度之和,如果长度大于已有最大长度,则将该长度作为已有最大长度的参考值,直到找出最大值,以最大值所在的起始分割点和末尾分割点作为本图幅的范围,并修改上一图幅的末尾分割点。

4 结语

下面以某带状地形图为例进行效果演示,图1为原始带状地形图,图2为添加梯形图框后的示意图,图3为分幅成果示意图。

图1 原始带状地形图

图2 绘制梯形图框

图3 分幅成果图

笔者所在单位利用本软件对湖南境内数千公里铁路进行了分幅处理,解决了带状图连续分幅图幅接边拼接问题,并通过优化,使分幅后图纸总长度最短,取得了良好的经济效果。

猜你喜欢

图幅分割线梯形图
全成形运动休闲外套分割线的设计与编织工艺
基于ArcEngine自动生成1∶5万地形图标准分幅图框
女装分割线结构设计技术研究
地形图空间信息提取方法研究
PLC梯形图编程系统应用分析
基于Arcpy的地形图接图表快速生成方法
分割线在服装结构设计中的运用思路探析
分割线设计手法在服装设计中的运用分析
PLC编译功能的实现
S7—200PLC基本编程教学案例