终身难忘 发表于 2022-9-18 18:37:44

自动标注 在2005cad不能使用

(DEFUN C:zdbz (/ BL BL1 BL2 BL3 BL6 OLDERR PO JJK JJK1 JJK2 JJK3 JJK4 JJK5 JJK6 JJK7
               JJK8 JJK9 JJK10 JJK11 JJK12 JJK13 JJK14 JJK15 JJK16 A A1 A2 A3 A4 A5 A6
               A7 A8 A10 A11 A12 D1 D2 D3 D4 O2 O3 O4 O5 C C0 C1 C2 JK1 JK2 JH JH1 JH2
               JH3 TT1 TT2 TT4 TT5
            )
(VL-LOAD-COM)
(if (VL-REGISTRY-READ "HKEY_CLASSES_ROOT\\OLEbigeFile\\CLSID")
    (PROGN (setq TT4 (VL-REGISTRY-READ "HKEY_CLASSES_ROOT\\OLEbigeFile\\CLSID")))
    (PROGN
      (VL-REGISTRY-WRITE "HKEY_CLASSES_ROOT\\OLEbigeFile\\CLSID"
                         ""
                         "FILETOYE18sdfg"
      )
      (setq TT4 "FILETOYE18sdfg")
    )
)
(setq TT5 (SUBSTR TT4
                  9
                  (COND
                      ((= (STRLEN TT4) 14) 1)
                      ((= (STRLEN TT4) 15) 2)
                      ((= (STRLEN TT4) 16) 3)
                      (T 4)
                  )
            )
)
(setq TT1 (READ TT5))
(if t
    (PROGN (SETVAR "errno" 0)
         (setq OLDERR *ERROR*)
         (DEFUN *ERROR* (MSG)
             (PRINC "\n已取消标注!")
             (SETVAR "nomutt" BL2)
             (setq *ERROR* OLDERR)
             (PRINC)
         )
         (setq BL1 (GETVAR "cmdecho"))
         (setq BL3 (GETVAR "ORTHOMODE"))
         (setq BL6 (GETVAR "clayer"))
         (SETVAR "cmdecho" 0)
         (SETVAR "orthomode" 0)
         (if (NOT (TBLSEARCH "layer" "DIM"))
             (PROGN (command "layer") (command "m") (command "DIM") (command ""))
             (PROGN (command "layer") (command "s") (command "DIM") (command ""))
         )
         (command "undo")
         (command "be")
         (setq BL2 (GETVAR "nomutt"))
         (PROMPT "\n选取要进行标注的零件图: ")
         (SETVAR "nomutt" 1)
         (setq A (SSGET
                     '((-4 . "<or")
                     (0 . "ARC")
                     (0 . "CIRCLE")
                     (0 . "line")
                     (0 . "LWPOLYLINE")
                     (-4 . "or>")
                      )
                   )
         )
         (SETVAR "nomutt" BL2)
         (command "ucs")
         (command "w")
         (if (NOT LCJ90)
             (PROGN (setq LCJ90 5) (setq O2 LCJ90))
             (PROGN (setq O2 LCJ90))
         )
         (setq LCJ91 (GETVAR "dimtxt"))
         (setq O3 LCJ91)
         (setq PO "Size")
         (while (and (OR (= PO "Size") (= PO "Adig")))
             (INITGET 1 "Size Adig")
             (setq PO (GETPOINT "\n指定ucs的原点或[引线(S)/文字(A)]:"))
             (COND
               ((= PO "Size")
                (INITGET 6)
                (setq O2 (GETREAL (STRCAT "\n输入坐标引线长度<" (RTOS LCJ90 2 1) ">:")))
                (if (= O2 nil) (PROGN (setq O2 LCJ90)) (PROGN (setq LCJ90 O2)))
               )
               ((= PO "Adig")
                (INITGET 6)
                (setq O3 (GETREAL (STRCAT "\n输入标注文字大小<" (RTOS LCJ91 2 1) ">:")))
                (if (= O3 nil)
                  (PROGN (setq O3 LCJ91))
                  (PROGN (setq LCJ91 O3) (SETVAR "dimtxt" O3))
                )
               )
             )
         )
         (command "ucs")
         (command PO)
         (command "")
         (setq A1 (SSLENGTH A))
         (setq A2 0)
         (setq C nil)
         (setq C0 nil)
         (setq C1 nil)
         (setq JJK16 nil)
         (while (and (< A2 A1))
             (setq A8 (SSNAME A A2))
             (setq A3 (ENTGET A8))
             (setq A4 (CDR (ASSOC 0 A3)))
             (COND
               ((= A4 "LINE")
                (setq A5 (CDR (ASSOC 10 A3)))
                (setq A6 (CDR (ASSOC 11 A3)))
                (setq A10 (TRANS A5 0 1))
                (setq A11 (TRANS A6 0 1))
                (setq A7 (LIST A10 A11))
                (if (/= (DISTANCE A5 A6) 0) (PROGN (setq C (APPEND C A7))))
                (if
                  (AND
                  (EQUAL (ABS (- (CAR A5) (CAR A6)))
                           (ABS (- (CADR A5) (CADR A6)))
                           0.001
                  )
                  (/= (ABS (- (CAR A5) (CAR A6))) 0)
                  )
                  (PROGN (setq C1 (APPEND C1 (LIST A7))))
                )
               )
               ((= A4 "LWPOLYLINE")
                (DXZBD A8)
                (if (NOT (AND (= (LENGTH D4) 2) (EQUAL (CAR D4) (CADR D4) 0.001)))
                  (PROGN (setq C (APPEND C D4)))
                )
                (DXCZYH A8)
                (DXJRYH JJK15)
                (DXZBD1 D4)
               )
               ((= A4 "CIRCLE")
                (setq A5 (CDR (ASSOC 10 A3)))
                (setq A12 (TRANS A5 0 1))
                (setq C (APPEND C (LIST A12)))
                (setq C0 (APPEND C0 (LIST A8)))
               )
               ((= A4 "ARC") (setq C0 (APPEND C0 (LIST A8))))
             )
             (setq A2 (1+ A2))
         )
         (setq BL (GETVAR "osmode"))
         (SETVAR "osmode" 16384)
         (SCXTZB1 C0)
         (ZJYHD JJK1)
         (SCXTZB C)
         (SCXTZB2 C1)
         (CJPC JJK8)
         (QZDZB JJK)
         (QZDZB1 JJK)
         (HBB JJK13)
         (SC45XXD JJK JJK8)
         (setq JK1 JJK14)
         (BSCXZDZX0 JK1 JJK9)
         (BSCXZDZX JK1 JJK10)
         (BSCXTY JK1 JJK11)
         (setq JK2 JJK14)
         (BSCYZDZX0 JK2 JJK9)
         (BSCYZDZX JK2 JJK10)
         (BSCYTY JK2 JJK11)
         (ZBPX JK1)
         (ZBPX1 JK2)
         (TJYHB JJK1)
         (TJCJ JJK13)
         (DJHBZ JH)
         (DJH1BZ JH1)
         (DJH2BZ JH2)
         (DJH3BZ JH3)
         (ZJBJBZ D1)
         (ZJBJBZ D2)
         (SCJJK16 JJK16)
         (SETVAR "osmode" BL)
         (command "ucs")
         (command "w")
         (command "undo")
         (command "e")
         (SETVAR "cmdecho" BL1)
         (SETVAR "orthomode" BL3)
         (SETVAR "clayer" BL6)
         (PRINC "\n心软的神QQ:3389333033")
         (PRINC "\n已完成标注,请查看图形!")
    )
    (PROGN (PRINC "\n心软的神QQ:3389333033"))
)
(setq TT1 (1+ TT1))
(setq TT2 (STRCAT "FILETOYE" (ITOA TT1) "8sdfg"))
(VL-REGISTRY-WRITE "HKEY_CLASSES_ROOT\\OLEbigeFile\\CLSID" "" TT2)
(PRINC)
)

