Home / Netcad Makro / Netcad-Macro-Layer / Kurala Bağlı Tabaka İşlemleri için Otomasyon Makrosu (Rule-Based Layer Operations Automation Macro)

Kurala Bağlı Tabaka İşlemleri için Otomasyon Makrosu (Rule-Based Layer Operations Automation Macro)

Kurala Bağlı Tabaka İşlemleri ile Verimliliği Artırın: Otomasyon Makrosu 🚀


Bu makro, CAD ortamında tabaka (layer) yönetimi için güçlü bir otomasyon sağlar. Kullanıcı dostu bir arayüz üzerinden, tabakalar üzerinde belirli kriterlere bağlı işlemler yapmanıza olanak tanır. Örneğin, tabaka adını değiştirebilir, renklendirebilir, kilitleyebilir, açıp kapatabilir veya yazıcıya gönderme ayarlarını düzenleyebilirsiniz. Esnek yapısıyla, projelerdeki karmaşık tabaka düzenlemelerini hızlı ve hatasız bir şekilde gerçekleştirir. Özellikle büyük ölçekli projelerde zaman tasarrufu sağlar ve manuel işlemleri en aza indirir.


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

Makro, kullanıcıya bir diyalog penceresi sunar ve bu pencere üzerinden kriterler belirlenir. Kullanıcı, tabaka adı, renk, kilit durumu veya yazıcı ayarları gibi çeşitli kriterler seçer. Ardından, bu kriterlere göre tabaka üzerinde yapılmak istenen işlem (örneğin, ad değiştirme, renk değiştirme, kilitleme) tanımlanır. Makro, tüm tabakaları tarar ve belirtilen kriterlere uyan tabakalara seçilen işlemi otomatik olarak uygular. İşlem tamamlandığında, tabaka yönetimi hızlıca tamamlanmış olur.


Etiket ( Labels )

tabaka yönetimi, otomasyon makrosu, CAD verimliliği, kurala bağlı işlemler, proje optimizasyonu


📝 Netcad NVB Code

VB
' Yazan : 
' Tarih : 29.06.2020
' Açıklama : Kurala bağlı tabaka işlemleri için otomasyon sağlar

Sub Main
Dim i
dim tbksay,toptbk
  with Netcad
  dim pencere
  set pencere = netcad.newbdialog ("SAGULCAD Kurala Bağlı Tabaka İşlemleri")
pencere.putprompt "Aşağıdan kriter oluşturunuz"
 

pencere.getcombo "parca1","Bir Kriter Seçiniz","Adı ... ise|Adı ... degilse|Adı ... ile başlarsa|Adı ... ile biterse|Adında  ... varsa|Rengi ... ise|Rengi ... değilse|Açıksa|Kapalıysa|Kilitli ise|Kilitli Değilse|Yazıcı Gönderme Açıksa|Yazıcı Gönderme Kapalıysa",0
pencere.getstring "parca2","Kriter Değeri","",20
pencere.getcombo "parca3","Bir Kriter Seçiniz","Tabaka Adını ... Yap|Adının Başına ... Ekle|Adının Sonuna ... Ekle|Adında Bul Değiştir Yap|Rengi Değiştir|Tabakayı Aç|Tabakayı Kapat|Kilidini Aç|Kilidini Kapat|Yazıcıya Gönder|Yazıcıya Gönderme",0
pencere.getstring "parca4","Sonuç Değeri","",20


toptbk = .numlayers - 1

dim p1,p2,p3,p4
dim parca1,parca2,parca3,parca4



if pencere.showmodal then

p1 = pencere.valuebyname("parca1")
p2 = pencere.valuebyname("parca2")
p3 = pencere.valuebyname("parca3")
p4 = pencere.valuebyname("parca4")

else
exit sub
end if



 
with nclayermanager
For tbksay = 0 To toptbk
                   
'////////////////////////// durum -1 başlangıç
            if p1=0 and .layer(tbksay).name=p2 then
           
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -1 bitiş



'////////////////////////// durum -2 başlangıç
            if p1=1 and .layer(tbksay).name<>p2 then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -2 bitiş


'////////////////////////// durum -3 başlangıç
            if p1=2 and  mid(.layer(tbksay).name,1,len(p2)) = p2  then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -3 bitiş



'////////////////////////// durum -4 başlangıç
            if p1=3 and mid(.layer(tbksay).name,len(.layer(tbksay).name)-len(p2)+1,len(.layer(tbksay).name))= p2 and len(p1)>len(p2) then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -4 bitiş



'////////////////////////// durum -5 başlangıç
            if p1=4 and instr(.layer(tbksay).name,p2) >0  then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -5 bitiş




'////////////////////////// durum -6 başlangıç
            if p1=5 and .layer(tbksay).color = p2  then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -6 bitiş





'////////////////////////// durum -7 başlangıç
            if p1=6 and .layer(tbksay).color <> p2 then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -7 bitiş



'////////////////////////// durum -8 başlangıç
            if p1=7 and .layer(tbksay).IsOpen =True then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -8 bitiş



'////////////////////////// durum -9 başlangıç
            if p1=8 and .layer(tbksay).IsOpen =False then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -9 bitiş


 



'////////////////////////// durum -10 başlangıç
            if p1=9 and .layer(tbksay).LockActive= True then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -10 bitiş



'////////////////////////// durum -11 başlangıç
            if p1=10 and .layer(tbksay).LockActive= False then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -11 bitiş

 

'////////////////////////// durum -12 başlangıç
            if p1=11 and .layer(tbksay).PrintableActive= True then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -12 bitiş



'////////////////////////// durum -13 başlangıç
            if p1=12 and .layer(tbksay).PrintableActive= False then
                If p3=0 Then .layer(tbksay).name = p4
                If p3=1 Then .layer(tbksay).name = p4  & .layer(tbksay).name
                If p3=2 Then .layer(tbksay).name = .layer(tbksay).name & p4
                If p3=3 Then .layer(tbksay).name = Replace(.layer(tbksay).name,ilk,son)
                If p3=4 Then .layer(tbksay).color = p4
                If p3=5 Then netcad.openlayer(tbksay)
                If p3=6 Then netcad.closelayer(tbksay)
                If p3=7 Then .layer(tbksay).LockActive=True
                If p3=8 Then .layer(tbksay).LockActive=False
                If p3=9 Then .layer(tbksay).PrintableActive=True
                If p3=10 Then .layer(tbksay).PrintableActive=False
            End if
'////////////////////////// durum -13 bitiş
Next

end with




  end with
End Sub
VB

netcad-kurala-bagli-tabaka-islemleri

⚠️ 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.
Etiketlendi: