Home / Netcad Makro / Alanlara Otomatik Sembol Ekle (Add Symbols To Areas)

Alanlara Otomatik Sembol Ekle (Add Symbols To Areas)


Makro Bilgileri:

  1. Makro Adı: Alanlara Otomatik Sembol Ekle (Add Symbols To Areas)
  2. Makronun İşlevi:
    • Türkçe: Bu makro, Netcad’de seçilen alan (opline) objelerinin ağırlık merkezine veya her köşesine, kullanıcı tarafından belirtilen tabakaya ve sembol tipiyle (daire, kare, yıldız) otomatik sembol (opoint) objeleri ekler. Kullanıcı, sembol tipini, boyutunu, ekleme konumunu ve alan adını sembollere atama seçeneğini dialogdan belirler. Kadastro işaretleme, imar görselleştirme veya harita düzenleme projelerinde hızlı işaretleme sağlar.
    • ENGLİSH: This macro adds symbol (opoint) objects to the centroids or vertices of selected area (opline) objects in Netcad, on a user-specified layer and with a chosen symbol type (circle, square, star). The user selects the symbol type, size, placement location, and whether to inherit the area’s name via a dialog. It enables fast marking in cadastre, urban planning, or map editing projects.
  3. Makronun Çalışma Şekli:
    • Türkçe:
      1. Netcad projenizi açın ve makroyu çalıştırın.
      2. Dialogda, sembollerin yazılacağı tabaka adını (örn. “SEMBOL_NOKTALARI”) girin.
      3. Sembol ekleme konumunu seçin: Ağırlık Merkezi veya Her Köşe.
      4. Sembol tipini seçin: Daire, Kare veya Yıldız.
      5. Sembol boyutunu (metre, örn. 0.1) girin.
      6. Alan adını sembollere atamak için kutuyu işaretleyin (isteğe bağlı).
      7. “Tamam” butonuna basın.
      8. Ekranda sembol eklenecek alan (opline) objelerini seçin ve seçimi tamamlayın.
      9. Makro, belirtilen konuma sembolleri ekler.
      10. İşlem bittiğinde, eklenen sembol sayısı, konum, sembol tipi, boyut, tabaka ve ad miras durumu gösterilir.
    • ENGLİSH:
      1. Open your Netcad project and run the macro.
      2. In the dialog, enter the layer name for symbols (e.g., “SEMBOL_NOKTALARI”).
      3. Select the symbol placement: Centroid or Every Vertex.
      4. Choose the symbol type: Circle, Square, or Star.
      5. Enter the symbol size (in meters, e.g., 0.1).
      6. Check the box to assign the area’s name to symbols (optional).
      7. Click “OK.”
      8. Select the area (opline) objects on the screen for symbol placement and complete the selection.
      9. The macro adds symbols to the specified locations.
      10. When finished, a message shows the number of symbols added, placement, symbol type, size, layer, and name inheritance status.
  4. Etiketler:
    • Netcad makro, Sembol ekleme, Alan işaretleme, Ağırlık merkezi sembol, Köşe işaretleme, VBScript makro, Netcad otomasyon, Kadastro işaretleme, İmar planı araçları, Şaban GÜL makro

Kullanım Örneği:

Sonuç: Her alanın 4 köşesine yıldız sembolü eklenir (toplam 12 sembol), “SEMBOL_NOKTALARI” tabakasında, alan adları sembollere atanır.

Dialog: Tabaka: “SEMBOL_NOKTALARI”, Konum: Her Köşe, Sembol: Yıldız, Boyut: 0.2 m, Ad Miras: Evet.

3 alan seçiliyor, her biri 4 köşeli.


Dikkat ve Uyarı:

⚠️ Uyarı: Yapay Zeka Destekli Netcad Makrosu ⚙️🤖

Bu sayfada paylaştığım Netcad makroları, tamamen yapay zeka desteğiyle oluşturulmuştur.
📌 Makrolar gerçek projelerde kullanılmadan önce dikkatlice test edilmelidir.

