30.03.2009 13:12    

yazgunesi
Lisp hakkında açıklama :

Seçilen yazıları birleştirir ! Birinci yazıdan sonrakileri birinci yazıya dahil edip çizimden siler !
Autocad harici programlardan aktarılan çizimlerde yazılar patlamış olarak gelebiliyor..
O yazıları birleştirmek için ihtiyaçtan yazılmış bir Autolisp kodudur !

Kod:

;SCYz V1.0 - Nisan 2008 (c) Sinan COŞKUN
(defun c:yzb()
(setvar "cmdecho" 0)
(setq bslk " "); iki yazı arasına boşluk
(while
(setq yz(entsel"\nSabit yazıyı seçiniz !"))
(setq yz(entget(car yz)))
(if(/=(cdr(assoc 0 yz))"TEXT")
  (alert"\nSeçtiğiniz Obje Yazı değil !")
  (progn
   (while
    (setq yzs(entsel"\rSırayla birleştirilecek yazıları seçiniz !"))
    (setq yzs(entget(car yzs)))
    (if(/=(cdr(assoc 0 yzs))"TEXT")
     (alert"\nSeçtiğiniz Obje Yazı değil !")
     (progn
     (if(or(=(cdr(assoc 1 yzs))(cdr(assoc 1 yz)))(=(cdr(assoc 10 yzs))(cdr(assoc 10 yz))))
     (alert"\nSabit yazıyı tekrar seçtiniz !")
     (progn
     (setq yzb(strcat(cdr(assoc 1 yz))bslk(cdr(assoc 1 yzs))))
     (setq yz(subst(cons 1 yzb)(assoc 1 yz)yz))
     (entmod yz)
     (entdel(cdr(assoc -1 yzs)))
     );progn
     );if
     );progn
    );if
   );while
  );progn
);if
);while
(princ)
);defun


Konunun geçtiği sayfa :



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

07.06.2011 20:38    

teknikressam0606
Aslında bunun tam teri lazım bana iki kelimeden oluşan bir metni ayrı ayrı iki metin yapma lispi

24.10.2011 15:44    

ercucuk
Keske ilk texti sectikten sonraki secilen textleri tek tek degilde toplu secme seklinde yapsaydin daha kullanisli olurdu. ama yinde teskkrler fydali bir lisp.

24.10.2011 19:15    

ProhibiT
Buna benzer işlem yapan fonksiyonlar paylaşmıştım, nerede olduğunu hatırlamıyorum :)

gurup halinde objeler seçildiğinde, fonksiyon hangisinin hangisine ve hangi sırada ekleneceğini nereden bilecek? olaya bu açıdan bakınca, yukarıda paylaşılan fonksiyon son derece mantıklı yazılmış. kullanımı da son derece sade. Bununla birlikte programatik disiplin açısından ben olsam bu fonksiyonu;
Kod:

(defun c:txun (/ txp txu)
  (setvar "cmdecho" 0) (command "_.undo" "group")
  (while (setq txp (ssget ":s" (list (cons 0 "text"))))
    (setq txp (entget (ssname txp 0))) (redraw (cdr (assoc -1 txp)) 3)
    (while (setq txu (ssget ":s" (list (cons 0 "text"))))
      (setq txu (entget (ssname txu 0))
            txp (subst (cons 1 (strcat (cdr (assoc 1 txp)) (chr 32)
                                      (cdr (assoc 1 txu)))) (assoc 1 txp) txp))
     (entmod txp) (entupd (cdr (assoc -1 txp))) (redraw (cdr (assoc -1 txp)) 3)
     (entdel (cdr (assoc -1 txu)))) (redraw (cdr (assoc -1 txp)) 4))
  (command "_.undo" "e") (princ)
)
şeklinde yazardım.

Buna rağmen, Text objelerini gurup halinde seçmek gibi bir ihtiyacınız varsa;
Kod:

