在AutoCAD中自动生成明细表
本文通过实例介绍如何在AutoCAD系统下自动生明细表的方法。
本文例子中的明细表格式如图1所示。
实现方法
1. 建立明细表数据文件
首先,把明细表的数据信息,,作为明细表数据文件。
“1”“”“气缸透盖”“1”“ZG35”“”“”“”
“2”“”“气缸体”“1”“35”“”“”“”
“3”“”“螺塞”“2”“A3F”“”“”“”
“4”“GB6170-86”“螺母M10”“12”“A3F”“”“”“”
“5”“”“压盖”“1”“TH200”“”“”“”
……
然后用AutoLisp的READ-LINE函数提取有关数据信息,并把该数据信息赋给表格图块属性。
注意:各字符串要加双引号,空字符串引号“”不可省略,以便AutoLisp识别。
通常,一个明细表是由表头和表体两部分组成。表头是固定的,因此可以用AutoCAD命令生成一个固定的表头,并把它作为一个图块存入磁盘。
假设要得到如图1所示的明细表,则先做一个如图2所示的明细表表头。
表头实际上是一个图形文件,,然后用AutoCAD命令建立一个如图3所示的图块,,图3中M1~M8均为属性名。
当用户向表中插入该块时,系统会向用户询问属性值,此时用AutoLisp程序将上面建立的明细表数据文件中的数据分别赋给各个属性。属性的定义是用AutoCAD命令ATTDEF完成的。
编制程序
首先,用AutoLisp的I/O函数READ-,再用字符串连接函数STRCAT给文件的每一行加上括号,此时数据类型为字符串(STR)。然后,再利用READ函数把字符串转换成一个表(LIST),以方便AutoLisp对表中的每一项进行各种操作。最后,MAND函数调用INSERT命令,,,。
程序框图如图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
在AutoCAD中自动生成明细表1 来自淘豆网www.taodocs.com转载请标明出处.