利用Visuallisp编写在AutoCAD图形提取坐标程序

(整期优先)网络出版时间:2017-07-17
/ 1

利用Visuallisp编写在AutoCAD图形提取坐标程序

刘新

河北华沃电力工程设计有限公司河北保定071051

摘要:本文主要利用Visuallisp编写,能够减少手工在AutoCAD图上提取坐标的错误和提高工作效率,保证后续工作的准确性。

关键词:AutoCAD;VisualLISP;提取坐标

UsingVisuallispwritteninAutoCADgraphicsextractionCoordinateprogram

LiuXin

(HebeiHuawoPowerEngineeringDesignCo.Ltd,Baoding,071051,China)

Abstract:ThispapermainlyusesVisualLISPtowrite,whichcanreducetheerrorofmanualextractionofcoordinatesontheAutoCADdiagramandimproveworkefficiency,andensuretheaccuracyoffollow-upwork.

Keywords:AutoCAD;VisualLISP;Extractioncoordinate

1引言

外业放样(点坐标)工作中,通常的做法如下:

(1)在AutoCAD图形文件中,手工把坐标数据抄写到纸上。

(2)再把纸上的坐标数据输入到计算机中。

(3)将输入的坐标文件数据通过传输线传到GPS手薄和全站仪上。

在步骤(1)、(2)当中都是采用手工的方法,工作当中难免会有差错,如坐标数据中的一位数字或小数点的位置错误,都导致后续放样错误,正所谓差之丝毫、逆之千里。现在利用AutoCAD中Visuallisp语言二次开发编制一个自动提取坐标程序。便可以轻松解决上述问题。

2.程序设计

2.1程序源代码

(defunc:txzb()

(command"_.layer""m""dldw""s""dldw""""")

(command"_.style""standard""hztxt.shx""3""1""0""""""")

(setqlong"D:/LX.XYZ")

(setqf(openlong"w"))

(command"osnap""node")

(while(/=dh"Z")

(setqp1(getpoint"\n>>请用鼠标选取点:"))

(setqdh(getstring"\n>>请输入点号:"))

(setqz(getstring"\n>>请输入高程:"))

(setqx(carp1)

y(cadrp1)

)

(command"text"(listxy)"0"dh)

(setqx(rtosx23)

y(rtosy23)

)

(setqzb(strcatdh","y","x","z","))

(princzbf)

(princ"\n"f)

)

(closef))

2.2程序使用方法

首先要在AutoCAD的安装目录“support”文件夹中添加字体形文件“hztx.shx”。

(1)打开AutoCAD中的*dwg文件,在左下脚“命令”栏中输入“appload”加载提取坐标的文件“提坐标txzb”,点击“加载”

(2)在左下脚“命令”栏中输入“txzb”(不分大小写)按回车键。

(3)用鼠标选取所要的点位坐标。

(4)在左下脚输入这个点的点号,如“N1”按“回车键”

(5)在左下脚输入这个点的高程,如“30.45”按“回车键”

重复(3)、(4)、(5)的步骤,如果所要的点选取完毕,在输入点号时则需要输入大写的“Z”,程序结束。会在D盘自动生成一个名为“LX.XYZ”的文件,用记事本打开即可见到提取的坐标数据,把点号为“Z”的坐标删除,另存为所需的新文件。坐标文件的数据格式为:“点号,X坐标,Y坐标,备注”。

3.结束语

本程序是在AutoCAD下Visuallisp语言二次开发的。其功能主要是利用鼠标选取*.dwg文件中的点位坐标,减少手工抄写及输入的错误、提高工作效率。但其中还有些不足:使用者需要准确无误选取图上点位、输入点号和高程。不能进行中断或输入、返回、撤销等,反复练习几次即可熟练掌握。

参考文献

[1]周乐来、马婧.《AutoCAD2008VisualLISP二次开发入门到精通》.机械工业出版社.ISBN-13:9787111237044