批量裁剪视口
本帖最后由 yangyangyixia 于 2025-1-28 15:49 编辑论坛上没找到这个功能,拼凑出一个能用版本,菜鸟一个,大神看到不合适的地方指出来。
图元排序功能参考了 fsxm的扩展 自贡黄明儒 2013年9月9日
批量裁剪视口,使用时切换到需要操作的布局里面,提前布置好视口和裁剪框。
裁剪前:
裁剪后:
测试图纸:
楼主过年好,。我测试一下。多谢分享!!! CAD2023测试不成功,只剩下4的视口,其余的视口消失了! vlisp2012 发表于 2025-1-28 15:22
CAD2023测试不成功,只剩下4的视口,其余的视口消失了!
cad2007/2018我都测试了没问题,你再试试?裁剪完的图纸你发上来我看看 这个附件式是我运行后保存的。请楼主查看。
消失的物体都在def图层,就是不显示,但是可以选择。 本帖最后由 yangyangyixia 于 2025-1-28 17:32 编辑
vlisp2012 发表于 2025-1-28 17:00
这个附件式是我运行后保存的。请楼主查看。
消失的物体都在def图层,就是不显示,但是可以选择。
没看懂,这不是裁剪成功了吗,这就是视口裁剪后的样子,你的图中红线就是视口线
;; 没必要需要排序
(defun c:tt ()
"视口修剪"
(defun mimx (s1 / p1 p9)
(vla-getboundingbox (vlax-ename->vla-object s1) 'p1 'p9)
(list (vlax-safearray->list p1) (vlax-safearray->list p9))
)
(setq i -1)
(if (setq ss (ssget '((0 . "*poly*"))))
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq a(mimx s1)
p1 (car a)
p9 (cadr a)
)
(vla-put-Closed (vlax-ename->vla-object s1) :vlax-true)
(if (and (setq ss1 (ssget "c" p1 p9 '((0 . "VIEWPORT"))))
(= (sslength ss1) 1)
)
(command "_vpclip" (ssname ss1 0) s1)
)
)
)
(princ)
)
本帖最后由 yangyangyixia 于 2025-1-30 16:11 编辑
xyp1964 发表于 2025-1-30 10:34
;; 没必要需要排序
这个只是我在做的其他插件中一部分,我需要给每个视口排序,提取他们的旋转方向。
大佬,有时候视口不一定全部在裁剪线框内,有可能比它稍微大一点。
yangyangyixia 发表于 2025-1-30 15:51
这个只是我在做的其他插件中一部分,我需要给每个视口排序,提取他们的旋转方向。
只针对提供的文件和标题:排序多余
页:
[1]