栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

cad高程测绘图lisp

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cad高程测绘图lisp

利用

AutoLisp

、

Microsoft VBA

程序语言实现

批量生成断面图及断面电子表格数据

蒋济飞

赵新萍

(广西第二测绘院

广西柳州

545006

)

【摘

要】

本文主要讨论如何利用

AutoCAD

的二次开发语言

AutoLisp

和

Excel

中的

Microsoft VBA

语

言技术,利用地形图上的高程点数据批量生成断面图和断面数据表格。

【关键字】

断面图

AutoLisp Microsoft VBA

1

引言

Visual Basic

作为一个集成的开发环境,能够使

AutoCAD

数据与其它的

Visual Basic

应用程序,如

Microsoft Excel

软件,直接共享,实现无缝连接,交换数据。

在没有专业软件辅助的情况下,绘制纵横断面图是很繁琐的事,需要进行大量的、重复的操作,既劳

神,又容易出错。我们在完成老挝南塔河

1#

水电站进站道路测绘项目中,利用地形图上的高程点数据,通

过

Auto Lisp

、

Visual Basic

编程建立

AutoCAD

与

Excel

的通信,实现数据交换,快速绘制公路纵横断面

及相关成果表,大大的提高了工作效率。

2

应用程序的开发

在实现对地形图上的高程点数据批量生成断面图和断面数据表格处理的程序代码编写过程中,主要分

以下步骤:

(

1

)注记纵、横断面交点的里程和高程并生成纵断面曲线,输出断面数据。

首先我们取得纵断面线折点的坐标集合(

XY-List

)。如果纵断面线图元为

LWPOLYLINE

,则只要依次

取出纵断面线图元数据中群码为

10

的数据即可;如果纵断面线图元为

POLYLINE

,则只要依次取出纵断面

图元之后

SEQEND

之前的所有

VERTEX

图元数据中群码为

10

的数据即可。

取得纵断面线上所有高程点和横断面图元。代码如下:

(

SETQ ALL-DATA

(

SSGET "F" XY-List '

((

-4 . "

)

(

-4 . "

)(

0 . "INSERT"

)(

8 . "GCD"

)(

-4 . "and>"

)

(

-4 . "

)(

0 . "*POLYLINE"

)(

8 . "DM"

)(

-4 . "and>"

)

(

-4 . "or>"

))))

取得高程点和横断面图元数据之后,

对数据进行区分。

如果是

INSERT

图元,

则取得其插入点

XYZ

坐标,

存入纵断面坐标数据表

(

ZDM-XYZ-List

)

中;

如果是线型图元,

则存入横断面图元数据表

(

HDM-Entity-List

)

中。

求得纵、横断面的交点,并生成一个表。

Autolisp

给我们提供了一个求线段交点的函数(

INTERS <

线

段

1

起点

> <

线段

1

终点

> <

线段

2

起点

> <

线段

2

终点

> [

实体相交标记

]

),我们就利用这个函数求得纵断

面与所有横断面交点的坐标表(

JD-XY-LIST

)。代码如下:

(

setq jd-xy-list

(

list

));

_

初始化交点坐标表

(

setq BEI-xy-list XY-List

);

_

生成一个备用的中线二维坐标表

(

setq i 0

)

(

repeat

(

length HDM-Entity-List

)

(

setq dm-entity

(

nth i HDM-Entity-List

));

_

取出第

i+1

个横断面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909257.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号