Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 4 mesaj ]
Yazar Mesaj
 Mesaj Başlığı: Pline hakkında....
MesajGönderilme zamanı: 31 Mar 2002 10:14 

Kayıt: 30 Ara 2001 00:05
Mesajlar: 27
Konum: Turkey
Merhaba,
Benim sormak istediğim lisp yazarken pline 'ın hakkında istediğim değerini kullanabilirmiyim.. Yani pline' ın 3. ve 4.noktasının koordinatını bulmak ve bunlar arasındaki açıyı tespit edebilirmiyim. "entget" komutu ile pline'ın özelliklerine baktığımda özellikler örneğin (90 . 5) yazıyorsa koordinatlarında ( 10 12544.2545 5156.2115) yazıyor. ve bu koordinata ulaşamıyorum. yardımcı olursanız sevinirim.

ehya_bote


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 01 Nis 2002 10:46 
Site Admin

Kayıt: 07 Oca 2002 13:14
Mesajlar: 1085
Konum: Turkey
IntelliCAD'de (ve autocad'de), görünüşleri işlevleri tamamen aynı olmakla beraber veritabanında kaydedilme şekli olarak iki tür polyline var: POLYLINE ve LWPOLYLINE. Hangisinin kullanılacağını PLINETYPE değişkeni kontrol ediyor.

LWPOLYLINE'da eskisinden farklı olarak aynı veri yapısı içinde birden çok vertex tutulabiliyor:
(... (0 . "LWPOLYLINE") ... (10 1 2 0) ... (10 3 5 0) ... (10 9 4 0) ...) gibi.

<b>assoc</b> fonksiyonu rastladığı ilk datayı bulacağı için diğer vertexlere ulaşabilmek için bir döngüye sokmanız gerekir:
<pre id=code><font face=courier size=2 id=code><font face='Courier New'>
(defun c:vtx (/ data i pt)
(setq data (entget (car (entsel "\nPolyline'ı seç: "))))
(setq i 1)
(while (setq pt (assoc 10 data)) ;<font color=green><i>sıradaki vertex koordinatlarını al, mevcut olduğu sürece işleme devam et</i></font id=green>
(setq data (cdr (member pt data))) ;<font color=green><i><= Kritik satır burası. İşlenen veriden sonra kalanı "data" içinde saklıyoruz</i></font id=green>
(princ (strcat "\n" (rtos i 2 0) ". vertex: ")) ;<font color=green><i>ekrana yaz</i></font id=green>
(princ (cdr pt))
(setq i (1+ i))
)
(princ)
)
</font id='Courier New'></font id=code></pre id=code>



Edited by - Destek/Support on 01/04/2002 09:47:35


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 02 Nis 2002 20:14 

Kayıt: 30 Ara 2001 00:05
Mesajlar: 27
Konum: Turkey
Verdiğiniz bilgiler için çok çok teşekkür ederim...Ama bu polyline ları incelerken dikkatimi çeken birşey var...tamam lwpolyline veri tabanında her koordinatı yazıyor ama polyline da yani 3dpoly de yazmıyor.. Veri tabanında olmayan koordinata nasıl ulaşacağım....???

ehya_bote


Başa Dön
 Profil  
 
 Mesaj Başlığı:
MesajGönderilme zamanı: 03 Nis 2002 14:06 
Site Admin

Kayıt: 07 Oca 2002 13:14
Mesajlar: 1085
Konum: Turkey
Klasik (eski tip) polyline'ların veritabanında yer alış şekilleri LWPOLYLINE'dan farklı: her bir vertex veritabanında ayrı bri nesne olarak yer alıyor, dolayısıyla bunlara ulaşmak için <b>entnext</b> fonksiyonunu kullanmalısınız:

Aşağıdaki fonksiyon her iki tip polyline'ı da işleyebilir durumda:

<pre id=code><font face=courier size=2 id=code><font face='Courier New'>
(defun c:vtx (/ ent i data pt tip)
(setq ent (car (entsel "\nPolyline'ı seç: ")))
(setq tip (cdr (assoc 0 (entget ent))))

(cond ((equal "POLYLINE" tip)
(setq i 1)
(while (not (equal "SEQEND" (cdr (assoc 0 (setq data (entget (setq ent (entnext ent))))))))
(setq pt (assoc 10 data))
(princ (strcat "\n" (rtos i 2 0) ". vertex: "))
(princ (cdr pt))
(setq i (1+ i))
)
)
((equal "LWPOLYLINE" tip)
(setq data (entget ent))
(setq i 1)
(while (setq pt (assoc 10 data))
(setq data (cdr (member pt data)))
(princ (strcat "\n" (rtos i 2 0) ". vertex: "))
(princ (cdr pt))
(setq i (1+ i))
)
)
(T
(alert "Seçilen nesne Polyline değil")
)
)
(princ)
)
</font id='Courier New'></font id=code></pre id=code>


Başa Dön
 Profil  
 
Eskiden itibaren mesajları göster:  Sırala  
Yeni bir başlık gönderCevap gönder 1. sayfa (Toplam 1 sayfa)   [ 4 mesaj ]


Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 12 misafir


Bu foruma yeni başlıklar gönderemezsiniz
Bu forumdaki başlıklara cevap veremezsiniz
Bu forumdaki mesajlarınızı düzenleyemezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu foruma eklentiler gönderemezsiniz

Aranacak:
Geçiş yap:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
610nm Style by Daniel St. Jules of Gamexe.net


Türkçe çeviri: phpBB Türkiye