ehya - 27.10.2005 08:27
Bu lisp sayfadaki textlerde yazılı rakamsal değerleri toplayarak yeni bir satıra bu toplamı yazmaktadır.
Bu lisp üzerinde düzeltmeler yapılabilir, şu anki haliylede iş görür ancak yeterli olmayabilir. İlerde olası bir revizyon yapılınca burada duyurulacaktır...
Lisple ilgili forum linki İleti #736
Bu lispi kodlayan ehya 'ya teşekkürler.
Buraya tıklayarak açılan pencereden AutoLISP kodlarını Ctrl + C ile kopyalayabilirsiniz
(setq qe1 (car (entget (car yy_sec))))
(setq qz (list qe1 (cons qp qn))))
(defun c:yt ()
(SETQ LUP (GETVAR "LUPREC"))
(command "modemacro" "cizimokulu.com")
(SETVAR "LUPREC"0)
(princ "nToplamı alınacak yazıları seçiniz:")
(setq yy_sec (ssget (list (cons 0 "TEXT"))))
(if (= yy_sec nil)
(progn)
(progn
(setq yy_topla 0)
(setq yy_c 0)
(setq yy_say (sslength yy_sec))
(while (< yy_c yy_say)
(setq e_yy_sec (ssname yy_sec yy_c))
(setq tan_e_yy_sec (cdr (assoc 1 (entget e_yy_sec))))
(setq yy_num (numberp (atof tan_e_yy_sec)))
(if (= yy_num nil)
(progn)
(progn
(setq yy_topla (+ yy_topla (atof tan_e_yy_sec)))
(setq yy_c (+ yy_c 1)))))
(setq yy_sec (entsel "nDeğişecek yazıyı seçin:"))
(if (= yy_sec nil)
(progn
)
(progn
(entmod (degistir (car yy_sec) 1 (rtos yy_topla 2 2)))))
))
(SETVAR "LUPREC"LUP)
(princ))
(PRINC "--> 'cizimokulu.com' Çizim yardımları yüklendi !")
Bu kodları nasıl kullanacağınızı bilmiyorsanız aşağıdaki linkten;
AutoLISP > Konu Anlatımları > Lisp Dosyalarının oluşturulması ve Yüklenmesi
konusunu inceleyiniz.
Yazar: ehya
İçerik: LSP (Lisp) formatında AutoLISP dosyası
Tag:
Degerli ilgili, Acil cok rica edecem, carpma lipsinde noktadan sonra 3 hane carpan lips lazim,
adet (boy cm)
13 x 455 = 59.150
gibi
Tesekkurler,
Alper
hangi kısayol tuşu ile çalışıro bir türlü olmadı.
toplama lisp'ini ayazan arkadaşın ellerine sağlık çok güzel olmuş mimari de kullanmak için yazıların önüne A: işareti geliyor bunu nasıl toplattıra bilirirz örnek (A:10.20m²) yada toplama yaptıktan sonra sonucun örnekteki gibi çıkması için düzenleyebilirmiyiz.
bu lisp hangi komutla çalışıyor.
Bu kodu kopyalayamıyorum.
bu lisp hangi komutla çalışıyor
Merhaba... Acizane bilgisizliğimizin kusruna bakmayarak bu konu hakkında bilgi verebilirmisiniz.
Hocam benim kullandığım bir fonksiyon mevcut...
(defun c:yt ()
(SETQ LUP (GETVAR "LUPREC"))
(command "modemacro" "[www.autocadokulu.com]")
(SETVAR "LUPREC"0)
(princ "
Toplam? al?nacak yaz?lar? seciniz:")
(setq yy_sec (ssget (list (cons 0 "TEXT"))))
(if (= yy_sec nil)
(progn)
(progn
(setq yy_topla 0)
(setq yy_c 0)
(setq yy_say (sslength yy_sec))
(while (< yy_c yy_say)
(setq e_yy_sec (ssname yy_sec yy_c))
(setq tan_e_yy_sec (cdr (assoc 1 (entget e_yy_sec))))
(setq yy_num (numberp (atof tan_e_yy_sec)))
(if (= yy_num nil)
(progn)
(progn
(setq yy_topla (+ yy_topla (atof tan_e_yy_sec)))
(setq yy_c (+ yy_c 1)))))
(setq yy_sec (entsel "
Degisecek yaz?y? secin:"))
(command "change" yy_sec "" "" "" "" "" ""(rtos yy_topla))
))
(SETVAR "LUPREC"LUP)
(princ))
(PRINC "--> 'www.autocadokulu.com' Cizim yard?mlar? yuklendi !")
Bu lispte toplama işlemi ondalık kısmını işleme almıyor.
Bu Konuda Yapıla Bilecek Bir Şey Mevcutmudur.
selamlar.
Weissm@nn
merhabalar.. bu lispi sayıları toplayıp toplanan sayıları yeni bir text olarak paftaya yazan bir lisp haline getirebilir miyiz?
allah razı olsun kardeşim...
Çok teşekkür...
teşekkürler
teşekkürler
teşekkürler
Ehya'ya teşekkür ederek lispi şöyle düzenleme imkanımız olup olmadığını soracağım. çalıştığım projelerde borulardaki debileri topluyorum ben ve çok ta işe yarıyor. Ancak toplamın yazılacağı textte birimler kayboluyor sadece toplam sayı yazıyor. birimin de kalmasının imkanı yok mu? Yani: (145 kg/h) + (225 kg/h) = (x kg/h) 145 ve 225 i toplayıp x kg/h üzerine yazdığımda kg/h kayboluyor 370 oluyor. Birimi kaybetmeme imkanımız yok mu? Teşekkürler.
bu şekilde mtext yazarak sonuca gidemezsiniz. Mtext kodunda birden fazla satır olacağından bu nesneye uygun yazılması çok zordur.
Bu lispi sadece text olan nesnelerde uygulayın...
Slm, bu lispte sadece text tipinde yazıları topluyor mtext olanları yapmıyor.
(setq yy_sec (ssget (list (cons 0 "TEXT")))) satırını
(setq yy_sec (ssget (list (cons 0 "MTEXT")))) olarak değiştirdim mtext yazılarını bu şekilde seçiyor ama toplamda işaretlediğim mtext yazısını siliyor.
yardımcı olursanız sevinirim...
bem bu komutu kullanmakta zorluk çekiyorum komutun lipsini ekledim problemsiz çalışıyor yanlız toplama yapamıyorum komutu nasıl kullanacağım bu konuda bana yardımcı olursanız sevinirim alt komut satırında sürekli New current value for LUPREC (0-8) yazısı çıkıyor ....
şimdiden her şey için teşekkür ederim...
merhaba ben sizden bişey rica edebilirmiyim bu lisp çok işime yarıyor ama bunun çarpanıda olursa süper olucak benim için sizden rica etsem böle bişi yapabilirmisiniz.ben topla yerine çarp işareti yaptım ama olmadı.
Teşekkürler ve emeğinize sağlık üstadım..
İdris YAĞMAHAN
Eğer sizin istediğiniz gibi olursa yazılardaki rakamlarda çok sıkıntı çıkar. Nedeni ise şu. Eğer sizin dediğiniz türden birşey yaparsam "123df56" gibi bir yazının değerini almak istediğimizde 12356 değerini alacak ve birçok sorun çıkartacak. Ben bu lispi yazarken ilk rakamlara göre almasını istemiştim. Bu hatayı gözönünde bulundurarak...
Syn Ehya ,
Lispiniz gerçekten kullanışlı tesisatta kolon şemasında toğlama çok daha kolay fakat, "123kca"l gibi yazılar toplanrken "q=123" gibi yazılar 0 olarak alınıyor. yani rakamın sonuna karekter geldiğinde toplarken , rakamdan önce kaerekter geldiğinde toplayamıyor . bunu düzeltebilirseniz sevinirim . Elinize emeğinize sağlık .
onderylmz@hotmail.com.
find komutu ile virgülleri noktaya çevirebilirsin.
İşlem hatası yapıyorsundur. Tekrar deneyin...
eline sağlık ehya,
fakat ben kusüratları nokta değilde virgülle (numlock) yazmışım , kusüratları dikkate almıyor find den de denedim virgülleri noktaya çeviremedim lispde birşeyler yapabilir miyiz..
kimi ben eğer yorumun benim soruma ilişkin ise ben lisp yazmayı bilmiyorum ehya beyde yazmakta zorlanmıyor bunuda diğer lisp örneklerine bakarak analyabilirsin anlayana :satisfied
çok teşekkür ederim ehya bey elelrinize sağlık sağolun
lisp yazmak yerine göre zor. anlatmak ise zor değil. çünkü benim anlatabildiğim karşı tarafın anlayabildiği kadardır. Kimi az anlar, kimi ise tamamını anlar.
ehya lisp yazmaktamı daha fazla zorlanıyo yoksa millete anlatmaktamı
bende bunu yazmaya çalışıcaktım ehya yazmış sağolsun emeğine sağlık
7nci satırda bulunan (SETVAR "LUPREC"0) satırını (SETVAR "LUPREC"2) olarak değiştirin. istediğiniz küsürat değerleri olacaktır.
ehya bey mükemmel çalışmanız için çok teşekkür ederim sağolsun bir ricam olacak bu lisp toplama yaparken yuvarlama yapıyor (noktadan sonraki rakamları toplamda 2 hane olacak şekilde yuvarlıyor)
bu büyük değerlerde pek sorun değil gibi ama küçük toplamlarda (yanlış anlaşılmasın çok sayıda küçük haneli rakamların toplamında) yuvarlama nedeniyle değerlerin fazla çıkması biraz sakıncalı bu sorunu giderirmisiniz
teşekkürler iyi çalışmalar dilerim
betonarme projede evet topluyor ama mimari bir projede yazmış olduğum textleri (örneğin yazılan oda m2 leri) toplamıyor? Yardımcı olursanız sevinirim.Emeğinize sağlık...
merhaba benim bir sorum olucak gerçi bu lipsle alakalı değil ama sizin bir fikriniz olacağını düşündüm.Bana autucad electrical 2008 bilen birinin yardım etmesi lazım.Bir fikriniz varmı?Yada kursu falan varmı sizce bana yardım edebilirmisiniz.
tamam çalıştı sanırım bir yerde hata yaptım.çok teşekkür ederim.
yeniden yükledim bu sefer hiç çalışmıyor toplamıda vermiyor.yazıyıda değiştirmiyor.
Lisp yeni haliyle hazır. Sorun düzeltildi. Kolay gelsin.
çok teşekkür ederim.bunu yaparsanız çok sevinirim çünkü bana çok yardımcı olcak bi komut bu.
Bu lisp değişecek yazının stili STYLE tablosundaki yazı yüksekliği değeri sıfır ise değiştirme yapar. Genelde herkes bu şekilde kullanıyor diye böyle yazmıştım. Müsait bir zamanda bunu düzenler yenisini bu bölüme tekrar aktarma yaparım.
merhaba gene ben dediğiniz gibi yaptım lips çalıştı sayıları topluyor ancak değişecek yazıyı seçmiyor
Lisp kodlarını kopyalayıp boş bir metin belgesine yapıştırın. Daha sonra dosyaya isim verip uzantısını LSP olarak değiştirin.
Autocad'i açıp APPLOAD komutu yardımıyla bu lispi seçip yükleyin. Yükleme işleminden sonra YT yazıp komutu kullanabilirsiniz.
çok güzel bir lips ama ben bir türlü çalıştıramadım yardım edermisiniz acil
Sorun düzeltildi. Şimdi kullanabilirsiniz...
Bu lisp cok guzel. Çok işime yarıyor. Ama bi sorun var: virgüllü sayıları toplarken virgülden sonraki rakamları yuvarlatıp yaklaşık bir sonuç veriyor. bu büyük bir sorun bence.
örnek: (15,21+15,35=31) sonuç 31 yanlış
doğrusu : (15,21+15,35=30,56) sonuç 30,56 doğru
bende aynı şekilde denemiştim ama olmadı :(:(
eğer sayıları birbirleri içe çarptırmak istiyorsan yani 3 sayı var bunlar 15-25-35 sayıları. bunlar 15X25X35 olacak ise
lisp içerisindeki (setq yy_topla (+ yy_topla (atof tan_e_yy_sec))) satırındaki + işaretini * olarak değiştir.
hayır anlatamadım 3 rakamı 4 rakamı çarpmak için demiştim. metraj tabloları için çok işime yarayacktı :((( mause ile tıklarayak %50 zaman kazanacaktım. :(((( çünkü küsüratlı rakamlar ve çok fazla. hesap makinesinden hızlı olacağı kesin.
Dediğin olabilir ama, neden iki sayıyı seçtirip birbirine bölmek içi uğraşalım ki :) Adamlar uğraşmış bizim için hesap makinesi yapmış :)
Bu lispin amacı yüzlerce text'i toplamak. Lispin amacı pratiklik kazanmak. Ay'ı tekrar keşfetmeye gerek yok diyorum...
Merhaba,
Çok uğraşlardan ve ehya arkadaşın yardımıyla bu lispi çok güzel işime yarar bir şekilde kullanıyorum.
Bu lisp te textleri seçiyoruz ve seçtiklerimizi topluyor. aynı mantıkla seçtiğiklerimi çarpabilen bir lispe dönüştürebilir miyiz. ya da bölme ye.
yani iki text i seçeceğiz nasıl topluyorsa yapılan lisp te çarpacak.
böyle bişey olabilir mi ?
iyi çalışmalar.
Komut satırına yazmaz. Zaten lisp son bölümde sizden değişecek yazıyı ister. Eğer değişmiyorsa, o yazı stilinin adını list komutuyla öğrenin. STYLE tablosunda o stilin yazı yüksekliğine sıfırdan farklı herhangi bir değer verin...
2006 vardı bende onda denedim olmuştu. şimdi 2007 de denedim topluyor ama komut satırına yazıyor. ekranda seçtiğim yazıyı değiştirerek toplamını yazmıyor. sebeb nedir acaba.
silip tekrar yaptım ama yine olmadı.
BENDE İNŞ.TEKNİKERİYİM BENDE DİĞER ARKDAŞ GİBİ DEMİR METRAJI YAPIYORUM VEDE ZORLANIYORDUM BU PROGRAMI DENİCEM UMARIM OLUR.TEŞEKKÜRLER HERKESE
teşekkürler bende paftadaki demir metraj tabloları için bunu yapmaya çalışıyordum ellerine sağlık.