



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、淺談批量 cad 圖形文件自動修改的實現(xiàn)方法黃曉計(廣西第一測繪院,廣西 南寧 530023)摘要 在大比例尺地形圖、地籍圖生產(chǎn)制作過程中,制作標準分幅圖是一個必需的工作環(huán)節(jié),而對標準分幅圖進行圖廓整飾是一個批量處理的過程。文章結合工作實例簡單介紹以南方軟件為基礎,利用 cad二次開發(fā)語言 autolisp,并結合腳本文件實現(xiàn)批量標準 1:500 地形、地籍分幅圖的圖幅名稱、圖號注記的修 改方法。關鍵詞 標準分幅圖;autolisp 語言;腳本;批量處理南方 cass 軟件是南方測繪公司基于 autocad 平臺上進行開發(fā)的軟件,是測繪行業(yè)常用的繪圖軟件。在 地形圖、地籍圖生產(chǎn)制作過程中,制作
2、標準地形、地籍分幅圖是一個必不可少的工作環(huán)節(jié)。南方 cass 軟件具有較強的地形、地籍圖繪制功能和批量標準分幅制作的功 能。筆者結合工作實例簡單介紹利用 cad 二次開發(fā)語言 autolisp 和腳本文件相結合實現(xiàn)批量 1:500 標準地 形、地籍分幅圖的圖幅名稱、圖幅號注記的自動修改方 法。容,編寫 g_tfmc.lsp、du_nextname.lsp、f_close.lsp 程序文件和圖形批處理.scr 腳本文件;第三個組成部分的任務 是執(zhí)行圖形批處理.scr 腳本文件。整個程序設計結構如 圖 1 所示。(1) 第一部分編寫 du_tm.lsp 文件,定義了兩個函 數(shù),即 texver 函
3、數(shù)和 c:du_tm 函數(shù)。texver 函數(shù)的功能是 獲取每個標準分幅內(nèi)圖框的 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 的功能是在圖幅接合表中根據(jù)每個標準 分幅內(nèi)圖框的 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 函數(shù),函數(shù)可實現(xiàn)的功能 是讀入圖幅信息 .txt,獲得當前圖形的圖幅名稱 。 read_tfmc 函數(shù)代碼如下:(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 函數(shù),函數(shù)可實現(xiàn)的功 能是根據(jù)當前圖形的坐標,計算當前圖形的圖幅號,通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 函數(shù), 函數(shù)可實現(xiàn)的功能是讀取當前工作目錄中所有的dwg 文件,查找相對當前已打開的圖形文件的下一個圖 形文件的名稱, 在當前工作目錄中制作一個文件名為 iopen.scr 的腳本文件,腳本文件內(nèi)容為用“open”命令打 開下一個圖形文件,用“script”命令執(zhí)行圖形批處理.scr 文件內(nèi)容。編寫文件名為 iopen.scr 的腳本文件是整個圖 2 原始圖件樣圖圖
10、 3 批處理后的圖件樣圖批處理過程的關鍵所在,需要在 iopen.scr 中用“open”命令打開下一個圖形文件。因為 autocad 二次開發(fā)中定制的open 函數(shù)是用來讀文件的,不能當成 autocad 內(nèi)置命令函 數(shù) open 來打開一個圖形文件。要用“open”命令打開一個圖 形文件只能在腳本文件中以向命令行中輸入命令的形式打開,而用“script”命令執(zhí)行圖形批處理.scr 文件內(nèi)容可以實 現(xiàn)。c:du_nextname 函數(shù)代碼如下:(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 函數(shù),函數(shù)功能是關閉上一個圖形文件,只保留當 前圖形窗口。 c:f_close 函數(shù)代碼如下:(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 文件,文件包含的內(nèi)容是需要對每個當前圖形發(fā)布的命令集合。圖形批處理.scr 代碼如下:(load d:/f_close.lsp) f_closelsp) g_tfmc(load d:/g_
14、tfmc.(load d:/du_nextname.lsp) du_nextname scriptiopen這個文件內(nèi)容還可以根據(jù)其他操作需要,在f_close 和 du_nextname 之間增加相應的操作內(nèi)容。(3)第三部分是在當前圖形文件中,向命令行 輸入“script”命令,選擇圖形批處理.scr 文件對當前 圖形文件進行批處理,以嵌套的形式實現(xiàn)對當前圖形進行文字注記修改,編寫 iopen.scr 文件和關閉上 一個圖形文件的操作過程。批量 cad 圖形文件文字注記修改2實例以廣東郁南縣都城鎮(zhèn)標準地籍分幅圖圖名文 字注記修改為例,按程序設計的步驟要求:(1)先打開都城鎮(zhèn)圖幅接合表.dw
15、g, 在命令行中輸入(load d:/du_tm.lsp ) 加載 du_tm.lsp 程序,然后輸入du_tm 執(zhí)行函數(shù)命令。命令執(zhí)行結束后,即可在 d 盤根 目錄下查找到圖幅信息.txt 文件。(2)打開需要修改的標準分幅圖,在命令行中輸入“script”命令,然后選擇圖形批處理.scr 文件,程序即會 自動運行。程序運行前后的效果對比如圖 2、圖 3 所示。修改。這種批處理方法適用于任何的 cad 版本,用戶可以根據(jù)不同的需求,用 autolisp 語言對 cad 圖形中的 點、線、文字注記、塊、圖層等對象進行添加、修改、刪除 等操作,也可以對圖形進行輸出、打印、另存等操作,最 后以腳本
16、文件加載 autolisp 程序、運行程序或以 cad 命令的形式實現(xiàn) cad 圖形文件的批量處理。上述用 autolisp 語言與腳本文件配合使用實現(xiàn)批量 cad 圖形 文件的文字注記自動修改的思路和方法,在實際生產(chǎn)過 程中非常實用,可供各行各業(yè)使用 autocad 軟件的技 術人員參考。參 考 文 獻結語3autolisp 語言是 autocad 軟件提供的二次開發(fā)工具,它的特點是:可以隨意地引用和重新組合 autocad 功能,訪問和使用 autocad 的數(shù)據(jù)庫。如果在上述程序 增加一個修改標準分幅圖鄰接圖表的函數(shù),并在圖形批處理.scr 腳本文件中相應增加加載和執(zhí)行這個函數(shù)的 命令,
17、即可在一次批量處理過程中實現(xiàn)多個項目內(nèi)容的1 gb/t20257.1- 2007,國家基本比例尺地圖圖式第一部分 1:500、1:1000、1:2000 地形圖圖式s2 陳伯雄,馮偉.visual lisp 程序設計技巧與范例m.北京:人民郵電版社,2002.(上接第 32 頁) 鋅礦床帶位于前泥盆紀隆起與泥盆紀沉降的邊緣。而該區(qū)老廠短軸背斜的核部即為寒武紀隆 起,其西部正好是興坪潮田泥盆石炭紀沉降區(qū),并據(jù)區(qū)調(diào)報告,區(qū)內(nèi)思的西北部一帶在中泥盆世正好是坳陷的沉降中心,其背景條件與鄰近的凡口鉛鋅礦極為相 似。(2)區(qū)內(nèi)的思的龍門界正斷層、全會涼傘頂 正斷層和旺塘村興坪逆斷層主要發(fā)育于中晚泥盆世 地
18、層中,共同構成了一個較完整的同生斷裂系統(tǒng),與噴 流沉積型鉛鋅礦形成的構造模型極為吻合,這為該區(qū) 噴流沉積型鉛鋅礦的形成提供了完整的構造體系。(3)據(jù)已有資料顯示,區(qū)內(nèi)的巖體和礦床中的礦物 成分,無論是在開采的各個礦床還是新寨花崗巖體,普 遍伴生有大量的重晶石礦物,鋇含量很高,這是形成噴 流沉積型鉛鋅礦的重要標志(屬于全球性的通用標志)。(4)根據(jù)噴流沉積型鉛鋅礦形成的構造模型,位 于同生斷層較高部位的第一、第二臺階,形成的主要是 與次級斷裂有關,并伴生重晶石的陡產(chǎn)狀充填交代型 脈狀礦化,位于最下部的第三臺階的碳酸鹽巖中才是 產(chǎn)出規(guī)模和厚度都較大的層狀、似層狀鉛鋅礦體的有 利部位。而該區(qū)的老廠鉛鋅礦、寶塔龍多金屬礦、燕子臺階次級斷層帶內(nèi),與標準模型很吻合。通過模型參照顯示該礦田西部的思的以西地段(1 號靶區(qū))以及潮田一帶的坳陷區(qū)(2 號靶區(qū))(見附圖)極有可能存在層狀、似層狀鉛鋅礦化體,應引起大家的高度重視和進一步做調(diào)查研究。參 考 文 獻1 陳毓川.桂北地區(qū)礦床成礦系列和成礦歷史演化軌跡m.南 寧:廣西科學技術出版社,1995.219- 225.2 徐開禮,朱志澄.構造地質(zhì)學m.北京:地質(zhì)出版社,2006.164-165.3 程小久,翟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程地塊土方承包施工合同
- 鄉(xiāng)區(qū)煤礦安全工作方案
- 2024年BYDBYE并條自調(diào)勻整系統(tǒng)項目資金籌措計劃書代可行性研究報告
- 2025國網(wǎng)山西省電力公司高校畢業(yè)生招聘約430人(第一批)筆試參考題庫附帶答案詳解
- 2025年上半年宜昌市直事業(yè)單位招考(181名)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安陽市湯陰縣農(nóng)業(yè)局所屬事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蚌埠市事業(yè)單位招聘(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 汽車車載網(wǎng)絡控制技術 大眾邁騰汽車車載網(wǎng)絡系統(tǒng)故障檢修教案
- 2025年上半年安徽滁州市河道管理局招考人員易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年臨床檢驗分析儀器項目建議書
- 北京服裝學院招聘考試題庫2024
- 2024年江蘇省南京市中考數(shù)學試卷真題(含答案解析)
- 物資裝卸培訓課件
- DB5101-T 71-2020 成都市電動汽車充電設施 安全管理規(guī)范
- 2025年北京電子科技職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年二級建造師之二建機電工程實務考試題庫含完整答案
- 團隊賦能培訓
- 2025年廣東廣州市黃埔區(qū)第二次招聘社區(qū)專職工作人員高頻重點提升(共500題)附帶答案詳解
- 第一單元第2課《人工智能應用》說課稿 2023-2024學年浙教版(2023)初中信息技術八年級下冊
- 2025年寫人要抓住特點
- 數(shù)字化轉型賦能制造業(yè)企業(yè)高質(zhì)量發(fā)展
評論
0/150
提交評論