🔍 Alan Farkına Göre Otomatik Tabakalama: Parsel Analizi ve Tabaka Yönetimi için Pratik Çözüm
🔍 Automatic Layering by Area Difference: A Practical Solution for Parcel Analysis and Layer Management
Bu makro, Netcad ortamında parsel objelerinin tapu alanı ile hesap alanı arasındaki farkı analiz ederek, belirlenen yüzde oranına göre otomatik tabakalama yapar. Kullanıcı, yüzdelik fark oranını ve hedef tabaka adını belirtebilir. Ayrıca, tapu alanı sıfır olan objeler için özel işlemler tanımlanabilir. Makro, parsellerin alan farklarını hesaplar, bu farkın yüzde oranını kontrol eder ve uygun objeleri belirtilen tabakaya taşır. Kullanıcı dostu bir arayüzle, işlem tamamlandığında bilgilendirici bir mesaj gösterir. Özellikle kadastro projelerinde, alan farkı analizi ve tabaka yönetimi için zaman kazandıran bir araçtır. 🚀
This macro, designed for the Netcad environment, analyzes the difference between the title deed area and the calculated area of parcel objects, performing automatic layering based on a specified percentage threshold. Users can define the percentage difference and the target layer name. Additionally, special operations can be set for objects with a zero title deed area. The macro calculates the area differences, checks the percentage threshold, and moves qualifying objects to the specified layer. With a user-friendly interface, it displays an informative message upon completion. It’s a time-saving tool for cadastral projects, area difference analysis, and layer management. 🚀
Nasıl Çalışır (How Does It Work)
Makro, Netcad ortamında çalışmak üzere VBScript ile yazılmıştır. İlk olarak, kullanıcıdan bir yüzdelik oran, hedef tabaka adı ve tapu alanı işlem tercihi (örneğin, sıfır tapu alanı için işlem yapma veya belirli bir tabakaya alma) alınır. Bu bilgiler, kullanıcı dostu bir diyalog penceresi üzerinden toplanır. Ardından, seçilen parsel objelerinin tapu alanı (tarea) ve hesap alanı (area) karşılaştırılır. Alan farkının yüzde oranı hesaplanır ve bu oran, kullanıcı tarafından belirlenen eşik değeri aşıyorsa, obje belirtilen tabakaya taşınır. Eğer tapu alanı sıfır ise, kullanıcının seçimine göre ya işlem yapılmaz ya da obje “0_TAYOK” adlı bir tabakaya atanır. İşlem sonunda, bir popup mesajı ile kullanıcıya işlemin tamamlandığı bildirilir. Sesli bildirim özelliği ile de kullanıcıya parselleri seçmesi hatırlatılır. 🛠️
The macro is written in VBScript for the Netcad environment. It starts by collecting a percentage threshold, target layer name, and title deed area processing preference (e.g., skipping or assigning zero title deed areas to a specific layer) from the user via a user-friendly dialog window. Then, it compares the title deed area (tarea) and calculated area (area) of selected parcel objects. The percentage of the area difference is calculated, and if it exceeds the user-defined threshold, the object is moved to the specified layer. If the title deed area is zero, based on the user’s choice, the object is either skipped or assigned to a “0_TAYOK” layer. Upon completion, a popup message informs the user that the process is finished. A voice notification also reminds the user to select parcels. 🛠️
Etiket ( Labels )
alan farkı, otomatik tabakalama, parsel analizi, kadastro makrosu, Netcad makro, tabaka yönetimi
area difference, automatic layering, parcel analysis, cadastral macro, Netcad macro, layer management
📝 Netcad NVB Code
Sub Main
With Netcad
Dim msg, sapi, pencere
Set sapi = createObject("sapi.spvoice")
sapi.Speak "" 'Sesli bildirim başlatılır
'Diyalog penceresi oluşturulur
set pencere = netcad.newbdialog ("Alan Farkı Olan Parselleri Farklı Tabakaya Alma")
pencere.putprompt "Aşağıya giren Yüzde Oran Kadar Tapu ve Hesap Alanı" 'Açıklama
pencere.putprompt "Fark Olan Alan Objelerini Farklı Tabakaya Alır" 'Açıklama
'Kullanıcıdan giriş alınır
pencere.getfloat "Yuzde Oran:","ondalıklı sayı",8,0
pencere.getstring "Tabaka","Tabakası","0_SAGUL_YUZDE",20
pencere.getradio "get","Tapu Alanı İşlemi ","Yoksa İşlem Yapma|İşlem Yapma 0_TAYOK tabakasına al|Tapu Alanı Sıfır Olsun",2
'Diyalog penceresi gösterilir, iptal edilirse çıkış yapılır
if pencere.showmodal then
else
exit sub
end if
sapi.Speak "parsall sechein " 'Sesli uyarı: Parselleri seç
'Kullanıcı girişleri alınır
dim sg1, sg2, sg3
sg1 = pencere.valuebyname("yuzde")
sg2 = pencere.valuebyname("tabaka")
sg3 = pencere.valuebyname("get")
'Yeni tabaka oluşturulur
NCLayerManager.ADD sg2,4
dim alan1, alan2, alan
Dim secimkumesi, obje, i, z
set secimkumesi = .newselectionset
set obje = .newobject
'Parsel objeleri seçilir
if secimkumesi.select("Seçim", array(opline)) then
for i = 0 to secimkumesi.NE-1
z = secimkumesi.getselectedobject(i, obje)
'Alan bilgileri alınır
alan1 = obje.tarea
alan2 = obje.area
'Alan farkı yüzdesi hesaplanır
alan = alan1 / alan2
if alan < 1 then alan = alan2 / alan1
alan = alan - 1
alan = alan * 100
'Yüzde oran kontrolü ve tabakalama
if alan > sg1 and sg3 = 2 then obje.tabaka = .foundlayer(sg2)
'Tapu alanı sıfır kontrolü
if sg3 = 1 and obje.tarea = 0 then
NCLayerManager.ADD "0_TAYOK",5
obje.tabaka = .foundlayer("0_TAYOK")
end if
'Obje güncellenir
.putobject z, obje
Next
secimkumesi.redrawandrewind
End if
End With
'Bilgilendirici mesaj için VBS object oluşturulur
dim strTitle, strMsg
dim wshShell
set wshShell = CreateObject("wscript.shell")
'Mesaj başlığı
strTitle = " İşlem Tamamlandı, www.sagul.net - Şaban GÜL"
'Mesaj içeriği
strMsg = "Tebrikler" & VbCrLf
strMsg = strMsg & "Belirlenen Kritere Uymayanlara İşlem Yapıldı"
'Popup mesaj gösterilir
'wshShell.Popup strMsg,1,strTitle,vbOKOnly+vbInformation
End Sub
VBnetcad-ta-ha-farkina-gore-tabakalandirma
✅ Makroyu kullanmadan önce lütfen aşağıdaki uyarıları dikkatlice okuyunuz:
• Obje sayısı yüksekse işlem uzun sürebilir ve Netcad yazılımı yanıt veremez hale gelebilir.
• Bu nedenle tüm projelerinizi önceden yedeklemeniz önemle tavsiye edilir.
• Makro çalıştıktan sonra işlemi geri almak mümkün olmayabilir.
• Makrolar periyodik olarak güncellenmektedir; sayfamızı takip ederek güncel sürümleri kullanmaya özen gösteriniz.
💾 Makrolar yalnızca Netcad yazılımında çalışır ve .nps formatında sunulur. Bu format düzenlenemez; özelleştirme talepleriniz için bizimle iletişime geçebilirsiniz.
✉️ Görüş, öneri ve hata bildirimleri için: sabangul67@gmail.com
⚙️ Bu makrolar Kadastro, 2B, Orman, Kamulaştırma, Değerleme, CBS, Halihazır Harita, İmar Planı, Etüt-Proje gibi birçok alanda kullanılabilir.
🔐 Makrolar e-posta eki veya sosyal medya üzerinden paylaşılmaz. Talepte bulunmanız durumunda yalnızca e-posta adresinize bilgilendirme yapılır. Makrolar yalnızca internet sitemiz üzerinden paylaşılır.
📥 Makroları indirerek kullanım sorumluluğunu kabul etmiş sayılırsınız. Oluşabilecek tüm sorunlar kullanıcı sorumluluğundadır.