04.04.2012 11:59    

k005
Merhaba arkadaşlar;

oluk uzunluğunu renge göre seçim yaptırıp, (objetipi: Line) başka bir lisp ile de uzunluk bilgisini alıyorum. renk her zaman aynı : 13

yapmak istediğim : sadece olk komutunu çalıştırıp, akabinde gt komutununda çalışması.. bunu nasıl yapabilirim?

Kod:

(defun c:olk()
(princ "\nOluğu Seçiniz..")
(setq nt1 (getpoint "\nÜst köşe?"))
****
****
(defun c:gt()
(c:gt))
(princ)
)


yardımcı arkadaşlara şimdiden teşekkürler..

04.04.2012 12:53    

ProhibiT
"Lisp içinden başka komut çalıştırmak" olarak ifade etmeyin ve düşüncenizi böyle sınırlamayın. "Bir Lisp fonksiyon (main function diyelim) içinden, başka bir Lisp fonksiyonu (Subroutine Function diyelim) çalıştırmak" şeklinde düşünürseniz çözümü daha iyi kavrama şansınız olur.

Bahsettiğimiz Ana fonksiyon ve Çağırılan fonksiyonu aynı Kod iiçinde (aynı Lisp dosyasında) fakat biribirinden ayrı olarak tanımlamalısınız. Basitçe örneklemek gerekirse;
Kod:

;;; Ana Fonksiyon
(defun c:olk ()
  (princ "\nOluğu Seçiniz..")
  (setq nt1 (getpoint "\nÜst köşe?"))
  ****
  (gt Arguman1 Arguman2) ;;; İstenen argümanlarla gt fonksiyonunu çalıştırma.
  ****
  (get Arg01 Arg02)   ;;; Başka argümanlarla gt fonksiyonunu tekrar çalıştırma.
  ****
  (princ)
) ;;; ... end of defun
;;;
;;; Çağırılan Fonksiyon
(defun gt (ArgX ArgY /)
  ****
) ;;; ... end of defun
Çağırılan fonksiyon için (defun c:gt () ... değil doğrudan (defun gt () ... kullandığıma yani çağırılan fonksiyonu Global Function yapmadığıma dikkat ediniz.

Linkleri görebilmek için ÜYE olmalısınız.

linkinde verdiğim açıklamaları mutlaka okumanızı tavsiye ederim.

04.04.2012 13:37    

k005
Alıntı
ProhibiT :

öncelikle cevap için teşekkürler..

aynı lisp dosyasında tanımlanması gerekiyor.. tamam. Ben ayrı olarak çağırmak istemiştim bu olmuyor,. demekki..

peki hocam; seçilen bu line ın uzunluğunu veren kodu ne şekilde yazmalıyım.. seçimi yaptırıyorum ve lisp sonlanıyor. buna ek olarak seçilenin uzunluğunu veren satırlar nasıl olmalı..?

04.04.2012 17:09    

Travaci
İstersen yapabildiğin kadarını paylaş ve neyi nerde istediğini belirt onun üzerinden gidelim ; )

05.04.2012 06:07    

ehya
şahin hocam yok. Bari ben cevaplayayım :)

Seçilen line nesnelerinin uzunluğunu iki şekilde hesaplayabilirsin.
Ya autolisp yada visuallisp.
Ancak dikkat edilecek bir nokta var. O da, tek nesne mi, yoksa çoklu nesne mi?
Seçim işleminden sonra uzunluk hesaplamalarını bir girdi içerisinde saklıyorsan hiçbir sıkıntı olmaz. Bu değeri istediğin yerde kullanabilirsin. İşlem sonucunda bu değeri istesen kullanıcıının görmesini sağlayabilirsin.

Bununla ilgili basit bir kod:

Kod:

(vl-load-com)
(setq ent (entsel "\nNesne seç:"))
(setq data (vlax-ename->vla-object (car ent)))
(setq uzunluk (vla-get-length data))
(princ uzunluk)

05.04.2012 07:07    

k005
Alıntı
ehya :

teşekkürler ehya hocam. entegre etmeye çalışayım bakalım.. :wink

> 1 <
Copyright © 2004-2022 SQL: 1.037 saniye - Sorgu: 56 - Ortalama: 0.01852 saniye