利用AutoCAD二次开发功能实现自动提取点坐标.doc

上传人:文库蛋蛋多 文档编号:2805677 上传时间:2023-02-25 格式:DOC 页数:3 大小:77KB
返回 下载 相关 举报
利用AutoCAD二次开发功能实现自动提取点坐标.doc_第1页
第1页 / 共3页
利用AutoCAD二次开发功能实现自动提取点坐标.doc_第2页
第2页 / 共3页
利用AutoCAD二次开发功能实现自动提取点坐标.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《利用AutoCAD二次开发功能实现自动提取点坐标.doc》由会员分享,可在线阅读,更多相关《利用AutoCAD二次开发功能实现自动提取点坐标.doc(3页珍藏版)》请在三一办公上搜索。

1、化工矿产地质GEOLOGY OF CHEMICAL MINERALS第 30 卷 第 3 期2008 年 9 月Vol.30 No.3Sep.2008信息技术利用AutoCAD二次开发功能实现自动提取点坐标姜祖迎*么作庚辽宁省化工地质勘查院,辽宁锦州,121000提 要 拾取不同图形对像的坐标是烦锁工作,把不同属性的图形对像修改相同,使其变为单一重复,可以编程处理,AutoLISP语言编程批量提取点坐标可以提高工作效率,减少错误。关键词 AutoLisp 图形对像 坐标 文本文件中图分类号:TP391.72文献标识码:A文章编号:10065296(2008)03016603在工程设计、建筑放样

2、、施工检核过程中,经常需要提取点位的设计坐标,输入相应仪器, 对施工现场进行较对检查。AutoCAD在批量提取 点位坐标时没有相应功能,需要二次开发才能满 足需要。AutoCAD的开发手段很多,如C+、Java、 Vbsic、AutoLisp等。AutoLISP语言是AutoCAD 专用的二次开发的工具。Visual LISP作为帮助使 用AutoLISP语言进行程序开发的一个集成开发 环境。在Visual LISP开发环境下使用AutoLisp语 言编程(采用AUTOCAD2004与AUTOLISP二 次开发技术与AUTOLISPDCL基础篇 知 识)非常简单方便。本文用AutoLisp开发

3、了一段 可批量提取点坐标的程序,可批量提取点坐标, 且把点坐标写入文本文件。基本思路:在AutoCAD中点选或框选欲提取 坐标的点,提取该点坐标且编号,然后按一定格 式存入一个文本文件中。由于所要提取点对像在图内的不确定性,如 有的点在线的交点处,有的在端点处,有的在园 心处,有的在园弧上等,使提取点的图形属性不 可预见,无法事先编程处理。如果把拾取点的图 形属性处理成统一的形式,就可以编程处理了。 本程序需要把欲拾取点图形处理成圆,然后提取圆心坐标。提取圆心坐标时须把不需要的园放入其它 图层,将其关闭。本程序功能:可拾取图面内所有圆心坐标, 按拾取顺序编号,记入Txt文件内,数据格式为 “点

4、号,X,Y,H,代码”。更新所提取圆半径, 将圆心坐标标注在圆心处。使用方法:在AutoCAD内打开Visual LISP, 将本程序复制到文本框内、保存。文件名最好和 程序名一样,便于记意。如:“Tzb.lsp”。运行程 序前需用记事本创建一个*.Txt文件,待存放拾取 点的坐标。在AutoCAD内打开图形文件,将拾取点处理 为圆。在命令行键入“appload”命令,加载本程序所 在Lsp文件,然后在命令行建入“Tzb”回车,选择 事先建立的*.Txt文件。点选或框选图内的圆回 车。按提示输入新的圆半径。待程序运行完毕, 提取坐标完成。打开*.Txt文件就可看见所提的坐 标了。数据文件样式为

