Sayfadaki textlerde yazılı rakamları toplayan lisp
Yazı içindeki sayı değerlerini toplar
ehya - 27.10.2005 08:27
Bu kod revize edilmiştir!

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

Kod:

(DEFUN degistir (qq qp qn / qe1 qz)
  (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:

Yorumlar :
NOGA1   10.06.2021 13:58 #16082  

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

ulkerinsaat   01.08.2017 18:21 #15798  

hangi kısayol tuşu ile çalışıro bir türlü olmadı.

cambaz85   11.05.2015 07:25 #15549  

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.

comegena   08.09.2014 22:07 #15413  

bu lisp hangi komutla çalışıyor.

gurkanneidik   01.01.2014 11:43 #15262  

Bu kodu kopyalayamıyorum.

aytekintugra   20.02.2013 15:53 #14985  

bu lisp hangi komutla çalışıyor

kesinhesapci   06.03.2012 09:57 #14536  

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

cahide   25.06.2011 20:28 #14106  

merhabalar.. bu lispi sayıları toplayıp toplanan sayıları yeni bir text olarak paftaya yazan bir lisp haline getirebilir miyiz?

kunt1903   14.11.2010 10:56 #13506  

allah razı olsun kardeşim...

murat cömert   08.11.2010 07:49 #13476  

Çok teşekkür...

pxinrorh   15.01.2010 11:46 #12299  

teşekkürler

pxinrorh   15.01.2010 11:45 #12298  

teşekkürler

pxinrorh   15.01.2010 11:45 #12297  

teşekkürler

makinekimya   20.05.2009 11:13 #11152  

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.

ehya   10.04.2009 18:54 #10907  

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...

fusta06   10.04.2009 14:38 #10906  

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...

mehmetozkinali   01.04.2009 12:28 #10859  

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...

the_majesty   18.02.2009 12:37 #10484  

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ı.

sermimar   29.01.2009 23:58 #10286  

Teşekkürler ve emeğinize sağlık üstadım..
İdris YAĞMAHAN

ehya   30.11.2008 13:48 #9682  

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...

onderylmz   30.11.2008 11:55 #9678  

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.

ehya   15.09.2008 09:44 #9053  

find komutu ile virgülleri noktaya çevirebilirsin.
İşlem hatası yapıyorsundur. Tekrar deneyin...

halilozcakir   15.09.2008 08:54 #9052  

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..

volcano58   19.08.2008 14:51 #8905  

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

volcano58   19.08.2008 14:44 #8903  

çok teşekkür ederim ehya bey elelrinize sağlık sağolun

ehya   13.08.2008 07:58 #8868  

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.

kimim ben   13.08.2008 07:22 #8867  

ehya lisp yazmaktamı daha fazla zorlanıyo yoksa millete anlatmaktamı

kimim ben   13.08.2008 07:15 #8866  

bende bunu yazmaya çalışıcaktım ehya yazmış sağolsun emeğine sağlık

ehya   12.08.2008 13:23 #8861  

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.

volcano58   12.08.2008 13:05 #8860  

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

betbet   21.04.2008 13:57 #7968  

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...

the_majesty   14.02.2008 15:07 #7258  

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.

the_majesty   07.02.2008 08:46 #7164  

tamam çalıştı sanırım bir yerde hata yaptım.çok teşekkür ederim.

the_majesty   07.02.2008 08:43 #7163  

yeniden yükledim bu sefer hiç çalışmıyor toplamıda vermiyor.yazıyıda değiştirmiyor.

ehya   06.02.2008 10:02 #7142  

Lisp yeni haliyle hazır. Sorun düzeltildi. Kolay gelsin.

the_majesty   06.02.2008 09:32 #7141  

çok teşekkür ederim.bunu yaparsanız çok sevinirim çünkü bana çok yardımcı olcak bi komut bu.

ehya   05.02.2008 10:14 #7126  

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.

the_majesty   05.02.2008 07:10 #7124  

merhaba gene ben dediğiniz gibi yaptım lips çalıştı sayıları topluyor ancak değişecek yazıyı seçmiyor

ehya   31.01.2008 10:12 #7080  

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.

the_majesty   31.01.2008 08:40 #7078  

çok güzel bir lips ama ben bir türlü çalıştıramadım yardım edermisiniz acil

ehya   20.01.2008 15:02 #6976  

Sorun düzeltildi. Şimdi kullanabilirsiniz...

serhatgokhan   20.01.2008 13:30 #6975  

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

dendogan   10.10.2007 15:18 #5933  

bende aynı şekilde denemiştim ama olmadı :(:(

ehya   10.10.2007 12:49 #5928  

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.

dendogan   10.10.2007 09:53 #5925  

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.

ehya   10.10.2007 08:58 #5922  

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...

dendogan   10.10.2007 07:25 #5921  

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.

ehya   05.09.2007 13:06 #5315  

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...

dendogan   05.09.2007 12:56 #5313  

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ı.

casmin   15.04.2007 09:30 #3942  

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

museoz   11.02.2007 14:20 #2473  

teşekkürler bende paftadaki demir metraj tabloları için bunu yapmaya çalışıyordum ellerine sağlık.

Copyright © 2004-2022 SQL: 0.085 saniye - Sorgu: 35 - Ortalama: 0.00244 saniye