04.10.2019 12:18    

Travaci
Kod:

(2 . "ANTET A3,ANTET A1")


Pickset e eleman eklemeden kastın seçim setine mi

Ne yapmak istiyorsun ?

Travaci (04.10.2019 12:31 GMT)

31.10.2019 09:51    

turgaygirgin
Herkese Merhaba,
DCL Kodu;
test : dialog {
label = "Deneme" ;
:list_box { label = "" ; key = "LAa1" ; width = 10 ; height = 20 ; multiple_select = false ; tabs = "2" ; }
:spacer_1 {}
ok_only ;
:spacer_1 {}
}
ve
LISP Kodu;

(defun c:test (/ an dcl_id)
(setq dcl_id (load_dialog "test.dcl"))
(if (not (new_dialog "test" dcl_id "" cl))
(exit)
(progn
(setq ListA '("A" "B" "C" "D"))
(setq ListB '("a1" "b1" "c1" "d1"))
(start_list "LAa1")
(mapcar 'add_list (mapcar '(lambda (a b)(strcat a "\t" b)) listA
listB))
(end_list)
(action_tile "LAa1" "(setq rs1 (nth (atoi $value) ListA) rs2 (nth (atoi
$value) ListB))")
(action_tile "accept" "(done_dialog)")
(setq an (start_dialog))
(unload_dialog dcl_id)
) ;progn
) ;if
(princ)
)

Kodu çalıştırınca açılan list box kutusunda her satırdaki elemanlar birlikte seçiliyor. Herhangi bir satırdaki bir elemanı seçmenin bir yöntemi varmıdır? Mesela liste de yalnızca "C" seçilmesini istersek ne yapmalıyız.

Her liste için bir listbox oluşturarak yaptım.ama listbox lar arasındaki mesafeyi sıfırlayamadım. Aslında yapmak istediğim layer manager da ki özelliğe benzer bi kontrol. 2 den fazla liste ve her listenin elemanlarını editbox ile değiştirebilmek. Böyle birşey mümkünmüdür?

Değerli cevaplarınızı bekler,

Teşekkür ederim

31.10.2019 10:40    

Travaci


Böyle mi yapmak istiyorsunuz ?

31.10.2019 10:56    

turgaygirgin
Alıntı
Travaci :


Slm Hocam,

Goruntüdeki gibi bende yaptım.

1 2 ve 3 listboxları arasında boşluk kalıyor.Listboxlar arasında hiç boşluk olmasın istiyorum.Dcl dosyasında : spacer a pek çok değer verdim ama arada boşluk kalmamasını sağlayamadım.
en sonunda yukarıdaki gibi bir lisp buldum.ama bu defa da listbox kutusundaki liste içinden tek bir eleman seçemedim.Mecbur kalırsam , bu şekilde (görüntüdeki gibi ) kullanıcam.

Travaci (31.10.2019 12:56 GMT)

31.10.2019 11:25    

Travaci
Yapılamaz diyemeyeceğim, edit_box için bizim köyün delisi yapmış list_box içinde yapılabiliyor olsa gerek





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

31.10.2019 11:38    

mttlp
Alıntı
Travaci :


Herşeyi yapıyor sizin köyün delisi lisp ile

Travaci (31.10.2019 12:56 GMT)

31.10.2019 12:19    

turgaygirgin
Alıntı
mttlp :
Alıntı
Travaci :




Hocam tamamdır.

dcl kodunu bu şekilde yaptım.

test : dialog {
label = "Deneme" ;
:row {
: boxed_column {
width = 6;
: text {
value = "text1";
}
: text {
value = "text2";
}
:spacer_1 {}
ok_only ;
:spacer_1 {}
}
: boxed_row {
fixed_width = true;
alignment = centered;

: list_box {
key = "mylist1";
height = 25;
width = 6;
multiple_select = false;
fixed_width_font = true;
horizontal_margin = none;
vertical_margin = none;
value = "";
allow_accept = true;
}
: list_box {
key = "mylist2";
height = 25;
width = 6;
multiple_select = false;
fixed_width_font = true;
horizontal_margin = none;
vertical_margin = none;
value = "";
allow_accept = true;
}

}
}
}

Böyle daha iyi oldu.

31.10.2019 12:37    

Travaci
Valla senin yaptığın abuk sabuk birşey oldu : )

Herelde şunu yapmak istedin.

Kod:

