AutoCAD'in bazı komutlarında önceki verilen değeri öneri olarak sunuyor.
Enter ile önceki değeri kabul edebiliyoruz.
Örneğin CIRCLE komutu ile 2. bir daire çizeceğimizde önceki yarıçap değerini öneriyor.
AutoLisp'te bu işlem nasıl yapılabilir?
Benim ilk aklıma gelen AutoCAD'in USERxx sistem değişkenini kullanmak geldi ama başka bir yolu var mı?
Çünkü USERxx'i kullanmanın sakıncası olabilir. Kullanıcı ya da başka bir program da aynı sistem değişkenini kullanıp değiştirmiş olabilir.
teşekkürler @Travaci
basit bir özelliği gözden kaçırıp başka yola sapmışım.
CIRCLE komutuna dikkat ettim de ilk çalıştırılışında öneri sunmuyor.
ben de aynı özellik olsun istedim.
kodları aşağıdaki şekilde güncelledim.
Kod:
(defun c:6GEN(/ cap oneri)
(if (not oncekiCap) ; komut ilk defa çalıştırılıyorsa
(setq oneri "") ;öneri yok
(setq oneri (strcat "<" (rtos oncekiCap) ">")) ;önceki değeri öner
)
; Öneri Enter ya da Boşluk tuşu ile geçildiyse öneriyi kabul et
(if (not(setq cap (getreal (strcat "Altıgen çapı :" oneri ))))
(setq cap oncekiCap)
)
(command "_.polygon" 6 (getpoint) "I" cap)
(setq oncekiCap cap);kullanılan çap değerini belekte tut
)
ocap yoksa (yani nil ise) çap girişi enter ile geçilirse (yani cap ta nil olursa),
AutoCAD in varsayılan komutuna dönerek ekrandan grafik olarak veya klavyeden sayısal olarak giriş yapılabilir. Bu şekilde dinamik giriş yapılan çap değeri hatırlanmaz.
merkez noktasını tıkladıktan sonra 2. nokta tıklanamıyor
ya ENTER'e basıp eski değeri kabul etmek
ya da ESC ile komuta dönmek
ya da klavyeden değer girmek gerekiyor.