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