明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 876|回复: 3

根据条件,批量旋转图块

[复制链接]
发表于 2024-5-30 08:35:05 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 lengxiaxi 于 2024-5-30 11:21 编辑

批量选择图块,根据条件,判断是否执行当前图块旋转90度

条件为:如果当前图块x方向长度,大于Y方向长度,则以图块中心为基点,旋转90度;否则,保持原样;

框选多个图块,能批量执行;



满足条件的图块,以各自的中心点为基准,旋转90度;不满足条件的图块,不做处理;




附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

没事猜着玩呗 (defun c:NM(/ lst ss xj-en2pt) (defun xj-en2pt (e / s) (if (and e (setq tp (type e)) (atom e) (or (= tp 'vla-object) (and (= tp 'ename)(setq e (vlax-ename->vla-object e))) ) ) (progn (vla-GetBoundingBox e 'a 'b) (mapcar 'vlax-safearray->list (list a b)) ) ) ) (if (setq ss (ssget (list '(0 . "INSERT")) ...
发表于 2024-5-30 08:35:06 | 显示全部楼层
start4444 发表于 2024-5-30 10:19
感觉一个示意图顶3000字作文

没事猜着玩呗


(defun c:NM(/ lst ss xj-en2pt)
        (defun xj-en2pt (e  / s)  
                (if (and e (setq tp (type e))
                                        (atom e)
                                        (or (= tp 'vla-object)
                                                (and (= tp 'ename)(setq e (vlax-ename->vla-object e)))
                                        )
                                )
                        (progn
                                (vla-GetBoundingBox e 'a 'b)
                                (mapcar 'vlax-safearray->list (list a b))
                        )
                )
        )
        (if                
                (setq ss (ssget (list '(0 . "INSERT"))))         
                (mapcar
                        (function
                                (lambda(aa)
                                        (setq s(xj-en2pt aa))       
                                        (if(>(abs(-(car(car s))(car(cadr s))))(abs(-(cadr(car s))(cadr(cadr s)))))
                                                (vla-rotate (vlax-ename->vla-object  aa)  (vlax-3d-point(Vlax-Get (Vlax-Ename->Vla-Object aa) 'InsertionPoint )) (* 0.5 pi))
                                        )
                                )
                        )
                        (vl-remove-if-not '(lambda(x)(= 'ENAME (type x))) (mapcar 'cadr (ssnamex ss)))
                )
        )       
        (princ)
)

评分

参与人数 1金钱 +50 收起 理由
start4444 + 50 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2024-5-30 10:19:39 | 显示全部楼层
感觉一个示意图顶3000字作文
回复

使用道具 举报

 楼主| 发表于 2024-5-30 11:24:24 | 显示全部楼层
本帖最后由 lengxiaxi 于 2024-5-30 11:26 编辑

感谢大佬回帖,效果优秀,很好用!

评分

参与人数 1明经币 +1 收起 理由
love1030312 + 1 淡定

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 17:46 , Processed in 0.144288 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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