浅谈批量CAD图形文件自动修改的实现方法.doc

上传人:仙人指路1688 文档编号:2926469 上传时间:2023-03-03 格式:DOC 页数:4 大小:395.50KB
返回 下载 相关 举报
浅谈批量CAD图形文件自动修改的实现方法.doc_第1页
第1页 / 共4页
浅谈批量CAD图形文件自动修改的实现方法.doc_第2页
第2页 / 共4页
浅谈批量CAD图形文件自动修改的实现方法.doc_第3页
第3页 / 共4页
浅谈批量CAD图形文件自动修改的实现方法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《浅谈批量CAD图形文件自动修改的实现方法.doc》由会员分享,可在线阅读,更多相关《浅谈批量CAD图形文件自动修改的实现方法.doc(4页珍藏版)》请在三一办公上搜索。

1、浅谈批量 CAD 图形文件自动修改的实现方法黄晓计(广西第一测绘院,广西 南宁 530023)摘要 在大比例尺地形图、地籍图生产制作过程中,制作标准分幅图是一个必需的工作环节,而对标准分幅图进行图廓整饰是一个批量处理的过程。文章结合工作实例简单介绍以南方软件为基础,利用 CAD二次开发语言 AutoLISP,并结合脚本文件实现批量标准 1:500 地形、地籍分幅图的图幅名称、图号注记的修 改方法。关键词 标准分幅图;AutoLISP 语言;脚本;批量处理南方 CASS 软件是南方测绘公司基于 AutoCAD 平台上进行开发的软件,是测绘行业常用的绘图软件。在 地形图、地籍图生产制作过程中,制作

2、标准地形、地籍分幅图是一个必不可少的工作环节。南方 CASS 软件具有较强的地形、地籍图绘制功能和批量标准分幅制作的功 能。笔者结合工作实例简单介绍利用 CAD 二次开发语言 AutoLISP 和脚本文件相结合实现批量 1:500 标准地 形、地籍分幅图的图幅名称、图幅号注记的自动修改方 法。容,编写 g_tfmc.lsp、du_nextname.lsp、f_close.lsp 程序文件和图形批处理.scr 脚本文件;第三个组成部分的任务 是执行图形批处理.scr 脚本文件。整个程序设计结构如 图 1 所示。(1) 第一部分编写 du_tm.lsp 文件,定义了两个函 数,即 texver 函