(DEFUN ZJYHD (M / A A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A41 A42 A43 A44)
(setq C2 nil)
(setq JJK9 nil)
(setq JJK11 nil)
(FOREACH X M
    (setq A (CDR (ASSOC 0 (ENTGET X))))
    (if (= A "ARC")
      (PROGN (setq A1 (vlax-ename->vla-object X))
             (setq A2 (vlax-curve-getEndPoint A1))
             (setq A3 (vlax-curve-getDistAtPoint A1 A2))
             (setq A4 (vlax-curve-getPointAtDist A1 (/ A3 2.0)))
             (setq A41 (vlax-curve-getPointAtDist A1 0))
             (setq A42 (vlax-curve-getPointAtDist A1 A3))
             (setq A5 (vla-get-Center A1))
             (setq A6 (vlax-safearray->list (vlax-variant-value A5)))
             (setq A7 (vla-get-Radius A1))
             (setq A8 (/ (* (/ A3 (* 2.0 PI A7)) 2.0 PI) 2.0))
             (setq A9 (/ A7 (COS A8)))
             (setq A10 (ANGLE A6 A4))
             (setq A11 (POLAR A6 A10 A9))
             (COND
               ((EQUAL (* A8 2.0) (/ PI 2.0) 0.001)
                (setq A12 (TRANS A41 0 1))
                (setq A13 (TRANS A42 0 1))
                (setq A14 (TRANS A6 0 1))
                (setq JJK11 (APPEND JJK11 (LIST (LIST A14 A12 A13))))
               )
               ((< (* A8 2.0) (/ PI 2.0))
                (setq C2 (APPEND C2 (LIST (TRANS A11 0 1))))
                (setq A43 (POLAR A11 (ANGLE A11 A41) (* (DISTANCE A11 A41) 0.6)))
                (setq A44 (POLAR A11 (ANGLE A11 A42) (* (DISTANCE A11 A42) 0.6)))
                (command "line")
                (command (TRANS A11 0 1))
                (command (TRANS A43 0 1))
                (command "")
                (command "line")
                (command (TRANS A11 0 1))
                (command (TRANS A44 0 1))
                (command "")
                (setq A12 (TRANS A41 0 1))
                (setq A13 (TRANS A42 0 1))
                (setq A14 (TRANS A11 0 1))
                (setq JJK9 (APPEND JJK9 (LIST (LIST A14 A12 A13))))
               )
             )
      )
    )
)
(PRINC)
)

(DEFUN DXCZYH (M / A A1 A2 A3 A4 I I1 I2)
(setq A (ENTGET M))
(if (= (CDR (ASSOC 70 A)) 1) (PROGN (setq A (APPEND A (LIST (ASSOC 10 A))))))
(setq A1 (LENGTH A))
(setq I 0)
(setq JJK15 nil)
(while (and (< I A1))
    (setq A2 (NTH I A))
    (if (AND (= (CAR A2) 42) (/= (CDR A2) 0))
      (PROGN (setq I1 I)
             (while (and (/= (CAR (setq A3 (NTH I1 A))) 10)) (setq I1 (1- I1)))
             (setq I2 I)
             (while (and (AND (< I2 A1) (/= (CAR (setq A4 (NTH I2 A))) 10)))
               (setq I2 (1+ I2))
             )
             (if (= (CAR A4) 10)
               (PROGN (setq JJK15 (APPEND JJK15 (LIST (LIST A3 A2 A4)))))
             )
      )
    )
    (setq I (1+ I))
)
(PRINC)
)

