Güzel deneme :yes
(Command "TEXT" ... 'in beklediği içerik string (karakter dizisi) türündedir. Parametre olarak Tamsayı değere sahip N verilince hata oluşuyor. Text komutu içinde kullanırken İtoa kullanarak tamsayıyı karakter dizisine çevirmek yeterli.
Yazılan kodu düzenlersek;
Kod:
(defun c:Deneme (/ R H N)
(setq R 10 H 10 N 1)
(while (setq p1 (getpoint "\nNumara yazılacak Nokta: "))
(command "_.Circle" p1 R)
(command "_.Text" "J" "M" p1 h 0 (itoa N) "")
(setq N (1+ N))
)
)
- R, H ve N değişkenlerini yerel değişken (local variable) olarak tanımladım. Ki, başka lisplerle karışmasınlar.
- Birbirini takip eden 3 tane setq işlevini tek setq içinde yazdım.
- Command'den sonra komut adını yazarken başına _. ekledim (AutoCAD sürümleri arasındaki farklardan sakınmak için)
- Text komutunu sonlandırırken " " yerine "" kullandım. Elle girerken Yeni satırı Enter ile geçmek ile aynı.
Son olarak; başlangıçta (setvar "cmdecho" 0) girersek, ekranda gereksiz mesajlar görünmez. En sona da (princ) eklersek, fonksiyondan çıkış temiz olur.
Forumda Kod paylaşırken Kod Braketi içine alırsanız, okunur ve anlaşılır olur.
Kolay gelsin.