以下是我在AC2004中得到的信息。
Test_Overlap_AC2004。图纸
这些天我会更深入地研究这个问题。
如果您有更复杂的图纸要测试,请附上它。
嗨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生成的多段线以及不感兴趣的层中的元素
请告诉我
再见
测试重叠-研究。图纸 嗨Ric
谢谢你的帮助。看起来AC2004的图纸太大了。一张小图可以轻松容纳15000个元素,较大的可以容纳1.000.000个元素。因此,我将offset命令抛出,检查多边形内的多边形点,该多边形完全在多边形内进行检查,并使用IntersectWith命令获取那些相交的多边形。通过在相交点之间循环,将对选中多边形的现有节点进行绘制,因此仅高亮显示没有节点的交点。这种方法很有魅力。现在我可以在图形中的其他元素和类型上使用此函数了。
我用你的提示显著提升了性能,所以,为你干杯!
总有一天我会把代码放在这里。
Grtz公司
天文学家 嗨AstroNout
很高兴能对你有所帮助
期待看到您的代码
再见
页:
1
[2]