🔍 Neden bu uyarıyı yapıyorum?
Yapay zeka, kod üretiminde oldukça başarılı olsa da;
🧠 Her proje, her sistem ve her kullanıcı senaryosu farklıdır.
Bu nedenle, üretilen makroların doğrudan kullanılması bazı durumlarda beklenmeyen sonuçlara yol açabilir.

💡 Ne yapmalısınız?

  • Makroyu kendi verilerinize göre gözden geçirin. 👁️
  • Gerekirse kod üzerinde düzenleme yapın. 🛠️
  • Yedek almadan uygulama yapmayın. 💾
  • Kodun hangi amaçla yazıldığını ve sınırlarını iyi anlayın. 📘

🛑 Sorumluluk Reddi:
Yapay zeka ile oluşturulan bu içerikler, sadece örnek niteliğindedir. Hiçbir şekilde resmi Netcad destek servisi yerine geçmez. Bu kodları kullanmanızdan doğabilecek herhangi bir veri kaybı veya proje hatasından sorumluluk kabul edilmez.



📝 Netcad NVB Code

VB
' www.sabangul.com Web Sayfasından İndirilmiştir
' Şaban GÜL, Harita Mühendisi
' Her Türlü Hata, İstek ve Öneriler İçin
' sabangul67@gmail.com adresine durumu anlatan bir e-posta gönderiniz.
'
' Amaç: Ekrandan seçilen alan (opline) objelerinin ağırlık merkezine veya her köşesine,
' kullanıcı tarafından belirtilen tabakaya ve sembol tipiyle otomatik olarak sembol
' (opoint) objeleri ekler. Kullanıcı, sembol tipini, boyutunu, ekleme konumunu ve
' alan adını miras alma seçeneğini dialog penceresinden belirler. Kadastro, imar veya
' harita görselleştirme projelerinde işaretleme için kullanılır.

Sub Main
Dim sabangul1, sabangul2, sabangul3, sabangul4, sabangul5, sabangul6
Dim i, j, k, tabakaNo
Dim secimkumesi, obje, sembolObje, koordinatlar
Dim tabakaAdi, konum, sembolTipi, sembolBoyutu, adMiras

