02.11.2023 13:40    

agabeg
Merhabalar,
Projemde aşağıdaki resimdeki gibi yaklaşık 900 kot mevcut, bu kotların hepsine birden mesela 0.11 eklemek istiyorum. Forumu araştırdığımda text'ler için bir lisp olduğunu gördüm ama bende işe yaramadı. Bildiğiniz bu işi kolayca yapabileceğim bir lisp varmıdır. Kotların sonundaki dük bdk gibi kısaltmalar değişmesin de istiyorum. İşimi inanılmaz kolaylaştıracak, şimdiden teşekkür ederim.

https://ibb.co/7gZSNRK

02.11.2023 22:01    

alumina
Alıntı
agabeg :


"BDK,TK,TZK" tag isimleri olup bloklarinizin icerisinde deger eklenecek baska tag isimleri varsa araya virgul koyarak bu isimlere ekleyebilirsiniz..

Kod:

;****Secilen attribute bloklar icin girilen degeri
;      isimleri belirtilen tag'lara ait value
;        degerlerine ekler..****

(defun c:qw (/ dc dz ss ds sl tx)
            (vl-load-com)
  (if (and (setq dc (vla-get-ActiveDocument
               (vlax-get-acad-object))
             dz (getvar 'DimZin)
          ss (ssget '((0 . "Insert") (66 . 1))))
        (setq ds (getreal "\nEnter the value:")))
    (progn (setvar 'DimZin 0)
      (vla-StartUndomark dc)
      (vlax-for m (setq sl (vla-get-ActiveSelectionSet dc))
        (foreach n (vlax-invoke m 'GetAttributes)
          (if (wcmatch (vla-get-TagString n) "BDK,TK,TZK")
            (vla-put-TextString n (strcat (rtos (+ (atof
              (setq tx (vla-get-TextString n))) ds) 2 2)
                (substr tx (vl-string-position (ascii "(") tx 1))))
          )
        )
      ) (vla-EndUndomark dc) (vla-Delete sl)
      (setvar 'DimZin dz)
    )
  ) (prin1)
)

> 1 <
Copyright © 2004-2022 SQL: 1.072 saniye - Sorgu: 48 - Ortalama: 0.02234 saniye