插件修改
谁帮我把这个标注插件,修改一下。(问题点:使用过程中,经常无缘无故把设置好的捕捉点全去掉了,如图)(DEFUN C:DQ (/ *error*ANG E EN J LEN OLDERR OS
PT1 PT2 PT3 PT4 SS ENT ENTLI NP13
NP14P10 P13 P14 PTT OSM
)
(defun *error* (msg) (setvar 'osmode 15359))
(SETVAR "cmdecho" 0)
(command "_.undo")
(command "be")
(command "_ucs")
(command "_w")
(PROMPT "\n不修改的标注不要选在里面")
(if (setq SS (SSGET '((0 . "DIMENSION"))))
(PROGN (setq EN (ENTGET (SSNAME SS 0)))
(if (MEMBER '(100 . "AcDbRotatedDimension") EN)
(PROGN (setq ANG (CDR (ASSOC 50 EN))))
(PROGN
(setq ANG (ANGLE (CDR (ASSOC 13 EN)) (CDR (ASSOC 14 EN))))
)
)
)
)
(if (AND ANG (setq PT1 (GETPOINT "\n尺寸线位置<不变>:")))
(PROGN (setq OSM (GETVAR "osmode"))
(SETVAR "osmode" 0)
(setq PT2 (POLAR PT1 ANG 1000))
(setq J 0)
(setq LEN (SSLENGTH SS))
(while (and (< J LEN))
(setq E (SSNAME SS J))
(setq EN (ENTGET (SSNAME SS J)))
(setq PT3 (CDR (ASSOC 10 EN)))
(setq PT4 (INTERS PT1
PT2
PT3
(POLAR PT3 (+ ANG (* 0.5 PI)) 100)
nil
)
)
(setq J (1+ J))
(command "move")
(command E)
(command "")
(command PT3)
(command PT4)
)
(SETVAR "osmode" OSM)
)
)
(if (AND ANG (setq PT1 (GETPOINT "\n尺寸界线位置<不变>:")))
(PROGN
(setq OSM (GETVAR "osmode"))
(SETVAR "osmode" 0)
(setq PT2 (POLAR PT1 ANG 100))
(setq PT1 (TRANS PT1 1 0))
(setq PT2 (TRANS PT2 1 0))
(setq I 0)
(REPEAT (SSLENGTH SS)
(setq ENT (SSNAME SS I))
(setq ENTL (ENTGET ENT))
(setq P10 (CDR (ASSOC 10 ENTL)))
(setq P13 (CDR (ASSOC 13 ENTL)))
(setq P14 (CDR (ASSOC 14 ENTL)))
(setq PTT (CDR (ASSOC 11 ENTL)))
(setq I (1+ I))
(setq NP14 (INTERS PT1 PT2 P14 P10 nil))
(if (NOT (MEMBER '(100 . "AcDbRotatedDimension") ENTL))
(PROGN
(setq NP13 (POLAR NP14 (ANGLE P14 P13) (DISTANCE P14 P13)))
)
(PROGN (setq NP13 (INTERS PT1
PT2
P13
(POLAR P13 (ANGLE P14 P10) 100)
nil
)
)
)
)
(setq ENTL (SUBST (CONS 13 NP13) (ASSOC 13 ENTL) ENTL))
(setq ENTL (SUBST (CONS 14 NP14) (ASSOC 14 ENTL) ENTL))
(ENTMOD ENTL)
)
(SETVAR "osmode" OSM)
)
)
(command "_ucs")
(command "p")
(command "_.undo")
(command "e")
(SETVAR "cmdecho" 1)
(Y-TFX)
(PRINC)
) 论坛里找,有一个对象捕捉设置的插件
页:
[1]