根据条件,批量旋转图块
本帖最后由 lengxiaxi 于 2024-5-30 11:21 编辑批量选择图块,根据条件,判断是否执行当前图块旋转90度
条件为:如果当前图块x方向长度,大于Y方向长度,则以图块中心为基点,旋转90度;否则,保持原样;
框选多个图块,能批量执行;
满足条件的图块,以各自的中心点为基准,旋转90度;不满足条件的图块,不做处理;
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-objectaa)(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)
) 感觉一个示意图顶3000字作文 本帖最后由 lengxiaxi 于 2024-5-30 11:26 编辑
xj6019 发表于 2024-5-30 10:57
没事猜着玩呗
感谢大佬回帖,效果优秀,很好用!
页:
[1]