intlst返回的应该是安全数组吧,(length intlst)好像有问题
稍微改了一下
 - (defun get2entinters (fst nxt k / mode intlst pntlst)
- (setq mode '(acextendnone acextendthisentity acextendotherentity acextendboth))
- (setq k (eval(nth k mode)))
- (setq intlst (vla-intersectwith (vlax-ename->vla-object fst) (vlax-ename->vla-object nxt) k))
- (if intlst
- (progn
- (setq intlst(vlax-safearray->list(vlax-variant-value intlst)))
- (repeat (/ (length intlst) 3)
- (setq pntlst (cons (list (car intlst) (cadr intlst) (caddr intlst))
- pntlst
- )
- intlst (cdddr intlst)
- )
- )
- (reverse pntlst)
- )
- )
- )
如果对相交模式熟悉的话,程序前两行也可以省略
 - (defun get2entinters (fst nxt k / mode intlst pntlst);;;k=0,1,2,3
- (setq intlst (vla-intersectwith (vlax-ename->vla-object fst) (vlax-ename->vla-object nxt) (eval k)))
- (if intlst
- (progn
- (setq intlst(vlax-safearray->list(vlax-variant-value intlst)))
- (repeat (/ (length intlst) 3)
- (setq pntlst (cons (list (car intlst) (cadr intlst) (caddr intlst))
- pntlst
- )
- intlst (cdddr intlst)
- )
- )
- (reverse pntlst)
- )
- )
- )
|