With Netcad
    ' Dialog penceresi oluştur
    Set sabangul1 = .NewBDialog("Alanlara Otomatik Sembol Ekleme [Şaban GÜL, sabangul.com]")
    sabangul1.PutPrompt "Seçilen alanlara sembol (nokta) objeleri eklenecektir."
    sabangul1.GetString "tabaka", "Sembollerin Yazılacağı Tabaka Adı:", "SEMBOL_NOKTALARI", 20
    sabangul1.GetRadio "konum", "Sembol Ekleme Konumu:", "Ağırlık Merkezi", 0
    sabangul1.AddRadio "Ağırlık Merkezi"
    sabangul1.AddRadio "Her Köşe"
    sabangul1.GetRadio "sembolTipi", "Sembol Tipi Seçiniz:", "Daire", 0
    sabangul1.AddRadio "Daire"
    sabangul1.AddRadio "Kare"
    sabangul1.AddRadio "Yıldız"
    sabangul1.GetFloat "boyut", "Sembol Boyutu (metre):", 0.1
    sabangul1.GetCheck "adMiras", "Alan Adını Sembollere Ata", 0
    sabangul1.PutPrompt "Boyut pozitif olmalıdır. Tabaka yoksa oluşturulur."

    ' Dialog penceresini göster
    If sabangul1.ShowModal Then
        sabangul2 = sabangul1.ValueByName("tabaka") ' Tabaka adı
        sabangul3 = sabangul1.ValueByName("konum") ' Ekleme konumu
        sabangul4 = sabangul1.ValueByName("sembolTipi") ' Sembol tipi
        sabangul5 = sabangul1.ValueByName("boyut") ' Sembol boyutu
        sabangul6 = sabangul1.ValueByName("adMiras") ' Ad miras alma
        ' Boyut kontrolü
        If sabangul5 <= 0 Then
            MsgBox "Sembol boyutu pozitif bir değer olmalıdır!", 48, "Şaban GÜL, sabangul.com"
            Exit Sub
        End If
    Else
        Exit Sub
    End If

    ' Tabaka adı boşsa varsayılan değer
    If sabangul2 = "" Then sabangul2 = "SEMBOL_NOKTALARI"
    tabakaAdi = sabangul2

    ' Tabakayı bul veya oluştur
    tabakaNo = .FoundLayer(tabakaAdi)
    If tabakaNo = -1 Then
        tabakaNo = .AddLayer(tabakaAdi) ' Yeni tabaka oluştur
        If tabakaNo = -1 Then
            MsgBox "Tabaka oluşturulamadı! İşlem iptal edildi.", 48, "Şaban GÜL, sabangul.com"
            Exit Sub
        End If
    End If

    ' Seçim kümesi ve objeler oluştur
    Set secimkumesi = .NewSelectionSet
    Set obje = .NewObject
    Set sembolObje = .NewObject

    ' Kullanıcıdan alan objelerini seçmesini iste
    If secimkumesi.Select("Sembol Eklenecek Alan Objelerini Seçiniz...", Array(opline)) Then
        sabangul6_count = 0 ' Eklenen sembol sayacı
        For i = 0 To secimkumesi.NE - 1
            j = secimkumesi.GetSelectedObject(i, obje)
            ' Sembol objesi temel ayarları
            sembolObje.type = opoint ' Nokta objesi tipi
            sembolObje.tabaka = tabakaNo ' Belirtilen tabaka
            If sabangul6 = 1 Then
                sembolObje.pname = obje.pname ' Alan adını miras al
            Else
                sembolObje.pname = "" ' Ad boş
            End If
            ' Sembol tipini ayarla
            Select Case sabangul4
                Case "Daire"
                    sembolObje.symbol = 1 ' Daire sembolü
                Case "Kare"
                    sembolObje.symbol = 2 ' Kare sembolü
                Case "Yıldız"
                    sembolObje.symbol = 3 ' Yıldız sembolü
            End Select
            sembolObje.size = sabangul5 ' Sembol boyutu

            If sabangul3 = "Ağırlık Merkezi" Then
                ' Ağırlık merkezine sembol ekle
                Set merkez = obje.Centroid
                sembolObje.x = merkez.x
                sembolObje.y = merkez.y
                .AddObject sembolObje ' Sembolü ekle
                sabangul6_count = sabangul6_count + 1
            Else
                ' Her köşeye sembol ekle
                Set koordinatlar = obje.points ' Alanın köşe koordinatları
                For k = 0 To koordinatlar.Count - 1
                    sembolObje.x = koordinatlar.Item(k).x
                    sembolObje.y = koordinatlar.Item(k).y
                    .AddObject sembolObje ' Sembolü ekle
                    sabangul6_count = sabangul6_count + 1
                Next
            End If
        Next
        secimkumesi.RedrawAndRewind ' Ekranı yenile
        MsgBox sabangul6_count & " adet sembol başarıyla eklendi." & vbCrLf & _
               "Konum: " & sabangul3 & vbCrLf & _
               "Sembol Tipi: " & sabangul4 & vbCrLf & _
               "Boyut: " & sabangul5 & " m" & vbCrLf & _
               "Tabaka: " & tabakaAdi & vbCrLf & _
               "Ad Miras: " & IIf(sabangul6 = 1, "Evet", "Hayır"), 64, "Şaban GÜL, sabangul.com"
    Else
        MsgBox "Hiçbir alan objesi seçilmedi!", 48, "Şaban GÜL, sabangul.com"
    End If

    ' Belleği temizle
    Set secimkumesi = Nothing
    Set obje = Nothing
    Set sembolObje = Nothing
    Set merkez = Nothing
    Set koordinatlar = Nothing
    Set sabangul1 = Nothing
End With
End Sub
VB

⚠️ Dikkat! Netcad Makrosu Kullanımı Hakkında Bilgilendirme

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.