明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6946|回复: 25

[已解答] 求批量旋转图块

[复制链接]
发表于 2014-2-20 09:39:14 | 显示全部楼层 |阅读模式
平面内有很多很多块,无论相同、不相同,需要可以框选后批量同时旋转X度角。旋转点是各个图块的基点。请帮忙,谢谢···

本帖被以下淘专辑推荐:

 楼主| 发表于 2014-2-20 10:11:30 | 显示全部楼层
llsheng_73 发表于 2014-2-20 09:52

不能使用呢,请问测试过吗?
回复 支持 0 反对 1

使用道具 举报

发表于 2018-7-25 11:07:38 | 显示全部楼层

您好,请问如果设置为默认旋转180度改怎么改呀,也就是箭头掉个头
发表于 2018-2-21 16:38:54 | 显示全部楼层
懂得人,程式就是厲害
发表于 2014-2-20 09:52:52 | 显示全部楼层
  1. (setq x(getreal"要旋转的角度"))
  2. (if(null x)(setq x 0))
  3. (setq s(ssget'((0 . "INSERT"))))
  4. (if s
  5.   (progn
  6.     (setq n(sslength s)m 0)
  7.     (while(< m n)
  8.       (setq e(entget(ssname s m))
  9.             m(1+ m))
  10.       (entmod(subst(cons 50 x)(assoc 50 e)e)))))

点评

楼主需要的是选转X角度,而非改为X角度,同时要度和弧度转换一下!  发表于 2014-2-20 10:28
发表于 2014-2-20 12:18:55 | 显示全部楼层
  1. (defun c:sro ( )
  2. (princ "批量旋转块")
  3. (setq ang(getreal "\n输入旋转角度:<90>"))
  4. (if(= ang nil)(setq ang 90))
  5. (setq ss(ssget '((0 . "INSERT"))))
  6. (setq i 0)
  7. (setvar 'cmdecho 0)
  8. (command "_.undo" "be")
  9. (repeat (sslength ss)
  10. (setq ssn(ssname ss i))
  11. (setq pt0(cdr(assoc 10(entget ssn))))
  12. (setvar 'NOMUTT 1)
  13. (command "_.ROTATE" ssn "" pt0 ang )
  14. (setvar 'NOMUTT 0)
  15. (setq i(1+ i))
  16. )
  17. (command "_.undo" "e")
  18. (setvar 'cmdecho 1)
  19. (prin1)
  20. )

 楼主| 发表于 2014-2-20 12:24:14 | 显示全部楼层
菜卷鱼 发表于 2014-2-20 12:18

感谢菜卷鱼,测试满足需求,谢谢!

也感谢 llsheng_73 只是对有的块能满足,对个别块旋转的角度不准确,或许是我的块的问题
发表于 2014-2-20 14:02:14 | 显示全部楼层
菜卷鱼,测试满足需求.
发表于 2014-2-20 14:15:37 | 显示全部楼层
  1. (defun c:tt(/ x k s n m en r)
  2.   (vl-load-com)
  3.   (setq x(getangle"\n输入需要旋转的角度<归0>:"))
  4.   (if(null x)(setq x 0 k nil) (setq k t))
  5.   (setq s(ssget'((0 . "INSERT"))))
  6.   (if s
  7.     (progn
  8.       (setq n(sslength s)m 0)
  9.       (while(< m n)
  10.         (setq en(ssname s m)
  11.               m(1+ m))
  12.         (if k(setq r (+ (cdr(assoc 50 (entget en))) x))(setq r x))
  13.         (vla-put-Rotation (vlax-ename->vla-object en) r)
  14.         )))
  15.   (princ)
  16.   )

点评

edata长老您好,程序可否做成按键盘的左右箭头键动态旋转到想要的角度呢。请指教。谢谢  发表于 2018-8-14 00:13

评分

参与人数 1明经币 +1 收起 理由
1993063 + 1 赞一个!

查看全部评分

 楼主| 发表于 2014-2-20 15:21:24 | 显示全部楼层
edata 发表于 2014-2-20 14:15

感谢edata!代码也一样好用,还带了个整体归0度的功能,更上一筹··
发表于 2014-4-20 09:12:12 | 显示全部楼层
edata 发表于 2014-2-20 14:15

这个只能旋转块,要是能同时旋转文字就更完美了
发表于 2014-4-20 16:48:50 | 显示全部楼层
千指魔王 发表于 2014-4-20 09:12
这个只能旋转块,要是能同时旋转文字就更完美了

很简单,把(setq s(ssget'((0 . "INSERT"))))
里的"INSERT"改为"INSERT,text"即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 06:30 , Processed in 0.202815 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表