将指定块的“ATTDEF"信息写入Excel.csv中
刚刚开始学,程序很笨了,请各位老师多指点:$功能的目的是将图块中增强属性中的文字写入到csv文件中,后面再借助Excel的函数对数据进行处理。
用AutoCad时间长了,接触到一些插件,总觉得不适合自己的使用习惯,也不是说这些插件不好,只是不适合我吧;P
我是做弱电工程的,需要在图纸上布放大量的点位,这些点位都有独立的标签,根据点位的性质不同,标签包括的信息也不尽相同,大致包括:设备标签及端口、对端标签及端口、IP地址等。要求图纸和标签规划表必须一致,同时与现场施工也要一致,在没接触autolisp以前,花大力气找图纸与表格文本的错误,接触后,发现问题简单多了,尤其是这种简单重复工作,原来是最花时间,却最没价值的工作,终于找到思路了,可以真正做到把时间用在方案优化上了,打算设计一个小插件,大体思路如下:
1、定制标准图块,将标签信息写入到图块的增强属性中;
2、图纸上插入图块;
3、插件根据输入预先设计好的程序对标签进行自动填写;
4、图纸审核后,将所有标签导出的Excel表格中;
5、打印标签,交付施工班组执行;
修改标签的主程序基本成形,只是写的不满意,还要再仔细查查,再上传上来,请各位老师帮忙优化,
先将表格表头制作部分的上传上来,请老师帮优化:loveliness:
(defun Make-Exceltitle (blk_n/ temp0 a ent_type)
(setq temp0 (strcat "Block_info_" blk_n "_" (itoa (fix (getvar 'cdate)))))
(findfile temp0)
(setq a (strcat "保存图块:" blk_n "信息->Excel"))
(setq path (getfiled a temp0 "csv" 1))
(setq file (open path "a"))
(setq a (tblobjname "block" blk_n))
(setq temp0 "序号,")
(while (/= a nil)
(setq ent_type (cdr (assoc 0 (entget a))))
(if (= ent_type "ATTDEF")
(setq temp0 (strcat temp0 (cdr (assoc 2 (entget a))) "," ))
)
(setq a (entnext a))
)
(write-line temp0 file)
(close file)
)
自己使用管他笨不笨呢,能整出来用就行了啦,至于优化等自己学多了再优也不迟
页:
[1]