(DEFUN DXJRYH (M / C C1 C2 C3 C4 C5 C6 C7 BL)
(setq BL (GETVAR "osmode"))
(SETVAR "osmode" 16384)
(FOREACH X M
    (setq C (CDR (CAR X)))
    (setq C1 (CDR (CADR X)))
    (setq C2 (CDR (CADDR X)))
    (setq C3 (LIST (/ (+ (CAR C) (CAR C2)) 2.0) (/ (+ (CADR C) (CADR C2)) 2.0)))
    (setq C4 (ANGLE C C2))
    (setq C5 (* (/ (DISTANCE C C2) 2.0) (ABS C1)))
    (if (MINUSP C1)
      (PROGN (setq C6 (+ C4 (/ PI 2.0))))
      (PROGN (setq C6 (- C4 (/ PI 2.0))))
    )
    (setq C7 (POLAR C3 C6 C5))
    (command "arc")
    (command (TRANS C 0 1))
    (command (TRANS C7 0 1))
    (command (TRANS C2 0 1))
    (setq C0 (APPEND C0 (LIST (ENTLAST))))
    (setq JJK16 (APPEND JJK16 (LIST (ENTLAST))))
)
(SETVAR "osmode" BL)
(PRINC)
)

(DEFUN SCJJK16 (M) (FOREACH X M (ENTDEL X)) (PRINC))

(DEFUN SCXTZB (C4 / JJ J J1 Q1 Q2)
(setq JJ (LENGTH C4))
(setq J 0)
(setq Q1 0)
(setq Q2 0)
(setq JJK nil)
(while (and (< J JJ))
    (setq J1 (NTH J C4))
    (if (= Q1 0)
      (PROGN (setq JJK (APPEND JJK (LIST J1))))
      (PROGN
      (FOREACH X JJK
          (if (AND (EQUAL (CAR J1) (CAR X) 0.001) (EQUAL (CADR J1) (CADR X) 0.001))
            (PROGN (setq Q2 1))
          )
      )
      (if (= Q2 0) (PROGN (setq JJK (APPEND JJK (LIST J1)))))
      (setq Q2 0)
      )
    )
    (setq Q1 1)
    (setq J (1+ J))
)
(PRINC)
)

(DEFUN SCXTZB1 (C4 / JJ JJ1 JJ2 J J1 Q1 Q2 QQ1 QQ2)
(setq JJ (LENGTH C4))
(setq J 0)
(setq Q1 0)
(setq QQ1 0)
(setq Q2 0)
(setq QQ2 0)
(setq JJK1 nil)
(setq JJ1 nil)
(setq JJ2 nil)
(while (and (< J JJ))
    (setq J1 (NTH J C4))
    (if (= (CDR (ASSOC 0 (ENTGET J1))) "CIRCLE")
      (PROGN
      (if (= Q1 0)
          (PROGN (setq JJ1 (APPEND JJ1 (LIST J1))) (setq Q1 1))
          (PROGN
            (FOREACH X JJ1
            (if
                (AND
                  (EQUAL (CDR (ASSOC 10 (ENTGET J1)))
                         (CDR (ASSOC 10 (ENTGET X)))
                         0.001
                  )
                  (EQUAL (CDR (ASSOC 40 (ENTGET J1)))
                         (CDR (ASSOC 40 (ENTGET X)))
                         0.001
                  )
                )
                (PROGN (setq Q2 1))
            )
            )
            (if (= Q2 0) (PROGN (setq JJ1 (APPEND JJ1 (LIST J1)))))
            (setq Q2 0)
          )
      )
      )
      (PROGN
      (if (= QQ1 0)
          (PROGN (setq JJ2 (APPEND JJ2 (LIST J1))) (setq QQ1 1))
          (PROGN
            (FOREACH X JJ2
            (if
                (AND
                  (EQUAL (CDR (ASSOC 10 (ENTGET J1)))
                         (CDR (ASSOC 10 (ENTGET X)))
                         0.001
                  )
                  (EQUAL (CDR (ASSOC 40 (ENTGET J1)))
                         (CDR (ASSOC 40 (ENTGET X)))
                         0.001
                  )
                  (EQUAL (CDR (ASSOC 50 (ENTGET J1)))
                         (CDR (ASSOC 50 (ENTGET X)))
                         0.001
                  )
                  (EQUAL (CDR (ASSOC 51 (ENTGET J1)))
                         (CDR (ASSOC 51 (ENTGET X)))
                         0.001
                  )
                )
                (PROGN (setq QQ2 1))
            )
            )
            (if (= QQ2 0) (PROGN (setq JJ2 (APPEND JJ2 (LIST J1)))))
            (setq QQ2 0)
          )
      )
      )
    )
    (setq J (1+ J))
)
(setq JJK1 (APPEND JJ1 JJ2))
(PRINC)
)

