AutoCAD本身没有表格处理功能,设计图纸中工程量表、钢筋表等涉及到表格生成的问题可以采用以下方法处理:
(1)直接把Word或Excel文件中的表格直接粘贴到CAD图形中,修改时只要双击图中的表格即可进入Word或Excel中进行编辑修改,修改完成后退出即可返回到AutoCAD中继续进行设计,该法优点是方便,快捷,易于掌握,可以充分利用Excel的强大计算功能。缺点是表格在AutoCAD中并不是一个普通图元,无法利用CAD功能对表格的字高、颜色和线宽进行编辑。
(2)编制LSP程序,依次输入表格标题、表格行数、表格列数、表格行高和列宽以及表格插入点等参数,可以自动生成表格,表格中已经按仿Excel形式填入了文字,可以用字处理软件对表格中文字进行编辑修改。
(defun C:mtab()
(setq tb1 nil tb2 nil tb3 nil)
(setq rows (getint "表格行数"))
(setq cols (getint "表格列数"))
(setq rowh (getreal "行高"))
(setq colw (getreal "列宽"))
(setq p1 (getpoint "/n表格左上角点位置:"))
(command "pline" p1 "w" "0.5" "0.5"
(setq p2 (list (+ (car p1) (* cols colw)) (cadr p1)))
(setq p4 (list (car p2) (- (cadr p2) (* rows rowh))))
(setq p3 (list (car p1) (- (cadr p2) (* rows rowh))))
"C" )
(setq n 1)
(while (< n rows);绘水平线表格
(command "pline" (list (car p1) (- (cadr p1) (* n rowh))) "w" "0" "0"
(list (car p2) (- (cadr p2) (* rowh n))) "")
(setq n (+ n 1))
)
(setq n 1)
(while (< n cols) ;绘垂直表格线
(command "pline" (list (+ (car p1) (* n colw)) (cadr p1)) "w" "0" "0" (list (+ (car p1) (* n colw)) (cadr p3))
"")
(setq n (+ n 1))
)
(command "text" "m" (list (+ (car p1) (* 0.5 cols colw))
(+ (cadr p1) 5)) "3" "0" "TITLE" )
(setq n 0)
(while (< n rows)
(setq m 0)
(while (< m cols)
(cond
((< m 26) (setq bzstr (chr (+ 65 m))))
((>= m 26) (setq bzstr (strcat (chr (+ 64 (/ m 26))) (chr (+ 65 (- m (* 26 (/ m 26))))))))
)
(command "text" "m" (list (+ (car p1) (* 0.5 colw) (* m colw));表格内容标注
(- (cadr p1) (* 0.5 rowh) (* n rowh)))
(getvar"TEXTSIZE") "0" (strcat bzstr (itoa (+ n 1))))
(setq m (+ m 1))
)
(setq n (+ n 1))
))
2 .6 高程小数位数处理
尺寸标注小数位数很容易调整,但诸如高程、表格中数字要调整则很困难,借助LSP程序的调整很方便,只要选取需要调整的数字,根据提示输入需要保留的小数位数,则程序自动对所有选种数字进行修改。
(defun entsgc()
(setq n 0)
(setq sh (sslength e1))
(while (< n sh) (setq x (entget (ssname e1 n)))
(if (= (fld 0 x) "TEXT")
(progn
(setq agc (fld 1 x))
(setq c (substr agc 1 1))
(if (or (= c "+") (= c "-") (and (>= c "0") (<= c "9")))
(progn