5、:1,4849166.182,504905.415,0,32,4847556.121,506943.735,0,3* 第一作者简介:姜祖迎(1967),男,主要从事钻探及地基基础施工,工程师收稿日期:20080515; 改回日期; 200807063,4845983.397,505708.767,0,34,4847596.533,503672.366,0,35,4848914.423,505736.922,0,6,4849224.891,505344.991,0,7,4849098.213,504991.463,0,8,4849035.379,505071.01,0,程序内容为:(defun

6、c:Tzb ()(command osnap off )(setq n (1+ n);记录进入子程序数量)(alert (strcat 提取了 (itoa k) 个圆心坐标且 半径被更新! )(prin1)(defun sub_upd_rad ();取消捕捉(command layer m 圆 c 6 );建立圆层(command layer m 坐标 c 5 );建立坐标层(command layer m 点号 c 4 );建立点号层(setq 40_list (assoc 40 endata)(setq 8_list (assoc 8 endata) (setq 10_list (asso

7、c 10 endata);取出圆半径;取出图层;取出圆心坐标(setq new_40_list (cons 40 new_rad)新的半径列表; 组成 (setq new_8_list (cons 8 new_la)图层列表; 组 成新的 (setq dat_file (getfiled 选择坐标文件 txt 2)(setq ff (open dat_file a)(setq new_rad (getreal 输入新半径:)(setq endata (subst new_40_list 40_list endata);用新的半径替换旧半径(entmod endata);更新(半径)(setq

8、endata (subst new_8_list 8_list endata) ;用新的图层替换旧图层(setq new_la 圆)(setq h (/ new_rad 5);输入新图层;字高(entmod endata)(setq k (1+ k) (setq;更新(图层);记录圆数量(prompt n)(setq ss (ssget)xy zxyz(nth 1 10_list)(nth 2 10_list) (nth 3 10_list)(list x y z)(setqk 0)n 0kyxz (strcat (itoa k),(rtos y 2 3) ,(rtos x 2 3) ,(rt

9、os z 2 3) ,)k (itoa k)xyyz (list (+ x (* h (strlen k) (+ y (* h 1.3)(repeat (sslength ss)确定循环次数(setq en (ssname ss n) (setq endata (entget en)数据列表; 计算选择个数;取出图元名; 取出对象名称(setq entype (cdr (assoc 0 endata) ;取出图元名第二位数值(if(= entype CIRCLE)就进入子程序(sub_upd_rad); 如 果是圆 z)注意:在处理提取对像时不要做重复图形,如果在一个点上做两个园,程序将按两个

10、对像处理, 提两个做标。本程序在AutoCAD2002、2004、2006下验证xyzz (list (+ x (* h (strlen k) y z)xz(list (+ x (* h (strlen k) (- y (* h 1.3)z)k (atoi k)运 行正常。 该程序可 以运行环 境与 )AutoCAD2002 、AutoCAD2004 、AutoCAD2006运行环境相对应,即 AutoCAD2002 、 AutoCAD2004 、 AutoCAD2006 需要的 环境, AutoCAD2002简体中文版运行环境:Win9X/ NT/2000/ XP(write-line ky

11、xz ff)(setqa (strcat Y= (rtos x 2 3)b (strcat X= (rtos y 2 3)c (strcat Z= (rtos z 2 3)AutoCAD2004 简体中文版运行环境: Win9X/2003/2000/XPAutoCAD2006简体中文版运行环境:最低系统需 求Windows XP或 Windows 2000(SP2 或更高 版本)256 MB RAM。2005年在锦州石化公司苯 乙烯工程,装置区700余棵桩,罐区2000余棵桩 基础,单个点提取坐标要用34d时间,简单重 复一项操作还容易出错,耽误工期。使用该程序 后1分钟完成且不易出错。本文编

12、写过程中参考了AUTOCAD2004与 AUTOLISP二次开发技术(赵景亮,李志刚编 著,清华大学出版社,2004)和AUTOLISP DCL基础篇(吴永进,林美樱编著,中国铁道 出版社,2003)。(setq)bac (strcat b , a , c)(command clayer 点号 )(command text xyz h 0 k) (command clayer 坐标 )(command text xyyz h 0 b) (command text xyzz h 0 a) (command text xz h 0 c)(prompt 以完成提取圆心坐标并更新圆半径) (prin1

13、)SELECT THE POINT COORDINATES WITH THE AUTOCAD FURTHERDEVELOPMENT FUNCTIONJiang ZuyingYao ZuogengLiaoning Chemical and Geological Exploration Institute, Jinzhou, Liaoning, 121000,ChinaAbstractIt is hard to collect the coordinates in the different figures. We can amend the different figures into the same attribute and make it singularity repetition. It will improve the work efficiency and reduce the mistakes with AutoLISP language programme selecting the point coordinates in batch quantity.Key words: AutoLisp, figures image, coordinate, text file

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号