20.09.2014 08:52    

drwnngpool
merhaba ustalarım, şimdi 15 daireli bir projede ortadaki daireleri alıp diğerlerini siliyorum, autocadde şöyle bişiy yoklu yani area kodu ile alan seçer gibi seçtiğim yerlerin dışında kalan yerleri silme veya seçtiğim yerleri de silebilirim önemli olan serbet seçimle alan silme. çünkü maus sürekli kare şeklinde ilerliyor ve daireler elip şeklinde silmek istemediğim daire (daire dediğim ev yani) lerde mausun karesinin içine giriyor? tşk.

22.09.2014 11:06    

leonixs


Linkleri görebilmek için ÜYE olmalısınız.

22.09.2014 16:13    

ProhibiT
Seçim yapmak istediğiniz bölgeyi belirleyen bir Polyline çizerseniz, aşağıdaki fonksiyonu kullanarak, Çizilen polyline'ın Dışında veya İçinde kalan nesneleri seçebilirsiniz. Dikkat edilmesi gereken nokta; Bölgeyi belirleyen Polyline nesnesi eğri segmentler içerse bile, Köşeler arasında doğrusal alınarak seçim yapılır. Seçim kipi olarak Crossing Polygon (CP) kullanılmıştır, Window Polygon kullanmak isterseniz kod içindeki _cp yerine _wp yazmanız yeterli oalcaktır.
Kod:

(defun c:SsL (/ bnD InO myerr n OuO PnT sTp VxN)
  (vl-load-com) (initget 1 "In Out")
  (setq sTp (getkword "\nSelection Mode, Inner/Outer: [I/O]"))
  (princ "\nPick Boundary Lwpolyline object: ")
  (while (not (setq bnD (ssget "+.:s" (list (cons 0 "Lwpolyline"))))))
  (setq VxN (cdr (assoc 90 (entget (setq bnD (ssname bnD 0)))))
        bnD (vlax-ename->vla-object bnD) n -1 PnT nil)
  (while (< (setq n (1+ n)) VxN)
    (setq PnT (append PnT (list (vlax-safearray->list
                (vlax-variant-value (vlax-get-property bnD 'Coordinate n)))))))
  (setq bnD (vlax-vla-object->ename bnD) InO (ssdel bnD (ssget "_cp" PnT)))
  (if (= sTp "In") (sssetfirst nil InO)
    (progn (setq OuO (ssdel bnD (ssget "x")) n -1)
      (while (< (setq n (1+ n)) (sslength InO)) (ssdel (ssname InO n) OuO))
      (sssetfirst nil OuO))) (prin1))

> 1 <
Copyright © 2004-2022 SQL: 1.006 saniye - Sorgu: 49 - Ortalama: 0.02053 saniye