(defun c:txuns (/ txts L n txtr cntnt)
  (setvar "cmdecho" 0) (command "_.undo" "group")
  (setq txts (ssget (list (cons 0 "text"))) L (sslength txts) n L txtr (ssadd))
  (while (> (setq n (1- n)) -1) (ssadd (ssname txts n) txtr))
  (setq n -1 cntnt "")
  (while (< (setq n (1+ n)) L)
    (setq cntnt (strcat cntnt
                        (if (> n 0) (chr 32) "")
                        (cdr (assoc 1 (entget (ssname txtr n))))))
    (if (> n 0) (entdel (ssname txtr n))))
  (setq txts (entget (ssname txtr 0))
        txts (subst (cons 1 cntnt) (assoc 1 txts) txts))
  (entmod txts) (entupd (cdr (assoc -1 txts))) (command "_.undo" "e") (princ)
)
Fonksiyonunu kullanabilirsiniz.

bir konuya dikkat çekmem gerekiyor. fonksiyona ihtiyaç duyduğu sıralama bilgisi verilmediğinden, seçilen objeleri oluşturulma sırasına (creation sequence) göre sıralar, ilk objeyi alarak diğerlerinin içeriğini buna ekler ve içeriği ilk text objesine eklenen diğer text objelerini siler.

kolay gelsin.

25.10.2011 06:25    

ercucuk
Tesekkurler prohibit.

27.10.2011 09:01    

CAN123
Merhaba,

txuns lispinde textleri birleştiriken arada boşluk bırakıyor. bunu engelememiz mümkünmü?

teşekkürler.

27.10.2011 10:58    

ProhibiT
Kod:

(setq cntnt (strcat cntnt
                         (if (> n 0) (chr 32) "")
                         (cdr (assoc 1 (entget (ssname txtr n))))))
bölümü,
Kod:

(setq cntnt (strcat cntnt  (cdr (assoc 1 (entget (ssname txtr n))))))
şeklind değiştirirseniz araya boşluk koymaz.

yani; (if (> n 0) (chr 32) "") ifdesini kaldırmak yeterli.

27.10.2011 12:35    

CAN123
Çok teşekkur ederim

17.01.2012 18:30    

fatherrain
Aldığım Bir çizimde eğim çizgileri ve yazılar aynı layerda ve tamamen patlamış durumda. Tek tek ayıklamıştım 1 haftamı aldı. Tüm o çizgileri tek tek sildim. Bu şekilde tamamen patlamış ve line a dönüşmüş textleri temizleyecek bir lisp var mı? Merakımdan soruyorum :))

17.01.2012 23:11    

Travaci
Alıntı
fatherrain :
Aldığım Bir çizimde eğim çizgileri ve yazılar aynı layerda ve tamamen patlamış durumda. Tek tek ayıklamıştım 1 haftamı aldı. Tüm o çizgileri tek tek sildim. Bu şekilde tamamen patlamış ve line a dönüşmüş textleri temizleyecek bir lisp var mı? Merakımdan soruyorum :))


Çizimin nasıl bilmiyorum ama text ler patladığında 2d Polyline a çevriliyor, Properties > quick select bölümünden 2d polyline ların hepsini birden seçtirip silebilirsin.

ProhibiT (23.02.2012 14:38 GMT)

23.02.2012 17:14    

Travaci
Alıntı
yazgunesi :
Lisp hakkında açıklama :

Seçilen yazıları birleştirir ! Birinci yazıdan sonrakileri birinci yazıya dahil edip çizimden siler !
Autocad harici programlardan aktarılan çizimlerde yazılar patlamış olarak gelebiliyor..
O yazıları birleştirmek için ihtiyaçtan yazılmış bir Autolisp kodudur !

Kod:

