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
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
VBnetcad-alan-bilgisi-yazdir-etiket
✅ 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.