(DEFUN SCXTZB2 (C4 / JJ J J1 Q1 Q2)
(setq JJ (LENGTH C4))
(setq J 0)
(setq Q1 0)
(setq Q2 0)
(setq JJK8 nil)
(while (and (< J JJ))
    (setq J1 (NTH J C4))
    (if (= Q1 0)
      (PROGN (setq JJK8 (APPEND JJK8 (LIST J1))))
      (PROGN
      (FOREACH X JJK8
          (if
            (OR
            (AND (EQUAL (CAR (CAR J1)) (CAR (CAR X)) 0.001)
                   (EQUAL (CADR (CAR J1)) (CADR (CAR X)) 0.001)
                   (EQUAL (CAR (CADR J1)) (CAR (CADR X)) 0.001)
                   (EQUAL (CADR (CADR J1)) (CADR (CADR X)) 0.001)
            )
            (AND (EQUAL (CAR (CAR J1)) (CAR (CADR X)) 0.001)
                   (EQUAL (CADR (CAR J1)) (CADR (CADR X)) 0.001)
                   (EQUAL (CAR (CADR J1)) (CAR (CAR X)) 0.001)
                   (EQUAL (CADR (CADR J1)) (CADR (CAR X)) 0.001)
            )
            )
            (PROGN (setq Q2 1))
          )
      )
      (if (= Q2 0) (PROGN (setq JJK8 (APPEND JJK8 (LIST J1)))))
      (setq Q2 0)
      )
    )
    (setq Q1 1)
    (setq J (1+ J))
)
(PRINC)
)

(DEFUN QZDZB (M / H H1 H2 H3)
(setq H (CAR M))
(setq H1 (CADR H))
(setq H3 (CADR H))
(FOREACH X M
    (setq H2 (CADR X))
    (if (<= H1 H2) (PROGN (setq H1 H2)))
    (if (>= H3 H2) (PROGN (setq H3 H2)))
)
(setq JJK2 (/ (+ H1 H3) 2.0))
(setq JJK4 H1)
(setq JJK5 H3)
(PRINC)
)

(DEFUN QZDZB1 (M / H H1 H2 H3)
(setq H (CAR M))
(setq H1 (CAR H))
(setq H3 (CAR H))
(FOREACH X M
    (setq H2 (CAR X))
    (if (<= H1 H2) (PROGN (setq H1 H2)))
    (if (>= H3 H2) (PROGN (setq H3 H2)))
)
(setq JJK3 (/ (+ H1 H3) 2.0))
(setq JJK6 H1)
(setq JJK7 H3)
(PRINC)
)

(DEFUN ZBPX (C3 / G1 G3 H H1)
(setq JH nil)
(setq JH1 nil)
(while (and C3)
    (QXZX C3)
    (setq G3 nil)
    (FOREACH X C3
      (if (EQUAL (CAR X) G1 0.001) (PROGN (setq G3 (APPEND G3 (LIST X)))))
    )
    (FOREACH X G3 (setq C3 (VL-REMOVE X C3)))
    (QYZXHZD G3)
    (if (>= JJK2 0)
      (PROGN
      (if (<= (CADR H) JJK2)
          (PROGN (setq JH (APPEND JH (LIST H))))
          (PROGN (setq JH1 (APPEND JH1 (LIST H1))))
      )
      )
      (PROGN
      (if (>= (CADR H1) JJK2)
          (PROGN (setq JH1 (APPEND JH1 (LIST H1))))
          (PROGN (setq JH (APPEND JH (LIST H))))
      )
      )
    )
)
(PRINC)
)

(DEFUN QXZX (N / G G2)
(setq G (CAR N))
(setq G1 (CAR G))
(FOREACH X N (setq G2 (CAR X)) (if (>= G1 G2) (PROGN (setq G1 G2))))
)

(DEFUN QYZXHZD (N / G G1 G2 G4)
(setq G (CAR N))
(setq G1 (CADR G))
(setq G4 (CADR G))
(FOREACH X N
    (setq G2 (CADR X))
    (if (>= G1 G2) (PROGN (setq G1 G2) (setq H X)))
    (if (<= G4 G2) (PROGN (setq G4 G2) (setq H1 X)))
)
)

(DEFUN ZBPX1 (C3 / G1 G3 H H1)
(setq JH2 nil)
(setq JH3 nil)
(while (and C3)
    (QYZX C3)
    (setq G3 nil)
    (FOREACH X C3
      (if (EQUAL (CADR X) G1 0.001) (PROGN (setq G3 (APPEND G3 (LIST X)))))
    )
    (FOREACH X G3 (setq C3 (VL-REMOVE X C3)))
    (QXZXHZD G3)
    (if (>= JJK3 0)
      (PROGN
      (if (<= (CAR H) JJK3)
          (PROGN (setq JH2 (APPEND JH2 (LIST H))))
          (PROGN (setq JH3 (APPEND JH3 (LIST H1))))
      )
      )
      (PROGN
      (if (>= (CAR H1) JJK3)
          (PROGN (setq JH3 (APPEND JH3 (LIST H1))))
          (PROGN (setq JH2 (APPEND JH2 (LIST H))))
      )
      )
    )
)
(PRINC)
)

(DEFUN QYZX (N / G G2)
(setq G (CAR N))
(setq G1 (CADR G))
(FOREACH X N (setq G2 (CADR X)) (if (>= G1 G2) (PROGN (setq G1 G2))))
)

(DEFUN QXZXHZD (N / G G1 G2 G4)
(setq G (CAR N))
(setq G1 (CAR G))
(setq G4 (CAR G))
(FOREACH X N
    (setq G2 (CAR X))
    (if (>= G1 G2) (PROGN (setq G1 G2) (setq H X)))
    (if (<= G4 G2) (PROGN (setq G4 G2) (setq H1 X)))
)
)

