22.05.2024 10:19    

Travaci
- da autolisp te (% ... 3) böyle bir komut yok nereden görüp bu şekilde yazdınız ?
bu kısmı yukarıda anlattığım gibi düzenlemeniz gerekiyor.

22.05.2024 12:44    

asamet
C dilindeki kullanımıyla yazmıştım, mod kullanımı yazıyla oluyormuş haklısınız. Şöyle bir durum var. Yukarıda yazdığınız döngüyü ve başlangıcı anlamadım. Ezbere bir mantıkla devam etmeye çalıştım. O kısmı detaylandırabilir misiniz? İngilizce değişkenler copy + paste bi mantık. Türkçe değişkenler anlayarak yaptığım kısımlar.
Özetle seçim başlatma ve döngü noktasında nasıl bir hata yaptığımı çözmüş değilim.

(defun C:FAZ ()

(setq faz-list '("L1" "L2" "L3")) ;; Faz numaraları için liste oluşturuyoruz.

(initget "1 2 3") ;; initget kullanarak seçimi sınırlandırıyoruz.
(setq faz-no (getkword "\nFaz Numarası Girin: [1/2/3]:"))

(setq faz-no (atoi faz-no)) ;; Tam sayı yaptık.
(setq faz (nth (- faz-no 1) faz-list)) ;; Girilen sayıyı listede aratıyoruz, faz'a kaydediyoruz.

(while (setq sel (nentsel "\nSeçin: ")) ;; Kullanıcı attribute nesnesi seçene kadar döngüye giriyoruz.
(setq ent (car sel)) ;; Seçilen nesneyi alıyoruz.
(setq ent-data (entget ent)) ;; Seçilen nesnenin verilerini alıyoruz.

(if (eq (cdr (assoc 0 ent-data)) "ATTRIB") ;; Seçilen nesne eğer attribute ise.
(
progn ;; Attribute ise, faz indeksini artırıyoruz ve yeni faz değerini ayarlıyoruz.
(setq faz-index (mod (+ faz-index 1) 3))
(setq new-value (nth faz-index faz-list))

(setq ent-data (subst (cons 1 new-value) (assoc 1 ent-data) ent-data))
(entmod ent-data)
(entupd ent)
)
(prompt "\nSeçilen nesne bir attribute değil.") ;; Seçilen nesne eğer attribute değil ise.
)
)
(princ) ;; Çıkış
)

22.05.2024 13:01    

Travaci
Siz aşağıdakine bakın anlamazsanız sorarsınız.

Kod:

(defun C:FAZ ()
(setq faz-list '("L1" "L2" "L3")) ;; Faz numaraları için liste oluşturuyoruz.
(initget "1 2 3") ;; initget kullanarak seçimi sınırlandırıyoruz.
(setq faz-no (getkword "\nFaz Numarası Girin: [1/2/3]:"))
(setq faz-no (atoi faz-no)) ;; Tam sayı yaptık.
(while (setq sel (nentsel "\nSeçin: ")) ;; Kullanıcı attribute nesnesi seçene kadar döngüye giriyoruz.
(setq ent (car sel)) ;; Seçilen nesneyi alıyoruz.
(setq ent-data (entget ent)) ;; Seçilen nesnenin verilerini alıyoruz.
(if (eq (cdr (assoc 0 ent-data)) "ATTRIB") ;; Seçilen nesne eğer attribute ise.
(progn ;; Attribute ise, faz indeksini artırıyoruz ve yeni faz değerini ayarlıyoruz.
(setq faz (nth (- faz-no 1) faz-list)) ;; Girilen sayıyı listede aratıyoruz, faz'a kaydediyoruz.
(setq ent-data (subst (cons 1 faz) (assoc 1 ent-data) ent-data))
(entmod ent-data)
(entupd ent)
(setq faz-no (1+ faz-no)) ;; liste sırasını bi sonrakine taşıyoruz
(if (= faz-no 4) (setq faz-no 1)) ;; liste sonuna geldiysek başa dönüyoruz.
)
(prompt "\nSeçilen nesne bir attribute değil.") ;; Seçilen nesne eğer attribute değil ise.
)
)
(princ) ;; Çıkış
)

23.05.2024 05:34    

asamet
Çok teşekkürler sağolun. Anladım şimdi

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] > 43 <
Copyright © 2004-2022 SQL: 0.846 saniye - Sorgu: 53 - Ortalama: 0.01596 saniye