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

30.10.2024 17:48    

erhan195
Merhaba.

Blok içerisinde yer alan TEXT objelerini belirli bir noktaya göre scale etmek istiyorum.
(vla-scaleentity (nth m items) (vlax-3D-point cpoint) scale) komutunu kullanıyorum. Bu işlemden sonra text objesi kayboluyor. Neyi yanlış yapıyorum?

31.10.2024 06:33    

ehya
Alıntı
erhan195 :
Merhaba.
Blok içerisinde yer alan TEXT objelerini belirli bir noktaya göre scale etmek istiyorum.
(vla-scaleentity (nth m items) (vlax-3D-point cpoint) scale) komutunu kullanıyorum. Bu işlemden sonra text objesi kayboluyor. Neyi yanlış yapıyorum?



Belirli bir noktaya göre demişsiniz. Sanırım burada blok dışında iken model düzleminden koordinat belirlediyseniz hata verir. Blok içi koordinat ile modelspace koordinatı aynı değildir. Referans noktanızı blok içindeki nesneleri referans kabul etmelisiniz.

31.10.2024 17:56    

erhan195
Öncelikle teşekkür ederim. Dediklerinizde haklısınız. Objenin Center pointini baz alarak uzunluk, genişlik ve açıya bağlı olarak orta noktayı hesaplıyorum. Ölçeklendirmeyi de orta noktaya göre yaptırmaya çalışıyorum. Attribuite başarılı şekilde çalışıyor fakat text objelerinde sorun oluyor. Dediğiniz gibi getpointle bloğun orta noktasını seçtiğimde text objeside başarılı bir şekilde scale oldu.

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