12.02.2011 12:50    

karsiyakaliyim
Merhaba arkadaşlar elimde bir topoğrafik harita var ve eşyükseklik eğrileri parça parça (explode etmişler sanırm), bunları tekrar çizmem çok zaman alacaktır. 2 sorum olacak;
1) bu parça çizgilerden herhangi birine tıkladığımda, kendisiyle birleşik aynı doğrultuda olan çizgileri seçmemin kolay bir yolu var mıdır?? (tek tek tıklayarak saatler alıyor)
2)3ds max kullanırken hepsini seçip weld yapıyoruz kaynaştırıyoruz bunları birleşiyorlar. autocadde nasıl düzelteceğim bunu? her kot çizgisi birbirinden ayrı ama parçalı olmayacak şekilde (polyline) nasıl yapabilirim??

12.02.2011 15:24    

ProhibiT


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

linkindeki başlık altında yazılanları okursanız bu probleminizin çözümünü bulmuş olursunuz.

kolay gelsin.

12.02.2011 18:17    

karsiyakaliyim
Çok teşekkür ederim tek tek çizmiştim ama çok yararlı oldu bu..
bir soruma cevap buldum ama kaynaştırma gibi bir şey var mı autocadde onu öğrenemedim?? çok yakınlaştığım zaman trim yapmak zorunda oluyorum. osnap falan açık hem. böyle hassasiyet değeri girip çizgileri birleştirme gibi bir şey yok mu? bu lisp öyle durumlara çözüm getirmiyor çünkü?

12.02.2011 20:15    

ProhibiT
Aslında verdiğim başlık altında verilen autolisp fonksiyon alternatiftir.
işin aslı ve genel geçer yöntemi "pedit" komutunun kullanılmasıdır. belki pedit ile probleminizi çözebilirsiniz.
------------------------------------------------------------------------------------------------------------------
command: pedit<┘
select polyline or [multiple]: m<┘
select objects: specify opposite corner: 2 found
select objects: <┘
enter an option [close/open/join/width/fit/spline/decurve/ltype gen/reverse/undo]: j<┘
enter fuzz distance or [jointype] <0.0000>: j<┘
enter join type [extend/add/both] <extend>: b<┘
join type = both (extend or add)
enter fuzz distance or [jointype] <0.0000>: 0.1<┘
1 segments added to polyline
enter an option [close/open/join/width/fit/spline/decurve/ltype gen/reverse/undo]:<┘
command:
------------------------------------------------------------------------------------------------------------------
burada, aralarında 0.1 birim açıklık (veya fazlalık) olan 2 çizgiyi join etmeyi örnekledim.

bu yolla, çizgi uçları arasında belirlediğiniz kadar (açıklık veya trim edilecek fazlalık) mesafe olan çizgileri join edebilirsiniz...

kolay gelsin.

12.02.2011 20:55    

karsiyakaliyim
Harika bir şey öğrendim çok teşekkürler bu kıymetli bilgi için :)

çok oldum biliyorum ama son bir sorum olacak.. pedit > m yaptıktan sonra select object diyor ya
işte orada layer ismi ile seçimi nasıl yapacağım lisp kullanmam şart mıdır?

karsiyakaliyim (12.02.2011 21:16 GMT)

13.02.2011 03:42    

ProhibiT
Bunun bir kaç yolu var;
- komuta girmeden önce qselect ile ilgili layerdaki objeleri seçerek bir seçim seti oluşturabilir ve pedit komutunu kullanırken, select object dendiğinde "p" (previous) girerek işlem yapabilirsiniz.
- pedit komutunu girmeden önce (setq x (ssget "x" (list (cons 8 "layer adı")))) şeklinde bir dıesel expression girebilirsiz. burada "layer adı" ifadesinin yerine gene tırnak içinde olmak şartıyla seçmek istediğiniz layer adını yazmalısınız. bundan sonra aynı qselect'te olduğu gibi previous seçim seti olarak kullanabilirsiniz.
- bahsedilen dıesel expression'u, pedit komutu içinde, select object sorusu sorulduğunda girebilirsiniz.
- aşağıda verdiğim basit autolisp fonksiyonu kullanarak oluşturduğunuz previous seçim setini kullanabilirsiniz.
Kod:

(defun c:sellayer (/ l slyr)
  (setvar "cmdecho" 0) (command "undo" "group")
  (setq l (strcase (getstring "\nlayer adını giriniz veya obje seçmek için enter giriniz: ")))
  (if (= "" l)
    (setq l (cdr (assoc 8 (entget (car (entsel "\nseçmek istediğiniz layer'da bir obje seçiniz: : ")))))))
  (setq slyr (ssget "x" (list (cons 8 l))))
  (princ (strcat "\n" (itoa (sslength slyr)) " object selected in layer " l))
  (command "undo" "e")  (prin1)
)
kolay gelsin.

> 1 <
Copyright © 2004-2022 SQL: 0.917 saniye - Sorgu: 57 - Ortalama: 0.01609 saniye