12.04.2012 12:28    

FADEN
merhaba,

yüksek sayıdaki paftalarımız da hidrolikten dolayı bütün yapı kotlarımız değişti.. acaba elinde kotlara (plan ve kesitler )sayı ekleyen veya çıkaran lips olan var?

12.04.2012 12:56    

Travaci
Eğer toplu halde kotları degıstırıceksen sıtede lısp mevcut.

12.04.2012 17:27    

FADEN
siteyi tarıyorum kaç saatir ama bulamıyorum yardımcı olur musunuz? çok acil ihtiyacım var 50 den fazla pafta var düzeltmem gereken ama zamanım yok .. projeleri teslim etmem gerekiyor..

12.04.2012 18:31    

Travaci
Kod:

(defun ct_act ( os ns p / )
(setq i 0)
(setq degis 0)
(repeat (sslength p )
     (setq ent (entget (ssname p i)))
     (setq kontrol_yazisi (cdr (assoc 1 (entget (ssname p i)))))
     (if (/= (vl-string-search os kontrol_yazisi ) nil)
        (progn
          (setq position (vl-string-search os kontrol_yazisi))
          (while (/= (setq position (vl-string-search os kontrol_yazisi position)) nil)
          (setq kontrol_yazisi  (vl-string-subst ns os kontrol_yazisi position))
          (setq position (min (+ position (strlen ns)) (strlen kontrol_yazisi)))
          )
          (setq ent (subst (cons 1 kontrol_yazisi) (assoc 1 ent) ent))
          (entmod ent)
          (entupd (ssname p i))
          (setq degis (1+ degis))
        )
     )
  (setq i (1+ i))
)
)

