Alan Objelerinde Bilgi Yazdırma Makrosu (Print Information on Area Objects)

netcad-alan-bilgisi-yazdir-etiket

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

Alan Objelerine Otomatik Bilgi Ekleme: Harita Çizimlerinizi Hızlandırın!

Automatically Add Information to Area Objects: Speed Up Your Mapping Projects!


Bu makro, Netcad yazılımında kapalı çoklu doğrular (poligonlar) üzerinde çeşitli bilgileri otomatik olarak yazdırmak için kullanılır. Kullanıcı, hangi bilginin (Hesap Alanı, Tapu Alanı, GIS Sınıfı, GIS Adı, Tabaka veya Alan Adı) yazdırılacağını seçebilir. Ayrıca yazı boyutu, italik, alt çizgi, arka fon gibi stil seçenekleri ve ondalık hane sayısı gibi özelleştirmeler sunar. Verinin başına veya sonuna özel metinler eklenebilir, böylece harita çizimlerinde profesyonel ve düzenli bir görünüm elde edilir. Harita mühendisleri ve teknik çizim yapanlar için zaman kazandıran bir araçtır.

This macro is designed to automatically print various information on closed polylines (polygons) in Netcad software. Users can choose which information to display (Calculated Area, Title Area, GIS Class, GIS Name, Layer, or Area Name). It offers customization options such as font size, italic, underline, background, and decimal precision. Custom text can be added before or after the data, ensuring a professional and organized appearance in mapping projects. It’s a time-saving tool for surveyors and technical draftsmen.


Nasıl Çalışır (How Does It Work)

Kullanıcı Arayüzü: Makro, bir diyalog penceresi açar ve kullanıcıdan hangi bilginin yazdırılacağını, hangi tabakaya yazılacağını, yazı boyunu, stil seçeneklerini (italik, alt çizgi, arka fon), ondalık hane sayısını ve ek metinleri seçmesini ister.

Seçim Süreci: Kullanıcı, kapalı çoklu doğruları (poligonlar) seçer.

Bilgi Yazdırma: Seçilen poligonların kütle merkezine, belirtilen özelliklere uygun şekilde bilgi yazılır. Örneğin, alan hesaplanabilir veya GIS adı eklenebilir.

Esneklik: Makro, kullanıcının ihtiyaçlarına göre özelleştirilebilir ve farklı tabakalara yazım yapabilir.

Hız ve Doğruluk: Çizimlerinize manuel veri girişi yapmadan hızlı ve hatasız sonuçlar sunar.

  • User Interface: The macro opens a dialog box, prompting the user to select the information to print, the target layer, font size, style options (italic, underline, background), decimal precision, and additional text.
  • Selection Process: The user selects closed polylines (polygons).
  • Information Printing: The specified information is printed at the center of mass of each selected polygon, formatted according to the chosen settings. For example, it can calculate the area or display the GIS name.
  • Flexibility: The macro is highly customizable, allowing printing on different layers.
  • Speed and Accuracy: It delivers fast, error-free results without manual data entry.


Etiket ( Labels )

Netcad Makro, Harita Mühendisliği, Alan Bilgisi, CAD Otomasyon, Harita Akademi, Kapalı Çoklu Doğrular, Poligon Bilgisi, Otomatik Yazdırma, GIS Sınıfı, Tapu Alanı, Hesap Alanı, Yazı Stili, Ondalık Hane, Harita Çizimi, Netcad Yazılım, Harita Otomasyonu, Veri Ekleme, Kütle Merkezi, Tabaka Yönetimi

Netcad Macro, Surveying, Area Information, CAD Automation, Mapping Academy, Closed Polylines, Polygon Information, Automatic Printing, GIS Class, Title Area, Calculated Area, Text Styling, Decimal Precision, Mapping, Technical Drawing, Netcad Software, Mapping Automation, Data Addition, Center of Mass, Layer Management


📝 Netcad NVB Code

VB
SUB Main
DIM ss,o,i,j,oo,p,sel,poly,tabaka,yazi,a,c   ,SAGUL_DLG, secenek
DIM kt() ,t()
dim elif,ruhan,saban,saban_olcek
dim saban1,saban2,saban3,saban4
dim elif1,elif2,elif3,sagul67

With netcad

with nclayermanager
.add 0,4
end with  

