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自带的编程语言,程序运行非常快,程序非常简洁。

 

posted on 2023-05-14 20:40  言+C  阅读(870)  评论(1)    收藏  举报