02.07.2012 13:39    

ugursolmaz
Arkadaşlar elimde bir AutoCAD dosyası var bu dosyada B.2.23, B.2.24, B.2. 56, B.2.58 vs gidiyor bu yazıları mesela B.1.23, B.1.24 gibi sadece B2 leri değiştirmek ,st,yorum. Yardımcı olursanız sevinirim, şimdiden teşekkürler.

ProhibiT (02.07.2012 22:54 GMT)

02.07.2012 14:13    

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


İsterseniz lisp i kullanabilir, isterseniz autocad in find komutunu kullanabilirsiniz.

> 1 <
Copyright © 2004-2022 SQL: 1.069 saniye - Sorgu: 47 - Ortalama: 0.02275 saniye