[求助]哪位高手知道VBA判断pl线是逆时针还是顺时针绘制的?
<font face="Verdana">[求助]哪位高手知道VBA怎样判断pl线是逆时针还是顺时针绘制的?lisp代码本站已有,但是本人不太了解LISP语言。有VBA代码的更好。谢谢!!</font> <p>凸度</p> <p>这么多天还没有人接招,这不太好。</p><p>我提示一下:</p>
<p>多段线向两侧偏移后,多段线的面积会有变化。</p>
<p>逆时针和顺时针多段线会产生不同的结果。</p> <p>首先感谢MCCAD的提示。本人在程序很想使用“判断线的绘制顺序”函数,苦于没有好的思路所有另辟新的思路与算法,问题已经得到了解决,谢谢大家。</p>
<p> </p>
<p>“凸度”肯定不能解决此类问题的。MCCAD的算法可以的,但是本人真的没有编写程序测试。谢谢各位。此问题到此结束啦!</p> <p>对了,还要麻烦明总,如果是两个点的pline线怎没办?使用偏移好像不能够准确的判断了</p>
<p> </p> 两个点怎么分顺和逆呢?如果两个点,那就要结合凸度,但如果是直线段的话,就没有方向可言了。 <p>可以的,可以根据绘制的方向来判断(认为)逆时针还是顺时针,即x1-x0,如果大于等0认为是顺时针,反之逆时针。</p>
<p> </p>
<p>再请教明总:</p>
<p>怎样获得pline的每一段<font face="Verdana">SetBulge值呢?</font></p>
<p>下面的代码提示“参数不可选”错误,谢谢赐教。</p>
<p> </p>
<p><font face="Verdana">Sub Example_SetBulge2()<br/> ' This example creates a light weight polyline in model space.<br/> ' It then finds and changes the bulge for a given segment.<br/> <br/> Dim plineObj As AcadLWPolyline<br/> Dim points(0 To 11) As Double<br/> Dim currentBulge As Double<br/> Dim i As Long<br/> ' Define the 2D polyline points<br/> points(0) = 1: points(1) = 1<br/> points(2) = 1: points(3) = 2<br/> points(4) = 2: points(5) = 2<br/> points(6) = 3: points(7) = 2<br/> points(8) = 4: points(9) = 4<br/> points(10) = 4: points(11) = 1<br/> <br/> ' Create a light weight Polyline object in model space<br/> Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)<br/> ZoomAll<br/> 'MsgBox plineObj.SetBulge(0)</font></p>
<p><font face="Verdana"> For i = 0 To 5<br/> <br/> s = s + "plineObj.SetBulge(" + Str(i) + ")=" & plineObj.SetBulge(i) & vbCrLf<br/> Next i<br/> MsgBox s<br/> <br/>End Sub</font></p>
<p><font face="Verdana"></font> </p> 应该是GetBulge吧 算面积正负
页:
[1]