yang198910204 发表于 2012-4-6 22:02:32

(IF (AND (= ent1 "CIRCLE") (= ent2 NIL) (= ent3 NIL))
                  (PROGN
                  (SETQ SS1           (SSGET "C"
                                          aute_point1
                                          aute_point2
                                          (LIST        (CONS 40 RAD1)
                                                (CONS 0 "CIRCLE")
                                                (CONS 8 CLA1)
                                                (CONS 6 LTY1)
                                                (CONS 62 col1)
                                          )
                                   )
                          MI_textRAD1
                          BIG_text RAD1
                  )
                  (setq stringth_no (1+ stringth_no)
                          stringth    (nth stringth_no stringth_list)
                  )
                  (if        (not (null ss1))
                      (progn
                        (setq no      -1
                              LEN1    (SSLENGTH SS1)
                              SSCEN1(LIST)
                              TEXTNUM 0
                        )
                        (REPEAT        LEN1
                          (setq        no          (1+ no)
                                nam1          (ssname ss1 no)
                                W1          (entget nam1)
                                CEN1          (cdr (assoc 10 W1))
                                        ;CEN1x (DISTOF (RTOS (CAR CEN1) 2 3))
                                        ;CEN1y (DISTOF (RTOS (CADR CEN1) 2 3))
                                        ;CEN1z (DISTOF (RTOS (CADDR CEN1) 2 3))
                                        ;CEN1 (LIST CEN1x CEN1y CEN1z)
                                ss3_ful          nil
                                pot_left(polar CEN1 2.4 (* 1.4 RAD1))
                                pot_right (polar CEN1 5.5 (* 1.4 RAD1))
                                SS2          (SSGET "C"
                                               aute_point1
                                               aute_point2
                                               (LIST (CONS 0 "CIRCLE")
                                                     (CONS 10 CEN1)
                                                     (CONS -4 "/=")
                                                     (CONS 40 RAD1)
                                               )
                                          )
                                SS3          (SSGET "C"
                                               aute_point1
                                               aute_point2
                                               (LIST (CONS 0 "ARC")
                                                     (CONS 10 CEN1)
                                                     (CONS -4 ">")
                                                     (CONS 40 RAD1)
                                               )
                                          )
                                SS4          (SSGET "C"
                                               pot_left
                                               pot_right
                                               (LIST (CONS 0 "ARC")
                                                     (CONS -4 "/=")
                                                     (CONS 40 RAD1)
                                               )
                                          )
                          )
                          (setq        ss_nam_list           (entget nam1 (list "wl_length"))
                                insert_number_long (cadadr
                                                     (assoc -3 ss_nam_list)
                                                   )
                          )
                          (if (not (null insert_number_long))
                          (setq deepth_ref
                                   (rtos (cdr insert_number_long))
                          )
                          (setq deepth_ref "*")
                          )
                          (if (not (null ss3))
                          (progn
                              (setq ss3no -1)
                              (repeat (sslength ss3)
                                (setq ss3no (1+ ss3no))
                                (setq ss3name(entget (ssname ss3 ss3no))
                                      ss3start (cdr (assoc 50 ss3name))
                                      ss3end   (cdr (assoc 51 ss3name))
                                )
                                (if (< ss3end ss3start)
                                  (setq ss3end (+ ss3end (* 2 pi)))
                                )
                                (if (> 4.75 (- ss3end ss3start) 4.68)
                                  (setq ss3_ful (cons 3 ss3_ful))
                                )
                              )
                          )
                          )
                          (IF (and (null ss2)
                                   (null ss4)
                                   (null ss3_ful)
                                   (null (member CEN1 SSCEN1))
                                   (= (read deepth_ref) (read deepth))
                              )
                          (chtext_point)
                          )
                        )
                        (setq cen_sel (append cen_sel SSCEN1))
                        (setvar "osmode" 64)
                        (SETQ PTO (polar PTO 4.712 (* 2 TXT)))
                        (COND ((equal 0.00002
                                      (- (ATOF (RTOS (* 2 RAD1) 2 5))
                                       (ATOF (RTOS (* 2 RAD1) 2 3))
                                      )
                                      0.000001
                             )
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 0)
                                               " 固定销"
                                       )
                             )
                              )
                              ((equal 0.00004
                                      (- (ATOF (RTOS (* 2 RAD1) 2 5))
                                       (ATOF (RTOS (* 2 RAD1) 2 3))
                                      )
                                      0.000001
                             )
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 0)
                                               " 浮升销"
                                       )
                             )
                              )
                              ((equal 0.00006
                                      (- (ATOF (RTOS (* 2 RAD1) 2 5))
                                       (ATOF (RTOS (* 2 RAD1) 2 3))
                                      )
                                      0.000001
                             )
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 0)
                                               " 顶料销"
                                       )
                             )
                              )
                              ((equal 0.00008
                                      (- (ATOF (RTOS (* 2 RAD1) 2 5))
                                       (ATOF (RTOS (* 2 RAD1) 2 3))
                                      )
                                      0.000001
                             )
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 0)
                                               " 弹簧"
                                       )
                             )
                              )
                              ((or (= "HIDDEN" LTY1)
                                   (= "HIDDEN2" LTY1)
                                   (= "HIDDENX2" LTY1)
                                   (= "DASHED" LTY1)
                                   (= "DASHED2" LTY1)
                                   (= "DASHEDX2" LTY1)
                             )
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 2)
                                               " (背面沉孔,深度"
                                               deepth
                                               ")"
                                       )
                             )
                              )
                              ((/= deepth "*")
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 2)
                                               " (正面沉孔,深度"
                                               deepth
                                               ")"
                                       )
                             )
                              )
                              (T
                             (SETQ STR (STRCAT "%%u"
                                               stringth
                                               ": "
                                               (RTOS TEXTNUM 2 0)
                                               "-%%C"
                                               (RTOS (* 2 RAD1) 2 2)
                                       )
                             )
                              )
                        )
                        (setvar "osmode" 0)
                        (COMMAND "TEXT" "TL" PTO TXT "" STR "")
                      )
                  )
                  )
                )



还有上面这些又是要怎么画才能让它识别呢

690994 发表于 2012-4-7 09:02:29

yang198910204 发表于 2012-4-6 22:02 static/image/common/back.gif
(IF (AND (= ent1 "CIRCLE") (= ent2 NIL) (= ent3 NIL))
                  (PROGN
                  (SETQ SS1           (SSGET "C"


这个程式在孔的深度用扩展数据记录,同时还通过对不是图块的同心圆/弧的数量/大小进行区分,然后标注
如果你没有程式配套程式及使用说明,作为同行我不建议你使用,否则不小心出错了就得不偿失。

chinawhy817 发表于 2012-10-28 17:51:22

这样的东东一般是有添加用户扩展数据的....

浴火鸟TYTYJ 发表于 2017-9-12 15:04:48

去下一个专业的五金模具设计软件,比用这些单个的LISP强.比如TASIPRESSCAD
页: 1 [2]
查看完整版本: 求指点,我这里有个五金模具注解输出的源码,可惜我不懂怎么让它以识别