本帖最后由 819534890 于 2014-12-4 11:06 编辑
谢谢了,我自己解决了,等下贴出代码。把群码42 的值改为相反值就行。
 - ;批量多段线圆角,和FILLET的圆角方向相反,简化版
- (defun c:ff(/ radius radius1 ss en)
- (setq radius (getvar "FILLETRAD"))
- (if (setq radius1
- (getdist (strcat "\n请指定圆角半径<" (rtos radius) ">:"))
- )
- (setq radius radius1)
- )
- (if (setq ss(ssget '((0 . "lwpolyline"))))
- (progn
- (setq echo1 (getvar "cmdecho"))
- (setvar "cmdecho" 0)
- (while (setq en(ssname ss 0))
- (ffr en radius)
- (rer en)
- (setq ss (ssdel en ss))
- )
- (if echo1 (setvar "cmdecho" echo1))
- )
- )
- (princ)
- )
- (defun ffr(en r)
- (setvar "FILLETRAD" r)
- (command "_.FILLET" "P" en)
- )
- (defun rer(sn / x sn_g p42)
- (setq sn_g (entget sn))
- (setq sn_g (mapcar '(lambda (x) (if (= (car x) 42 ) (setq x (cons 42 (- 0 (cdr x)))) x)) sn_g))
- (entmod sn_g)
- )
|