test : dialog {
  label = "Deneme" ;
  : row {
    : column {
      spacer;
      : text { value = "text1"; alignment = centered;}
      spacer;
      : list_box { key = "mylist1";
                   height = 25;
                   width = 6;
                   multiple_select = false;
                   fixed_width_font = true;
                   horizontal_margin = none;
      }
    }
    : column {
      spacer;
      : text { value = "text2"; alignment = centered;}
      spacer;
      : list_box { key = "mylist2";
                   height = 25;
                   width = 6;
                   multiple_select = false;
                   fixed_width_font = true;
                   horizontal_margin = none;
      }
    }
  }
  ok_only ;
}

31.10.2019 13:10    

turgaygirgin
Alıntı
Travaci :
Valla senin yaptığın abuk sabuk birşey oldu : )



:))))
hocam çok deneme yapıyorum ve aynı zamanda kendi listeme göre de dcl dosyasını düzenlemeye çalışıyorum.O nedenle biraz karışık olmuş olabilir. :))
Ben işin çözüm kısmındayım.düzenlemeyi sonra yaparım diye düşünüyorum.bu listelerin sol tarafında Listelerimdeki sıralamaya göre etiketler gelecek. Yalnızca ok olmayacak. Hesapla, Ok, cancel, help butonları olacak.Hatta yapabilirsem listede yapacağım seçime göre alt tarafta bilgi yazıları gelecek vs.vs.
Şimdi sırada listelerimi bu list box lara getirdikten sonra herhangi bir listeden çift veya tek tıklama ile bir eleman seçtiğimde,edit box açılması.
edit yaptıktan sonra listenin yeniden yüklenmesi.
Çok işim var çoookkk.. :)) Araşırmaya devam.Bulamaz isem yine yardımınızı isterim.

teşekkürler

Kolay gelsin

05.11.2019 08:43    

ahmet82
Merhabalar :)

Bağzı komutlar lisptekinden farklı çalışıyor tam anlatamadım sanırım şöyle örnekleyeceğim:

group komutu:

autocad çizim ekranında group yazınca benden direkt olarak objeleri seçmemi istiyor.
ama aynı komutu lispte yazınca (command "group") komutun menüsü açılıyor.

Çizim ekranında
group : obje seçimi
-group: menü ekranı
_group: menü ekranı

Lispte hepsi menü açıyor. Bu gibi sorunları nasıl aşabilirim.

Yardımlarınız için teşekkür ederim

05.11.2019 08:56    

