18.05.2014 21:32    

kaan0624
merhabalar ProhibiT hocamın kitabını almamla birlikte lisp yazmaya yavas yavas basladım.şöyle bir lisp yazdım
Kod:

(defun c:DENEME ()
  (setq R 10)
  (setq H 10)
  (setq N 1)
  (WHILE
  (setq p1 (GETPOINT "sıra numarası eklemek için bir noktayı tıklayınız:"))
  (command "CIRCLE" p1 R )
  (command "TEXT" "J" "M" p1 H 0 N " " ))
  (setq N (+ 1 N ))
)


Sırasıyla numara arttırmak istiyorum. 1 2 3 4 .... diye. bu program hepsini 1 diye atıyor. Son satırla 1 arttırmasını istedim fakat olmuyor. Yardımcı olabilirseniz çok sevinirim.


saygılarımla

ProhibiT (19.05.2014 00:36 GMT)

19.05.2014 00:46    

ProhibiT
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.

ProhibiT (19.05.2014 18:27 GMT)

19.05.2014 01:02    

kaan0624
hocam yardımcı olduğunuz için çok teşekkür ederim.sayenizde artık küçük programları yazabılıyorum.inşallah ilerde bende büyük programlar yazabileceğim... saygılar sunuyorum

> 1 <
Copyright © 2004-2022 SQL: 1.004 saniye - Sorgu: 49 - Ortalama: 0.02049 saniye