急!急!急!Obj.IntersectWith方法获得交点问题
目的:求和一条多义线相交的多条线段(多义线或样条曲线)的交点坐标,我使用Obj.IntersectWith方法。结果:明明相交的点,程序确认为不相交。
检查一下求交点的两条线的Z轴坐标是否一样
IntersectWith方法只能求绝对相交的线的交点,即要么在同一个平面中相交,要么在空间中相交,而不能处理投影情况。我这有个以前求交点的程序,已调试通过!
我这有个以前求交点的程序,调试通过了,你先在Acad中画个矩形和一个圆相交,然后运行此程序,可得到交点。Sub qjd()
Dim mo As AcadModelSpace
Set mo = ThisDrawing.ModelSpace
Dim intpoints As Variant
intpoints = mo(0).IntersectWith(mo(1), acExtendNone)
Dim i As Integer
Dim str As String
If VarType(intpoints) <> vbEmpty Then 'VarType(varname),必要的 varname 参数是一个 Variant vbEmpty返回值为0
For i = LBound(intpoints) To UBound(intpoints) Step 3
str = str & vbCrLf & "交点为:" & intpoints(i) & "," & intpoints(i + 1) & "," & intpoints(i + 2)
Next i
End If
MsgBox str
End Sub
你不如取两条线的坐标,自己算出交点坐标。
AutoCAD自带的IntersectWith函数不好用,立交点取不到,平交点也不一定能取到,你不如取两条线的坐标,自己算出交点坐标。
页:
[1]