AutoCAD... AutoLISP... VisualLISP...

  [69] Czy punkt należy do obiektu?

index  

  Krótka funkcja sprawdzająca czy podany punkt, należy do określonego obiektu. Obiektem może być linia, dowolna polilinia, splajn, elipsa, łuk, okrąg, helisa i obszar. Działanie funkcji sprowadza się do odnalezienia bliskiego do obiektu punktu, sprawdzenia czy odległość między punktami (znalezionym i zadanym) mieści się w tolerancji, i na koniec, sprawdzeniu czy dany obiekt można wybrać przez zadany punkt. Funkcja wygląda następująco:

; =============================================================== ;
; Funkcja zwraca T jezeli punkt Pt nalezy do obiektu En           ;
; =============================================================== ;
(defun jk:ENT_ObjectsPoint-p (Pt En / pn ds ss)
  (if
    (setq pn (osnap Pt "_nea"))
    (if
      (setq ss (jk:SSX_SelectByPickBox Pt))
      (if
        (member en (jk:SSX_SS->List ss))
        (if
          (equal
            (distance Pt pn)
            0.0
            0.000001
          )
          T
        )
      )
    )
  )
)
Funkcja zwraca T, w przypadku gdy punkt należy do obiektu lub nil. Wymaga dwóch funkcji bibliotecznych. Są to: jk:SSX_SS->List (zmieniająca zbiór wskazań na listę obiektów), oraz jk:SSX_SelectByPickBox, (tworząca zbiór wskazań przez PICKBOX).
      aktualizacja: 19-05-2010