[求助]帮我修改一下这段代码
<p>代码如下:</p><p>QD = acadDoc.Utility.GetPoint(, "起点:")<br/>ZD = acadDoc.Utility.GetPoint(, "终点:")<br/> Set lineObj = acadDoc.ModelSpace.AddLine(QD, ZD)<br/> Set SelSetLineObject = acadDoc.SelectionSets.Add("AA") <br/> SelSetLineObject.Select acSelectionSetCrossing, QD, ZD<br/> InsertTextPoint = acadDoc.Utility.GetPoint(, vbCr & "插入点:")<br/> intPoints(0) = InsertTextPoint(0)<br/> intPoints(1) = InsertTextPoint(1)</p><p>For index = 0 To SelSetLineObject.Count - 1<br/> <br/> Set e = SelSetLineObject.Item(index)<br/> If e.ObjectName = lineObj Then <br/> pt1 = e.StartPoint ' 直线起点坐标 <br/> pt1 = e.EndPoint ' 直线终点坐标 <br/> Set TextObject = acadDoc.ModelSpace.AddText(pt1, InsertPoint,1)<br/> Next<br/>SelSetLineObject.Delete</p><p>图上有若干条直线,有平行有交叉,我从QD点到ZD点画一条穿过这几条线的直线,然后在指定点按照从QD点到交叉点由近到远的顺序依次插入图上原有直线两端的坐标,我上面的代码只能无顺序插入,麻烦那位大哥帮我改一下!</p> 你这种情况需要求交点到指定点的距离。进行排序后,再操作。 <p><strong><font color="#000000">请教mccad,在VBA中能否调用或实现ARX中的</font></strong><strong><font color="#000000">“Getpointbydistance”函数功能?</font></strong></p> VBA没有提供相应的方法,要借助Vlax类,不过很不稳定 <p>是不是很难,有没有其他方法可以达到这种效果!</p> <p>不算难啊。你需要做的是:</p><p>1.求交点,用IntersectWith方法。</p><p>2.用二维数组保存直线句柄与距离。</p><p>3.用排序法对数组按距离来排序。</p><p>4.排完序后,直线就已经排好序了。</p> 我对这个不是很熟,能不能给点代码?
页:
[1]