Tecviz Miktarının Parsel Üzerine Yazdırılması (Netcad Makro)

Makro Hakkında:

Projenizdeki alanların tecviz miktarının alan objesi üzerine yazdırılmasını sağlar.

  • Makroda Üzerinde Çalıştığımız Gelişmeler:
    • Tecviz parametrelerininde aktarımı sağlanacak
  • Etiketler: Basit düzey makro, Netcad, Makro, Pratik Netcad, Netcad Araçları, Netcad tabaka, netcad seçim, Pratik Netcad, Netcadde nasıl yapılır,netcad menü, netcad araç, nvb, ücretsiz makro, harita makro,

Tecviz ile ilgili diğer makromuz: http://sabangul.com.tr/tecviz-miktarinin-parsel-uzerine-yazdirilmasi-netcad-makro

Uyarılar:

  • Tecviz miktarı hesabında sabit bir ölçek esas alınacağından projenizde farklı ölçeklere ait veri varsa lütfen bunu göz önünde bulundurunuz.
  • Tecviz miktarı yapılaşmış ve yapılaşmamış olarak iki farklı yöntemle hesaplanır. Kullanıcı ekranından lütfen bunu bilinçli seçiniz ve projenizde farklı tecviz tipi varsa gözönünde bulundurunuz.
  • Netcad makrolarında hiçbir metni veya karakteri değiştirmeyiniz. Aksi halde makro işlevsiz hale gelebilir veya hatalı işlev ile karşılaşabilirsiniz.



İndirme Linkleri:

İndirme Linki-1: Google Drive ( Harita Akademi )

Makro Açık Kaynak Kodu:

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

Sub Main

with netcad
 Dim a,b,c,m,alan,o,d,e,poly,s,y
 Dim i, SGL_DLG,tabaka,tabaka2,tabaka3,yaziboy,tecvizx
 Dim Olcek,tapu,hesap,mfark,tecviz,tecviz1,tecviz2,tecdur
 olcek=.getparam(94)

set SGL_DLG = Netcad.NewBDialog("Tecviz Miktarlarının Yazdırılması [Harita Akademi, Şaban GÜL]")
 'SGL_DLG.PutPrompt "----------AŞAĞIDAKİ ALANDAN TECVİZ PARAMETRELERİNİ BELİRLEYİNİZ----------"

SGL_DLG.GetCombo "tabaka", "Hangi Tabakadakiler İçin Uygulansın", "Tüm Tabakalar", 0
 for i =0 to .numlayers - 1
 SGL_DLG.AddCombo .LayerNameOf(i)
 next
 SGL_DLG.Getfloat "sagulnet1","Ölçek Değeri (0 için proje ölçeği esas alınır )",olcek,0
 SGL_DLG.Getradio "sagulnet5","Tecviz Tipi Belirleyiniz","Yapılaşma Yok|Yapılaşma Var" ,0
 SGL_DLG.GETCHECK "sagulnet2","Tapu Alanı Yoksa Hesap Alanı Esas Alınsın",1
 SGL_DLG.PutPrompt " "
 'SGL_DLG.PutPrompt "----------SONUÇLAR İLE İLGİLİ PARAMETRELERİ BELİRLEYİNİZ----------"
 SGL_DLG.GetCombo "tabaka2", "Tecviz Hesabı Sonucu (Tecviz İçinde İse)", "0", 0
 for i =0 to .numlayers - 1
 SGL_DLG.AddCombo .LayerNameOf(i)
 next
 SGL_DLG.GetCombo "tabaka3", "Tecviz Hesabı Sonucu (Tecviz Dışında İse)", "0", 0
 for i =0 to .numlayers - 1
 SGL_DLG.AddCombo .LayerNameOf(i)
 next

SGL_DLG.Getfloat "sagulnet3","Tecvizin Değerinin Yazı Boyu",5,0
 SGL_DLG.GETCHECK "sagulnet4","Tecviz Yazı Boyu proje ölçeği ile çarpılsın",1
 SGL_DLG.GETCHECK "sagulnet6", "Tecviz Miktarının Sağına m² Yazısı Ekle", 1
 SGL_DLG.GETCHECK "sagulnet7", "Tecviz Dışında İse (D) Yazısı Ekle", 1
 SGL_DLG.GETCHECK "sagulnet8", "Tecviz Dışında İse Rengini Kırmızı Yap", 1
 if SGL_DLG.showmodal then
 yaziboy= SGL_DLG.ValueByName("sagulnet3")
 if yaziboy<1 then yaziboy=1
 if SGL_DLG.ValueByName("sagulnet4")=1 then yaziboy= round(yaziboy*olcek/1000,2)



with nclayermanager

if SGL_DLG.ValueByName("tabaka")<>0 then
 tabaka= .layer(SGL_DLG.ValueByName("tabaka")-1).name
 end if
 tabaka2 = .layer(SGL_DLG.ValueByName("tabaka2")).name
 tabaka3 = .layer(SGL_DLG.ValueByName("tabaka3")).name
 end with
 else
 exit sub
 end if





if tabaka="" then
 .setfilter nothing, array(),array(opline)
 else
 .setfilter nothing, array(tabaka),array(opline)
 end if





do
 set o=.getnextobject
 if o is nothing then exit do
 set poly=.getplineext(o)

if SGL_DLG.ValueByName("sagulnet1")<>0 THEN olcek=SGL_DLG.ValueByName("sagulnet1")
 tapu=o.tarea
 hesap=o.area
 if tapu=0 and SGL_DLG.ValueByName("sagulnet2")=1 then tapu=hesap
 mfark=abs(tapu-hesap)

tecviz1=0.0004*olcek*sqr(tapu)+0.0003*tapu
 tecviz2=0.013*sqr(tapu*olcek)+0.0003*tapu

if SGL_DLG.ValueByName("sagulnet5")=0 then
 tecviz=Tecviz1
 else
 tecviz=Tecviz2
 end if

tecviz=round(Tecviz,3)
 tecvizx=tecviz
 if SGL_DLG.ValueByName("sagulnet6")=1 then tecviz = tecviz &"m²"
 if SGL_DLG.ValueByName("sagulnet7")=1 and mfark> tecvizx then tecviz = tecviz &"(D)"

if mfark>tecvizx then
 set y=.MakeText(poly.centerofmass,tecviz, 0,0,yaziboy,0,0,.createlayer(tabaka2,1))
 if SGL_DLG.ValueByName("sagulnet8")=1 then y.renk=Red
 .addobject y

else
 set y=.MakeText(poly.centerofmass,tecviz, 0,0,yaziboy,0,0,.createlayer(tabaka3,1))

.addobject y

end if





loop
 end with
 end sub



 

Yazar: Şaban GÜL

Zonguldak doğumlu, mutlu ve gururlu Harita Mühendisiyim. Bir gün bu piyasa arazi bilecen yiğenim, totali görecen, jalon tutacan, elle kroki çizecen diyen amcalara değil; Drone uçuran, kendi yazılımlarını yapan, yazılım kullanan değil yazılım üreten, fotogrametri bilen Genç Mühendislere kalacak. İşte o zaman herşey farklı olacak. O gün geliyor

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.