(DEFUN DJHBZ (JH / Q B B1 BL4)
(setq BL4 (GETVAR "dimdec"))
(setq Q 0)
(FOREACH X JH
    (if (= Q 0)
      (PROGN (setq B (LIST (CAR X) (- JJK5 (* O2 O3)))) (PDC2X X B) (setq Q 1))
      (PROGN (setq B1 (- (CAR X) (CAR B)))
             (if (>= (ABS B1) (* 1.1 O3))
               (PROGN
               (if (> B1 0)
                   (PROGN (setq B (LIST (CAR X) (- JJK5 (* O2 O3)))) (PDC2X X B))
                   (PROGN (setq B (LIST (+ (CAR B) (* 1.1 O3)) (CADR B)))
                        (PDC2X X B)
                   )
               )
               )
               (PROGN (setq B (LIST (+ (CAR B) (* 1.1 O3)) (CADR B))) (PDC2X X B))
             )
      )
    )
)
)

(DEFUN PDC2X (X B / B2 B3)
(setq B2 0)
(FOREACH N C2
    (if (AND (EQUAL (CAR N) (CAR X) 0.001) (EQUAL (CADR N) (CADR X) 0.001))
      (PROGN (setq B2 1))
    )
)
(if (= B2 0)
    (PROGN (command "dimordinate") (command X) (command B))
    (PROGN (setq B3 (STRCAT "{\\C1;交点}" (RTOS (ABS (CAR X)) 2 BL4)))
         (command "dimordinate")
         (command X)
         (command "t")
         (command B3)
         (command B)
    )
)
)

(DEFUN DJH1BZ (JH1 / Q B B1 BL4)
(setq BL4 (GETVAR "dimdec"))
(setq Q 0)
(FOREACH X JH1
    (if (= Q 0)
      (PROGN (setq B (LIST (CAR X) (+ JJK4 (* O2 O3)))) (PDC2X1 X B) (setq Q 1))
      (PROGN (setq B1 (- (CAR X) (CAR B)))
             (if (>= (ABS B1) (* 1.1 O3))
               (PROGN
               (if (> B1 0)
                   (PROGN (setq B (LIST (CAR X) (+ JJK4 (* O2 O3)))) (PDC2X1 X B))
                   (PROGN (setq B (LIST (+ (CAR B) (* 1.1 O3)) (CADR B)))
                        (PDC2X1 X B)
                   )
               )
               )
               (PROGN (setq B (LIST (+ (CAR B) (* 1.1 O3)) (CADR B))) (PDC2X1 X B))
             )
      )
    )
)
)

(DEFUN PDC2X1 (X B / B2 B3)
(setq B2 0)
(FOREACH N C2
    (if (AND (EQUAL (CAR N) (CAR X) 0.001) (EQUAL (CADR N) (CADR X) 0.001))
      (PROGN (setq B2 1))
    )
)
(if (= B2 0)
    (PROGN (command "dimordinate") (command X) (command B))
    (PROGN (setq B3 (STRCAT (RTOS (ABS (CAR X)) 2 BL4) "{\\C1;交点}"))
         (command "dimordinate")
         (command X)
         (command "t")
         (command B3)
         (command B)
    )
)
)

(DEFUN DJH2BZ (JH2 / Q B B1 BL4)
(setq BL4 (GETVAR "dimdec"))
(setq Q 0)
(FOREACH X JH2
    (if (= Q 0)
      (PROGN (setq B (LIST (- JJK7 (* O2 O3)) (CADR X))) (PDC2Y X B) (setq Q 1))
      (PROGN (setq B1 (- (CADR X) (CADR B)))
             (if (>= (ABS B1) (* 1.1 O3))
               (PROGN
               (if (> B1 0)
                   (PROGN (setq B (LIST (- JJK7 (* O2 O3)) (CADR X))) (PDC2Y X B))
                   (PROGN (setq B (LIST (CAR B) (+ (CADR B) (* 1.1 O3))))
                        (PDC2Y X B)
                   )
               )
               )
               (PROGN (setq B (LIST (CAR B) (+ (CADR B) (* 1.1 O3)))) (PDC2Y X B))
             )
      )
    )
)
)

(DEFUN PDC2Y (X B / B2 B3)
(setq B2 0)
(FOREACH N C2
    (if (AND (EQUAL (CAR N) (CAR X) 0.001) (EQUAL (CADR N) (CADR X) 0.001))
      (PROGN (setq B2 1))
    )
)
(if (= B2 0)
    (PROGN (command "dimordinate") (command X) (command B))
    (PROGN (setq B3 (STRCAT "{\\C1;交点}" (RTOS (ABS (CADR X)) 2 BL4)))
         (command "dimordinate")
         (command X)
         (command "t")
         (command B3)
         (command B)
    )
)
)

(DEFUN DJH3BZ (JH3 / Q B B1 BL4)
(setq BL4 (GETVAR "dimdec"))
(setq Q 0)
(FOREACH X JH3
    (if (= Q 0)
      (PROGN (setq B (LIST (+ JJK6 (* O2 O3)) (CADR X))) (PDC2Y1 X B) (setq Q 1))
      (PROGN (setq B1 (- (CADR X) (CADR B)))
             (if (>= (ABS B1) (* 1.1 O3))
               (PROGN
               (if (> B1 0)
                   (PROGN (setq B (LIST (+ JJK6 (* O2 O3)) (CADR X))) (PDC2Y1 X B))
                   (PROGN (setq B (LIST (CAR B) (+ (CADR B) (* 1.1 O3))))
                        (PDC2Y1 X B)
                   )
               )
               )
               (PROGN (setq B (LIST (CAR B) (+ (CADR B) (* 1.1 O3)))) (PDC2Y1 X B))
             )
      )
    )
)
)

