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

netcad-kurala-bagli-tabaka-islemleri

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

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

Boost Efficiency with Rule-Based Layer Operations: Automation Macro 🚀


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.

This macro offers powerful automation for layer management in a CAD environment. Through a user-friendly interface, it enables rule-based operations on layers. For instance, you can rename layers, change their colors, lock or unlock them, open or close them, or adjust their print settings. Its flexible structure allows for quick and error-free layer management in complex projects, saving time and minimizing manual tasks, especially in large-scale projects.


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.

The macro presents a dialog window where users define criteria. Users select conditions such as layer name, color, lock status, or print settings. Then, they specify the desired action (e.g., renaming, changing color, locking). The macro scans all layers and automatically applies the chosen action to layers matching the criteria. Once completed, layer management is efficiently finalized.


Etiket ( Labels )

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

layer management, automation macro, CAD efficiency, rule-based operations, project optimization


📝 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

Yazar

sabangul67@gmail.com

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

Tüm yazıları