669423907 发表于 2018-4-17 14:46:13

请教关于倒角标注的改进

下面是根据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 14:46:14

本帖最后由 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))

669423907 发表于 2018-4-17 16:10:37

bssurvey 发表于 2018-4-17 14:46
;倒角标注
(defun c:13()
(setvar "cmdecho" 0)


非常好用,谢谢
页: [1]
查看完整版本: 请教关于倒角标注的改进