SolidWorks Toplu İşlem Makroları: Yüzlerce Dosya Tek Seferde
Bir klasördeki tüm parçalardan STEP çıkarmak, özel özellikleri toplu doldurmak, yüzlerce resmi PDF'e basmak. Toplu makro nerede patlar, nasıl güvenli olur?
Bu Yazıda
Toplu işlem, makronun en çok kazandırdığı yer. Sebebi basit aritmetik: bir işi bir kez otomatikleştirirsiniz, kazanç dosya sayısıyla çarpılır. 200 dosyada parça başına iki dakika kazandıran bir makro, tek çalıştırmada altı buçuk saat kazandırır.
Ama toplu işlem aynı zamanda makronun en çok patladığı yer. Tek dosyada mükemmel çalışan bir makro, 200 dosyada üçüncüsünde takılıp kalır ve siz bilgisayarın başında bekler durursunuz.
Bu yazıda toplu işlem makrolarının nasıl kurulacağını, nerede kırıldığını ve nasıl güvenli hale getirileceğini konuşacağız. Kod yok — mantığı ve tuzakları anlatıyorum, uyguladığınızda hangi kararı vereceğinizi bilesiniz diye.
Çoğu insanın kafasında toplu işlem şöyle: "klasörü seç, düğmeye bas, bitsin." Gerçekte akış beş adımdan oluşuyor ve her adımın kendi tuzağı var.
Birinci adım: dosyaları bulmak. Bir klasördeki dosyaları listelemek kolay. İşin zor kısmı, alt klasörlere inip inmeyeceğinize karar vermek ve doğru dosya türünü seçmek. Bir klasörde parça, montaj ve teknik resim bir aradaysa, hepsine aynı işlemi uygulamak sonucu bozar.
İkinci adım: dosyayı açmak. Burada ilk gerçek tuzak var. SolidWorks bir dosyayı açarken uyarı penceresi çıkarabilir: "bu dosya eski bir sürümde kaydedilmiş", "referans bulunamadı", "salt okunur açılıyor". Bu pencerelerden biri açıldığı anda makronuz cevap bekler ve orada donar.
Üçüncü adım: işlemi yapmak. Asıl iş burada. Ama dikkat: her dosya beklediğiniz yapıda olmayabilir. Aradığınız özellik yoksa, konfigürasyon farklıysa, malzeme atanmamışsa makronun ne yapacağına karar vermiş olmanız gerekir.
Dördüncü adım: kaydetmek veya kapatmak. Değişiklik yaptıysanız kaydedeceksiniz; yapmadıysanız kaydetmeden kapatacaksınız. Bu kararı yanlış vermek, 200 dosyanın değiştirilme tarihini boş yere değiştirir ve versiyonlama sisteminizi karıştırır.
Beşinci adım: rapor etmek. En çok atlanan adım ve en önemlisi. Birazdan ayrıntılı konuşacağız.
Toplu makroların bir numaralı problemi, modal pencereler. SolidWorks bir uyarı gösterdiğinde makro duraklar ve birinin "Tamam" demesini bekler. Bir gecede çalışsın diye başlattığınız makro, sabah geldiğinizde 3. dosyada bir uyarı penceresiyle sizi bekliyor olur.
Çözüm iki parçalı:
Uyarıları sessize alın. SolidWorks'ün bunun için ayarları var: dosya açma sırasında sessiz mod, kaydetme sırasında sessiz mod ve genel kullanıcı uyarısı bastırma. Makronun başında bunları açar, sonunda geri kapatırsınız. Sonunda kapatmayı unutursanız SolidWorks'ü kapatana kadar hiç uyarı görmezsiniz — bu da başlı başına bir tuzak.
Ama sessizliği kayda dönüştürün. Bastırdığınız her uyarı, aslında size bir şey söylüyordu. Onu görmezden gelmek yerine kaydedin: hangi dosyada hangi uyarı çıktı? Makro bittiğinde bu liste elinizde olsun.
Sessiz mod, sessiz hataya dönüşmemeli. Bastırdığınız her uyarının yerine bir kayıt satırı koyun; yoksa toplu işlem kara kutuya döner.
Bir toplu makro çalıştıktan sonra tek bir soruya cevap verebilmelisiniz: ne oldu?
Bunun için makronun sonunda bir metin dosyası üretmesi yeter. İçinde şunlar olsun:
| Alan | Neden |
|---|---|
| Tarih ve saat | Hangi çalıştırma olduğunu bilmek için |
| İşlenen dosya sayısı | Beklediğiniz sayı mı |
| Atlanan dosyalar ve sebebi | Asıl değerli bilgi |
| Uyarı çıkan dosyalar | Sonradan bakılacak liste |
| Toplam süre | Bir dahaki sefere ne kadar süreceğini kestirmek |
Bu rapor olmadan toplu makro, "umarım çalışmıştır" demekten ibaret. Raporla birlikte, ne olduğunu bilen bir araç haline geliyor.
Pratik bir ipucu: raporu işlem yapılan klasöre değil, ayrı bir günlük klasörüne yazın ve dosya adına tarih koyun. Böylece eski çalıştırmaların kaydı da elinizde kalır — bir sorun çıktığında "geçen hafta çalıştırdığımızda da böyle miydi" sorusuna cevap verebilirsiniz.
İkinci büyük tasarım kararı bu. Makro 47. dosyada beklenmedik bir durumla karşılaştığında ne yapmalı?
Yanlış cevap: durmak. 47. dosya bozuksa, kalan 153 dosyanın da işlenmemesi için bir sebep yok.
Doğru cevap: o dosyayı atlamak, sebebi rapora yazmak ve devam etmek. Bunun için döngünün her adımının kendi hata yakalamasına sahip olması gerekiyor. Yani hata yönetimi döngünün dışında değil, içinde olmalı.
Bu ayrım kulağa teknik geliyor ama sonucu çok somut: hata yönetimi döngünün dışındaysa makro ilk problemde durur; içindeyse tüm dosyaları dener ve size sorunlu olanların listesini verir.
Toplu işlemler iki gruba ayrılır ve bu ayrım çok önemli:
Okuyan işlemler. Dosyadan bilgi çıkarır, dışa aktarır, rapor üretir. STEP çıkarma, PDF basma, özellik listeleme. Bunlar kaynak dosyaya dokunmaz — güvenlidir, yanlış giderse çıktıyı silip yeniden çalıştırırsınız.
Yazan işlemler. Dosyayı değiştirir ve kaydeder. Özel özellik doldurma, malzeme atama, global değişken güncelleme. Bunlar geri alınamaz.
İkinci gruba giren her makroyu çalıştırmadan önce üç kuralı uygulayın:
- Önce yedek alın. Klasörün kopyası, sürüm kontrol sistemi, PDM — hangisi varsa. "Sadece bir özellik dolduracağım" diyerek atlanan yedek, en pahalı derstir.
- Önce beş dosyada deneyin. Tam klasörü çalıştırmadan önce küçük bir örneklem üzerinde test edin ve sonucu gözle kontrol edin.
- Kuru çalıştırma (dry run) yapın. Makronuza bir "sadece rapor et, değiştirme" modu ekleyin. Ne yapacağını önce görün, sonra gerçekten yaptırın.
Üçüncü madde biraz fazladan iş gibi görünür ama toplu işlemlerde en çok işe yarayan alışkanlık odur. Bir kez yazarsınız, her toplu makroda kullanırsınız.
SolidWorks'ün kendi Görev Zamanlayıcı (Task Scheduler) aracı var ve toplu dönüştürme, toplu yazdırma gibi işleri yapabiliyor. Ne zaman onu, ne zaman makro yazmayı seçmeli?
| Durum | Task Scheduler | Makro |
|---|---|---|
| Standart dönüştürme (PDF, DXF) | ✔ Hazır, kod yok | Gereksiz emek |
| Firma kuralına göre adlandırma | Sınırlı | ✔ Tam kontrol |
| Koşullu işlem ("sadece şunlar") | ✘ | ✔ |
| Rapor ve günlük | Sınırlı | ✔ İstediğiniz gibi |
| Gece çalıştırma | ✔ Zamanlanabilir | Ek kurulum gerekir |
| ERP'ye veri üretme | ✘ | ✔ |
Kaba kural: iş standartsa Task Scheduler, iş firmanıza özgüyse makro. Ve zaten çoğu ekipte gerçek ihtiyaç ikinci gruba giriyor — çünkü kazandıran şey, tam olarak sizin sürecinize uyan otomasyon.
200 dosyalık bir işlem yarım saat de sürebilir, dört saat de. Farkı yaratan üç şey var:
Ekran güncellemesi. Makro çalışırken her dosyayı ekrana çizdirmek ciddi zaman yiyor. Toplu işlemlerde ekran güncellemesini kapatmak tek başına belirgin hızlanma sağlar.
Gereksiz yeniden kurma. Model üzerinde birden fazla değişiklik yapıyorsanız, her değişiklikten sonra değil hepsi bittikten sonra bir kez yeniden kurun.
Hafif açma. Bazı işlemler için dosyayı tam olarak açmanız gerekmez — SolidWorks, belgeyi görsel arayüz olmadan ya da hafif modda açmanıza izin veriyor. Sadece özellik okuyacaksanız bu, süreyi ciddi biçimde kısaltır.
Bu üçünü birlikte uyguladığınızda aynı işlemin birkaç kat hızlandığını görürsünüz. Ölçmeyi ihmal etmeyin: nasıl dürüst ölçüm yapılacağını otomasyon kazancını ölçmek yazısında anlattım.
Toplu makrolar hızla büyür. Başta "klasördeki parçalardan STEP al" diye başlarsınız, altı ay sonra elinizde şu olur: farklı ürün ailelerine farklı kurallar uygulayan, birden fazla çıktı formatı üreten, ERP'ye dosya yazan ve hata durumunda e-posta atan bir makro.
Bu noktada makro artık makro değil, bakımı zor bir uygulamadır. Üç işaret size bunu söyler:
- Makro dosyanız birkaç yüz satırı geçmiştir ve içinde ne olduğunu hatırlamıyorsunuzdur.
- Bir değişiklik yaptığınızda başka bir yerin bozulmasından korkuyorsunuzdur.
- Makroyu ekipte birden fazla kişi kullanıyordur ve herkeste farklı sürüm vardır.
Üçünden ikisi varsa artık eklenti (add-in) tarafına geçme vakti gelmiştir. Aradaki farkı ve geçiş kararını makro, API ve add-in arasındaki fark yazısında ayrıntılı ele aldım.
SolidWorks'te bir klasördeki tüm dosyalara toplu işlem nasıl yapılır? Makro klasördeki dosyaları listeler, her birini sırayla açar, işlemi uygular ve kapatır. Kritik nokta, işlem başında SolidWorks'ün kullanıcı uyarılarını sessiz moda almak ve döngünün her adımına kendi hata yakalamasını koymaktır — böylece tek bozuk dosya kalan dosyaların işlenmesini engellemez.
Toplu işlem makrom bir pencerede takılıp kalıyor, ne yapmalıyım? Sebep, SolidWorks'ün dosya açarken veya kaydederken gösterdiği modal uyarı penceresidir. Makronun başında sessiz modu açın ve sonunda geri kapatın. Bastırdığınız uyarıları rapor dosyasına yazmayı ihmal etmeyin.
SolidWorks Task Scheduler mı yoksa makro mu kullanmalıyım? İş standart bir dönüştürmeyse (toplu PDF, toplu DXF) Task Scheduler yeterlidir ve kod gerektirmez. Firmanıza özgü adlandırma, koşullu işlem, raporlama veya ERP'ye veri üretimi gerekiyorsa makro yazmak gerekir.
Toplu işlem öncesi yedek almak şart mı? Dosyayı değiştiren her toplu işlem için evet. Okuma amaçlı işlemler (STEP, PDF, rapor üretimi) kaynak dosyaya dokunmadığı için güvenlidir; yazan işlemler geri alınamaz, bu yüzden önce yedek, sonra küçük örneklemde test, ardından tam çalıştırma sırası izlenmelidir.
Toplu makro neden çok yavaş çalışıyor? En yaygın üç sebep: ekran güncellemesinin açık kalması, her değişiklikten sonra modelin yeniden kurulması ve dosyaların gereksiz yere tam modda açılması. Sadece özellik okuyacaksanız hafif modda açmak süreyi belirgin biçimde kısaltır.
Toplu işlem sonunda hangi dosyaların atlandığını nasıl bilirim? Makronun sonunda bir rapor dosyası üretmesini sağlayın: işlenen dosya sayısı, atlanan dosyalar ve sebepleri, uyarı çıkan dosyalar ve toplam süre. Rapor olmadan toplu işlem kara kutudur.
Toplu işlem makrosu yazmak, tek dosyalık makro yazmaktan farklı bir iştir. Kod aynı olabilir ama sorumluluk değişir: artık gözünüzün önünde olmayan yüzlerce dosyaya dokunuyorsunuz.
Üç kural her şeyi çözer: uyarıları sessize al ama kaydet, döngü tek bir bozuk dosyada durmasın, sonunda rapor üret. Bu üçü olmadan yazılmış bir toplu makro, çalıştığında bile ne yaptığını bilmediğiniz bir araçtır.