[求助]在LISP中,怎样编程求所有线的交点,并且输出到一个文本文件中。
所有线?都包括那些线,LINE还是PLINE,是否有圆弧或别的,能否说详细点?
请看"求所有线的交点"的程序:
(defun c:test ()(vl-load-com)
(setq ss (ssget "X" '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
m 0)
(while (< m (1- (sslength ss)))
(setq e1 (ssname ss m)
e1 (vlax-ename->vla-object e1)
n (1+ m))
(while (< n (sslength ss))
(setq e2 (ssname ss n)
e2 (vlax-ename->vla-object e2)
pts (vla-intersectwith e1 e2 0)
pts (vlax-variant-value pts))
(if (> (vlax-safearray-get-u-bound pts 1) 0)
(progn
(setq pts (vlax-safearray->list pts))
(while (> (length pts) 0)
(setq pl (cons (list (car pts)
(cadr pts)
(caddr pts))
pl)
pts (cdddr pts))
)
)
)
(setq n (1+ n))
)
(setq m (1+ m))
)
pl
);defun
谢谢你的提问,我所说的线,包含CAD中的所有的直线和曲线类型。
谢谢你的解答,我调试一下试一试,有事我会向你请教的。
您编的这程序怎样调试,我怎么没有调试出来,能不能告诉我一下具体的操作方法。
在一张空图上画一些相交的直线、圆、圆弧、样条曲线,直接加载运行,注意使用局部变
在一张空图上画一些相交的直线、圆、圆弧、样条曲线,直接加载运行,注意使用局部变量,否则交点列表会累加我按照你说的做了,但是还是不行,现把画面发给你,请你看一看什么问题。
说说看你是怎么加载的?
在COMMAND命令下输入:(LOAD"C:\\AA.LSP")
页:
[1]
2