qiannianhuazi 发表于 2021-3-27 16:50:59

PressCAD注解输出的程序,LISP语言,自己编的其中之一功能

本帖最后由 qiannianhuazi 于 2021-3-31 19:34 编辑

自己编写的,对接另外的自编绘制程序,也可对接PESSCAD的(defun c:n222( / note2_ss11note2_first_corner note2_other_corner textheight00 jg_zb_wza1 jg_zb_wza2 jg_zb_wza3 jg_zb_wza4
                              jg_zb_wza5 jg_zb_wza6 jg_zb_wza7 jg_zb_wza8 jg_zb_wza9 jg_zb_wza10 jg_zb_wza11 jg_zb_wza12
                              jg_zb_wza13 jg_zb_wza14 jg_zb_wza15 jg_zb_wzcgy jg_zb_wzdyx jg_zb_wzdyx1
                              jg_ls_wz1 jg_ls_wz3 jg_ls_wz4 jg_ls_wz5 jg_ls_wz13 jg_ls_wz6 jg_ls_wz14 jg_ls_wz2 jg_ls_wzdyx
                              jg_ls_wzdyx1 jg_ls_wz15 jg_ls_wz12 jg_ls_wz7 jg_ls_wz8 jg_ls_wz9 jg_ls_wz10 jg_ls_wzcgy jg_ls_wz11
                              jg_ls_wz_all1
               );;
(setvar "cmdecho" 0)
(SETVAR "osmode" 0)
(command "ucs" "w" "limits" "off")
(command "-style""standard" "txt.shx,gbcbig.shx" 0 0.8 0 "n" "n" "") ;;设置默认字体样式
(if(not (tblsearch "layer" "TEXT"))
    (command "layer" "n" "TEXT" "C" "4" "TEXT" "")
)
(if(not (tblsearch "layer" "DIM"))
    (command "layer" "n" "DIM" "C" "1" "DIM" "")
)
(command "layer" "on" "TEXT" "")
(command "layer" "on" "DIM" "")
(command "layer" "on" "0" "")
(prompt "\n ******输出加工注解程序,选取模板范围******")
(setq note2_first_corner (getpoint "\n >>>请点选模板的左下第一角点:"))
(setq note2_other_corner (getcorner note2_first_corner "\n >>>请点选模板的右上第二角点:"))
(if (= (type textheight) 'REAL)
    (progn
      (setq textheight00 (atof (getstring (strcat "\n >>>请输入标注文字高度<" (rtos textheight 2 0) ">:"))))
      (if (or (= textheight00 nil)(= textheight00 "")(<= textheight00 0))
         (setq textheight textheight)
         (setq textheight textheight00)
       )
   )
   (setq textheight (atof (getstring "\n >>>请输入标注文字高度<6>:")))
)
(if (or (= textheight nil)(= textheight "")(<= textheight 0)) (setq textheight 6.0))
;(command "zoom" "w" note2_first_corner note2_other_corner)
;(command "zoom" "1.0x")
(setq zhakai "NO")
(command "undo" "be")
(setq note2_ss_insert (ssget "c" note2_first_corner note2_other_corner '((0 . "INSERT"))))
(if note2_ss_insert
    (progn
   (setq iit 0 zhakai "YES")
   (repeat (sslength note2_ss_insert)
      (command "explode" (ssname note2_ss_insert iit));;;炸开图元
      (setq iit (+ iit 1))
   )
   )
)
(setq note2_ss11 nil note2_ss22 nilnote2_ss33 nilnote2_ss44 nil)
;(setq note2_ss11 (ssget "c" note2_first_corner note2_other_corner '((0 . "CIRCLE,*LINE,INSERT"))))
(setq note2_ss11 (ssget "c" note2_first_corner note2_other_corner '((0 . "CIRCLE"))))
(setq jg_ls_wz1 nil jg_ls_wz2 nil jg_ls_wz3 nil jg_ls_wz4 nil jg_ls_wz5 nil jg_ls_wz6 nil
      jg_ls_wz7 nil jg_ls_wz8 nil jg_ls_wz9 nil jg_ls_wz10 nil jg_ls_wzcgy nil jg_ls_wz11 nil
      jg_ls_wz12 nil jg_ls_wz13 nil jg_ls_wz14 nil jg_ls_wz15 nil jg_ls_wzdyx nil jg_ls_wzdyx1 nil)
(setq jg_zb_wza1 nil jg_zb_wza2 nil jg_zb_wza3 nil jg_zb_wza4 nil jg_zb_wza5 nil jg_zb_wza6 nil jg_zb_wza7 nil
      jg_zb_wza8 nil jg_zb_wza9 nil jg_zb_wza10 nil jg_zb_wza11 nil jg_zb_wza12 nil jg_zb_wza13 nil jg_zb_wza14 nil
      jg_zb_wza15 nil jg_zb_wzcgy nil jg_zb_wzdyx nil jg_zb_wzdyx1 nil jg_zb_wz_all1 '())
(note2_get_biaoqian_ls note2_ss11)
(setq jg_zb_wz_all1 (append jg_zb_wza1 jg_zb_wza2 jg_zb_wza3 jg_zb_wza4 jg_zb_wza5 jg_zb_wza6 jg_zb_wza7
                              jg_zb_wza8 jg_zb_wza9 jg_zb_wza10 jg_zb_wza11 jg_zb_wza12 jg_zb_wza13 jg_zb_wza14
                              jg_zb_wza15 jg_zb_wzcgy jg_zb_wzdyx jg_zb_wzdyx1));;结合所有坐标/编号列表
(setq jg_ls_wz_all1 (append jg_ls_wz1 jg_ls_wz3 jg_ls_wz4 jg_ls_wz5 jg_ls_wz13 jg_ls_wz6 jg_ls_wz14 jg_ls_wz2
                              jg_ls_wzdyx jg_ls_wzdyx1 jg_ls_wz15jg_ls_wz12 jg_ls_wz7jg_ls_wz8 jg_ls_wz9 jg_ls_wz10
                              jg_ls_wzcgy jg_ls_wz11));;按注解编号子母顺序,结合所有加工文字列表
(if (= zhakai "YES")
    (progn
   (command "undo" "B");;后退至炸开图元之前
   (note2_jg_bh_out jg_zb_wz_all1);;写所有图元编号
    )
)
(note2_jg_wz_out jg_ls_wz_all1);;动态输出加工注解
(SETVAR "osmode" 39)
(defun *error* (in_msg)    ;将描述错误的字串存入变数in_msg,还原定义错误后执行程序
       (princ "返回错误原因:")
       (princ in_msg)
   )      ;显示错误资讯
(princ)
)


(defun note2_get_biaoqian_ls (note2_ss11 / data1_list zjpd_list lsyk_dd lsct_dd ndz_dd dlx_dd zfyk_dd dglsct_dd thk_dd
                                       wdz_ddqdy_ddjzk_ddnxwz_ddfsdlx_ddczk_dd yczk_dddyx1_dd
                                       ss_lswk1 ss_lswk2 aa00 name00 dd00 deep00 jx00 zs00 dh00
                                       aa name dd deep jx dh zs ) ;;得到群码-3数据列表
(setq data1_list '() lsct_dd '() lsyk_dd'() gdx_dd '() ndz_dd '() dlx_dd '() zfyk_dd '() dglsct_dd '() thk_dd '()
    wdz_dd '() qdy_dd '() jzk_dd '() nxwz_dd '() fsdlx_dd '()czk_dd '() yczk_dd'() dyx1_dd '())
(if note2_ss11
(while (/= (sslength note2_ss11) 0)
   (if (zjsx_zz_getx (ssname note2_ss11 0))
    (if (and (/= (nth 0 (zz_read_zfc qm3_jg_data)) "")(/= (zz_read_zfc qm3_jg_data) nil))
   (progn
      (setq aa   (nth 0 zf_list))
      (setq name (nth 1 zf_list))
      (setq dd   (nth 2 zf_list))
      (setq deep (nth 3 zf_list))
      (setq jx   (nth 4 zf_list))
      (if (= (setq zs (nth 5 zf_list)) nil)
         (setq zs "NIL")
      )
      (setq zf_list11 zf_list)
      (if (= (nth 1 (zf_fenli1 name)) "BOX")
         (if (= (setq zs (nth 8 zf_list11)) nil)
         (setq zs "NIL")
         )
      )
      (setq mk qm3_pm_data)
      (if (or (= qm3_dh_data nil) (= qm3_dh_data ""))
         (setq dh "NIL")
         (setq dh qm3_dh_data)
       )
      (setq aa00 aa)
      (setq name00 name)
      (setq dd00 dd)
      (setq deep00 deep)
      (setq jx00 jx)
      (setq zs00 zs)
      (setq dh00 dh)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      (if (= (cdr (assoc 0 (entget (ssname note2_ss11 0)))) "CIRCLE")
      (progn
          (setq x_dd (rtos (cdr (assoc 40 (entget (ssname note2_ss11 0)))) 2 3))
          (setq x_pt (cdr (assoc 10 (entget (ssname note2_ss11 0)))))

;;;;;;;;;;;;;;;;;沉头过孔 A*类,********后续增加单独沉头f_sinkTSCR
          (if (or (= name00 "gen1TSCR+")(= name00 "gen1BSCR+")(= name00 "gen1TSCR")(= name00 "gen1BSCR"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "f_sinkTSCR")(= name "f_sinkBSCR")(= name "f_sink_scrTSCR")(= name "f_sink_scrBSCR"))
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq lsct_dd (cons zjpd_list lsct_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;牙孔 沉头攻牙 M*类
          (if (or (= name00 "m_screwTSCR+")(= name00 "m_screwBSCR+")(= name00 "m_screwTSCR")
                  (= name00 "m_screwBSCR")(= name00 "Fm_screwTSCR")(= name00 "Fm_screwBSCR")
                  (= name00 "m_screwHO"))
             (progn
               (setq ss_lswk2 nil jx001 niljx002 nil)
               (setq ss_lswk2 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "ARC") (cons 10 x_pt) )))
               (if ss_lswk2
                (if (= (sslength ss_lswk2) 0);;判断攻牙正面背面
                  (setq jx00 "*面")
                  (progn
                     (setq zf0 0)
                     (repeat (sslength ss_lswk2);;
                     (if (OR (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN")
                           (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN2")
                           (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "DASHED"))
                         (progn
                           (setq jx001 "背面")
                           (setq jx00 "背面")
                         )
                         (progn
                           (setq jx002 "正面")
                           (setq jx00 "正面")
                         )
                     )
                     (if (and (= jx001 "背面") (= jx002 "正面"))
                        (setq jx00 "正面+背面")
                        )
                     (setq zf0 (+ zf0 1))
                     );;repeat
                  )
                )
                (setq jx00 "*面")
               )
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "f_sink_scrTSCR")(= name "f_sink_scrBSCR"))
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq lsyk_dd (cons zjpd_list lsyk_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;固定销孔 B*类,********后续增加单独沉头g_sinkTPIN
          (if (or (= name00 "gen1RTPIN+")(= name00 "gen1RBPIN+")
                  (= name00 "gen1RTPIN")(= name00 "gen1RBPIN")
                  (= name00 "posTPIN")(= name00 "posBPIN")
                  (= name00 "posTPIN+")(= name00 "posBPIN+")
                  (= name00 "gen1TPIN")(= name00 "gen1BPIN"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "g_sinkTPIN")(= name "g_sinkBPIN"))
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq gdx_dd (cons zjpd_list gdx_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;内导柱孔 C*类,********后续增加单独沉头g_sinkIGPB
          (if (or (= name00 "posIGPB+")(= name00 "posIGPB")(= name00 "genIGPB"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (= name "g_sinkIGPB")
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq ndz_dd (cons zjpd_list ndz_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;顶料销孔 D*类,********后续增加单独沉头g_sinkTLPS/g_sinkBLPS
          (if (or (= name00 "gen0TLPS+")(= name00 "gen0BLPS+")
                  (= name00 "gen0TLPS")(= name00 "gen0BLPS")
                  (= name00 "genTLPS")(= name00 "genBLPS"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "g_sinkTLPS")(= name "g_sinkBLPS")(= name "set_screwTLPS")(= name "set_screwBLPS"))
                      (progn
                     (if (or (= name "set_screwTLPS")(= name "set_screwBLPS"))
                           (setq jx00 "止付")
                     )
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq dlx_dd (cons zjpd_list dlx_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;如果中间有顶针孔则忽略,否则按止付牙 D*类
          (if (or (= name00 "set_screwTLPS")(= name00 "set_screwBLPS") (= name00 "set_screwBGLS") )
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (setq name nil ssnn 0 run_time "no_onlyone")
               (if (/= (sslength ss_lswk1) 0)
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "gen0TLPS+")(= name "gen0BLPS+")
                            (= name "gen0TLPS")(= name "gen0BLPS")
                            (= name "genTLPS")(= name "genBLPS"))
                     (setq run_time "onlyone");;判断是否有顶料销内孔图元
                     )
                     (setq ssnn (+ ssnn 1))
                  );;repeat
               )
               (if (/= run_time "onlyone")
               (progn
                   (setq ss_lswk2 nil jx001 niljx002 nil)
                   (setq ss_lswk2 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "ARC") (cons 10 x_pt) )))
                   (if ss_lswk2
                  (if (= (sslength ss_lswk2) 0);;判断攻牙正面背面
                      (setq jx00 "*面")
                      (progn
                         (setq zf0 0)
                         (repeat (sslength ss_lswk2);;
                           (if (OR (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN")
                               (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN2")
                               (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "DASHED"))
                           (progn
                               (setq jx001 "背面")
                               (setq jx00 "背面")
                           )
                           (progn
                               (setq jx002 "正面")
                               (setq jx00 "正面")
                           )
                           )
                           (if (and (= jx001 "背面") (= jx002 "正面"))
                              (setq jx00 "正面+背面")
                            )
                         (setq zf0 (+ zf0 1))
                         );;repeat
                      )
                  )
                  (setq jx00 "*面")
                   )
                   (setq gg11 "0.000")
                   (setq dep11 "0.000")
                   (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
                   (setq zfyk_dd (cons zjpd_list zfyk_dd))
               )
               )
             )
          )

;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;等高套沉头过孔,牙孔 Q*类,********后续增加单独沉头g_sinkCSR
          (if (or (= name00 "gen0CSR+")(= name00 "gen0CSR")(= name00 "m_screw0CSR"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (= name "g_sinkCSR")
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (if (= name00 "m_screw0CSR")
               (progn
                   (setq ss_lswk2 nil jx001 niljx002 nil)
                   (setq ss_lswk2 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "ARC") (cons 10 x_pt) )))
                   (if ss_lswk2
                  (if (= (sslength ss_lswk2) 0);;判断攻牙正面背面
                      (setq jx00 "*面攻")
                      (progn
                         (setq zf0 0)
                         (repeat (sslength ss_lswk2);;
                           (if (OR (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN")
                               (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "HIDDEN2")
                               (= (cdr (assoc '6 (entget (ssname ss_lswk2 zf0)))) "DASHED"))
                           (progn
                               (setq jx001 "背面攻")
                               (setq jx00 "背面攻")
                           )
                           (progn
                               (setq jx002 "正面攻")
                               (setq jx00 "正面攻")
                           )
                           )
                           (if (and (= jx001 "背面攻") (= jx002 "正面攻"))
                              (setq jx00 "正面+背面攻")
                            )
                         (setq zf0 (+ zf0 1))
                         );;repeat
                      )
                  )
                  (setq jx00 "*面攻")
                   )
               )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq dglsct_dd (cons zjpd_list dglsct_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;弹簧孔 T*类
          (if (or (= name00 "f_sinkTSPR")(= name00 "f_sinkBSPR")(= name00 "gen1TSPR")(= name00 "gen1BSPR"))
             (progn
               (if (OR (= (cdr (assoc '6 (entget (ssname note2_ss11 0)))) "HIDDEN")
                   (= (cdr (assoc '6 (entget (ssname note2_ss11 0)))) "HIDDEN2")
                   (= (cdr (assoc '6 (entget (ssname note2_ss11 0)))) "DASHED"))
                  (if (> (atof deep00) 0)
                  (ALERT "存在深度数据与线型不一致的图元,确认后以深度数据为准,请检查!!!")
                  )
                  (if (< (atof deep00) 0)
                  (ALERT "存在深度数据与线型不一致的图元,确认后以深度数据为准,请检查!!!")
                  )
               )
               (setq gg11 "0.000")
               (setq dep11 "0.000")
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq thk_dd (cons zjpd_list thk_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;外导柱孔 O*类
          (if (or (= name00 "gen0QOGPB+")(= name00 "genQOGPB")(= name00 "posOGPB+")(= name00 "posOGPB"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (= name "g_sinkOGPB")
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq wdz_dd (cons zjpd_list wdz_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;起吊牙孔 L*类
          (if (= name00 "m_screwUSER")
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (setq gg11 "0.000")
               (setq dep11 "0.000")
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq qdy_dd (cons zjpd_list qdy_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;基准孔 U*类
          (if (= name00 "gen1RORG+")
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (/= (sslength ss_lswk1) 0)
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (= name "posORG")
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq jzk_dd (cons zjpd_list jzk_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;内限位孔 N*类
          (if (or (= name00 "gen1LTH") (= name00 "f_sinkLTH"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (setq gg11 "0.000")
               (setq dep11 "0.000")
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq nxwz_dd (cons zjpd_list nxwz_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;两用销孔 D*类
          (if (or (= name00 "posBGLS+")(= name00 "posBGLS")
                  (= name00 "genBGLS")(= name00 "f_sinkBGLS"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (and (/= (sslength ss_lswk1) 0)(or (= name00 "posBGLS+") (= name00 "posBGLS")) )
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (= name "f_sinkBGLS")
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq fsdlx_dd (cons zjpd_list fsdlx_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;插针孔 F*类 +内定位孔 F*类
          (if (or (= name00 "posBPP+")(= name00 "posBPP")
                  (= name00 "gen1BPP")
                  (= name00 "posPPIN+")(= name00 "posPPIN")
                  (= name00 "genPPIN"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (and (/= (sslength ss_lswk1) 0)(or (= name00 "posBPP+") (= name00 "posBPP") (= name00 "posPPIN+")(= name00 "posPPIN")) )
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (OR (= name "g_sinkBPP")(= name "g_sinkPPIN"))
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq czk_dd (cons zjpd_list czk_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;圆冲针孔 P*类
          (if (or (= name00 "pos1AP0+")(= name00 "pos1AP0")(= name00 "pos1AP")
                  (= name00 "gen1AP0")(= name00 "gen1AP")(= name00 "gen1"))
             (progn
               (setq ss_lswk1 nil)
               (setq ss_lswk1 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "CIRCLE") (cons 10 x_pt) )))
               (note2_del_yss1 (ssadd (ssname note2_ss11 0)) ss_lswk1);;把当前图元和一样半径的选择集从ss_lswk1中删掉
               (if (and (/= (sslength ss_lswk1) 0)(or (= name00 "pos1AP0+") (= name00 "pos1AP0")(= name00 "pos1AP")) )
                (progn
                  (setq dd nil deep nil ssnn 0 run_time "no_onlyone")
                  (repeat (sslength ss_lswk1)
                  (zjsx_get_biaoqian (ssadd (ssname ss_lswk1 ssnn)))
                  (if (or (= name "g_sink1AP0")(= name "s_sink1AP0"))
                      (progn
                     (setq gg11 dd)
                     (setq dep11 deep)
                     (note2_del_yss1 ss_lswk1 note2_ss11);;如果存在外圆,从把当前图元和一样半径的选择集从note2_ss11中删除
                     (setq run_time "onlyone");;仅抓取一个
                     )
                     (if (/= run_time "onlyone")
                         (progn
                           (setq gg11 "0.000")
                           (setq dep11 "0.000")
                         )
                     )
                     )
                  (setq ssnn (+ ssnn 1))
                  )
                )
                (progn
                  (setq gg11 "0.000")
                  (setq dep11 "0.000")
                )
               )
               (setq zjpd_list (list x_dd (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/" gg11 "/" dep11)
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
               (setq yczk_dd (cons zjpd_list yczk_dd))
             )
          )
;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;线割孔,铣孔 K*类 圆孔类
          (if (or(= name00 "CP1")(= name00 "CP2")(= name00 "CP3")(= name00 "CP4")
               (= name00 "CP5")(= name00 "精铣") (= name00 "铣床"))
          (progn
             (setq zjpd_list (list dd00 (strcat aa00 "/" name00 "/" dd00 "/" x_dd "/" deep00 "/" jx00 "/" zs00 "/" dh00"/0.000/0.000")
                        x_pt (ssname note2_ss11 0) ));;转为标准格式列表
             (setq dyx1_dd (cons zjpd_list dyx1_dd))
            )
          )
;;;;;;;;;;;;;;;;;;
      )
      )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      )
   )
    );;if/=""
       (note2_del_yss1 (ssadd (ssname note2_ss11 0)) note2_ss11);;当前图元从note2_ss11中删除
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
);;while
);if
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq jg_ls_wz1 '() jg_ls_wz2 '()jg_ls_wz3 '()jg_ls_wz4 '() jg_ls_wz5 '()jg_ls_wz6 '()
      jg_ls_wz7 '() jg_ls_wz8 '()jg_ls_wz9 '() jg_ls_wz10 '() jg_ls_wz11 '() jg_ls_wz12 '()
      jg_ls_wz13 '() jg_ls_wz14 '() jg_ls_wz15 '()   )
(if lsct_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px lsct_dd));;对螺丝沉头标准格式列表按半径大小排序
      (note2_qm3_stlist_jg1 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz1
   )
   )
(if lsyk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px lsyk_dd));;对螺丝牙孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg2 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz2
   )
   )
(if gdx_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px gdx_dd));;对固定销孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg3 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz3
   )
   )
(if ndz_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px ndz_dd));;对内导柱孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg4 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz4
   )
   )
(if dlx_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px dlx_dd));;对顶料销孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg5 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz5
   )
   )
(if zfyk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px zfyk_dd));;对止付牙孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg6 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz6
   )
   )
(if dglsct_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px dglsct_dd));;对等高套孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg7 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz7
   )
   )
(if thk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px thk_dd));;对弹簧孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg8 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz8
   )
   )
(if wdz_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px wdz_dd));;对外导柱孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg9 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz9
   )
   )
(if qdy_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px qdy_dd));;对起吊孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg10 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz10
   )
   )
(if jzk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px jzk_dd));;对基准孔孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg11 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz11
   )
   )
(if nxwz_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px nxwz_dd));;对内限位孔孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg12 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz12
   )
   )
(if fsdlx_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px fsdlx_dd));;对两用销孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg13 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz13
   )
   )
(if czk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px czk_dd));;对插针孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg14 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz14
   )
   )
(if yczk_dd
    (progn
      (setq data1_list (note2_qm3_to_stlist_px yczk_dd));;对圆冲针孔标准格式列表按半径大小排序
      (note2_qm3_stlist_jg15 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wz15
   )
   )
(if dyx1_dd
    (progn
       (setq data1_list (note2_qm3_to_stlist_px dyx1_dd));;对多义线之外的圆孔标准格式列表按半径大小排序
       (note2_qm3_stlist_jgdyx1 data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wzdyx1
   )
   )


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下增加侧攻牙
(setq note2_ss22 (ssadd) cmgy_dd nil x_pt1_list '())
(setq note2_ss22 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "LINE") (cons 6 "CENTER"))))
(if note2_ss22
    (while (/= (sslength note2_ss22) 0)
   (if (zjsx_zz_getx (ssname note2_ss22 0))
      (if (and (/= (nth 0 (zz_read_zfc qm3_jg_data)) "")(/= (zz_read_zfc qm3_jg_data) nil))
       (progn
      (setq x_pt (cdr (assoc 10 (entget (ssname note2_ss22 0)))))
      (setq x_pt1 (cdr (assoc 11 (entget (ssname note2_ss22 0)))))
      (setq aa00   (nth 0 zf_list))
      (setq name00 (nth 1 zf_list))
      (setq dd00   (nth 2 zf_list))
      (setq deep00 (nth 3 zf_list))
      (setq jx00 (nth 4 zf_list))
      (setq zs00 (nth 5 zf_list))
      (if (or (= qm3_dh_data nil) (= qm3_dh_data ""))
         (setq dh00 "NIL")
         (setq dh00 qm3_dh_data)
      )
      (if (= name00 "m_screwHO")
          (progn
             (setq zjpd_list (list dd00 (strcat aa00 "/" name00 "/" dd00 "/0.000/" deep00 "/" jx00 "/" zs00 "/" dh00"/0.000/0.000")
                        (list x_pt x_pt1) (ssname note2_ss22 0) ));;转为标准格式列表
             (setq cmgy_dd (cons zjpd_list cmgy_dd))
            )
         )
       )
      )
   )
   (del_ss1 (ssadd (ssname note2_ss22 0)) note2_ss22);;当前图元从note2_ss22中删除
    );;while
   );;if/=nil
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if cmgy_dd
    (progn
       (setq data1_list (note2_qm3_to_stlist_px cmgy_dd));;对侧攻牙孔标准格式列表按半径大小排序
       (note2_qm3_stlist_jgcgy data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wzcgy
   )
   )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下增加线割孔,铣孔,多义线扩展数据
(setq note2_ss33 (ssadd) dyx_dd nil x_pt1_list '())
(setq note2_ss33 (ssget "c" note2_first_corner note2_other_corner (list (cons 0 "LWPOLYLINE") )))
(if note2_ss33
    (while (/= (sslength note2_ss33) 0)
   (if (zjsx_zz_getx (ssname note2_ss33 0))
      (if (and (/= (nth 0 (zz_read_zfc qm3_jg_data)) "")(/= (zz_read_zfc qm3_jg_data) nil))
       (progn
      (get_xy (ssadd (ssname note2_ss33 0)))
      (setq x_pt (pt_mid (list minx miny) (list maxx maxy)))
      (setq aa00   (nth 0 zf_list))
      (setq name00 (nth 1 zf_list))
      (setq dd00   (nth 2 zf_list))
      (setq deep00 (nth 3 zf_list))
      (setq jx00 (nth 4 zf_list))
      (setq zs00 (nth 5 zf_list))
      (if (or (= qm3_dh_data nil) (= qm3_dh_data ""))
         (setq dh00 "NIL")
         (setq dh00 qm3_dh_data)
      )
      (if (or(= name00 "CP1")(= name00 "CP2")(= name00 "CP3")(= name00 "CP4")(= name00 "CP5")
            (= name00 "精铣") (= name00 "铣床")(= name00 "BUSH"))
          (progn
             (setq zjpd_list (list dd00 (strcat aa00 "/" name00 "/" dd00 "/0.000/" deep00 "/" jx00 "/" zs00 "/" dh00"/0.000/0.000")
                        x_pt (ssname note2_ss33 0) ));;转为标准格式列表
             (setq dyx_dd (cons zjpd_list dyx_dd))
            )
         )
       )
      )
   )
   (del_ss1 (ssadd (ssname note2_ss33 0)) note2_ss33);;当前图元从note2_ss33中删除
    );;while
   );;if/=nil
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(if dyx_dd
    (progn
       (setq data1_list (note2_qm3_to_stlist_px dyx_dd));;对多义线孔标准格式列表按半径大小排序
       (note2_qm3_stlist_jgdyx data1_list);;用排好序的列表数据,先写全部的编号,再生成加工文字列表jg_ls_wzdyx
   )
   )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

qiannianhuazi 发表于 2021-4-7 11:39:37

xiongqunan 发表于 2021-4-6 18:56
在这终于看到有人用PRESSCAD这个软件的了。

模具厂现在大多用UG画了,偶尔还是用2D画的,主要是没有64位系统CAD2007能用的破解版PRESSCAD输出注解,所以就自己编写了整理LISP按厂里的习惯输出.模具厂都辛苦,码农也辛苦{:1_1:}

qiannianhuazi 发表于 2021-4-7 11:28:53

paulpipi 发表于 2021-4-6 18:50
zjsx_zz_getx缺少这个函数,麻烦补齐,谢谢

下载note2.fas这个可以用,源代码粘贴不是很全,有子程序,有问题也可以加微信号 QQ269707064讨论

zxj168 发表于 2021-4-2 23:59:01

怎么联系你

qiannianhuazi 发表于 2021-4-5 11:03:53

zxj168 发表于 2021-4-2 23:59
怎么联系你

有什么讨论,在帖子回复就行,我没权限发消息:D

paulpipi 发表于 2021-4-6 18:48:23

zjsx_zz_getx没有定义这个函数,用不了

paulpipi 发表于 2021-4-6 18:50:16

qiannianhuazi 发表于 2021-4-5 11:03
有什么讨论,在帖子回复就行,我没权限发消息

zjsx_zz_getx缺少这个函数,麻烦补齐,谢谢

xiongqunan 发表于 2021-4-6 18:56:53

在这终于看到有人用PRESSCAD这个软件的了。

paulpipi 发表于 2021-4-6 19:03:39

xiongqunan 发表于 2021-4-6 18:56
在这终于看到有人用PRESSCAD这个软件的了。

你是同行吗,

xiongqunan 发表于 2021-4-6 20:50:01

对,做模具设计的。一个苦逼的干业。
页: [1] 2
查看完整版本: PressCAD注解输出的程序,LISP语言,自己编的其中之一功能