ddyer 发表于 2025-1-10 23:00:58

CAD坐标精度和图形缩放的关系???

本帖最后由 ddyer 于 2025-1-11 08:30 编辑

有这样个操作,就是先选中一个块A,取到块的坐标,然后根据这个坐标,查找目标对象。比如要查找的目标对象在块插入点的右上方点P1(500,900)和点P2(600,1000)围成的矩形内。
问题是:
在处理大量相同的块A的时候,比如100个,先缩放到全屏显示全部块,然后框选出所有块。

此时,如果直接右键确认,那程序执行的结果,和想象的不一样,经监视,选出来的P1和P2范围内的对象比想象的多很多。

可是,在选中所有块后,放大图形,让视口只显示某一个块A(其实就是放大图形了),再右键确认,这时,执行的结果和预想的是一致的,所有的块A右上方的目标对象就会被正确的修改。

这是为什么呢?

你有种再说一遍 发表于 2025-1-10 23:17:18

本帖最后由 你有种再说一遍 于 2025-1-10 23:18 编辑

1,自动桌子的ssget是前台的.lisp只有ssget这个操作.
2,还是学C#构建四叉树,然后维护索引的好.
全部遍历一次不可怕,可怕的是不知道分组/并行运算/索引.

ddyer 发表于 2025-1-11 08:27:59

谢谢。
1、是不是这样:这个思路处理问题,就会有这个现象,无解。
2、你说的这些四叉树又又又是知识盲区。
3、为什么会有那个奇怪的现象,还是不懂呀。

e2002 发表于 2025-1-11 09:07:01

上周遇到要在桩定位图中搜寻重叠放置的桩,然后剔除的问题,开始直接遍历,判断InsetPoint之间距离,此方法可靠,但显然低效。然后想优化,就逐一选用某个对象,然后ssget CrossWindow方式固定间距范围内的少量的Insert对象,进行距离判断。这个方法确实更快,但结果发现总是不对,后来才想起ssget的问题。

后面有空,换这个四叉树再写一下。应该有相应的库可以用吧?

飞雪神光 发表于 2025-1-11 11:15:32

就是ssget的问题 受屏幕影响的 所以ssget之前 要先zoom一下

你有种再说一遍 发表于 2025-1-11 13:02:40

ddyer 发表于 2025-1-11 08:27
谢谢。
1、是不是这样:这个思路处理问题,就会有这个现象,无解。
2、你说的这些四叉树又又又是知识盲区 ...

为什么存在这个现象?可能是桌子为了限制大家开发吧.
明明可以从数据库的八叉树缓存中获取,偏偏要从显示更新的缓冲区获取.

你有种再说一遍 发表于 2025-1-11 16:06:16

e2002 发表于 2025-1-11 09:07
上周遇到要在桩定位图中搜寻重叠放置的桩,然后剔除的问题,开始直接遍历,判断InsetPoint之间距离,此方法 ...

四叉树写在我博客和IFox了呀.
至于维护索引这种事情,就没有了,因为我意识到之后发现还挺麻烦的,居然是整套系统.
四叉树:
https://www.cnblogs.com/JJBox/p/15512317.html
倒序索引,参考事件:
https://www.cnblogs.com/JJBox/p/18580188

ddyer 发表于 2025-1-11 17:01:50

谢谢
https://help.autodesk.com/view/ACD/2024/CHS/?guid=GUID-2609B540-EF39-45B5-8682-FEC7F16B77DE
从这似乎也能暗示些什么,SELECTIONOFFSCREEN=2时,结果有可能不正确。这仅适用于实验目的。
开始以为,只把任意一个块调到当前view里面,其他的就没问题,和手动滚轮缩放一样。
但实际上,确实绝大多数块都没问题,偏偏调入到view里面的块的右下方的块,总是出错。
最后就一个一个的把块调到view里面来,
虽然效率很慢,还不如手动鼠标缩放后效率高,只是跑起来看上去是很库的样子,屏幕里面的内容不停刷新。
其他的慢慢了解吧,大裤衩呀并行呀什么索引呀分组呀。
挺好。

页: [1]
查看完整版本: CAD坐标精度和图形缩放的关系???