AutoCAD中自動批量修改圖形文件的程序
一、概述
在工程CAD繪圖中,常常會遇到下列棘手的問題:
在施工圖后期,大部分圖形文件都已完成,但因某一條件的變化,需在某卷圖中增加(或減少)一些圖紙,這將導致許多相關圖形文件的內容不得不進行相應的修改:如高層代號、圖紙編號等。
在實際工程設計中,為了提高效率,60%的圖形是通過修改已有的設計而形成新的圖形,這時常常進行一些重復性的工作,比如圖框的替換、設備元器件的變更等,有時,要幾張圖,甚至幾十張圖做同樣的修改。
對于上述情況,過去一般的作法是將每一圖形文件調出來,逐一修改。在圖幅比較大時,只能反復使用ZOOM命令,當所涉及的圖形文件較多時(有時會有幾百個),采用手動操作,其工作量非常大,而且大部分操作都是重復性的工作,長時間操作很容易發生混淆和遺漏,不但效率低,圖紙質量又不能保證。
能否將這些重復性的工作讓計算機來完成呢?
AutoCAD是圖形設計的通用軟件,它為各種專業用的CAD提供了盡可能多的圖形編輯功能,但很難實現自動化作圖的功能。
在實踐中我們用C語言編寫了CHSCR應用程序,采用該程序設計人員只需編寫一個簡單的命令文件CH.SCR和要處理的文件表FILE.TAB,經過CHSCR?EXE應用程序轉換,形成一個可以處理FILE?TAB所列出的所有文件的CHGE?SCR命令文件。然后利用AutoCAD的 SCRIPT命令,就可使計算機按命令自動批量修改圖形并存盤或生成PLT繪圖文件。由于采用了易于為非專業編程人員所接受的SCR文件方式來編寫命令CH?SCR,使用非常方便。
二、如何使用CHSCR
1. 創建CH?SCR命令文件
CH.SCR文件的內容是由AutoCAD的命令和響應序列所組成的ASCⅡ文件,是可在AotuCAD編輯狀態下執行的文本文件。
CH.SCR包含了可在指定圖形中自動重復執行命令序列。
例:把圖形文件C800-01~ C800-98中的圖紙編號2066DD3改變2087DD2。高層代號C13改為D24,設備型號DZ20改為C45AD。
在DOS狀態下用文本編輯軟件建立CH.SCR文件:
CHTEXT_all _ _2066DD3
2087DD2
CHTEXT_all _ _C13
D24〈Enter〉
CHTEXT _all _ _DZ20
C45AD〈Enter〉
PLOT〈Enter〉
〈Enter〉
〈Enter〉
其中:
_代表一個空格
〈Enter〉代表回車
CHTEXT修改圖中文字的LISP程序
?AotoCAD中文字修改功能較弱,AutoCADR12.0中曾加了DDEDIT修改文字命令,但只能用鼠標器手工修改,且一次只能改一個字符串不適用程序化操作。
因此,在編寫SCR命令文件時我們采用了修改圖中文字的LISP程序CHTEXT.LSP(其清單附后)。將其裝入ACAD.LSP后,只要鍵入CHTEXT,就可按漢字提示使用,它一次可以修改多個字符串。
?當編寫命令文件時,必須考慮每條AutoCAD命令中的所有響應和提示。命令文件中的每個空格都是有意義的,因為AotuCAD將它看作回車,所以不能隨意增減。
?如果不需要輸出PLT繪圖文件,PLOT后面四行可以不要。
?CHSCR有兩個作用:
①如果需要修改的圖形文件較少,可以在ACAD中通過SCRLPT命令直接調用CH.SCR。
②可以在ACAD中通過SCRIPT命令試運行一次,看是否有錯。
在ACAD命令狀態下,鍵入以下命令即可按CH.SCR文件要求,對當前圖形完成所需的修改。
Command:script
Script file:ch
當所涉及的圖形文件較多時(十幾個以上),采用手動操作,將每一圖形文件調出來,逐一修改,效率太低。因此建議采用以下步驟,使計算機按命令自動批量修改圖形文件。
2. 建立圖形文件表FILE.TAB
創建完CH.SCR后,下一步應把需要修改圖形文件名(.DWG)存入FILE.TAB中:
例如:
C800-01
C800-02
C800-03
.
.
.
C800-98
3. 編譯生成CHGE.SCR文件
當具備CH.SCR(試運行正常后)和FILE.TAB文件后,就可以進行編譯工作,在DOS狀態下鍵入CHSCR〈Enter〉即開始編譯,若編譯出現問題,系統會給出相應的提示,編譯完成后,你會發現目錄中多了一個CHGE.SCR文件(自動修改圖形的文本文件)。
?CHSCR.EXE:其功能是配制SCR文件格式的命令字符串并調入相關的繪圖參數(源程序用C語言編寫,清單附后)。
?當ACAD輸出PLT文件時,如果發現有對應圖形的PLT文件,將提示出是否覆蓋掉它,這將引起SCRIPT命令中斷運行。為此在CHSCR.EXE中,我們是這么處理的:當程序發現有相應圖形的PLT文件,將自動把它刪除掉,并在屏幕上顯示出對應的信息。
經CHSCR.EXE所生成的CHGE.SCR文件:
open y C800-01
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT
save
.
.
.
open y C900-98
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT
save
quit y
4. 執行SCRIPT命令
①在ACAD中通過SCRIPT命令直接調用CHGE.SCR:
Command:script chge
②啟動AutoCAD時從操作系統提示符處輸入以下正文:
C:acad script chge
三、程序的安裝
1. 將CHTEXT.LSP裝入ACAD.LSP中。
2. 用通用C++編譯器將CHSCR.C編譯成可執行程序CHSCR.EXE,將其拷貝到CAD可找到的目錄下。
程序CHSCR.EXE適用于AutoCAD R11.0、R12.0。
四、結束語
以上所舉例僅是該程序應用的一個簡單例子,在實踐中還可用于圖塊的重新定義、圖框更新、建立繪圖標準配制、連續顯示幻燈片、連續出圖,限于篇幅不一一列舉。
自從我們把該程序應用于批量修改圖形文件后,不但將設計人員從繁鎖的人工修改圖紙中解脫出來,而且大大提高了設計效率和圖紙質量。
一、概述
在工程CAD繪圖中,常常會遇到下列棘手的問題:
在施工圖后期,大部分圖形文件都已完成,但因某一條件的變化,需在某卷圖中增加(或減少)一些圖紙,這將導致許多相關圖形文件的內容不得不進行相應的修改:如高層代號、圖紙編號等。
在實際工程設計中,為了提高效率,60%的圖形是通過修改已有的設計而形成新的圖形,這時常常進行一些重復性的工作,比如圖框的替換、設備元器件的變更等,有時,要幾張圖,甚至幾十張圖做同樣的修改。
對于上述情況,過去一般的作法是將每一圖形文件調出來,逐一修改。在圖幅比較大時,只能反復使用ZOOM命令,當所涉及的圖形文件較多時(有時會有幾百個),采用手動操作,其工作量非常大,而且大部分操作都是重復性的工作,長時間操作很容易發生混淆和遺漏,不但效率低,圖紙質量又不能保證。
能否將這些重復性的工作讓計算機來完成呢?
AutoCAD是圖形設計的通用軟件,它為各種專業用的CAD提供了盡可能多的圖形編輯功能,但很難實現自動化作圖的功能。
在實踐中我們用C語言編寫了CHSCR應用程序,采用該程序設計人員只需編寫一個簡單的命令文件CH.SCR和要處理的文件表FILE.TAB,經過CHSCR?EXE應用程序轉換,形成一個可以處理FILE?TAB所列出的所有文件的CHGE?SCR命令文件。然后利用AutoCAD的 SCRIPT命令,就可使計算機按命令自動批量修改圖形并存盤或生成PLT繪圖文件。由于采用了易于為非專業編程人員所接受的SCR文件方式來編寫命令CH?SCR,使用非常方便。
二、如何使用CHSCR
1. 創建CH?SCR命令文件
CH.SCR文件的內容是由AutoCAD的命令和響應序列所組成的ASCⅡ文件,是可在AotuCAD編輯狀態下執行的文本文件。
CH.SCR包含了可在指定圖形中自動重復執行命令序列。
例:把圖形文件C800-01~ C800-98中的圖紙編號2066DD3改變2087DD2。高層代號C13改為D24,設備型號DZ20改為C45AD。
在DOS狀態下用文本編輯軟件建立CH.SCR文件:
CHTEXT_all _ _2066DD3
2087DD2
CHTEXT_all _ _C13
D24〈Enter〉
CHTEXT _all _ _DZ20
C45AD〈Enter〉
PLOT〈Enter〉
〈Enter〉
〈Enter〉
其中:
_代表一個空格
〈Enter〉代表回車
CHTEXT修改圖中文字的LISP程序
?AotoCAD中文字修改功能較弱,AutoCADR12.0中曾加了DDEDIT修改文字命令,但只能用鼠標器手工修改,且一次只能改一個字符串不適用程序化操作。
因此,在編寫SCR命令文件時我們采用了修改圖中文字的LISP程序CHTEXT.LSP(其清單附后)。將其裝入ACAD.LSP后,只要鍵入CHTEXT,就可按漢字提示使用,它一次可以修改多個字符串。
?當編寫命令文件時,必須考慮每條AutoCAD命令中的所有響應和提示。命令文件中的每個空格都是有意義的,因為AotuCAD將它看作回車,所以不能隨意增減。
?如果不需要輸出PLT繪圖文件,PLOT后面四行可以不要。
?CHSCR有兩個作用:
①如果需要修改的圖形文件較少,可以在ACAD中通過SCRLPT命令直接調用CH.SCR。
②可以在ACAD中通過SCRIPT命令試運行一次,看是否有錯。
在ACAD命令狀態下,鍵入以下命令即可按CH.SCR文件要求,對當前圖形完成所需的修改。
Command:script
Script file:ch
當所涉及的圖形文件較多時(十幾個以上),采用手動操作,將每一圖形文件調出來,逐一修改,效率太低。因此建議采用以下步驟,使計算機按命令自動批量修改圖形文件。
2. 建立圖形文件表FILE.TAB
創建完CH.SCR后,下一步應把需要修改圖形文件名(.DWG)存入FILE.TAB中:
例如:
C800-01
C800-02
C800-03
.
.
.
C800-98
3. 編譯生成CHGE.SCR文件
當具備CH.SCR(試運行正常后)和FILE.TAB文件后,就可以進行編譯工作,在DOS狀態下鍵入CHSCR〈Enter〉即開始編譯,若編譯出現問題,系統會給出相應的提示,編譯完成后,你會發現目錄中多了一個CHGE.SCR文件(自動修改圖形的文本文件)。
?CHSCR.EXE:其功能是配制SCR文件格式的命令字符串并調入相關的繪圖參數(源程序用C語言編寫,清單附后)。
?當ACAD輸出PLT文件時,如果發現有對應圖形的PLT文件,將提示出是否覆蓋掉它,這將引起SCRIPT命令中斷運行。為此在CHSCR.EXE中,我們是這么處理的:當程序發現有相應圖形的PLT文件,將自動把它刪除掉,并在屏幕上顯示出對應的信息。
經CHSCR.EXE所生成的CHGE.SCR文件:
open y C800-01
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT
save
.
.
.
open y C900-98
CHTEXT all 2066DD3
2087DD2
CHTEXT all C13
D24
CHTEXT all DZ20
C45AD
PLOT
save
quit y
4. 執行SCRIPT命令
①在ACAD中通過SCRIPT命令直接調用CHGE.SCR:
Command:script chge
②啟動AutoCAD時從操作系統提示符處輸入以下正文:
C:acad script chge
三、程序的安裝
1. 將CHTEXT.LSP裝入ACAD.LSP中。
2. 用通用C++編譯器將CHSCR.C編譯成可執行程序CHSCR.EXE,將其拷貝到CAD可找到的目錄下。
程序CHSCR.EXE適用于AutoCAD R11.0、R12.0。
四、結束語
以上所舉例僅是該程序應用的一個簡單例子,在實踐中還可用于圖塊的重新定義、圖框更新、建立繪圖標準配制、連續顯示幻燈片、連續出圖,限于篇幅不一一列舉。
自從我們把該程序應用于批量修改圖形文件后,不但將設計人員從繁鎖的人工修改圖紙中解脫出來,而且大大提高了設計效率和圖紙質量。
評論
查看更多