CAD 管线表的自动生成-Lisp
管线表是电气设计的重要图纸,原理不同,电缆型号和数量不同,因此,手动设计管线表是很费时的,也容易出错。
本文介绍采用Visual Lisp 实现电气图纸-管线表的自动生成方法。
1. 管线表的基本构成
管线表通常由以下几部分构成,电缆编号、起点、终点、电缆规格型号和长度等,如下图所示:

管线表中的数据是从电气原理图中取得的,不同的原理,控制电缆差别很大,比如,普通电机,只有3根控制电缆:

变频器控制的电机,则有7根控制电缆:

2. 程序数据的采集
由于Visual Lisp 没有数据库,因此,所以数据从excel文件中读取:
2.1 设备信息如下:

2.2 原理图信息如下:

不同的原理,控制电缆的数据不同
3. CAD 对话窗
本软件开发的功能很多,本次仅介绍62号功能的管线表:

点击62号功能后,提示选择excel文件,根据提示,给定插入点,一次生成全部图纸。
4. 主要程序
主程序如下:
(defun Creat_4S_From_Table_V1()
(setq sheet1 "传动性能表" )
(setq sheet2 "基础数据表" ) ;;;;表单名称
;;;;;读入数据:传动性能表和原理数据
(read_excel_All_twosheet sheet1 sheet2)
(setq cdb_list nil)
(setq cd_num_list nil) ;;;传动号
(setq cd_name_list nil) ;;;设备名称
(setq cd_Power_list nil) ;;;电机功率
(setq cd_AN_list nil) ;;;配电柜
(setq cd_AC_list nil) ;;;操作箱
(setq cd_yl_list nil) ;;;原理编号
( Create_cdb_list_all list_all_data )
;;;;根据传动性能表输出相应的数据表
(Creat_All_List_V1)
;;;;;开始画图
;%%%%%%%%%%%%%%%%%%%%%%%%
(setq Base1 (getpoint "\n指定插入的基准点:"))
(setq No_1 0)
(Draw_All_DI_V1 )
(Draw_All_DQ_V1 )
(Draw_All_GXB_V1 )
( wb_do_table)
(wb_diyaping_table)
)
生成管线表的程序如下:
(defun Draw_All_GXB_V1 ( )
(Awrite_gxbtk_V2)
(setq lengthgxb 28)
;;; ;;;处理动力电缆
(setq i1 (vl-list-length GXB_list_Power))
(setq i2 0 )
(setq j1 0) ;;;;j1控制写入行
(repeat i1
(if (> j1 lengthgxb)
(progn
(Awrite_gxbtk_V2)
(setq j1 0)
)
)
(setq ps1 (polar p0 0 0))
(setq pt1 (polar ps1 (* pi 0.5) (- 262 (* j1 8))))
(Fill_GXB_V1 i2 j1 (nth i2 GXB_list_Power ))
(setq j1 (1+ j1))
(setq i2 (1+ i2))
)
;;; ;;;处理控制电缆
(setq i1 (vl-list-length GXB_list_Control))
(setq i2 0 )
;;; (setq j1 0) ;;;;j1控制写入行
(repeat i1
(if (> j1 lengthgxb)
(progn
(Awrite_gxbtk_V2)
(setq j1 0)
)
)
(setq ps1 (polar p0 0 0))
(setq pt1 (polar ps1 (* pi 0.5) (- 262 (* j1 8))))
(Fill_GXB_V1 i2 j1 (nth i2 GXB_list_Control ))
(setq j1 (1+ j1))
(setq i2 (1+ i2))
)
)
5. 运行结果
运行后,一次生成数字量输入输出板和管线表等图,准确,迅速:

6. 小结
本文仅对Visual Lisp 生成图纸进行了简单的介绍,后续的文章会对各个功能进行详细的介绍。
Visual Lisp 可以实现强大的功能,是AUTOCAD自带的编程语言,程序运行非常快,程序非常简洁。
本文简要介绍了采用Visual LIsp 实现图纸自动生成的方法,采用自动生成,快速、准确。
浙公网安备 33010602011771号