如何在cad中用vba程序捕捉两线的交点-请教高手
www.dimcax.com
如何在cad中用vba程序捕捉两线的交点-请教高手
比如有一条样条曲线,在其一侧有一点,过这个点做水平直线,交于这条曲线,捕获这个交点的坐标并被记录
这个过程如何实现呢?
我只知道可以用intersectwith方法,判断相交,如下:
dim retvar
retvar = cha.intersectwith(objpoly, acextendnone)
if ubound(retvar) = -1 then
msgbox "no intersection"
else
debug.print retvar(0)
debug.print retvar(1)
end if
end sub
难道用延伸的方法交于这条曲线?这个程序代码如何实现?
我是初学者,还请这方面的高手帮我解答。
intersectwith这个方法有几个参数,你应该看一下
intersectwith 方法
获取对象与图形中其它对象的相交点。
语法
retval = object.intersectwith(intersectobject, extendoption)
object
所有图形对象 (除了 pviewport 和 polygonmesh)
使用该方法的对象或对象集合。
intersectobject
object[对象], 为输入项;
对象可以是 所有图形对象中的任一个。
extendoption
acextendoption 常数; 为输入项
该选项指定两个对象中是否没有、单个或两个对象延伸来得到交点。
acextendnone
两个对象均不延伸。
acextendthisentity
延伸基本对象。
acextendotherentity
延伸作为参数传递的对象。
acextendboth
延伸两个对象。
retval
variant[变体] (双精度数组)
点数组为图形中对象与其它对象相交的点数组。
说明
如果两个对象不相交,则没有返回数据。用户可以要求一个或两个对象延伸相交来产生相交点。例如,在以下例图中,线1为该方法调用的基本对象,而线3作为参照传递给该方法。如果 extendoption 传递的是 acextendthisentity,则点a将作为线1在延伸后与线3相交的点返回 。如果 extendoption 为 acextendotherentity,则不会返回数据,因为即使线3延伸了,它也与线1没有相交。
没有相交则没有返回值,retvar 为空,未初始化