Travaci
group ve _group zaten aynı komutlar
-group ta ise alt seçenekler gözükür bununda gözükmemesi için komuttan önce (setvar 'cmdecho 0) yazmanız gerekiyor.

05.11.2019 09:21    

ahmet82
Alıntı
Travaci :
group ve _group zaten aynı komutlar
-group ta ise alt seçenekler gözükür bununda gözükmemesi için komuttan önce (setvar 'cmdecho 0) yazmanız gerekiyor.



Hocam maalesef cmdecho işe yaramadı setvarla değeri 1'den 0'a çekiyorum fakat kar etmiyor (command "group")' ta her türlü seçenekleri gösteriyor.

05.11.2019 10:31    

Travaci
ahmet82


Bak bakalım ?

Kod:

(defun c:gr (/ ss)
  (if (and (setq ss (ssget)) (> (sslength ss) 1))
    (progn
      (setvar 'cmdecho 0)
      (command "_.-group" "C" "*" "*" ss "")
    )
  ) (princ)
)

05.11.2019 10:44    

ahmet82
Alıntı
Travaci :
ahmet82


Bak bakalım ?

Kod:

(defun c:gr (/ ss)
  (if (and (setq ss (ssget)) (> (sslength ss) 1))
    (progn
      (setvar 'cmdecho 0)
      (command "_.-group" "C" "*" "*" ss "")
    )
  ) (princ)
)




Hocam oluyor grup yapıyor. Menü çıktığı için tekrar sorun olacak zannettim adı boş geçince yada "*" koyunca ama problem olmuyormuş böyle çok teşekkürler. :)

22.11.2019 14:28    

turgaygirgin
Slm,
Bir fonksiyon kullanarak aşağıdaki listeyi elde ediyorum.

((("S" . "1")("A" . "5.0")("H" . "100.0")("W" . "100.0")("F" . "H"))
(("S" . "2")("A" . "4.0")("H" . "50.0")("W" . "80.0") ("F" . "H"))
(("S" . "3")("A" . "2.0")("H" . "75.0")("W" . "60.0")("F" . "H"))
(("S" . "4")("A" . "6.0")("H" . "20.0")("W" . "100.0")("F" . "E"))
(("S" . "5")("A" . "8.0")("H" . "50.0")("W" . "120.0")("F" . "H"))
)
Bu listeyi test.dat olarak kaydetmek ve daha sonra ihtiyacım olduğunda bu dosyadan bilgileri okuyarak aynı listeyi oluşturmak istiyorum.
Nasıl bir yol izlemeliyim.Ne yapmalıyım.

Yardımcı olursanız sevinirim.

23.11.2019 07:28    

turgaygirgin
(setq L_Liste (length liste))

(setq dosya (open "D:\\MEKANIK\\PROJELER\\test.dat" "w"))
(write-line "test dosyası" dosya)

(while (< 0 L_Liste)
(setq L1 (car liste)
liste (cdr liste))
(if (/= (length liste) 0)
(progn
(princ L1 dosya)
(princ "\n" dosya)
)
(princ "EOF" dosya)
)
(setq L_Liste (length liste))
)
(close dosya)

(setq f (open "D:\\MEKANIK\\PROJELER\\test.dat" "r"))

(read-line f)
(close f)

Listeyi bu şekilde dosyaya yazdırdım.Ama okurken ASCII karakter numaraları ile geliyor.

03.12.2019 20:05    

agaa
Forumda yeniyim. Autolisp öğrenebilmek için çabalıyorum. Çalıştığım kurumda önceden bir bölüm lispler yazılmış fakat hepsi .vlx olarak kaydedilmiş. Lisp dosyalarını bulamıyorum ve .vlx olan dosyaların içeriğini göremiyorum.

Bir kaç soru sormak isterim yardımcı olursanız çok sevinirim.
1) belirli bir rectangle üzerinde bilgisayarın c'sinde kayıtlı olan blokları (dwg dosyalarını ) otomatik olarak nasıl yerleştirebilirim. Örnek ; 2500mm ye 2500mm olan rectangle içerisine 900mm parçalar halinde bloklar yerleştireceğim geriye kalan kısma 200mmlik blok yerleşecek.
2) saydığımız bu blokları exele aktarmam gerekecek.
Not: daha önce şirkette yazılmış bir lispte blok say komutu kullanılarak bloklar sayılıyor ve daha önce hazırlanılmış olan exel listesine exel listesi açıldıktan sonra sağ klik yapılarak yenile diye bir seçenek seçilip blok adetleri belli değerlerle çarpılıp adet çıkarılması sağlanıyor. Yenile dediğinde direkt autocadde saydığı ( blok say komutu ile ) değerleri nasıl exele aktarıyor?
Bayağı meşakkatli bir iş gibi geldi yıllardır yaklaşmaya çekindim ama artık bu lisp olayına biryerden girmek lazım. Yardım ederseniz sevinirim. Herkesin emeğine sağlık çok güzel işler başarmışsınız çoğu yorumunuzu okumaya çalıştım. Teşekkürler

04.12.2019 05:52    

Travaci
1) Bloğu çağırdıktan sonra array komutunu kullanabilirsin.
2) Sitemizde bununla ilgili bir lisp daha önce paylaşılmış olsa gerek.

04.12.2019 06:49    

agaa
Alıntı
Travaci :
1) Bloğu çağırdıktan sonra array komutunu kullanabilirsin.
2) Sitemizde bununla ilgili bir lisp daha önce paylaşılmış olsa gerek.



YANIT İÇİN TEŞEKKÜR EDERİM. FAKAT SANIRIM YANLIŞ ANLATTIM KONUYU. BELİRLİ BİR BÖLGEYE KAYITLI DWGLERDEN BİR KAÇINI YERLEŞTİRMEK İSTİYORUM . BİR RESİM EKLEDİM UMARIM BECEREBİLMİŞİMDİR. RESİMDEKİ PARÇALARIN HER BİRİ AYRI BİR DWGDİR. LISP YARDIMIYLA SEÇECEĞİM RECTANGL A YERLEŞSİN İSTİTORUM.
2)DAHA ÖNCE PAYLASILAN LISPI YONLENDİREBİLİR MİSİSNİZ?

11.12.2019 15:53    

agaa
Yazılmış bir dcl dosyası var. Yüklemek ve çalıştırmak istiyorum ne yapmalıyım. İlla bir lisple ilişkili mı olmalı dcl dosyasının. Yani lisp yükler gibi yükleyebilir miyim AutoCAde.

Copyright © 2004-2022 SQL: 2.188 saniye - Sorgu: 99 - Ortalama: 0.0221 saniye