本帖最后由 zsw23 于 2025-10-28 17:16 编辑


原帖是一个编程申请 :布局合并 - 编程申请 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz!

思路:拷贝,黏贴到新布局
示例中有96个单独布局,程序可以选择多少个一组合并。最小16,最大64
目前BUG:视口的图层设置会变的解决不了

暂时不发源码了,有问题暂时解决不了,有需要的可以回帖联系我



网友答: 直接一个个合并弄太慢,每次合并都直接先合并到DBX中,然后从DBX直接将合并布局复制回来,基本不需要来回显示切换布局。

网友答:
zsw23 发表于 2025-10-31 10:51
源码能分享吗?大佬

涉及太多的函数了,其实难的是分出框来。如果有框就好办了,参考下主要代码吧
;获取矩形框的角点坐标
;新建布局并切换到此布局
(setq acadobject   (vlax-get-acad-object)
                acaddocument (vla-get-activedocument acadobject))
(setq obj (vla-addpviewport (vla-get-paperspace acaddocument) (vlax-3d-point ptz) h z));ptz为图纸空间(布局)的视口中心坐标,h为视口横向长度,z为视口高度
(vla-put-TwistAngle obj (- (angle pt1 pt2)));pt1,pt2为矩形框角点坐标
(vla-display obj 1)  ;视口显示
(vla-put-mspace acaddocument :vlax-true)
(vla-zoomcenter acadobject (vlax-3d-point ptm) z);ptm为矩形框中心
(vla-put-displaylocked obj 1);锁定视口
(vla-put-mspace acaddocument :vlax-false)

;以上进行循环

网友答: 本帖最后由 zsw23 于 2025-10-30 19:11 编辑


关于布局有4点想法,还得借助大神们的插件来实现,自己写不出来。
1.模型空间智能分割图框,这个基本OK
2.拾取分割好的图框在一个布局内放置多个视口,借助 XXPLBT批量布图到布局空间.VLX
3.把一个布局内的多个视口,独立出来,借助源泉设计的插件。
4.最后一个也是我自己写的布局合并,特别是独立布局超过64个限制的时候,把独立布局分组合并,目前有BUG
5.后面考虑在布局空间批量插入图框,放上分割示意图。


网友答: 好的好的,学习了。

网友答: 你的BUG如何修:
字典结构map[视口id, List<图层id>]
这样就可以说明每个视口要冻结啥了,就可以恢复了.
参考链接:
http://bbs.mjtd.com/thread-186202-1-1.html


网友答:
kozmosovia 发表于 2025-10-28 20:45
直接一个个合并弄太慢,每次合并都直接先合并到DBX中,然后从DBX直接将合并布局复制回来,基本不需要来回显 ...

感谢指点,能力有限,继续学习

网友答: 这是纬地出的?感觉它分图有点傻,既然都在布局了为啥不去调视口比例,而是缩放图框

网友答:
sandyvs 发表于 2025-10-29 18:21
这是纬地出的?感觉它分图有点傻,既然都在布局了为啥不去调视口比例,而是缩放图框

不是的,这是把单个布局合并,为了看图方便

网友答:
zsw23 发表于 2025-10-29 19:54
不是的,这是把单个布局合并,为了看图方便

我知道,我意思是你原来的图

网友答: weidi处的图还行吧不过9.0的没有见过真容了
  • 上一篇:分解所有匿名块
  • 下一篇:没有了