alin 发表于 2002-12-14 09:31:00

It's OK! for my 2002 English Version

No need to add c:
Usage:

(test (car (entsel)) (car (entsel)))

hothua 发表于 2002-12-14 11:58:00

不知道你是啥意思

是说快速执行的算法吗?那用AL\VL都很难搞定,如果不是的,那其实很简单,不就是读取线条的坐标,逐一求交就可以了吗,要用VL干啥呢,图简单?

matichen 发表于 2002-12-17 13:02:00

我这样试过了,“参数太多...” 我把完整的放上来,看看我是不是抄错了

本帖最后由 作者 于 2002-12-17 13:02:26 编辑

(defun TEST (/ IPTS PTS)
(setq IPTS (vla-intersectwith
       (vlax-ename->vla-object (car (entsel)))
       (vlax-ename->vla-object (car (entsel)))
       acExtendBoth
   )
IPTS (vlax-variant-value IPTS)
)
(if (> (vlax-safearray-get-u-bound IPTS 1) 0)
    (progn (setq IPTS
(vlax-safearray->list IPTS)
   )
   (while (> (length IPTS) 0)
   (setq PTS (cons (list (car IPTS)
   (cadr IPTS)
   (caddr IPTS)
      )
      PTS
)
   IPTS (cdddr IPTS)
   )
   )
    )
)
PTS
)

(defun c:j()
(princ (test (car (entsel)) (car (entsel))))
)



==================
错误: 参数太多
===================

alin 发表于 2002-12-17 14:37:00

fixed it...

(defun TEST (/ IPTS PTS)
(setq IPTS (vla-intersectwith
       (vlax-ename->vla-object (car (entsel)))
       (vlax-ename->vla-object (car (entsel)))
       acExtendBoth
   )
IPTS (vlax-variant-value IPTS)
)
(if (> (vlax-safearray-get-u-bound IPTS 1) 0)
    (progn (setq IPTS
(vlax-safearray->list IPTS)
   )
   (while (> (length IPTS) 0)
   (setq PTS (cons (list (car IPTS)
   (cadr IPTS)
   (caddr IPTS)
      )
      PTS
)
   IPTS (cdddr IPTS)
   )
   )
    )
)
PTS
)

(defun c:j()
(princ (test))
(princ)
)

龙龙仔 发表于 2002-12-17 15:57:00

你沒發現之前貼子有修改過

matichen 发表于 2002-12-18 09:03:00

THANKS !

页: 1 [2]
查看完整版本: 众多PL与指定PL相交的交点坐标如何求[求助]