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