 - ;批量倒圆角
- (defun c:TT ( / rr minl maxr n en en1 en2 CURVE TLEN)
- (setq cm (getvar "cmdecho") os (getvar "osmode"))
- (setvar "cmdecho" 0)
- (COMMAND ".undo" "BE")
- (prompt "请选择直线,相连的才能倒角:")
- (while (setq en (ssget '((0 . "LINE"))))
- (setq N 0 MINL 0)
- (repeat (sslength en)
- (setq CURVE (vlax-ename->vla-object (ssname en N)))
- (setq TLEN (vlax-curve-getdistatparam
- CURVE
- (vlax-curve-getendparam CURVE)
- )
- )
- (if (= minl 0) (setq minl tlen))
- (if (> minl tlen) (setq minl tlen))
- (setq N (1+ N))
- )
- (setq maxR (/ minl 2))
- (if ( = rr nil)(setq rr (1+ maxR)))
- (while (> rr maxR)
- (setq rr (getreal (strcat "\n 输入r的大小 R≤" (rtos maxR) ":<" (rtos (fix maxR)) ">")) aa nil)
- )
- (setq n (sslength en))
- (command "fillet" "r" rr)
- (setq n (1- n))
- (while (>= n 1)
- (setq
- en1 (ssname en n)
- en2 (ssname en (setq n (1- n))))
- (if (HH:TwoEntsInters en1 en2 0)
- (vl-cmdf "fillet" en1 en2)
- )
- )
- (prompt "请选择直线,相连的才能倒角:")
- )
- (setvar "cmdecho" cm)
- (COMMAND ".undo" "E")
- (princ)
- )
|