06.06.2021 09:30    

k005
Merhaba arkadaşlar;

Küçük bir lisp hazırlıyorum. IF kullanmayıp, bu seferde cond kullanayım dedim ama, bir türlü birleştiremedim.
nerede hata yapıyorum ? yardımcı olabilirmisiniz.
Kod:

;Filter Text/Circle seçimi
(defun C:th (/ str ss ch)
(Princ "Aynı Değerdeki Yazı/Daireleri Seç...")
(initget 1 "1 2")
(setq ch (getkword "\nSeçim yapın (Yazı 1 - Daire 2 ): "))
(setq str (cdr (assoc 40 (entget(car(entsel))))))
(cond
((= ch "1")
(if (setq ss (ssget "_X" (list (cons 0 "*TEXT") (cons 40  str))))
((= ch "2")
(if (setq ss (ssget "_X" (list (cons 0 "CIRCLE") (cons 40  str)))))
(sssetfirst nil ss)))

06.06.2021 09:57    

Travaci
Kod:

(cond
  ((= ch "1") (sssetfirst nil (ssget "_X" (list (cons 0 "*TEXT")))))
  ((= ch "2") (sssetfirst nil (ssget "_X" (list (cons 0 "CIRCLE")))))
)

06.06.2021 10:11    

k005
@Travaci

Teşekkürler. Yazılar için oldu. Ancak daireleri seçmiyor. sadece yarı çap değerini veriyor... 2 girdiğimde. komut yarı çap değerini verip sonlanıyor. Daireleride aynı yazıda olduğu gibi ( burda referans yarı çaptır.) seçmesi gerekiyordu.

06.06.2021 10:51    

alumina
Alıntı
k005 :

Kod:

(defun c:qw (/ ch ss ns)
  (initget 1 "T C")
  (setq ch (getkword "\nSelect type <Text/Circle>:"))
  (if (setq ss (ssget ":S" '((0 . "circle,*text"))))
    (sssetfirst nil (ssget "X" (list
      (cons 0 (cond ((= ch "T") "*text")
                ((= ch "C") "circle")))
        (assoc 40 (entget (ssname ss 0))))))
  ) (princ)
)

06.06.2021 10:53    

Travaci
Kod yazarken notepad++ veya visual lisp editörünü kullanırsanız parantez karşılıklarını kolayca takip edebilirsiniz böylelikle hata yapmazsınız. Bence kodu şu şekilde düzenlersek daha yakışıklı olucaktır.
Ssget ile seçim setine iki opsiyon text ve circle ı koyarsak soru cevaplama zahmetinde bulunmayız.

Kod:

(defun c:stc (/ ss)
  (if (setq ss (ssget ":s" (list (cons 0 "*TEXT,CIRCLE"))))
    (sssetfirst nil (ssget "X" (list (assoc 0  (entget (ssname ss 0)))
                                     (assoc 40 (entget (ssname ss 0))))))
  ) (princ)
)

Travaci (06.06.2021 11:15 GMT)

06.06.2021 11:06    

k005
@Alumina

kod istenilen şekilde çalışıyor... Çok teşekkür ediyorum.

* Örnek kod olarak ekliyorum.


@Travaci

Zaten vlispEditör ile yazıyoruz. Evet bence de daha yakışıklı oldu. Çok Teşekkür ediyorum.

> 1 <
Copyright © 2004-2022 SQL: 1.109 saniye - Sorgu: 57 - Ortalama: 0.01946 saniye