CAD与Excel之间数据传递的思路

CAD与Excel之间数据传递的思路

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

CAD与Excel之间数据传递的思路

相关文章:

你感兴趣的文章:

标签云: