| 8 | 1/1 | 返回列表 |
| 查看: 1831 | 回復(fù): 7 | |||||
jwl2064木蟲 (正式寫手)
木蟲地學(xué)版長老
|
[交流]
【分享】在AutoCAD系統(tǒng)下自動生明細(xì)表 已有6人參與
|
|
本文通過實例介紹如何在AutoCAD系統(tǒng)下自動生明細(xì)表的方法。 本文例子中的明細(xì)表格式如圖1所示。 實現(xiàn)方法 1. 建立明細(xì)表數(shù)據(jù)文件 首先,把明細(xì)表的數(shù)據(jù)信息,用文字編輯器按如下格式寫入磁盤文件MXB.TXT中,作為明細(xì)表數(shù)據(jù)文件。 “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函數(shù)提取有關(guān)數(shù)據(jù)信息,并把該數(shù)據(jù)信息賦給表格圖塊屬性。 注意:各字符串要加雙引號,空字符串引號“”不可省略,以便AutoLisp識別。 2.建立明細(xì)表格式圖塊 通常,一個明細(xì)表是由表頭和表體兩部分組成。表頭是固定的,因此可以用AutoCAD命令生成一個固定的表頭,并把它作為一個圖塊存入磁盤。 假設(shè)要得到如圖1所示的明細(xì)表,則先做一個如圖2所示的明細(xì)表表頭。 表頭實際上是一個圖形文件,本文設(shè)定該文件名為MXB.DWG,然后用AutoCAD命令建立一個如圖3所示的圖塊,設(shè)其文件名為MXB1.DWG,圖3中M1~M8均為屬性名。 當(dāng)用戶向表中插入該塊時,系統(tǒng)會向用戶詢問屬性值,此時用AutoLisp程序?qū)⑸厦娼⒌拿骷?xì)表數(shù)據(jù)文件中的數(shù)據(jù)分別賦給各個屬性。屬性的定義是用AutoCAD命令A(yù)TTDEF完成的。 編制程序 首先,用AutoLisp的I/O函數(shù)READ-LINE讀入數(shù)據(jù)文件MXB.TXT,再用字符串連接函數(shù)STRCAT給文件的每一行加上括號,此時數(shù)據(jù)類型為字符串(STR)。然后,再利用READ函數(shù)把字符串轉(zhuǎn)換成一個表(LIST),以方便AutoLisp對表中的每一項進(jìn)行各種操作。最后,用 AutoLisp的COMMAND函數(shù)調(diào)用INSERT命令,先將圖塊MXB.DWG插入表中,再將MXB1.DWG插入表中,用NTH函數(shù)將前面 AutoLisp讀入的數(shù)據(jù)中各項信息分別賦給MXB1.DWG中的各個屬性。 程序框圖如圖4所示。 下面給出實現(xiàn)上述功能的程序清單: (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) (print) ) 程序的安裝與使用 1.安裝程序 可以選擇以下三種裝載方式的任意一種: 在AutoCAD環(huán)境下,將MXB.LSP拷貝至當(dāng)前目錄,再執(zhí)行(LOAD“MXB”),即可裝載MXB.LSP。 先將MXB.LSP拷貝至\ACAD\SUPPORT子目錄下,再在\ACAD\SUPPORT\ACAD.LSP中加入下面一條語句: (AUTOLOAD “MXB”(“MXB”)) 即可實現(xiàn)啟動AutoCAD時自動裝載該程序。 先將MXB.LSP拷貝至\ACAD\SUPPORT子目錄下,再在\ACAD\SUPPORT\子目錄下的菜單文件ACAD.MNU中的合適位置處加上下面一條語句: [生成明細(xì)表]^C^C(LOAD “C:/ACAD/SUPPORT/MXB.LSP" MXB即可直接在菜單中操作生成明細(xì)表。 2.程序的使用 當(dāng)用戶裝載該程序并運(yùn)行之后,程序首先出現(xiàn)提示信息: Please input a point: 用戶給出一個定位點(diǎn)后,程序繼續(xù)提示: Please input file name: 再輸入明細(xì)表數(shù)據(jù)文件名后,程序繼續(xù)運(yùn)行,并提示: Please wait... 程序運(yùn)行結(jié)束后就可以生成一個的明細(xì)表。 |
AutoCAD學(xué)習(xí)交流 | AutoCAD集合 |

| 頂一下撒! |

至尊木蟲 (著名寫手)

謝謝分享 |
新蟲 (正式寫手)
銅蟲 (小有名氣)

| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 0805 316求調(diào)劑 +6 | 大雪深藏 2026-03-18 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 311求調(diào)劑 +3 | 冬十三 2026-03-24 | 3/150 |
|
|
[考研] 07化學(xué)280分求調(diào)劑 +6 | 722865 2026-03-23 | 6/300 |
|
|
[考研] 306求0703調(diào)劑一志愿華中師范 +10 | 紙魚ly 2026-03-21 | 11/550 |
|
|
[考研] 291求調(diào)劑 +3 | HanBeiNingZC 2026-03-24 | 3/150 |
|
|
[考研] 384求調(diào)劑 +3 | 子系博 2026-03-22 | 6/300 |
|
|
[考研] 269求調(diào)劑 +4 | 我想讀研11 2026-03-23 | 4/200 |
|
|
[考研] 350求調(diào)劑 +6 | weudhdk 2026-03-19 | 6/300 |
|
|
[考研] 求老師收我 +3 | zzh16938784 2026-03-23 | 3/150 |
|
|
[考研] 材料與化工085600,總分304,本科有兩篇sci參與,求調(diào)劑 +4 | 幸運(yùn)的醬醬 2026-03-22 | 5/250 |
|
|
[考研] 一志愿中南化學(xué)(0703)總分337求調(diào)劑 +9 | niko- 2026-03-19 | 10/500 |
|
|
[考研] 269專碩求調(diào)劑 +6 | 金恩貝 2026-03-21 | 6/300 |
|
|
[考研] 354求調(diào)劑 +7 | Tyoumou 2026-03-18 | 10/500 |
|
|
[考研] 求助 +5 | 夢里的無言 2026-03-21 | 6/300 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-18 | 6/300 |
|
|
[考研] 一志愿南昌大學(xué),327分,材料與化工085600 +9 | Ncdx123456 2026-03-19 | 9/450 |
|
|
[考研]
|
然11 2026-03-19 | 4/200 |
|
|
[考研] A區(qū)線材料學(xué)調(diào)劑 +5 | 周周無極 2026-03-20 | 5/250 |
|
|
[考研] 0817 化學(xué)工程 299分求調(diào)劑 有科研經(jīng)歷 有二區(qū)文章 +22 | rare12345 2026-03-18 | 22/1100 |
|
|
[考研] 261求B區(qū)調(diào)劑,科研經(jīng)歷豐富 +3 | 牛奶很忙 2026-03-20 | 4/200 |
|