xzsnoopy 发表于 2007-3-20 16:16:00

[求助]如何将三维线转换为不带标高属性的二维多段线?

<p></p><p>同主题~··················</p>

dunkel 发表于 2007-3-20 18:32:00

如果只是抹掉 Z 坐标值倒是比较简单, Move from (0,0,0) to (0,0,1e99) 再 Move from (0,0,1e99) to (0,0,0) 即可. 如果还要将 3DPolyline 转换为 LWPOLYLINE 实体, 就比较那个了. Convert 命令只支持对 2DPolyline 的转换. 这样的比较少的话, 可以试试先分解了, 再通过 Pedit.Join 子命令重新组合起来

xzsnoopy 发表于 2007-3-21 08:43:00

<p>move不是移动的命令吗?请教一下到底怎么用啊?</p><p>convert命令好像转换不了啊,我是要将三维多段线转换为二维多段线,不是转换为实体~············</p>

zara 发表于 2007-3-21 09:45:00

这个通过两次 Move 命令消除 Z 坐标的方法是利用的计算机数值表示精度上的限制来实现的. 一般的数值只有 15 还是 16 位的有效数字. 超过了的就表现不出来了. 即 1e10+1=1.0000000001e10, 加上的 1 在结果里面是能够体现出来的; 但 1e99+1=1e99, 加的那个 1 就没有了. 所以, 只要你图形中原来 Z 值不是很离奇的大, 那么由 (0,0,0) 移动到 (0,0,1e99) 之后, 所有的 Z 就只是 1e99 了, 原来的 Z 就消失在精度表示的限制中. 再从 (0,0,1e99) 移动回 (0,0,0), 所有的 Z 就都是 0 了

xzsnoopy 发表于 2007-3-21 13:14:00

了解了,谢谢楼上的~························

shirazbj 发表于 2007-3-24 12:10:00

<p>用vba变成转换</p><p></p>
页: [1]
查看完整版本: [求助]如何将三维线转换为不带标高属性的二维多段线?