我想用你以前编的这个程序,但是捕捉设置会被清空, 能否帮忙修改一下。谢 ;;;;;;;;;;;;;;;;;;;;;; ;;这是一个很久以前的程序,写得不太好,也很少用(因现在有double_click功能)!! (defun C:D (/ HOLDOSMODE HOLDECHO HOLDBLIP P340 P340ENTGET10 A1 AAA1 A AAA AAL AAPT Q%Q Q%Q1 Q%Q11 ) (setq HOLDECHO (getvar "cmdecho")) (setq HOLDBLIP (getvar "blipmode")) (setq HOLDOSMODE (getvar "osmode")) (setvar "cmdecho" 0) (setvar "blipmode" 0) (setvar "osmode" 0) (while (null AAA1) (setq AAA1 (nentsel)) ) (setq AAL (length AAA1)) (cond ((/= AAL 2) (setq AAL (length (last AAA1))) (if (/= AAL 1) (progn (setq A1 (car AAA1)) (setq AAPT (cadr AAA1)) (setq AAA (entget A1)) (setq Q%Q (cdr (assoc 0 AAA))) (setq Q%Q11 (cdr (assoc 0 (entget (car (last AAA1)))))) (if (= Q%Q11 "DIMENSION") (setq Q%Q NIL) ) (setq Q%Q1 (cdr (assoc 0 (entget (car AAA1))))) (cond ((and (/= Q%Q1 "LINE") (/= Q%Q1 "CIRCLE") (/= Q%Q1 "ARC") (/= Q%Q1 "MLINE") (/= Q%Q1 "VERTEX") ) (setq Q%Q NIL) ) ) ) (progn (setq A1 (car (last AAA1))) (setq AAPT (cdr AAA1)) (setq AAA (entget A1)) (setq Q%Q (cdr (assoc 0 AAA))) ) ) ) ((= AAL 2) (setq A1 (car AAA1)) (setq AAPT (cadr AAA1)) (setq AAA (entget A1)) (setq Q%Q (cdr (assoc 0 AAA))) ) ) (cond ((or (= Q%Q "LINE") (= Q%Q "MLINE")) (command "_.DIMLINEAR" "" AAPT) ) ((= Q%Q "CIRCLE") (command "_.DIMDIAMETER" AAPT)) ((= Q%Q "ARC") (command "_.DIMRADIUS" AAPT)) ((= Q%Q "DIMENSION") (command "_.DIMTEDIT" A1)) ((= Q%Q "LEADER") (setq P340 (cdr (assoc 340 (entget A1)))) (setq P340ENTGET10 (cdr (assoc 10 (entget P340)))) (command "_.move" P340ENTGET10 "") ) ((= Q%Q "MTEXT") (command "_.DDEDIT" AAPT)) ((= Q%Q "TEXT") (command "_.DDEDIT" AAPT)) ((= Q%Q "HATCH") (initdia 1) (command "_.HATCHEDIT" AAPT) (initdia 0) ) ((= Q%Q "ATTDEF") (command "_.DDEDIT" AAPT)) ((= Q%Q "ATTRIB") (command "_.DDATTE" AAPT)) ((= Q%Q "SPLINE") (command "_.SPLINEDIT" AAPT)) ;| ((= Q%Q "TOLERANCE") (if (wcmatch (getvar "acadver") "15*") (progn (if (not DDMODIFYY) (load "ddmodifyy") ) (DDMODIFYY A1) ) (progn (if (not DDMODIFY) (load "ddmodify") ) (DDMODIFY A1) ) ) )|; ((or (= Q%Q "VERTEX") (= Q%Q "LWPOLYLINE") (= Q%Q "POLYLINE") ) (setq AA (entget (car AAA1))) (setq AAPT (cadr AAA1)) (setq AAA (cdr (assoc 42 AA))) (if (= AAA 0) (command "_.DIMLINEAR" "" AAPT) (command "_.DIMRADIUS" AAPT) ) ) ((= Q%Q "INSERT") (setq AA (entget (car AAA1))) (setq AAPT (cadr AAA1)) (setq Q%Q (cdr (assoc 0 AA))) (cond ((or (= Q%Q "LINE") (= Q%Q "MLINE")) (command "_.DIMLINEAR" "" AAPT) ) ((= Q%Q "CIRCLE") (command "_.DIMDIAMETER" AAPT)) ((= Q%Q "ARC") (command "_.DIMRADIUS" AAPT)) ((or (= Q%Q "VERTEX") (= Q%Q "LWPOLYLINE") (= Q%Q "POLYLINE") ) (setq AA (entget (car AAA1))) (setq AAPT (cadr AAA1)) (setq AAA (cdr (assoc 42 AA))) (if (= AAA 0) (command "_.DIMLINEAR" "" AAPT) (command "_.DIMRADIUS" AAPT) ) ) (t (prompt "\n不能编辑及标注区块中之非线类") ) ) ) (t (prompt "\n不能编辑及标注区块中之非线类") ) ) (setvar "blipmode" HOLDBLIP) (setvar "osmode" HOLDBLIP) (setvar "cmdecho" HOLDECHO) (princ) )
|