09.11.2016 14:17    

macros55
Arkadaşlar lisp yardımı ile otomatik olarak polyline hattın tüm düğün noktalarına (MEASURE komutundakı gibi) block yazdıran bir lisp nasıl bula bilirim,yardım edersiniz sevinirim. önceden teşekkürler her kese

10.11.2016 10:28    

alumina
Adi girilen blok nesnesini secilen polyline nesnelerin vertex noktalarina insert ederLER.
Kod:

(defun c:b1 (/ ns bn dc n) (vl-load-com)
  (if (setq ns (ssget '((0 . "*polyline"))))
    (if (/= (setq bn (getstring T "\nBlock name:")) "")
      (if (tblobjname "block" bn)
        (progn
          (vla-startundomark (setq dc (vla-get-activedocument (vlax-get-acad-object))))
          (repeat (setq n (sslength ns))
            (foreach m (mapcar 'cdr (vl-remove-if '(lambda(a) (/= (car a) 10)) (entget
                (ssname ns (setq n (1- n))))))
              (entmake (list '(0 . "insert") (cons 2 bn) (cons 10 m))))
          ) (vla-endundomark dc)
        ) (alert (strcat "ERROR\n" """ bn """ " was not found"))
      )
    )
  ) (princ)
)


(defun c:b2 (/ ns bn dc k m) (vl-load-com)
  (if (ssget '((0 . "*polyline")))
    (if (/= (setq bn (getstring T "\nBlock name:")) "")
      (if (tblobjname "block" bn)
        (progn
          (vla-startundomark (setq dc (vla-get-activedocument (vlax-get-acad-object))))
          (vlax-for n (vla-get-activeselectionset dc)
            (setq k -1 m (fix (vlax-curve-getendparam n)))
            (repeat (if (= (cdr (assoc 70 (entget (vlax-vla-object->ename n)))) 1) m
                (1+ m))
              (vla-InsertBlock (vla-get-modelspace dc) (vlax-3d-point
                (vlax-curve-getpointatparam n (setq k (1+ k)))) bn 1 1 1 0))
          ) (vla-endundomark dc)
        ) (alert (strcat "ERROR\n" """ bn """ " was not found"))
      )
    )
  ) (princ)
)

16.11.2016 11:33    

macros55
alumina hocam ellerine sağlık güzel olmuş.hocam blokun hatt boyu perpendicular olmasını yaparmısınız ? o zaman super olur(aynen (MEASURE komutundakı gibi hatt boyu 90° hatt kaç derece dönerse blok ona 90° olur) saygıyla önceden teşekkürler

16.11.2016 11:59    

alumina
polyline koselerine insert ediliyor. aci hangi kenara uyacak? koseler yerine kenarlara insert edilseydi dedigini anlardim. ama simdi anlayamadim.

16.11.2016 13:31    

macros55
hocam polyline ile herhangi bir açık poligon çizelim sonra bölelim cixzimini attım lütfen göz atın


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

16.11.2016 20:34    

alumina
Alıntı
macros55 :


Kod:

(defun c:b3 (/ ns bn dc n m ls en) (vl-load-com)
  (defun m1 (p1 p2 /) (entmake (list '(0 . "insert") (cons 2 bn) (cons 10 p1)
    (cons 50 p2))))
  (if (setq ns (ssget '((0 . "*polyline"))))
    (if (/= (setq bn (getstring T "\nBlock name:")) "")
      (if (tblobjname "block" bn)
        (progn
          (vla-startundomark (setq dc (vla-get-activedocument (vlax-get-acad-object))))
          (repeat (setq n (sslength ns)) (setq m -1)
            (repeat (1- (length (setq ls (mapcar 'cdr (vl-remove-if '(lambda(a)
                (/= (car a) 10)) (setq en (entget (ssname ns (setq n (1- n))))))))))
              (m1 (nth (setq m (1+ m)) ls) (angle (nth m ls) (nth (1+ m) ls))))
            (m1 (last ls) (if (= (cdr (assoc 70 en)) 0) (angle (nth m ls) (last ls))
              (angle (last ls) (car ls))))
          ) (vla-endundomark dc)
        ) (alert (strcat "ERROR\n" """ bn """ " was not found"))
      )
    )
  ) (princ)
)

17.11.2016 04:52    

macros55
alumina hocam supersin,ellerine sağlık.hocam blok hatın açısını iki hattın birleşme noktasında her iki hatta eşit açıda koya bilirmisin?

17.11.2016 07:02    

alumina
Alıntı
macros55 :


Ne zaman bitecek?

18.11.2016 07:04    

bud_0782
:yes

19.11.2016 10:21    

macros55
alumina hoca teşekkürler, aslında doğru olanı yapmışsın sadece ben sonradan fark etdim...ellerine sağlık

19.11.2016 18:23    

alumina
Alıntı
macros55 :

Alistik bu durumlara.

18.03.2017 06:36    

macros55
İyigünler, Alumina hoca yapmış olduğunuz şu lisp o kadar yardım ediyorki bana her kullandığımda sana bol bol dua ediyorum.Hocam önceki durumda lisp yadımı ile block objeyi hattın sonuna perpendükülar ile yapıyordum şimdi yeni çizimler de block objeyi (hattı) seçilen hattın parçaları arasında eşit açılarda qoyması lazım.Hocam sizden rica etsem şu lispe yeni fonksiyon (objeye 90°/eşit açı) seçeneyi ekleye bilirmisiniz? Size çok çok minnettar olurum sayın hocam

> 1 <
Copyright © 2004-2022 SQL: 1.566 saniye - Sorgu: 75 - Ortalama: 0.02087 saniye