> 1 <
| Yazar | İleti |
|
yazgunesi [70] Editör
konu,
519 ileti |
#47816 30.03.2009 16:12 GMT |
|
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.
|
|
|
teknikressam0606 [2] Acemi
konu,
0 ileti |
#64584 07.06.2011 23:38 GMT |
|
Aslında bunun tam teri lazım bana iki kelimeden oluşan bir metni ayrı ayrı iki metin yapma lispi
|
|
|
ercucuk [1] Yeni üye
konu,
0 ileti |
#66284 24.10.2011 18:44 GMT |
|
Keske ilk texti sectikten sonraki secilen textleri tek tek degilde toplu secme seklinde yapsaydin daha kullanisli olurdu. ama yinde teskkrler fydali bir lisp.
|
|
|
ProhibiT
konu,
42 ileti |
#66286 24.10.2011 22:15 GMT |
|
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) şeklinde yazardım.(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) ) Buna rağmen, Text objelerini gurup halinde seçmek gibi bir ihtiyacınız varsa; Kod: (defun c:txuns (/ txts L n txtr cntnt) Fonksiyonunu kullanabilirsiniz.(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) ) 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.
If there is a will, there is a way... Beğenmek için anlamak lazım... |
|
|
ercucuk [1] Yeni üye
konu,
0 ileti |
#66289 25.10.2011 09:25 GMT |
|
Tesekkurler prohibit.
|
|
|
CAN123 [2] Acemi
konu,
13 ileti |
#66315 27.10.2011 12:01 GMT |
|
Merhaba,
txuns lispinde textleri birleştiriken arada boşluk bırakıyor. bunu engelememiz mümkünmü? teşekkürler.
|
|
|
ProhibiT
konu,
42 ileti |
#66323 27.10.2011 13:58 GMT |
|
Kod: (setq cntnt (strcat cntnt bölümü,(if (> n 0) (chr 32) "") (cdr (assoc 1 (entget (ssname txtr n)))))) 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.
If there is a will, there is a way... Beğenmek için anlamak lazım... |
|
|
CAN123 [2] Acemi
konu,
13 ileti |
#66325 27.10.2011 15:35 GMT |
|
Çok teşekkur ederim
|
|
|
fatherrain [1] Yeni üye
konu,
2 ileti |
#67502 17.01.2012 20:30 GMT |
|
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
|
|
|
Travaci [3] Kıdemli
konu,
38 ileti |
#67507 18.01.2012 01:11 GMT |
Alıntı Ç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.
|
|
|
Travaci [3] Kıdemli
konu,
38 ileti |
#68067 23.02.2012 19:14 GMT |
Alıntı Sürekli sabit yazıyı tekrar seçin hatası veriyor.
|
















