08.11.2016 13:58    

yazgunesi
raskoln bir bak bakalım aşağıdaki kodlama uygulamalarına.
Böyle birşey mi yapmayı düşünmüştün ? :-)

Kod:

;;;   Birden fazla komut çalıştırma örneği kodlama uygulaması   ;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;   birinci komut biterken ikinci komutu çalıştırma  örneği   ;;;

;; ilk çalışan komut ismi : ikidaireciz
;; çalıştırılan 2. komut  : cizgiciz


(defun c:ikidaireciz (/ oldsnap yr1 cap1 cap2 )

(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)

(setq yr1 (getpoint "\n Yerlestirme noktasi :" ))
(setq cap1 (getreal "\n Büyük daire çapı ? :" ))
(setq cap2 (getreal "\n Küçük daire çapı ? :" ))

(command  "circle" yr1 "d" cap1 "" )
(command  "circle" yr1 "d" cap2 "" )

(setvar "osmode" oldsnap)

(c:cizgiciz)  ;; çalıştırılan ikinci komut
(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;    birden fazla komutu sırayla ard arda çalıştırma  örneği   ;;;

;; buradaki komut ismi : ardardakomut

(defun c:ardardakomut ()

(c:cizgiciz)
(c:daireciz)

(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; Cond komutunu kullanarak ekrandan başka kumut seçtirme örneği  ;;;

;;; Komut ismimiz : coklukomut
;;;
;;; Çalıştırılan komutlar :
;;; cizgiciz
;;; daireciz

(defun c:coklukomut (/ secim)
 
(setq secim (getstring "\n Komut seçiniz >>> Çizgi çiz // Daire çiz < czg / dyr > : " ))  ; açıklama

(cond ((= secim "czg" ) (c:cizgiciz)))
(cond ((= secim "dyr" ) (c:daireciz)))

(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:cizgiciz (/ oldsnap yr1 yr2 )

(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)
 
(setq yr1 (getpoint "\n Çizgi başlangıç noktasi ?! :" ))
(setq yr2 (getpoint "\n Çizgi bitiş noktasi ?! :" ))

(command "line" yr1 yr2 "" )
   
(setvar "osmode" oldsnap)

(princ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:daireciz (/ oldsnap yr1 cap1 )

(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)

(setq yr1 (getpoint "\n Yerlestirme noktasi :" ))
(setq cap1 (getreal "\n Daire çapı ? :" ))

(command  "circle" yr1 "d" cap1 "" )

(setvar "osmode" oldsnap)

(princ)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

10.11.2016 08:47    

boldpilot70
selamlar banada böyle birşey lazım fakat nasıl yapabilirim.
resimde 4 adet command buton var her butona farklı lisp atama yapmak istiyorum ve autocad ekranında programı çalıştırınca
4 adet buton karşımda olması gerekiyor ve hangi butona basarsam o lispi çalıştırmalı bunu nasıl yapabilirim.

10.11.2016 19:38    

BLack|E
Alıntı
yazgunesi :
(setq secim (getstring "\n Komut seçiniz >>> Çizgi çiz // Daire çiz < czg / dyr > : " )) ; açıklama



Hocam czg / dyr büyük-küçük harf uyumsuzluğu var. Büyük harfle yazıldığında komut aktif hale gelmiyor. Bu sorunu nasıl çözeriz?

11.11.2016 11:00    

boldpilot70
birtane buton oluşturup butona istediğimiz bir lispi çalıştırma işlemi nasıl tanımlayabiliriz.
yani butona basınca lisp çalışacak.

11.11.2016 11:02    

ehya
tanımlama yapman için kodlama bilmen gerek. bilmeden yapamazsın NOKTA

11.11.2016 13:04    

boldpilot70
bir tane örnek yapılıp buraya eklenirse butonu çoğaltıp farklı lispler üzerinde uygulayabilirim.

11.11.2016 14:23    

ehya
ücretini ödersen neden olmasın?

12.11.2016 11:34    

boldpilot70
ben diyorum sadece bir buton yap sen diyorsun ücretini öde ben program yap demiyorum ki
bir buton örnek olarak yap

12.11.2016 11:49    

ehya
kapitalist bir düzen işte naparsın raskoln.. pardon boldpilot70...

12.11.2016 12:01    

yazgunesi
Autocad için dilaoglar yapmak için 2 seçenek mevcuttur bildiğim kadarıyla..

1) Vba kullanarak dialoglar yapmak

2) DCL dialog kontrol dilini kullanmak

Vba kullanmak :

Vba kullanarak yapmak biraz daha zordur, biraz bilgi sahibi olmak gerek..

DCL dialoglar yapmak :

DCL Autocad'tin kendisinin kullandığı Autolisp'e görsellik katiğı dilaoglar kontrol dilidir.
Vba biraz daha ileri seviye oluyor ve vusial basic programlama dilini biraz bilmek gerekiyor..

DCL ile diyaloglar yapmak mümkündür ama Türkçe içerikli kaynak çok azdır. Daha çok İngilizce dilinde eğitim içerikleri mevcuttur.

Sitemizde DCL diyaloglar konusunda örnekler olması gerek. Yani araştırma yapmanız lazım örnek programlar için..

DCL eğitim dokümanları :

3562-dcl-evraklar.rar

admin (15.05.2018 18:53 GMT)

12.11.2016 12:33    

yazgunesi
Alıntı
BLack|E :
Alıntı
yazgunesi :
(setq secim (getstring "\n Komut seçiniz >>> Çizgi çiz // Daire çiz < czg / dyr > : " )) ; açıklama



Hocam czg / dyr büyük-küçük harf uyumsuzluğu var. Büyük harfle yazıldığında komut aktif hale gelmiyor. Bu sorunu nasıl çözeriz?



İlgili programın içeriğini aşağıdaki gibi değiştir. Ek olarak büyük harf özelliğini de ekledim. Büyük harflerle yazılmış olan aşağıdaki 2 satırı, küçük harf satırı sonrasına eklemen yeterlidir.

Kod:

(cond ((= secim "czg" ) (c:cizgiciz)))
(cond ((= secim "dyr" ) (c:daireciz)))

(cond ((= secim "CZG" ) (c:cizgiciz)))
(cond ((= secim "DYR" ) (c:daireciz)))

12.11.2016 13:02    

BLack|E
Alıntı
yazgunesi :

İlgili programın içeriğini aşağıdaki gibi değiştir. Ek olarak büyük harf özelliğini de ekledim. Büyük harflerle yazılmış olan aşağıdaki 2 satırı, küçük harf satırı sonrasına eklemen yeterlidir.

Kod:

(cond ((= secim "czg" ) (c:cizgiciz)))
(cond ((= secim "dyr" ) (c:daireciz)))

(cond ((= secim "CZG" ) (c:cizgiciz)))
(cond ((= secim "DYR" ) (c:daireciz)))




Çok teşekkür ederim, paylaştığınız bilgi için.

12.11.2016 14:31    

ehya
yazgunesi




birden çok komut ismi seçiminde getstring yerin getkword kullanman daha doğru olmazmıydı? initget ile seçeneklere bağlar büyük-küçük harf sorunu yaşamazdın...

21.12.2016 10:46    

yazgunesi


Uygulama örneği olarak DCL dialog'ta 5 adet komut çalıştırılması sağlanıldı.
Kendiniz buton sayısını artırabilirsiniz, gerekli açıklamalar var..

3562-coklu-komut.rar

21.12.2016 12:24    

mttlp
Sürekli açık olmasını istiyorsanız pallet yapımını inceleyeniz

25.12.2016 16:06    

boldpilot70
bu dcl hangi versiyon için yapıldı her versiyonda çalışmıyor herhalde

25.12.2016 16:13    

boldpilot70
butonların olduğu arayüzü nasıl açıyoruz.

25.12.2016 21:16    

yazgunesi
Her versiyonda çalışıyor, dcl dosya ile autolisp dosya aynı dizinde olmak zorunda.. Çalışmaması imkansız.

26.12.2016 05:19    

boldpilot70
Dcl programını çalıştırmak için konut satırına 5komut yazıyorum ve ekrana birsey gelmiyor ekrana resimdeki dialog ekranı gelmesi için başka birsey mi giriyoruz konut satirina

Bu programın kullanimi nasildir

26.12.2016 08:24    

mttlp
Alıntı
boldpilot70 :
Dcl programını çalıştırmak için konut satırına 5komut yazıyorum ve ekrana birsey gelmiyor ekrana resimdeki dialog ekranı gelmesi için başka birsey mi giriyoruz konut satirina

Bu programın kullanimi nasildir





Bu işi öğren mek birşey ler yapmak istiyorsan kitapını al hocalarımızın oku öğren
Autolisp yüklemeyle iş olmuyor

Bu konu kilitli, yeni ileti kabul edilmiyor.
Copyright © 2004-2022 SQL: 1.893 saniye - Sorgu: 98 - Ortalama: 0.01931 saniye