X\’li Nokta Bulma ve Daire Ekleme Makrosu (X-Point Detection and Circle Addition Macro)

netcada-xli-nokta-bulma

sabangul67@gmail.com
Mayıs 17, 20254 dk okuma2 görüntülenme

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

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

netcada-xli-nokta-bulma

Yazar

sabangul67@gmail.com

Bu yazarın yayınladığı diğer içerikleri inceleyebilirsiniz.

Tüm yazıları