Roster 发表于 2004-10-15 18:33:00

求教,Circle和Mline的IntersectWith不在中心线上

我的多线中红色分别是正负0.5的偏移,蓝色是0,它和直线为什么的交点(已用白色线段连起来了)有时候却不在蓝色线上呢
file:///d:/lml.gif

Roster 发表于 2004-10-15 18:41:00


我写的代码如下:                                 Dim objMLine As AcadMLine, pnt
                                ThisDrawing.Utility.GetEntity objMLine, pnt, "请选择插入点:"
                       
                       If Not objMLine.ObjectName = "AcDbMline" Then
                                                       ThisDrawing.Utility.Prompt "请选择插入点"
                                                       Exit Sub
                       End If
                                       
                       Dim tmpCircle As AcadCircle
                       Set tmpCircle = ThisDrawing.ModelSpace.AddCircle(pnt, 0.5)
                       
                       Dim tmpPoint       As Variant
                       tmpPoint = objMLine.IntersectWith(tmpCircle, acExtendBoth)
                               
                       Dim pnt1(0 To 2) As Double
                       pnt1(0) = tmpPoint(3)
                       pnt1(1) = tmpPoint(4)
                       pnt1(2) = tmpPoint(5)
                               
                       Dim pnt2(0 To 2) As Double
                                pnt2(0) = tmpPoint(0)
                       pnt2(1) = tmpPoint(1)
                       pnt2(2) = tmpPoint(2)
                       Dim tmpLine As AcadLine
                       Set tmpLine = ThisDrawing.ModelSpace.AddLine(pnt2, pnt1)

zfbj 发表于 2004-10-15 22:10:00

可能与你的多线的对齐点(对正方式)有关,把对正方式设置为“无”试试。

Roster 发表于 2004-10-15 22:55:00

我确实是将它设为无的,ML/J/Z
而且,我发现,当我把Circle换成XLine(垂直于那条白线)后,得到的结果更奇怪,交点在很远的地方。
页: [1]
查看完整版本: 求教,Circle和Mline的IntersectWith不在中心线上