set SAGUL_DLG = Netcad.NewBDialog("Alan Objelerinde Bilgi Yazdırma , [Şaban GÜL, Harita Akademi]")

      ' Kullanıcıdan hangi bilginin yazdırılacağını seçmesini ister
      SAGUL_DLG.GetRadio "elif", "Hangi Bilgiyi Yazdırayım ?", "Hesap Alanı|Tapu Alanı|Gıs Sınıfı|Gıs Adı|Tabakası|Alan Adı", 0
      SAGUL_DLG.GetCombo "yaren", "Hangi Tabakaya Yazayım ?", 0,0
           for i = 1 to .numlayers - 1
         SAGUL_DLG.AddCombo .LayerNameOf(i)
     next
      SAGUL_DLG.Getfloat "yaziboy","Yazı boyu kaç olsun ? ",2,2
      SAGUL_DLG.GetCheck "sagulnet1", "Yazı İtalik Olsun", 0
      SAGUL_DLG.GetCheck "sagulnet2", "Yazı Altçizgili Olsun", 0
      SAGUL_DLG.GetCheck "sagulnet3", "Yazı Arka Fon Olsun", 0
      SAGUL_DLG.Getinteger "ondalik","Alanlarda ondalık hane sayısı ? ",2
      SAGUL_DLG.GetString "ekle1","Verinin Başına Ekle","",4
      SAGUL_DLG.GetString "ekle2","Veriye Sonuna Ekle","",4

' www.sabangul.com.tr Web Sayfasından İndirilmiştir
' Şaban GÜL , Harita Mühendisi
' Her Türlü Hata, İstek ve Öneriler İçin
' haritaakademi@gmail.com veya sagulnet@gmail.com
' adresine durumu anlatan bir e-posta gönderiniz.

   if SAGUL_DLG.showmodal then

     saban1=    SAGUL_DLG.ValueByName("elif")   'tür
     saban2=    SAGUL_DLG.ValueByName("yaren")  'tabaka
     saban3=    SAGUL_DLG.ValueByName("yaziboy") 'boyu
     saban3=saban3/1000*.getparam(94)
     dim onda,ekle1,ekle2
     onda=SAGUL_DLG.ValueByName("ondalik")
     ekle1 =SAGUL_DLG.ValueByName("ekle1")
     ekle2 =SAGUL_DLG.ValueByName("ekle2")
     elif1=  SAGUL_DLG.ValueByName("sagulnet1")
     elif2=  SAGUL_DLG.ValueByName("sagulnet2")
     elif3=  SAGUL_DLG.ValueByName("sagulnet3")

      if elif1+elif2+elif3=0 then sagul67=0

                 set SEL = .NewSelectionSet
                 set o = .NewObject
                 set poly=.newpoly

                .setparam beginblock,true
                if SEL.SELECT("Kapalı çoklu doğruları seç, Şaban GÜL, Harita Akademi",array(opline)) then
                 for i = 0 to SEL.NE-1

                   j = SEL.GetSelectedObject(i, o)
                   set poly=.getplineext(o)
                    set c = poly.CenterOfMass
                    if saban1=5 then saban4=o.pname
                    if saban1=0 then saban4= round(o.area,3)
                    if saban1=1 then saban4=round(o.tarea,3)
                    if saban1=2 then saban4=o.cls
                    if saban1=3 then saban4=o.objname
                    if saban1=4 then
                    saban4=o.tabaka
                     with nclayermanager
                    saban4= .layer(saban4).name
                    end with

                    end if
                    if saban1=6 then saban4=o.renk

                    on error resume next
                    saban4= round(saban4,onda)
                     saban4= ekle1 & saban4 &  ekle2
                   '.AddObject (.MakeText (c,saban4, sagul67,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=0 and  elif2=0 and elif3=0 then .AddObject (.MakeText (c,saban4, 0,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=1 and  elif2=0 and elif3=0 then .AddObject (.MakeText (c,saban4, 1,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=0 and  elif2=1 and elif3=0 then .AddObject (.MakeText (c,saban4, 2,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=0 and  elif2=0 and elif3=1 then .AddObject (.MakeText (c,saban4, 4,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=1 and  elif2=1 and elif3=0 then .AddObject (.MakeText (c,saban4, 1+2,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=1 and  elif2=0 and elif3=1 then .AddObject (.MakeText (c,saban4, 1+4,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=0 and  elif2=1 and elif3=1 then .AddObject (.MakeText (c,saban4, 2+4,0, saban3,0,"M",.CreateLayer(saban2,2)))
      if   elif1=1 and  elif2=1 and elif3=1 then .AddObject (.MakeText (c,saban4, 1+2+4,0, saban3,0,"M",.CreateLayer(saban2,2)))

 ' www.sabangul.com.tr Web Sayfasından İndirilmiştir
' Şaban GÜL , Harita Mühendisi
' Her Türlü Hata, İstek ve Öneriler İçin
' haritaakademi@gmail.com veya sagulnet@gmail.com
' adresine durumu anlatan bir e-posta gönderiniz.

                 next
                 .setparam endblock,true
                 .NetcadCommand("REDRAW")
                 set sel = nothing
                 set poly = nothing
                 set o = nothing
             end if

  END if
End With
END SUB
VB

netcad-alan-bilgisi-yazdir-etiket

Yazar

sabangul67@gmail.com

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

Tüm yazıları