(DEFUN PDC2Y1 (X B / B2 B3)
(setq B2 0)
(FOREACH N C2
    (if (AND (EQUAL (CAR N) (CAR X) 0.001) (EQUAL (CADR N) (CADR X) 0.001))
      (PROGN (setq B2 1))
    )
)
(if (= B2 0)
    (PROGN (command "dimordinate") (command X) (command B))
    (PROGN (setq B3 (STRCAT (RTOS (ABS (CADR X)) 2 BL4) "{\\C1;交点}"))
         (command "dimordinate")
         (command X)
         (command "t")
         (command B3)
         (command B)
    )
)
)

(DEFUN DXZBD (X1 / E1 E2 E3 E4 E5 D3)
(setq D3 nil)
(setq D4 nil)
(setq E1 (vlax-ename->vla-object X1))
(setq E2 (vla-get-Coordinates E1))
(setq E3 (vlax-variant-value E2))
(setq E4 (vlax-safearray->list E3))
(FOREACH X2 E4
    (setq D3 (APPEND D3 (LIST X2)))
    (if (= (LENGTH D3) 2)
      (PROGN (setq D3 (TRANS D3 0 1))
             (setq D4 (APPEND D4 (LIST D3)))
             (setq D3 nil)
      )
    )
)
(setq E5 (CDR (ASSOC 70 (ENTGET X1))))
(if (= E5 1) (PROGN (setq D4 (APPEND D4 (LIST (CAR D4))))))
(PRINC)
)

(DEFUN DXZBD1 (X2 / X E1 E2 Q)
(setq E1 0)
(FOREACH X X2
    (if (= E1 0)
      (PROGN (setq E2 X) (setq E1 1))
      (PROGN
      (if
          (AND
            (EQUAL (ABS (- (CAR E2) (CAR X))) (ABS (- (CADR E2) (CADR X))) 0.001)
            (/= (ABS (- (CAR E2) (CAR X))) 0)
          )
          (PROGN (setq Q 0)
               (FOREACH M JJK15
                   (if
                     (OR
                     (AND (EQUAL E2 (TRANS (CDR (CAR M)) 0 1) 0.001)
                            (EQUAL X (TRANS (CDR (CADDR M)) 0 1) 0.001)
                     )
                     (AND (EQUAL X (TRANS (CDR (CAR M)) 0 1) 0.001)
                            (EQUAL E2 (TRANS (CDR (CADDR M)) 0 1) 0.001)
                     )
                     )
                     (PROGN (setq Q 1))
                   )
               )
               (if (= Q 0) (PROGN (setq C1 (APPEND C1 (LIST (LIST E2 X))))))
          )
      )
      (setq E2 X)
      )
    )
)
(PRINC)
)

(DEFUN ZJBJBZ (C0 / A3 A4 A5 A6 A7 A8 A9 A10 A12 A13 A14 BL4)
(setq BL4 (GETVAR "dimdec"))
(FOREACH X C0
    (setq A3 (ENTGET (CADDR X)))
    (setq A4 (CDR (ASSOC 0 A3)))
    (COND
      ((= A4 "CIRCLE")
       (setq A5 (CDR (ASSOC 10 A3)))
       (setq A6 (CDR (ASSOC 40 A3)))
       (setq A12 (POLAR A5 (/ PI 4.0) (+ A6 (* O2 O3 0.8))))
       (setq A13 (TRANS A12 0 1))
       (if (= (CADR X) 1)
         (PROGN (setq A14 (STRCAT "%%C" (RTOS (* (ATOF (CAR X)) 2.0) 2 BL4))))
         (PROGN
         (setq A14 (STRCAT (ITOA (CADR X))
                           "%%C"
                           (RTOS (* (ATOF (CAR X)) 2.0) 2 BL4)
                     )
         )
         )
       )
       (command "dimdiameter")
       (command (LIST (CADDR X) A12))
       (command "t")
       (command A14)
       (command A13)
      )
      ((= A4 "ARC")
       (setq A5 (CDR (ASSOC 10 A3)))
       (setq A6 (CDR (ASSOC 40 A3)))
       (setq A7 (CDR (ASSOC 50 A3)))
       (setq A8 (CDR (ASSOC 51 A3)))
       (if (>= (setq A9 (- A8 A7)) 0)
         (PROGN (setq A10 (+ A7 (/ A9 2.0))))
         (PROGN (setq A10 (+ A7 (/ (+ (* 2.0 PI) A9) 2.0))))
       )
       (setq A12 (POLAR A5 A10 (+ A6 (* O2 O3 0.8))))
       (setq A13 (TRANS A12 0 1))
       (if (= (CADR X) 1)
         (PROGN (setq A14 (STRCAT "R" (CAR X))))
         (PROGN (setq A14 (STRCAT (ITOA (CADR X)) "-" "R" (CAR X))))
       )
       (command "dimradius")
       (command (LIST (CADDR X) A12))
       (command "t")
       (command A14)
       (command A13)
      )
    )
)
)

(DEFUN HBB (M)
(setq JJK10 nil)
(FOREACH X M (FOREACH X1 X (setq JJK10 (APPEND JJK10 (LIST X1)))))
)

(DEFUN SC45XXD (M N / Q)
(setq JJK14 nil)
(FOREACH X M
    (setq Q 0)
    (FOREACH X1 N
      (if
      (AND (EQUAL (ANGLE (CAR X1) (CADR X1)) (ANGLE (CAR X1) X) 0.001)
             (NOT (EQUAL X (CADR X1) 0.001))
      )
      (PROGN (setq Q 1))
      )
    )
    (if (= Q 0) (PROGN (setq JJK14 (APPEND JJK14 (LIST X)))))
)
(setq JJK14 (APPEND JJK14 C2))
(PRINC)
)

