CAD中图文信息比较直观,但基本不具备数据统计功能。Excel数据统计方便,但往往不能直观地表达信息。所以通常的做法是在CAD图纸中附上Excel表格信息。
这种方法最大的弊端在于:如果CAD图上(或者Excel数据)中的信息有修改,就需要在Excel数据(或者CAD图上)中的相对应信息再次修改,这样重复性的劳动费时费力还容易出错。
如果你曾受此折磨,你可以接着往下看
情形一:先有表格,需要在CAD图上标注【非表格形式】
对于此情形,通常的做法是复制粘贴,或者复制直接输入文字,效率极低。
针对此情形,我的思路如下
此方法最大的好处在于,你只需要选择一个定位点,即可自动输入相应信息。
看起来高大上,其实要实现此功能特别简单(当然你需要花一点时间了解一下Autolisp,否则接下来就是天书时间),你只需要会用open、read-line以及entmake这三个主要函就可以了。
思路如下:
1、先把Excel转成txt格式,直接另存为.txt格式即可
2、在Autolisp,使用open函数打开此文件:
(setq crfile (open (getfiled “请选择文件” “D:/” “txt” 0) “r”))
此语句的意思是:用getfiled函数查找文件,用open函数以只读(“r”)方式打开,并用setq函数赋给crfile。
3、用while循环依次读取每行数据,并在指定点输入此行数据
(setq rowsj (read-line crfile))
此语句的意思是:用read-line读取crfile文件中的一行数据【每运行一次,就会依次读取下一行】,并将此数据赋给rowsj
(entmake (list ‘(0 . “MTEXT”) ‘(100 . “AcDbEntity”) ‘(100 . “AcDbMText”) ‘(7 . “Standard”) (cons 1 rowsj) (cons 10 dhcrd))
输入数据用entmake函数,entmake后为多行文字生成所必需的群码表,其中dhcrd为之前取得的插入点。
到此,这个功能就能实现了,是不是很简单?(相应函数的语法可以百度) 1