X’li Nokta Bulma ile Otomatik Daire Ekleme: Harita Analizlerinde Verimlilik Makrosu 🌟
X-Point Detection with Automatic Circle Addition: Efficiency Macro for Map Analysis 🌟
Bu makro, Netcad ortamında çoklu doğru (polyline) objelerinin köşe noktalarını tarar ve bu noktalarda “X’li nokta” (belirtilen koordinatlarda mevcut nokta) olup olmadığını kontrol eder. Eğer köşe noktasında nokta bulunmazsa, kullanıcı tanımlı parametrelerle (örneğin 2 birim yarıçaplı daire) yeni bir obje ekler. X’li nokta bulma işlemi, özellikle harita düzenleme, koordinat analizi ve otomatik işaretleme süreçlerinde kullanılır. Makro, tampon mesafe kontrolü yaparak eksik noktaları tespit eder ve projelerde hata riskini azaltarak zaman kazandırır. 📍
This macro scans the vertices of polyline objects in the Netcad environment to detect “X-points” (existing points at specified coordinates). If no point is found at a vertex, it adds a new object (e.g., a circle with a 2-unit radius) based on user-defined parameters. The X-point detection process is ideal for map editing, coordinate analysis, and automated marking. By checking buffer distances, it identifies missing points, reducing errors and saving time in projects. 📍
Nasıl Çalışır (How Does It Work)
Makro, Netcad’de bir seçim kümesi oluşturarak başlar ve seçilen çoklu doğru objelerini analiz eder. Her bir doğrunun köşe noktalarının x ve y koordinatlarını alır ve bu koordinatlarda bir nokta olup olmadığını kontrol eder. Nokta bulunmazsa, kullanıcı ayarlarına göre bir daire, nokta veya yazı ekler. Varsayılan olarak 2 birim yarıçaplı daireler eklenir, ancak tabaka, ondalık hassasiyet ve obje türü gibi parametreler özelleştirilebilir. İşlem sonunda, yeni objeler Netcad ekranına çizilir ve seçim kümesi güncellenir. Bu makro, X’li nokta bulma işlemini otomatikleştirerek büyük veri setlerinde manuel kontrolleri ortadan kaldırır. 🔍
The macro begins by creating a selection set in Netcad and analyzing selected polyline objects. It retrieves the x and y coordinates of each vertex and checks for existing points. If no point is found, it adds a circle, point, or text based on user settings. By default, it adds circles with a 2-unit radius, but parameters like layer, decimal precision, and object type are customizable. At the end, new objects are drawn on the Netcad screen, and the selection set is updated. This macro automates X-point detection, eliminating manual checks in large datasets. 🔍
Etiket ( Labels )
XliNoktaBulma, NetcadMakro, OtomatikDaireEkleme, ÇokluDoğruAnalizi, HaritaDüzenleme, KoordinatKontrolü, NoktaTespiti, TamponMesafe, VeriAnalizi, OtomasyonAracı, HaritaOtomasyonu, NoktaEksikliğiTespiti, NetcadOtomasyon, Haritacılık, KoordinatBazlıAnaliz
XPointDetection, NetcadMacro, AutomaticCircleAddition, PolylineAnalysis, MapEditing, CoordinateCheck, PointDetection, BufferDistance, DataAnalysis, AutomationTool, MapAutomation, MissingPointDetection, NetcadAutomation, Cartography, CoordinateBasedAnalysis
📝 Netcad NVB Code
'Yazan
'Tarih 1.02.2020 13:01:11
'Aciklama
Sub Main()
Dim secimkumesi,obje,i,z
dim k
dim kory,korx
dim sonuc
dim coklu2
dim obj
with Netcad
dim secimne,yaricap,tabaka,ondalik
'Seçim türü ve parametreler tanımlanıyor
secimne ="daire"
yaricap=2
tabaka=0
ondalik=2
yazdirx ="X"
tabaka2=1
oznitelik="xli nokta içerir"
set secimkumesi = .newselectionset
set obje=.newobject
if secimkumesi.select("Seçim",array(opline)) then
for i=0 to secimkumesi.NE-1
z=secimkumesi.getselectedobject(i,obje)
Set coklu2 = obje.getObjectAsPline()
'Çokludoğru olduğunu işlemci de bilsin..
For k = 0 to coklu2.num - 1
kory = coklu2.cor(k).y
korx = coklu2.cor(k).x
.SetFilter nothing, array(), array(opoint)
sonuc=0
do
set obj=.getnextobject
if obj is nothing then exit do
if round(obj.p1.y,ondalik) =round(kory,ondalik) and round(obj.p1.x,ondalik) =round(korx,ondalik) then sonuc=1
loop
if sonuc=0 then
set c=.NewC(0,0,0)
c.y=kory
c.x=korx
if secimne="yazi" then set tx=.MakeText(c,yazdirx,0,0,1,0,"M",tabaka)
if secimne="nokta" then set tx=.makepoint(c,yazdirx,"sagul.net",tabaka)
if secimne="daire" then set tx=.MakeCircle (c, yaricap, tabaka,0, 3)
.addobject(tx)
end if
.ResetFilter
Next
.putobject z,obje
Next
secimkumesi.redrawandrewind
End if
end with
End Sub
VBnetcada-xli-nokta-bulma
✅ 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.