下面这个程序是下载了倒角标注程序根据个人需要更改后的,我倒角标注要求小数位数为1位,这个程序运行不稳定,有些图形里标注正确,有些图形里标注时引出点不正确,即pt4点不正确,麻烦高人指点问题在什么地方,程序如下:
(defun C:DC()
(SETVAR "CMDECHO" 0)
;(SETQ OLDOS (GETVAR "OSMODE"))
(SETQ OLDZIN (GETVAR "DIMZIN"))
(SETVAR "DIMZIN" 1)
;(SETVAR "OSMODE" 0)
(command "osmode" "0")
(SETVAR "ORTHOMODE" 0)
(COMMAND "-LAYER" "m" "DIM" "" "")
(PRINC "\nPlease Select a Line :")
(iF (SETQ SS (entsel))
;(IF (SETQ SS (ssget))
(SETQ DL (car SS)
;dp (cdr ss)
;p4 (cadr (assoc 10 (entget dp)))
Pt1 (CDR (ASSOC 10 (entget DL)))
Pt2 (CDR (ASSOC 11 (entget DL)))
X (ABS (- (CAR Pt1) (CAR Pt2)))
Y (ABS (- (CADR Pt1) (CADR Pt2)))
)
)
(princ "\nthe quality of chamfers<1>:")
(setq cq (getstring))
(if (/= cq "")
(setq cq (strcat cq "-C"))
)
(if (= cq "")
(setq cq "C")
)
(IF (EQUAL X Y 1E-4)
(PROGN
(PRINC "\nthe chamfer size<")
(PRINC (RTOS X 2 1))
(SETQ TT (GETSTRING "> :")
TT (IF (= TT "")
(RTOS X 2 1)
)
TT (STRCAT cq TT)
Pt4 (POLAR Pt1 (ANGLE Pt1 Pt2) (* (DISTANCE Pt1 Pt2) 0.5))
)
(IF (SETQ Pt3 (GETPOINT Pt4 "\nText Point ? "))
(PROGN
(COMMAND "LEADER" Pt4 Pt3 "" "" "" TT "")
)
)
)
)
(SETVAR "DIMZIN" OLDZIN)
;(SETVAR "OSMODE" OLDOS)
(SETVAR "CMDECHO" 1)
(SETVAR "ORTHOMODE" 1)
(PRINC)
)
|