最不可思议的奇迹!!!!!!请使用CAD2004版本的朋友进来看!
本帖最后由 作者 于 2006-6-14 17:29:27 编辑 <br /><br /> <P>直接开门见山 </P><P>今天写了一个超简短的VBA程序 先请大家过目</P>
<P>Sub Unbelievable()<BR>Dim LinePoints(0 To 7) As Double<BR>Dim Lineobj As AcadLWPolyline<BR>Dim OutLineObj As Variant</P>
<P> LinePoints(0) = 518272.6283<BR> LinePoints(1) = 3181584.5378<BR> LinePoints(2) = 518265.3245<BR> LinePoints(3) = 3186202.672<BR> LinePoints(4) = 524367.6342<BR> LinePoints(5) = 3186213.9028<BR> LinePoints(6) = 524377.3628<BR> LinePoints(7) = 3181595.7583<BR> Set Lineobj = ThisDrawing.ModelSpace.AddLightWeightPolyline(LinePoints)<BR> Lineobj.Closed = True<BR> OutLineObj = Lineobj.Offset(-85)</P>
<P>End Sub<BR></P>
<P>相信代码应该是超简单的了吧</P>
<P>程序先定义了4个点的XY坐标 由这4个点 构成一个4边形 然后使这个4边形闭合 </P>
<P>最后 将这个4边形 偏移85 仅此而已 !!!</P>
<P>请使用CAD2004版本的朋友运行一下我这个程序 </P>
<P>结果会让你大跌眼镜!!!!!</P>
<P>偏移的框 位置完全正确 </P>
<P>原先画的内框 居然被移动到十万八千米外!!!!!!! 不可思议。。。。。</P>
<P>而在2006 2007版本中 代码完全没有问题 </P>
<P>2个框 完全符合要求 </P>
<P>不知道为什么2004版本中 会这样!?!?!? </P> <P>经过反复测试 </P>
<P>问题出在 OutLineObj = Lineobj.Offset(-85)</P>
<P>这一行 如果去掉这一行 那程序是正确的 </P>
<P>会在指定的4个点上 画出一个框 </P>
<P>但是 一偏移 刚画的这个框(由4个点组成的框) 就被莫名其妙的移动到十万八千里外去了 ,而偏移出来的外框 坐标是正确的。 </P>
<P>真是超奇怪 思来想去 没弄明白。。。。 </P>
<P>有人能帮忙解决吗?</P> 这老早3年前就讨论过了。
<P>可以解决的方法就是偏移前记住位置,偏移后查看位置是否变了,如果变了就移回去。</P> <P> o 谢谢明总。</P>
<P>那怎么样的特定条件下 进行偏移 原线会移动呢?</P>
<P>我画了一个1000X1000的框 貌似又对的。。。</P>
页:
[1]