乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: AstroNout

[编程交流] 偏移VBA

[复制链接]

14

主题

42

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 22:56:23 | 显示全部楼层
嗨,RICVBA
 
以下是我在AC2004中得到的信息。
Test_Overlap_AC2004。图纸
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 23:00:51 | 显示全部楼层
 
 
 
这些天我会更深入地研究这个问题。
如果您有更复杂的图纸要测试,请附上它。
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 23:08:04 | 显示全部楼层
 
嗨AstroNout
 
 
在深入研究了您的dwg文件和代码后,我向您确认,在我的系统中,一切正常,即您的sub在适当的层中正确地收集重叠元素。
 
 
您可能会遇到更复杂的DWG问题,这些DWG具有您发布的几何案例中不存在的几何案例。
如果你想附加它们,我很乐意测试你有问题的DWG。
 
 
同时,我希望我可以帮助您处理随附的“Test\u Overlap-studing.dwg”文件,您可以在其中找到原始的“Overlap”子文件和以下子文件:
-重叠研究sub
在那里,我添加了着色和缩放命令,以便更好地跟踪子对象对实体的处理。
-重叠新sub
在这里,我对您的代码进行了一些小的修改,只是为了优化(或者至少是我认为的)目的。我扩展了selectionset ftype和fdata数组,以避免后续的if-then-else检查。并添加了一个句柄检查,以避免处理aEnt2(如果acSelectionSetCrossingPolygon未能排除aEnt)
-重叠新2子
其中,尝试通过“intersectwith”方法进行重叠检测。但当两条多段线部分共享一些边界边时,检测到它们重叠(这不是您想要的,是吗?)
-添加我放置缩放和复制移动子对象的模块,由主子对象调用
 
 
此外,我还在绘图中添加了一些元素,以测试不同的clokwise生成的多段线以及不感兴趣的层中的元素
 
 
请告诉我
 
 
再见
测试重叠-研究。图纸
回复

使用道具 举报

14

主题

42

帖子

28

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 23:10:16 | 显示全部楼层
嗨Ric
 
谢谢你的帮助。看起来AC2004的图纸太大了。一张小图可以轻松容纳15000个元素,较大的可以容纳1.000.000个元素。因此,我将offset命令抛出,检查多边形内的多边形点,该多边形完全在多边形内进行检查,并使用IntersectWith命令获取那些相交的多边形。通过在相交点之间循环,将对选中多边形的现有节点进行绘制,因此仅高亮显示没有节点的交点。这种方法很有魅力。现在我可以在图形中的其他元素和类型上使用此函数了。
 
我用你的提示显著提升了性能,所以,为你干杯!
 
总有一天我会把代码放在这里。
 
Grtz公司
天文学家
回复

使用道具 举报

12

主题

175

帖子

77

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
149
发表于 2022-7-6 23:14:11 | 显示全部楼层
嗨AstroNout
很高兴能对你有所帮助
 
期待看到您的代码
 
再见
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 08:33 , Processed in 0.642498 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表