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

LinkWithin

Related Posts Plugin for WordPress, Blogger...