;SCYz V1.0 - Nisan 2008 (c) Sinan COŞKUN
(defun c:yzb()
(setvar "cmdecho" 0)
(setq bslk " "); iki yazı arasına boşluk
(while
(setq yz(entsel"\nSabit yazıyı seçiniz !"))
(setq yz(entget(car yz)))
(if(/=(cdr(assoc 0 yz))"TEXT")
  (alert"\nSeçtiğiniz Obje Yazı değil !")
  (progn
   (while
    (setq yzs(entsel"\rSırayla birleştirilecek yazıları seçiniz !"))
    (setq yzs(entget(car yzs)))
    (if(/=(cdr(assoc 0 yzs))"TEXT")
     (alert"\nSeçtiğiniz Obje Yazı değil !")
     (progn
     (if(or(=(cdr(assoc 1 yzs))(cdr(assoc 1 yz)))(=(cdr(assoc 10 yzs))(cdr(assoc 10 yz))))
     (alert"\nSabit yazıyı tekrar seçtiniz !")
     (progn
     (setq yzb(strcat(cdr(assoc 1 yz))bslk(cdr(assoc 1 yzs))))
     (setq yz(subst(cons 1 yzb)(assoc 1 yz)yz))
     (entmod yz)
     (entdel(cdr(assoc -1 yzs)))
     );progn
     );if
     );progn
    );if
   );while
  );progn
);if
);while
(princ)
);defun


Konunun geçtiği sayfa :



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





Sürekli sabit yazıyı tekrar seçin hatası veriyor.

12.04.2014 07:30    

zErOnE
Foruma bir soru soracaktım fakat buralarda hiç yazım olmadığından yetki alamadım.
Ben de gözüme ilişen bir konu içine yorum yazmak istedim.

Farkındayım 2 senelik bir konu.

Ne zaman çıktığını bilmiyorum fakat 2014 autocadin express tool içinde text leri mtext e çevirmek ve birleştirmek için bir fonksiyon var.

TXT2MTXT. Birleştirme işlemleri için ben bunu kullanıyorum.
Sadece text çalışmak isterseniz birleştirme sonrası explode uygulayabilirsiniz.

Kolaylıklar,
Emre.

27.03.2015 19:55    

q7kartal
dört tane yazıyı birleştiren lisp varmıdır.

alttaki dört adet yazı patlatılmış olarak başka programdan geliyor.
hepsini seçip birleştir diyebileceğimiz bir lisp varmıdır yada bir yöntem

PARÇA ADI : PL20
MALZEME : ST37
KALINLIK : 20MM
ADET : 10

28.03.2015 08:15    

ehya
Her mesajında lisp istemen ve bu yüzden tavır göstermen yüzünden siteden uzaklaştırıldın.
Kapıdan atıldın, bacan girdin. Belki akıllanır dedik, bu sefer birşey istemek yerine birşeyler katar bu siteye dedik.
Ama huylu huyundan asla vazgeçmiyor.

28.03.2015 10:11    

q7kartal
siteye katar derken ne istiyorsunuz hertürlü bilgi var

28.03.2015 10:21    

ehya
Her türlü bilgi var diye, boş kalmayalım senin lisp isteklerini yerine getirelim öyle mi? :)

Sen bu kafayla gidersen daha çoook lisp isteklerin havada kalır...

28.03.2015 17:16    

Travaci
Başka kullanıcı adıyla ortalığa küfür edip arsızca burada olmanın lüzmu yok.
Biraz yüzün kızarıyorsa daha da buralarda gözükmezsin.

30.03.2015 08:09    

özkan-wien
bari Besiktasin adini lekeleme

30.03.2015 08:28    

alumina
Alıntı
özkan-wien :
bari Besiktasin adini lekeleme



Audi'yide lekelemesin :)

30.03.2015 09:09    

özkan-wien
Alıntı
alumina :
Alıntı
özkan-wien :
bari Besiktasin adini lekeleme



Audi'yide lekelemesin :)



bidahaki girdigine baska isim bulsun. Raskoyu kazanalim beyler :-)

Copyright © 2004-2022 SQL: 1.803 saniye - Sorgu: 98 - Ortalama: 0.0184 saniye