我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD教程 > CAD教程文章

在AutoCAD中自動生成明細表

時間:2008-07-24 15:00:36 來源:

本文通過實例介紹如何在AutoCAD系統下自動生明細表的方法。 

本文例子中的明細表格式如圖1所示。 

圖1

實現方法 

1. 建立明細表數據文件 

首先,把明細表的數據信息,用文字編輯器按如下格式寫入磁盤文件MXB.TXT中,作為明細表數據文件。 

“1”“35.1”“氣缸透蓋”“1”“ZG35”“”“”“” 

“2”“35.2”“氣缸體”“1”“35”“”“”“” 

“3”“35.3”“螺塞”“2”“A3F”“”“”“” 

“4”“GB6170-86”“螺母M10”“12”“A3F”“”“”“” 

“5”“35.4”“壓蓋”“1”“TH200”“”“”“” 

…… 

然后用AutoLisp的READ-LINE函數提取有關數據信息,并把該數據信息賦給表格圖塊屬性。 

注意:各字符串要加雙引號,空字符串引號“”不可省略,以便AutoLisp識別。 

2.建立明細表格式圖塊 

通常,一個明細表是由表頭和表體兩部分組成。表頭是固定的,因此可以用AutoCAD命令生成一個固定的表頭,并把它作為一個圖塊存入磁盤。 

假設要得到如圖1所示的明細表,則先做一個如圖2所示的明細表表頭。 

圖2

表頭實際上是一個圖形文件,本文設定該文件名為MXB.DWG,然后用AutoCAD命令建立一個如圖3所示的圖塊,設其文件名為MXB1.DWG,圖3中M1~M8均為屬性名。 

圖3

當用戶向表中插入該塊時,系統會向用戶詢問屬性值,此時用AutoLisp程序將上面建立的明細表數據文件中的數據分別賦給各個屬性。屬性的定義是用AutoCAD命令ATTDEF完成的。

編制程序 

首先,用AutoLisp的I/O函數READ-LINE讀入數據文件MXB.TXT,再用字符串連接函數STRCAT給文件的每一行加上括號,此時數據類型為字符串(STR)。然后,再利用READ函數把字符串轉換成一個表(LIST),以方便AutoLisp對表中的每一項進行各種操作。最后,用AutoLisp的COMMAND函數調用INSERT命令,先將圖塊MXB.DWG插入表中,再將MXB1.DWG插入表中,用NTH函數將前面AutoLisp讀入的數據中各項信息分別賦給MXB1.DWG中的各個屬性。 #p#分頁標題#e#

程序框圖如圖4所示。 

圖4

下面給出實現上述功能的程序清單: 

(defun C:mxb(/scmde p f1 bk a m1 m2 m3 m4 m5 m6 m7 m8 p1) 

(setq scmde (getvar “cmdecho")) 

(setvar “cmdecho" 0) 

(setq p (getpoint “n Please input a point:")) 

(setq f1 (getstring “n Please input file name:")) 

(setq f (open f1 “r")) 

(print “n Please wait ...") 

(setq bk “mxb") 

(command “insert" bk p 1 1 0) 

(setq bk “mxb1") 

(setq p1 (list (car p) (+ (cadr p) 8))) 

(while (setq a (read-line f )) 

(setq a (strcat “(“a ")")) 

(setq a (read a)) 

(setq m1 (nth 0 a)) 

(setq m1 (nth 0 a)) 

(setq m2 (nth 1 a)) 

(setq m3 (nth 2 a)) 

(setq m4 (nth 3 a)) 

(setq m5 (nth 4 a)) 

(setq m6 (nth 5 a)) 

(setq m7 (nth 6 a)) 

(setq m8 (nth 7 a)) 

(command “insert" bk p1 “" “" “" m1 m2 m3 m4 m5 m6 m7 m8) 

(setq p1 (list (car p1) (+ 8 (cadr p1)))) 

(setvar “comdecho" scmde) 

(close f) #p#分頁標題#e#

(print) 

程序的安裝與使用 

1.安裝程序 

可以選擇以下三種裝載方式的任意一種: 

?在AutoCAD環境下,將MXB.LSP拷貝至當前目錄,再執行(LOAD“MXB”),即可裝載MXB.LSP。 

?先將MXB.LSP拷貝至ACADSUPPORT子目錄下,再在ACADSUPPORTACAD.LSP中加入下面一條語句: 

(AUTOLOAD “MXB”(“MXB”)) 

即可實現啟動AutoCAD時自動裝載該程序。 

?先將MXB.LSP拷貝至ACADSUPPORT子目錄下,再在ACADSUPPORT子目錄下的菜單文件ACAD.MNU中的合適位置處加上下面一條語句: 

[生成明細表]^C^C(LOAD “C:/ACAD/SUPPORT/MXB.LSP")MXB 

即可直接在菜單中操作生成明細表。 

2.程序的使用 

當用戶裝載該程序并運行之后,程序首先出現提示信息: 

Please input a point: 

用戶給出一個定位點后,程序繼續提示: 

Please input file name: 

再輸入明細表數據文件名后,程序繼續運行,并提示: 

Please wait... 

程序運行結束后就可以生成一個如圖1所示的明細表。