(defun c:ct ( / )
(vl-load-com)
(setvar "cmdecho" 1)
(princ "Yazı seçiniz.............") (setq p (ssget '((0 . "TEXT"))))
(setq os (getstring "\n Eski Yazi : " t))(if (= os "")(progn (setq os_ (ssget ":S" '((0 . "TEXT"))))(if (= os_ nil)(setq os "")(setq os (cdr (assoc 1 (entget (ssname os_ 0))))))))
(setq ns (getstring "\n Yeni Yazi : " t))(if (= ns "")(progn (setq ns_ (ssget ":S" '((0 . "TEXT"))))(if (= ns_ nil)(setq ns "")(setq ns (cdr (assoc 1 (entget (ssname ns_ 0))))))))
(ct_act os ns p)
(princ (strcat "\n Değişen eleman sayısı : " (itoa degis)))
(setvar "cmdecho" 0)
(princ)
)


Ct komutunu girdikten sonra butun projeyı seçin ilk önce değiştirmek istediğin yazıyı daha sonra olması yeregek yazıyı yazıp onaylayınız. Aynı zamanda autocadin finde komutuylada yapabilirsiniz.

Travaci (12.04.2012 18:41 GMT)

13.04.2012 08:25    

umittaser
Arakadaşın istediği komutta text kısmına atıyorum -30 girecek tıkladığı bütün textlerden 30 çıkaracak veya 30 girecek hepsine bu kotu ekleyecek. böyle bir lisp vardı ancak şu an bende bulamadım.

13.04.2012 09:04    

umittaser
Faden hocam istediğin sanırım bu lisp. lispt açısı farklı olan textleri düzeltmiyordu ve virgülden sonra 2 hane bırakıyordu ben bunu 3 hane olarak düzenledim. Eğer sen noktadan sonraki hane sayısını değiştirmek istersen kırmızı ile yazdığım yerdeki rakamı değiştirebilirsin.

Kolay gelsin

;Yol Kotlarını güncelleyen Autolisp kodu
;Kot yazıları "TEXT" objesi olmak zorunda !
;kotg - Nisan 2008 (c) Sinan COŞKUN
(defun c:kotg()
(setvar "cmdecho" 0)
(command "undo" "group")
(setq ssl 0)
(setq k_g nil)
(while(= k_g nil)(setq k_g(getreal"\nKotlara ilave edilecek veya çıkarılacak rakam ? ")))
(while
(setq VeriAl(entsel"\nİşlem yapılacak kotlar için tip Obje seçiniz !"))
(setq Lay(cdr(assoc 8(entget(car VeriAl)))))
(setq Aci(cdr(assoc 50(entget(car VeriAl)))))
(prompt"\nRevize edilecek kot yazılarını seçiniz !:")
(setq a(ssget(list(cons 8 Lay)(cons 0 "TEXT"))))
(if(null a)
(alert "\nHATA : Boş Liste..!")
(progn
(setq rep(sslength a))
(repeat rep
(setq temp(entget(ssname a ssl)))
(setq yz_ktrl(angtof(cdr(assoc 1 temp))))
(if(= yz_ktrl nil)
(alert"\nSeçilen Objelerin arasında 'Harf veya Sembol' içeren YAZI(lar) tespit edildi !\nİşlemden sonra kontrol ediniz !")
(progn
(setq yz_tmp(atof(cdr(assoc 1 temp))))
(setq yzg(rtos(+ yz_tmp k_g)2 3))
(if(= yzg "0.00")(setq yzg "%%p0.00"))
(setq temp(subst(cons 1 yzg)(assoc 1 temp)temp))
(entmod temp)
)
)
(setq ssl(+ ssl 1))
)
(princ(strcat"\n"(itoa rep)" Obje üzerinde işlem yapıldı!"))
);progn
);end if
);while
(command "undo" "e")
(princ)
)

umittaser (13.04.2012 09:24 GMT)

13.04.2012 09:23    

FADEN
süpersiniz ya çok sevindimm.. çok teşekkür ederim . büyük bir yükten kurtuldum...

12.07.2012 12:00    

mismail
Birkaç gündür plan ve kesitlerde kot düzenleme işlemi lisp ile yapılabilirmi diye soruyordum kendi kendime, demek ki oluyormuş. Elinize sağlık.

Fakat lispte şöyle bir durum var, diyelim ki 122.25 kotunu +0.00 yapacağım, -122.25 diyorum, bana 0 kotunu yazıp bırakıyor. Benim istediğim +0.00 yazması.

Başka bir örnek dersek 101.50 kotunu +5.00 yapmak istiyoruz. -96.5 diyoruz, bana 5 veriyor. Oysa istediğim +5.00 yazması.

Değişen kotun noktadan sonra 2 hanesi olacak şekilde (.00 .20 .50 gibi) lisp dosyasında yapacağımız nasıl bir değişiklikle aşılabilir?

Herkese kolay gelsin...

17.05.2017 09:08    

ziytan
İyi günler Ben halihazır bir dosyada tüm nokta kotlarına sayı ekleyip çıkarmak istiyorum bildiğiniz bir lisp varmı acaba çok acil

şimdiden teşekkür ederim

kolay gelsin

17.05.2017 09:10    

alumina
Alıntı
ziytan :


Ornek bir dosya paylasir misiniz? Uzerinde onceki hali bu sonraki hali bu diye isaretleme yaparak.

23.09.2021 07:01    

baha07
Alıntı
umittaser :
Faden hocam istediğin sanırım bu lisp. lispt açısı farklı olan textleri düzeltmiyordu ve virgülden sonra 2 hane bırakıyordu ben bunu 3 hane olarak düzenledim. Eğer sen noktadan sonraki hane sayısını değiştirmek istersen kırmızı ile yazdığım yerdeki rakamı değiştirebilirsin.

Kolay gelsin

;Yol Kotlarını güncelleyen Autolisp kodu
;Kot yazıları "TEXT" objesi olmak zorunda !
;kotg - Nisan 2008 (c) Sinan COŞKUN
(defun c:kotg()
(setvar "cmdecho" 0)
(command "undo" "group")
(setq ssl 0)
(setq k_g nil)
(while(= k_g nil)(setq k_g(getreal"\nKotlara ilave edilecek veya çıkarılacak rakam ? ")))
(while
(setq VeriAl(entsel"\nİşlem yapılacak kotlar için tip Obje seçiniz !"))
(setq Lay(cdr(assoc 8(entget(car VeriAl)))))
(setq Aci(cdr(assoc 50(entget(car VeriAl)))))
(prompt"\nRevize edilecek kot yazılarını seçiniz !:")
(setq a(ssget(list(cons 8 Lay)(cons 0 "TEXT"))))
(if(null a)
(alert "\nHATA : Boş Liste..!")
(progn
(setq rep(sslength a))
(repeat rep
(setq temp(entget(ssname a ssl)))
(setq yz_ktrl(angtof(cdr(assoc 1 temp))))
(if(= yz_ktrl nil)
(alert"\nSeçilen Objelerin arasında 'Harf veya Sembol' içeren YAZI(lar) tespit edildi !\nİşlemden sonra kontrol ediniz !")
(progn
(setq yz_tmp(atof(cdr(assoc 1 temp))))
(setq yzg(rtos(+ yz_tmp k_g)2 3))
(if(= yzg "0.00")(setq yzg "%%p0.00"))
(setq temp(subst(cons 1 yzg)(assoc 1 temp)temp))
(entmod temp)
)
)
(setq ssl(+ ssl 1))
)
(princ(strcat"\n"(itoa rep)" Obje üzerinde işlem yapıldı!"))
);progn
);end if
);while
(command "undo" "e")
(princ)
)




------

cikan sonucu eksi oldugunda - yaziyor . bu ok ....
cikan sonucu arti oldugunda lisp komutuna + eklemesi yapilabilir mi ? (orjinal lisp 0.014 bunun +0.014 yazmasi icin)
metrik duzenden ornegin sonuc +0.014 , bunun mm duzene gecmesi +14 yazilmasi icin lisp komutuna * 1000 eklemesi nasil yapilabilir

kisaca iki satir eklemek icin hangi komutlari yazmamiz gerekiyor
+ simgesi ve sonucun virgulsuz yazilmasi

23.09.2021 15:34    

baha07
;Yol Kotlarını güncelleyen Autolisp kodu
;Kot yazıları "TEXT" objesi olmak zorunda !
;kotg - Nisan 2008 (c) Sinan COŞKUN
(defun c:kotg()
(setvar "cmdecho" 0)
(command "undo" "group")
(setq ssl 0)
(setq k_g nil)
(while(= k_g nil)(setq k_g(getreal"\nKotlara ilave edilecek veya cikarilacak rakam ? ")))
(while
(setq VeriAl(entsel"\nislem yapilacak kotlar icin tip Obje seciniz !"))
(setq Lay(cdr(assoc 8(entget(car VeriAl)))))
(setq Aci(cdr(assoc 50(entget(car VeriAl)))))
(prompt"\nRevize edilecek kot yazilarini seciniz !:")
(setq a(ssget(list(cons 8 Lay)(cons 0 "TEXT"))))
(if(null a)
(alert "\nHATA : Bos Liste..!")
(progn
(setq rep(sslength a))
(repeat rep
(setq temp(entget(ssname a ssl)))
(setq yz_ktrl(angtof(cdr(assoc 1 temp))))
(if(= yz_ktrl nil)
(alert"\nSecilen Objelerin arasinda 'Harf veya Sembol' iceren YAZI(lar) tespit edildi !\nislemden sonra kontrol ediniz !")
(progn
(setq yz_tmp(atof(cdr(assoc 1 temp))))
(setq yzg(rtos(*(+ yz_tmp k_g) 1000)2 0))
(if(= yzg "0.00")(setq yzg "%%p0.00"))
(setq temp(subst(cons 1 yzg)(assoc 1 temp)temp))
(entmod temp)
)
)
(setq ssl(+ ssl 1))
)
(princ(strcat"\n"(itoa rep)" Obje üzerinde islem yapildi!"))
);progn
);end if
);while
(command "undo" "e")
(princ)
)


---------

sonuclari artik ondaliksiz alabiliyorum . fakat sonuc sifira esit veya sifirdan buyukse (pozitif) sayinin onune `+`simgesi ekle ,

komut satiri yazilabilir mi ?

baha07 (24.09.2021 08:38 GMT)

> 1 <
Copyright © 2004-2022 SQL: 1.395 saniye - Sorgu: 80 - Ortalama: 0.01744 saniye