mituzhe 发表于 2022-7-27 21:56:00

如何分割一个选择集

写了一个管道穿墙位置标记的程序
为了找到所有穿墙位置,就只能一个管道图元遍历所有墙体,判断是否相交。
如果有10000个管道图元和10000个墙体图元,那时间复杂度得10000*10000,一晚上都遍历不完。
所以为了降低时间复杂度,希望能将选择集自动切分
每个小选择集内只有比如管道和墙体图元各两个,这样时间复杂度就只有2*2×5000,大大降低了时间复杂度。
不知道有没有大佬能提供一下思路




llsheng_73 发表于 2022-7-27 22:23:00


不管怎么搞,遍历每个管道图元是必须的
个人意见,先只针对管道搞一个选择集,
对它的每个图元取出坐标进行ssget"F"对墙体进行选择,正常情况下可以直接得到管道穿越墙体的顺序及穿越位置

mituzhe 发表于 2022-7-27 23:25:00


哦,对哦。用F关键字可以求相交选择集。是一个很好的思路。
遍历每个管道图元确实是必须的,但某个管道图元跟某个墙体图元隔得特别远就没有必要去判断相交了。所以希望切分成一小块一小块的选择集,这样管道和墙体都在一个较小区域内,相交可能性更高。可以减少不必要的计算。可能还是很难实现吧。
谢谢你提供的思路,也可以解决很大的问题

wzg356 发表于 2022-7-28 15:21:00

一个根管道作一次ssget f,选择集里面就有交点坐标(管道首先碰到那个墙体的坐标)

admin 发表于 2022-8-2 17:22:25

你这不是扯淡呢,简单事情复杂化。直接用浩辰CAD-暖通。浩辰CAD-给排水。这些都是全自动的
页: [1]
查看完整版本: 如何分割一个选择集