钾肥 发表于 2007-10-25 22:52:00

[讨论]在二维作图的时,遇到线,圆等图元不在一个面上你是如何处理的?

本帖最后由 作者 于 2007-10-25 22:55:28 编辑 <br /><br /> 大家来说说你是如何处理的?<br/><br/>谁的方法最简便,最有效呢?

dunkel 发表于 2007-10-26 06:52:00

<p>除非是块内实体, 两次 Move 操作一般都可以解决, 还是比较简单的: <br/>&nbsp; Move<br/>&nbsp;&nbsp; &nbsp;All<br/>&nbsp;&nbsp;&nbsp; 0,0,0<br/>&nbsp;&nbsp;&nbsp; 0,0,1e99<br/>&nbsp; Move<br/>&nbsp;&nbsp;&nbsp; All<br/>&nbsp;&nbsp;&nbsp; 0,0,1e99<br/>&nbsp;&nbsp;&nbsp; 0,0,0<br/>这个方法利用的是计算机在数值表示精度上位数的有限性来进行的. 只要实体 Z 坐标不是很离奇, 该方法都能成功. </p>

hicool 发表于 2007-10-26 10:35:00

<p>change</p><p>all</p><p>p</p><p>e</p><p>0</p>

钾肥 发表于 2007-10-26 11:42:00

两个方法都试过可,都没起作用。还有啥好办法?<br/><br/>三楼:因为一个图中有多种图元。所以这个change中的标高具体是指那些图元的那些特性呢?<br/><br/><br/><br/>

dunkel 发表于 2007-10-26 14:21:00

将不能实现的挑几个图元上传来看看? 两个 Move 命令对有 Z 坐标大致在 1e84 - 1e114 间的图元是不行, 这时只有将 1e99 上调至 Z 最大值的 1e16 倍以上就可以的. 举 1e99 这个值, 我想当初也只是为了好记忆而已

钾肥 发表于 2007-10-30 15:51:00

<p>为什么是1e99为什么?</p><p>1e99表示什么?如何理解?完全不理解~~麻烦解释一下。</p><p>我说的不能操作的图元是用change命令。都是些多义线、面域之类的图元。</p><p>你的这个方法我不理解呀~~解释。</p><p></p>

dunkel 发表于 2007-10-30 19:21:00

这是因为 1e99(1×10^9) 相对于通常图形中可能出现的 Z 坐标值是非常的大. 图形中的 Z 坐标值一般是最多到几万, 几十万吧. 这些值加上 1e99, 由于计算机在 (浮点) 数值表示上精度的限制 (8 字节长浮点数据格式, 52 个二进制位表示尾数, 折十进制即为 16 个进制位), 结果只能还是 1e99, 原来的数值就因精度限制丢失了 (1234+1e99≈1e99, 原来的 1234 在结果里表示不出来了). 所以, 无论原来的 Z 坐标是多少, 结果就只是 1e99 了. 再将 1e99 移回 0, Z 坐标就都归 0 了.

wewyhy 发表于 2007-10-31 10:54:00

<p>Autocad所有实体Z向一次归零</p><p>这个LISP程序论坛里好象有的。</p><p></p><p>调用后,执行命令:Z0,再按提示,一般全选所有对象即可。</p><p></p><p></p>

gosi 发表于 2007-11-2 17:20:00

贱人工具箱中好像就有这个功能。
页: [1]
查看完整版本: [讨论]在二维作图的时,遇到线,圆等图元不在一个面上你是如何处理的?