04.12.2021 19:57    

ProhibiT
Merhaba arkadaşlar,

Sitemizin Download bölümünde linkinde 2011 yılında paylaştığımız PLgn Lisp'ini güncelleme gereği görüldü.

Güncellemenin ana gerekçesi, LWPOLYLINE (2D Polyline) nesnelerinin yanısıra POLYLINE (3D Polyline) nesnelerinin de seçilip, işleme alınmasıdır. Hazır böyle bir güncelleme yapılmışken, hata yakalama fonksiyonu da güncellendi. Bu iki değişikliğin yanısıra, kendi -.dcL dosyasını oluşturması prensibinden vazgeçilmedi. Bu özellikten dolayı kurnazlık yapmak isteyen arkadaşlarımızla, gerçekten bilmedikleri için AutoCAD klasörlerinde yeterli erişim yetkisi alamayan arkadaşların kullanabilmeleri için, PLgn.vLx dosyası da arşive eklendi.

Neden POLYLINE (3D Polyline) nesnelerinin eklenmesine gerek görüldü?
Eskiden (AutoCAD'in hangi sürümüne kadar hatırlamıyorum) bir tek Polyline nesnesi vardı. Kullanıcılardan gelen istekler ve ihtiyaçlar doğrultusunda yeni bir nesne (object) türü olan LWPOLYLINE hayata geçirildi. Kullanıcı açısından çok sıkıntı yaratmayan bu geçiş, programatik açıdan belli oranda da olsa bir kargaşaya neden oldu. POLYLINE nesnelerinde kendisi ana nesne (main object) ve devamında da alt nesne (sub objects) olarak köşe noktaları (VERTEX) ler yer alıyordu. VERTEX nesnelerinde her köşe (nokta) x, y ve z olmak üzere 3 koordinatla tanımlıydı. Polyline tanımı SEQEND ile sonlanıyordu. LWPOLYLINE tanımında ise alt nesneler yoktur. VERTEX'ler object tanımı içinde, Coordinates başlığı altında (ilişilendirilmiş listede assoc 10 tanımlı olarak) yer alır. LWPOLYLINE nesnelerinin koordinat listesi x ve y koordinatlarından oluşur, z koordinatı ise her noktada sabittir ve Elevation değerine eşittir. Bu nedenle, başlangıçta böyle bir tanımlama olmamakla birlikte, zaman için 3DPolyline ve 2Dpolyline şeklinde tanımlamlar yaygınlaştı ve yerleşti.

AutoCAD uyumlu, (dwg veya dxf formatında) dosya ürettiğini belirten pek çok yazılım (özellikle de Harita yazılımları) eski Polyline tanımında takıldılar. Z koordinatının hiç kullanılmadığı (yada anlamı olmayan) polyline nesnelerini bile POLYLINE olarak tanımlamaya devam ettiler. Bunun altında gizli bir 2 Boyut, 2.5 Boyut ve 3 Boyut kompleksinin yattığı da söylenebilir.

Sonuç olarak, ele aldığı konu itibarıyla düzlemde çalışan PLgn fonksiyonu bu tür programlardan geçen nesneleri de (z koordinatını gözardı ederek) işleyebilmesi için düzenlendi. Aslına bakılırsa, poligon hesabında, arazide alınan nokta koordinatlarına göre hesaplanan uzunluklar da yatay düzlemdeki izdüşüm uzunluklarıdır.

PLgn fonksiyonunun açıklama videosunu görmek için tıklayınız.
PLgn.Lsp ve PLgn.vLx dosyaları sitemizin download bölümünden veya yukarıda verilen linkten indirilebilir.

Selam ve saygılarla herkese kolaylıklar dilerim.

ProhibiT (04.12.2021 20:16 GMT)

06.12.2021 07:36    

recep_xyz
Hocam gercekten açıklayıcı bilgilendirici olmuş.
Doğru söylüyorsunuz Biz Haritacılar mesafeleri (x,y) düzleminde çalışıp Z düzlemi giydirme olarak kullanmak zorunda kalıyoruz. Yani tabirle 2.5D çalışıyoruz.Yatay mesafe olarak Bu bir bakıma kolaylık sağlıyor. 3D ise eğik mesafe dikkate alıyor. Genellikle proğramlar arası dönüşümlerinde bazı aksaklıklarda yaşıyorduk.Burada sizin emeğiniz için teşekkürler. Bir proğramı tasarlayıp yapmak tan daha zordur( yapılan proğramı kendiniz yapsanız bile) tekrardan inceleyip algoritmasını çözüp bunun işleyişini başka bir algoritmayla değiştirmek baya zordur.
Siz statik değil araştırmacı Dinamik bir eğitimci oluşunuzdan daha iyisini nasıl yaparım değişinizden kaynaklı olduğunu sanıyorum.

08.12.2021 08:23    

yoruk1919
çok güzel bir çalışma, emeğine sağlık.

> 1 <
Copyright © 2004-2022 SQL: 1.125 saniye - Sorgu: 49 - Ortalama: 0.02296 saniye