马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 newer 于 2021-1-15 11:44 编辑
 - (defun c:xzt (/ ss1 n ty1 ptn en kwb cmm kwa na)
- (setvar "osmode" 0)
- (prompt "\n请选择需要旋转或镜像的块")
- (setq na (car (entsel)))
- (redraw na 3)
- (setq en (vlax-get-property (vlax-ename->vla-object na) "EffectiveName"))
- (prompt "\n请请定义修改范围")
- (setq ss1 (ssget
- (list '(-4 . "<and")
- '(0 . "INSERT")
- (cons 2 en)
- '(-4 . "and>")
- ))
- n 0
- )
- (redraw na 4)
- (initget "A a B b")
- (setq kwa (getkword "\n请选择操作模式 : <A:批量镜像>/<B:批量旋转>"))
- (if (= kwa "B")
- (setq cmm (getint "\n请输入旋转角度,逆时针为正 :"))
- (progn
- (initget "A a B b")
- (setq kwb (getkword "\n请选择操作模式 : <A:上下镜像>/<B:左右镜像>"))
- )
- )
- (repeat (sslength ss1)
- (setq ty (ssname ss1 n)
- ptn (cdr (assoc 10 (entget ty)))
- n (1+ n)
- )
- (if (= en (vlax-get-property (vlax-ename->vla-object ty) "EffectiveName"))
- (if (= kwa "B")
- (vla-Rotate (vlax-ename->vla-object ty) (vlax-3d-point ptn) (/ (* cmm pi) 180))
- (progn
- (vla-mirror (vlax-ename->vla-object ty) (vlax-3d-point ptn) (if (= kwb "B")
- (vlax-3d-point (list (car ptn) (+ (cadr ptn) 1000)))
- (vlax-3d-point (list (+ (car ptn) 1000) (cadr ptn)))
- ))
- (vla-delete (vlax-ename->vla-object ty))
- )
- )
- )
- )
- (setvar "osmode" 4863)
- (princ)
- )
谢谢marting 和 Lisphk 解惑
|