3、数和 C:du_tm 函数。texver 函数的功能是 获取每个标准分幅内图框的 4 个角点坐标。源代码如 下:(defun texver (a / bb n i)(setq bb (entget a) n (length bb) i 0 po () (while ( i n) (setq b (nth i bb)(if (= (car b) 10) (setq po (cons (cdr b) po) (setq i(1+ i)C:du_tm 的功能是在图幅接合表中根据每个标准 分幅内图框的 4 个角点坐标逐个获取图幅号、图名信 息,生成图幅信息.txt 文本文件。源代码如下:(DEFUN

4、C:du_tm(/ FNAME SS1 II ENAME po S2 wbth s3 tm )(setq FNAME (open d:/ 图幅信息.txt w)(setq ss1 (ssget (8 . tk)(0 . LWPOLYLINE) (if ss1 (progn (setq ii 0) (while ( y 2000000.0) (setq fth (strcat(substr (rtos (/ (- y 2000000) 1000) 2 2)2) - (substr (rtos (/ x 1000) 2 2) 2)(setq fth (strcat (substr (rtos (/

5、 y(setq s2 (ssget wp po (8 . tk)(0 . TEXT)(if (/= s2 nil) (progn(setq wb (cdr (assoc 1 (entget (SSNAME S2 0) (setq th (strcat (substr wb 2 6)(substr wb 10 5) ) ) (setq s3 (ssget wp po (8 . tuming)(0 . TEXT) (if (= s3 nil) (setq tm th)(if (/= s3 nil) (setq tm (cdr (assoc 1 (entget (ssname s30)(setq s

6、tr (strcat th , tm ) (write- line str fNAME) (setq ii (+ ii 1) (CLOSE fNAME)(2) 第二部分由 3 个 lsp 文件和一个脚本文件组成。g_tfmc.lsp 文件包括一个主程序和一个子程序,子 程序中定义了一个 read_tfmc 函数,函数可实现的功能 是读入图幅信息 .txt,获得当前图形的图幅名称 。 read_tfmc 函数代码如下:(defun read_tfmc (tfh / f waa)(setq f (open d:/ 图幅信息.txt r) (while waa (progn(if (= (subst

7、r waa 1 11) tfh) (setq tm (substr waa 13) waa nil)(setq waa (read- line f) ) (close f) )主程序定义了一个 C:G_tfmc 函数,函数可实现的功 能是根据当前图形的坐标,计算当前图形的图幅号,通1000) 2 2) 2) - (substr (rtos (/ x 1000) 2 2) 2) (read_tfmc fth)(if ( (atof tm) 0.1) (setq tm ) (setq tm tm)(setq p3 (list (+ x 140) (+ y 266) p4 (list (+ x 11

8、3) (+ y263)(setq s1 (ssget _C p3 p4 (8 . tk) (0 . text) (if s1 (progn (setq en1 (entget (ssname s1 0)(setq en1 (subst (cons 1 tm) (assoc 1 en1) en1)(entmod en1) )(setq p5 (list (+ x 135) (+ y 260) p6 (list (+ x 115) (+ y258)(setq s5 (ssget _C p5 p6 (8 . tk) (0 . text) (if s5 (progn (setq en5 (entget

9、 (ssname s5 0)(setq en5 (subst (cons 1 fth) (assoc 1 en5) en5) (entmod en5) ) )du_nextname.lsp 文件只有一个 C:dU_nextname 函数, 函数可实现的功能是读取当前工作目录中所有的dwg 文件,查找相对当前已打开的图形文件的下一个图 形文件的名称, 在当前工作目录中制作一个文件名为 iopen.scr 的脚本文件,脚本文件内容为用“open”命令打 开下一个图形文件,用“script”命令执行图形批处理.scr 文件内容。编写文件名为 iopen.scr 的脚本文件是整个图 2 原始图件样图图

10、 3 批处理后的图件样图批处理过程的关键所在,需要在 iopen.scr 中用“open”命令打开下一个图形文件。因为 AutoCAD 二次开发中定制的open 函数是用来读文件的,不能当成 AutoCAD 内置命令函 数 open 来打开一个图形文件。要用“open”命令打开一个图 形文件只能在脚本文件中以向命令行中输入命令的形式打开,而用“script”命令执行图形批处理.scr 文件内容可以实 现。C:dU_nextname 函数代码如下:(defun C:dU_nextname (/ ss pt x y j0 tm)(setq path (getvar dwgprefix) DWG_N

11、AME (getvar dwgNAME)(setq aadwgn (vl- directory- files path)(setq ii 0 idwgn () ) (repeat (length aadwgn) (setq adwgna (nth ii aadwgn)(if (= .dwg (vl- filename- extension adwgna)(setq idwgn (cons adwgna idwgn) (setq ii (+ ii 1) ) (SETQ idwgn (REVERSE idwgn) (SETQ N 0 M 0) (repeat (length idwgn) (SET

12、Q AAA (NTH N idwgn) (IF (= AAA DWG_NAME) (setq m (+ n 1)(IF (= M (length idwgn)(command ._vbastmt Thisdrawing.close true ) (setq n (+ n 1)C:f_close 文件定义一个 C:f_close 函数,函数功能是关闭上一个图形文件,只保留当 前图形窗口。 C:f_close 函数代码如下:(Defun C:f_close(/ ACADOBJ DOCDOCS) (setq ACADOBJ (vlax- get- acad- object) (setq DOCS (

13、vla- get- documents ACADOBJ)(setq DOC (vla- get- activedocument ACA DOBJ)(vlax- for D DOCS (if (not (equal DOC D) (if (= (vla- get- saved DOC) :vlax- true)(vla- close D) (vla- close D :vlax- true)图形批处理.scr 文件,文件包含的内容是需要对每个当前图形发布的命令集合。图形批处理.scr 代码如下:(load d:/f_close.lsp) f_closelsp) g_tfmc(load d:/g_

14、tfmc.(load d:/du_nextname.lsp) du_nextname SCRIPTIOPEN这个文件内容还可以根据其他操作需要,在f_close 和 du_nextname 之间增加相应的操作内容。(3)第三部分是在当前图形文件中,向命令行 输入“script”命令,选择图形批处理.scr 文件对当前 图形文件进行批处理,以嵌套的形式实现对当前图形进行文字注记修改,编写 iopen.scr 文件和关闭上 一个图形文件的操作过程。批量 CAD 图形文件文字注记修改2实例以广东郁南县都城镇标准地籍分幅图图名文 字注记修改为例,按程序设计的步骤要求:(1)先打开都城镇图幅接合表.dw

15、g, 在命令行中输入(load d:/du_tm.lsp ) 加载 du_tm.lsp 程序,然后输入du_tm 执行函数命令。命令执行结束后,即可在 d 盘根 目录下查找到图幅信息.txt 文件。(2)打开需要修改的标准分幅图,在命令行中输入“script”命令,然后选择图形批处理.scr 文件,程序即会 自动运行。程序运行前后的效果对比如图 2、图 3 所示。修改。这种批处理方法适用于任何的 CAD 版本,用户可以根据不同的需求,用 AutoLISP 语言对 CAD 图形中的 点、线、文字注记、块、图层等对象进行添加、修改、删除 等操作,也可以对图形进行输出、打印、另存等操作,最 后以脚本

16、文件加载 AutoLISP 程序、运行程序或以 CAD 命令的形式实现 CAD 图形文件的批量处理。上述用 AutoLISP 语言与脚本文件配合使用实现批量 CAD 图形 文件的文字注记自动修改的思路和方法,在实际生产过 程中非常实用,可供各行各业使用 AutoCAD 软件的技 术人员参考。参 考 文 献结语3AutoLISP 语言是 AutoCAD 软件提供的二次开发工具,它的特点是:可以随意地引用和重新组合 AutoCAD 功能,访问和使用 AutoCAD 的数据库。如果在上述程序 增加一个修改标准分幅图邻接图表的函数,并在图形批处理.scr 脚本文件中相应增加加载和执行这个函数的 命令,

17、即可在一次批量处理过程中实现多个项目内容的1 GB/T20257.1- 2007,国家基本比例尺地图图式第一部分 1:500、1:1000、1:2000 地形图图式S2 陈伯雄,冯伟.Visual LISP 程序设计技巧与范例M.北京:人民邮电版社,2002.(上接第 32 页) 锌矿床带位于前泥盆纪隆起与泥盆纪沉降的边缘。而该区老厂短轴背斜的核部即为寒武纪隆 起,其西部正好是兴坪潮田泥盆石炭纪沉降区,并据区调报告,区内思的西北部一带在中泥盆世正好是坳陷的沉降中心,其背景条件与邻近的凡口铅锌矿极为相 似。(2)区内的思的龙门界正断层、全会凉伞顶 正断层和旺塘村兴坪逆断层主要发育于中晚泥盆世 地

18、层中,共同构成了一个较完整的同生断裂系统,与喷 流沉积型铅锌矿形成的构造模型极为吻合,这为该区 喷流沉积型铅锌矿的形成提供了完整的构造体系。(3)据已有资料显示,区内的岩体和矿床中的矿物 成分,无论是在开采的各个矿床还是新寨花岗岩体,普 遍伴生有大量的重晶石矿物,钡含量很高,这是形成喷 流沉积型铅锌矿的重要标志(属于全球性的通用标志)。(4)根据喷流沉积型铅锌矿形成的构造模型,位 于同生断层较高部位的第一、第二台阶,形成的主要是 与次级断裂有关,并伴生重晶石的陡产状充填交代型 脉状矿化,位于最下部的第三台阶的碳酸盐岩中才是 产出规模和厚度都较大的层状、似层状铅锌矿体的有 利部位。而该区的老厂铅

19、锌矿、宝塔龙多金属矿、燕子台阶次级断层带内,与标准模型很吻合。通过模型参照显示该矿田西部的思的以西地段(1 号靶区)以及潮田一带的坳陷区(2 号靶区)(见附图)极有可能存在层状、似层状铅锌矿化体,应引起大家的高度重视和进一步做调查研究。参 考 文 献1 陈毓川.桂北地区矿床成矿系列和成矿历史演化轨迹M.南 宁:广西科学技术出版社,1995.219- 225.2 徐开礼,朱志澄.构造地质学M.北京:地质出版社,2006.164-165.3 程小久,翟裕生.沉积盆地中同生断层及对层控 Pb- Zn(- B- Cu- Ag)矿床的控制J.现代地质,1995,(3):343- 348.4 孟良义. 热液矿床中的硅化与成矿J.科学通报,1998,(6):575- 579. 5 陆孝赞等.广西老厂式铅锌矿床成因研究J.矿产与地质,2004,18(2):139- 142. 6 付志方等.箕状凹陷坡折带成因及对同生断层和沉积的控制以南襄盆地南阳凹陷为例J.石油实验地质,2006,(5):2- 3.7 李震.同沉积构造发育特征及其油气地质意义J.断块油气 田,2008,15(4):1- 4.8 许仙斌,陈远荣.广西老厂铅锌矿田寻找喷流沉积矿床潜力

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号