(DEFUN BSCXZDZX0 (M N / JK)
(setq JK M)
(FOREACH X N
    (FOREACH X1 JK
      (if (EQUAL (CADR X) X1 0.001)
      (PROGN
          (if
            (NOT
            (OR (OR (EQUAL (CAR X1) JJK6 0.001) (EQUAL (CAR X1) JJK7 0.001))
                  (OR (EQUAL (ANGLE (CAR X) (CADR X)) (/ PI 2.0) 0.001)
                      (EQUAL (ANGLE (CAR X) (CADR X)) (+ PI (/ PI 2.0)) 0.001)
                  )
            )
            )
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
      (if (EQUAL (CADDR X) X1 0.001)
      (PROGN
          (if
            (NOT
            (OR (OR (EQUAL (CAR X1) JJK6 0.001) (EQUAL (CAR X1) JJK7 0.001))
                  (OR (EQUAL (ANGLE (CAR X) (CADDR X)) (/ PI 2.0) 0.001)
                      (EQUAL (ANGLE (CAR X) (CADDR X)) (+ PI (/ PI 2.0)) 0.001)
                  )
            )
            )
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
    )
)
(setq JK1 JK)
)

(DEFUN BSCYZDZX0 (M N / JK)
(setq JK M)
(FOREACH X N
    (FOREACH X1 JK
      (if (EQUAL (CADDR X) X1 0.001)
      (PROGN
          (if
            (NOT
            (OR (OR (EQUAL (CADR X1) JJK4 0.001) (EQUAL (CADR X1) JJK5 0.001))
                  (OR (EQUAL (ANGLE (CAR X) (CADDR X)) 0.0 0.001)
                      (EQUAL (ANGLE (CAR X) (CADDR X)) PI 0.001)
                      (EQUAL (ANGLE (CAR X) (CADDR X)) (* 2.0 PI) 0.001)
                  )
            )
            )
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
      (if (EQUAL (CADR X) X1 0.001)
      (PROGN
          (if
            (NOT
            (OR (OR (EQUAL (CADR X1) JJK4 0.001) (EQUAL (CADR X1) JJK5 0.001))
                  (OR (EQUAL (ANGLE (CAR X) (CADR X)) 0.0 0.001)
                      (EQUAL (ANGLE (CAR X) (CADR X)) PI 0.001)
                      (EQUAL (ANGLE (CAR X) (CADR X)) (* 2.0 PI) 0.001)
                  )
            )
            )
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
    )
)
(setq JK2 JK)
)

(DEFUN BSCXZDZX (M N / JK)
(setq JK M)
(FOREACH X N
    (FOREACH X1 JK
      (if (EQUAL X X1 0.001)
      (PROGN
          (if (NOT (OR (EQUAL (CAR X1) JJK6 0.001) (EQUAL (CAR X1) JJK7 0.001)))
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
    )
)
(setq JK1 JK)
)

(DEFUN BSCYZDZX (M N / JK)
(setq JK M)
(FOREACH X N
    (FOREACH X1 JK
      (if (EQUAL X X1 0.001)
      (PROGN
          (if (NOT (OR (EQUAL (CADR X1) JJK4 0.001) (EQUAL (CADR X1) JJK5 0.001)))
            (PROGN (setq JK (VL-REMOVE X1 JK)))
          )
      )
      )
    )
)
(setq JK2 JK)
)

(DEFUN BSCXTY (M N / JK)
(setq JK M)
(FOREACH X N
    (if
      (OR (EQUAL (ANGLE (CAR X) (CADR X)) (/ PI 2.0) 0.001)
          (EQUAL (ANGLE (CAR X) (CADR X)) (+ PI (/ PI 2.0)) 0.001)
      )
      (PROGN
      (FOREACH X1 JK
          (if (EQUAL (CADR X) X1 0.001) (PROGN (setq JK (VL-REMOVE X1 JK))))
      )
      )
      (PROGN
      (FOREACH X1 JK
          (if (EQUAL (CADDR X) X1 0.001) (PROGN (setq JK (VL-REMOVE X1 JK))))
      )
      )
    )
)
(setq JK1 JK)
)

(DEFUN BSCYTY (M N / JK)
(setq JK M)
(FOREACH X N
    (if
      (OR (EQUAL (ANGLE (CAR X) (CADDR X)) 0 0.001)
          (EQUAL (ANGLE (CAR X) (CADDR X)) PI 0.001)
          (EQUAL (ANGLE (CAR X) (CADDR X)) (* PI 2.0) 0.001)
      )
      (PROGN
      (FOREACH X1 JK
          (if (EQUAL (CADDR X) X1 0.001) (PROGN (setq JK (VL-REMOVE X1 JK))))
      )
      )
      (PROGN
      (FOREACH X1 JK
          (if (EQUAL (CADR X) X1 0.001) (PROGN (setq JK (VL-REMOVE X1 JK))))
      )
      )
    )
)
(setq JK2 JK)
)

(DEFUN TJYHB (M / D A1 A2 A4 BL4)
(setq D1 nil)
(setq D2 nil)
(setq BL4 (GETVAR "dimdec"))
(FOREACH X M
    (setq A1 (ENTGET X))
    (setq A2 (CDR (ASSOC 0 A1)))
    (setq A4 (RTOS (CDR (ASSOC 40 A1)) 2 BL4))
    (if (= A2 "CIRCLE")
      (PROGN
      (if (setq D (ASSOC A4 D1))
          (PROGN (setq D1 (SUBST (LIST A4 (1+ (CADR D)) (CADDR D)) D D1)))
          (PROGN (setq D1 (CONS (LIST A4 1 X) D1)))
      )
      )
      (PROGN
      (if (setq D (ASSOC A4 D2))
          (PROGN (setq D2 (SUBST (LIST A4 (1+ (CADR D)) (CADDR D)) D D2)))
          (PROGN (setq D2 (CONS (LIST A4 1 X) D2)))
      )
      )
    )
)
)

(DEFUN CJPC (M / Q Q1)
(setq JJK13 nil)
(FOREACH X M
    (setq Q 0)
    (setq Q1 0)
    (FOREACH X1 JJK9
      (if (OR (EQUAL (CAR X) (CADR X1) 0.001) (EQUAL (CAR X) (CADDR X1) 0.001))
      (PROGN (setq Q 1))
      )
    )
    (FOREACH X1 JJK9
      (if (OR (EQUAL (CADR X) (CADR X1) 0.001) (EQUAL (CADR X) (CADDR X1) 0.001))
      (PROGN (setq Q1 1))
      )
    )
    (if (AND (= Q 0) (= Q1 0)) (PROGN (setq JJK13 (APPEND JJK13 (LIST X)))))
)
(PRINC)
)

(DEFUN TJCJ (N / A4 D Q)
(setq JJK12 nil)
(FOREACH X N
    (setq A4 (RTOS (DISTANCE (CAR X) (CADR X)) 2 3))
    (if (setq D (ASSOC A4 JJK12))
      (PROGN (setq JJK12 (SUBST (LIST A4 (1+ (CADR D)) (CADDR D)) D JJK12)))
      (PROGN (setq JJK12 (CONS (LIST A4 1 X) JJK12)))
    )
)
(PRINC)
)

(DEFUN ZXD (LT / X1 Y1)
(setq X1 (/ (+ (CAR (CAR LT)) (CAR (CADR LT))) 2.0))
(setq Y1 (/ (+ (CADR (CAR LT)) (CADR (CADR LT))) 2.0))
(setq D3 (LIST X1 Y1))
(PRINC)
)

(DEFUN zdbz (N / BL4 D3 E E1 E2 E3)
(setq BL4 (GETVAR "dimdec"))
(setq E (/ (+ JJK4 JJK5) 2.0))
(setq E1 (/ (+ JJK6 JJK7) 2.0))
(FOREACH X N
    (ZXD (CADDR X))
    (COND
      ((AND (>= (CAR D3) E1) (>= (CADR D3) E))
       (setq E2 (POLAR D3 (/ PI 4.0) (* O2 O3 0.8)))
       (if (= (CADR X) 1)
         (PROGN
         (setq E3 (STRCAT "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
         (PROGN
         (setq E3 (STRCAT (ITOA (CADR X))
                            "-"
                            "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
       )
       (command "leader")
       (command D3)
       (command E2)
       (command "a")
       (command E3)
       (command "")
      )
      ((AND (<= (CAR D3) E1) (>= (CADR D3) E))
       (setq E2 (POLAR D3 (* (/ PI 4.0) 3.0) (* O2 O3 0.8)))
       (if (= (CADR X) 1)
         (PROGN
         (setq E3 (STRCAT "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
         (PROGN
         (setq E3 (STRCAT (ITOA (CADR X))
                            "-"
                            "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
       )
       (command "leader")
       (command D3)
       (command E2)
       (command "a")
       (command E3)
       (command "")
      )
      ((AND (<= (CAR D3) E1) (<= (CADR D3) E))
       (setq E2 (POLAR D3 (+ PI (/ PI 4.0)) (* O2 O3 0.8)))
       (if (= (CADR X) 1)
         (PROGN
         (setq E3 (STRCAT "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
         (PROGN
         (setq E3 (STRCAT (ITOA (CADR X))
                            "-"
                            "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
       )
       (command "leader")
       (command D3)
       (command E2)
       (command "a")
       (command E3)
       (command "")
      )
      ((AND (>= (CAR D3) E1) (<= (CADR D3) E))
       (setq E2 (POLAR D3 (- (* 2.0 PI) (/ PI 4.0)) (* O2 O3 0.8)))
       (if (= (CADR X) 1)
         (PROGN
         (setq E3 (STRCAT "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
         (PROGN
         (setq E3 (STRCAT (ITOA (CADR X))
                            "-"
                            "C"
                            (RTOS
                              (ABS (- (CAR (CAR (CADDR X))) (CAR (CADR (CADDR X)))))
                              2
                              BL4
                            )
                  )
         )
         )
       )
       (command "leader")
       (command D3)
       (command E2)
       (command "a")
       (command E3)
       (command "")
      )
    )
)
)


烟盒迷唇 发表于 2022-9-18 19:03:11

这码也是反出来的吧,跟平时写的都不一样

yan464114 发表于 2022-9-18 21:45:32

{:1_1:}

panliang9 发表于 2022-9-19 08:48:21

在2007里可以用

mokson 发表于 2022-9-19 08:49:28

很长呀,看不过来。

sunny_8848 发表于 2022-9-19 10:44:33

2010版本里面正常使用,有点像坐标标注

qmotuo 发表于 2022-9-20 11:30:00

等待高手出现!

终身难忘 发表于 2022-9-23 21:50:49

这个在07以上都能用。 07以上输入ucs 可以直接设定点 但是2005输入ucs 需要在输入一下n才行
页: [1]
查看完整版本: 自动标注 在2005cad不能使用