请教关于倒角标注的改进
下面是根据Z大的程序改的,可以实现非45°倒角标注。现在有一个小问题,在标45°线的时候,还要右键确认一下,能否把右键确认这一步去掉呢?在此先谢过了
;倒角标注
(defun c:13()
(setvar "cmdecho" 0)
(princ "\n请选择一条直线:")
(setq ss (ssget":e:s" '((0 . "line"))))
(if (= ss nil)
(progn (setq hou "禁止倒角")(pdbz))
(progn
(setvar 'osmode 0);关闭捕捉
(setq dl (entget (ssname ss 0))
p1 (cdr (assoc 10 dl))
p2 (cdr (assoc 11 dl))
x (abs (- (car p1) (car p2)))
y (abs (- (cadr p1) (cadr p2))))
(if (equal x y 1e-4)
(progn
(princ (rtos x 2 3))
(setq tt (getstring tt)
tt (if (= tt "") (rtos x 2 3) tt)
tt (strcat tt "*45%%D")
p4 (polar p1 (angle p1 p2) (* (distance p1 p2) 0.5)))
(setq ang (/ pi 4))
(if (setq p3 (getpoint p4 "\n请确定文字位置:"))
(command "leader" p4 p3 "" "" "" tt "") ) )
(command "dimlinear" p1 p2 "\\" "dimlinear" p1 p2)
)
(setvar 'osmode 1);打开捕捉
) )
(princ))
本帖最后由 bssurvey 于 2018-4-17 16:06 编辑
;倒角标注
(defun c:13()
(setvar "cmdecho" 0)
(princ "\n请选择一条直线:")
(setq ss (ssget":e:s" '((0 . "line"))))
(if (= ss nil)
(progn (setq hou "禁止倒角")(pdbz))
(progn
(setvar 'osmode 0);关闭捕捉
(setq dl (entget (ssname ss 0))
p1 (cdr (assoc 10 dl))
p2 (cdr (assoc 11 dl))
x (abs (- (car p1) (car p2)))
y (abs (- (cadr p1) (cadr p2))))
(if (equal x y 1e-4)
(progn
(setq tt (strcat (rtos x 2 3) "*45%%D")
p4 (polar p1 (angle p1 p2) (* (distance p1 p2) 0.5)))
(setq ang (/ pi 4))
(if (setq p3 (getpoint p4 "\n请确定文字位置:"))
(command "leader" p4 p3 "" "" "" tt "") ) )
(command "dimlinear" p1 p2 "\\" "dimlinear" p1 p2)
)
(setvar 'osmode 1);打开捕捉
) )
(princ))
bssurvey 发表于 2018-4-17 14:46
;倒角标注
(defun c:13()
(setvar "cmdecho" 0)
非常好用,谢谢
页:
[1]