Makro, API ve Eklenti — Baştan Sona Rehber
Makro mu, API mi, add-in mi? Hangi işin hangi katmanla çözüleceğini, hangi dilin seçileceğini ve nereden başlanacağını tek sayfada topladım.
SolidWorks otomasyonu, tekrarlayan CAD işlerini SolidWorks API üzerinden yazılıma devretmektir. Üç katmanı vardır: kaydedilebilen ve tek dosyada duran VBA makrolar, SolidWorks'ün nesne modeline doğrudan eriştiğiniz API, ve SolidWorks'ün içine yüklenerek çalışan C#/.NET add-in'ler. Üçü de aynı API'yi kullanır; fark, kodun nerede durduğu ve nasıl dağıtıldığıdır.
Bir parçanın ölçüsünü değiştirip teknik resmini güncellemek, yüzlerce dosyadan PDF çıkarmak, özel özellik alanlarını tek tek doldurmak — bunların hepsi elle yapılabilir. Otomasyon, aynı işi SolidWorks'e programla komut vererek yaptırmaktır. O komutu taşıyan şey SolidWorks API'sidir.
API, SolidWorks'ün içindeki her nesneye — uygulama, belge, feature, ölçü, konfigürasyon — kodla erişmenizi sağlayan katmandır. Makro da add-in de bu aynı katmanı kullanır; aralarındaki fark API'ye erişim biçimi değil, kodun nasıl saklandığı ve nasıl dağıtıldığıdır.
Temeli kuran yazılar
Üçü birbirinin alternatifi değil; işin ölçeğine göre seçilir.
| VBA Makro | C# / .NET Add-in | Python (COM) | |
|---|---|---|---|
| Nerede çalışır | SolidWorks içinde, .swp dosyası | SolidWorks'e yüklenen DLL | Dışarıdan, ayrı süreç |
| Kurulum | Dosyayı ver, çalıştır | Kayıt ve kurulum paketi gerekir | Python + pywin32 |
| Arayüz | Basit form | CommandManager, PropertyManager sekmesi | Yok ya da kendi arayüzünüz |
| Ne zaman | Tek kişilik, hızlı iş | Ekip geneli, sürümlenen ürün | Toplu işlem, veri işleme, dış entegrasyon |
| Bakım | Dosya çoğaldıkça zorlaşır | Sürüm kontrolü ve test mümkün | Betik seviyesinde kolay |
Pratik kural: iş bir kişinin masasında kalıyor ve haftada birkaç kez çalışıyorsa makro yeterlidir. Aynı iş ekibe yayılıyor, arayüz istiyor ve sürümlenmesi gerekiyorsa add-in'e geçme zamanı gelmiştir. SolidWorks'ün dışında veri işleyecekseniz — örneğin bir Excel listesinden yüzlerce varyant üretecekseniz — Python çoğu zaman en kısa yoldur.
Katman seçimi
Sıra önemli: her adım bir öncekinin üstüne biniyor.
Adım adım yazılar
En doğrudan kazanç, aynı işin defalarca modellenmesinin ortadan kalkmasıdır. İkinci ve çoğu zaman daha değerli kazanç standardizasyondur: çıktı adlandırması, klasör yapısı ve revizyon numaralandırması otomasyonun parçası olduğunda, üretime giden dosyalar kişiye göre değişmez.
Kapsam ve ölçüm
Dil modelleri SolidWorks API kodu üretebiliyor; ama API yüzeyinin genişliği ve COM nesne yaşam döngüsünün inceliği yüzünden ürettiği kod çoğu zaman doğrulanmadan çalışmıyor. Kazanç iskelet kodda ve dokümantasyon aramada; kayıp, doğrulanmamış kodu üretime almakta.
Yapay zeka tarafı
Otomasyon projesinin ilk haftası hangi aracı seçtiğinizle değil neyi ölçtüğünüzle belirlenir. Önce tekrarlayan işi ölçün, sonra pilot seçin, sonra sahada büyütün. Araç seçimi bu sıranın sonundadır.
Yöntem ve mimari
SolidWorks makro, SolidWorks içinde çalışan ve API üzerinden CAD işlerini otomatikleştiren bir VBA programıdır. Macro Recorder ile kaydedilebilir ya da elle yazılabilir; .swp uzantılı tek bir dosyada durur ve kurulum gerektirmeden çalışır.
SolidWorks API, SolidWorks'ün nesne modeline programla erişmenizi sağlayan COM tabanlı arayüz katmanıdır. SldWorks.Application kökünden başlayıp ModelDoc2, PartDoc, AssemblyDoc ve DrawingDoc üzerinden feature, ölçü ve konfigürasyonlara ulaşırsınız. Makro da add-in de bu aynı API'yi kullanır.
İkisi de aynı API'yi kullanır; fark dağıtımdadır. Makro tek dosyadır, kurulum istemez ve tek kullanıcı için hızlıdır. Add-in ise SolidWorks'e yüklenen bir DLL'dir: kendi araç çubuğunu ve PropertyManager sekmesini kurabilir, sürümlenebilir ve ekip geneline kurulum paketiyle dağıtılır.
Başlangıç için VBA, çünkü Macro Recorder doğrudan VBA üretir ve öğrendiğiniz nesne modeli her dile taşınır. Ekip için ürün geliştirecekseniz C# / .NET. SolidWorks dışında veri işleyecek ya da toplu iş yapacaksanız Python (pywin32) çoğu zaman en kısa yoldur.
Tools → Macro → Run yolundan .swp dosyası seçilerek çalıştırılır. Sık kullanılan makrolar için Tools → Customize üzerinden araç çubuğuna buton eklenebilir veya klavye kısayolu atanabilir; böylece makro menüde aranmadan tek tıkla çalışır.
En sık üç sebep: makro kaydedilirken seçime dayalı kod üretilmiş olması ve nesnenin artık seçili olmaması, açık belge yokken ModelDoc2'ye erişilmesi, ve referans alınan feature'ın yeniden adlandırılmış olması. Üçünün de çözümü aynı: nesnelere seçimle değil adıyla ya da kimliğiyle ulaşmak.