IntersectPoints

Já tentaram descobrir os pontos de interseção de duas entidades? eu já… inclusive já vi artifícios usando as funções OSNAP e INTERS… mas não são tão eficientes quanto o método usado por esta rotina:


(defun get-intersectpoints (e1 e2 / tmp lst n)
(
setq tmp (vlax-variant-value
(vla-IntersectWith
(vlax-ename->vla-object (ename-of e1))
(
vlax-ename->vla-object (ename-of e2)) acExtendNone))
n 0)
(
repeat (/ (1+ (vlax-safearray-get-u-bound tmp 1)) 3)
(
setq lst (append lst (list (mapcar
(lambda (x)
(
vlax-safearray-get-element tmp x))
(
list n (1+ n) (+ 2 n)))))
n (+ n 3)))
lst)


como podem perceber, “e1” e “e2” podem ser HANDLE (string, o dxf 5), ENAME e VLA-OBJECT, uso assim sempre, aí não preciso me preocupar na rotina principal com qual tipo de referência estou usando

Deixe um comentário

Carrinho de compras
Rolar para cima