Rehber
Alphacam'de VBA ile makro yazma: nereden başlanır?
Alphacam VBA makro yazma rehberi: API sekmesi ve düzenleyici, App/Drawing/Path/Layer nesneleri, ilk makro (ölçülü dikdörtgen), katman adı disiplini, .arb derleme ve dağıtım. Üretimde yaşanan tuzaklarla.
Yayın: 9 dk okuma
Alphacam'in içindeki VBA, atölyenin kendi işine özel araç yazmasına izin verir. Excel makrosu yazmış biri için tanıdıktır; hiç yazmamış biri için de birkaç akşamda ilk sonuç alınacak kadar erişilebilirdir. Bu yazı, GMacros eklentilerini geliştirirken edindiğimiz deneyimle nereden başlanır, nerede takılınır sorusunu yanıtlar. Programlama bilgisi varsaymaz.
VBA düzenleyicisine ulaşmak
Şeritte API sekmesi vardır (eski sürümlerde menüde API). Buradan VBA (Visual Basic Editor) açılır; Office'teki düzenleyicinin aynısıdır: solda proje ağacı, ortada kod. Yeni bir Module ekleyip içine Sub yazarsınız; F5 ya da çalıştır düğmesi makroyu Alphacam'in açık çizimi üzerinde çalıştırır. Aynı sekmede Add-In Manager (eklenti yöneticisi) derli .arb dosyalarını yükler/kaldırır.
Nesne modeli: App, Drawing, Path, Layer
Alphacam API'si nesne tabanlıdır. Bilinmesi gereken dört nesne ile işin büyük kısmı yapılır:
- App — programın kendisi: açık çizim (App.ActiveDrawing), mesaj kutuları, seçim.
- Drawing — çizim: geometri oluşturma (CreateRectangle, CreateCircle, CreateLine…), katmanlar, kaydetme.
- Path — tek bir geometri (kontur, çizgi, daire). Yön, başlangıç noktası, katman, uzunluk gibi özellikleri vardır; Reverse ile yönü çevrilir, Offset ile ofset alınır.
- Layer — katman. Drawing.UserLayers üzerinden adla bulunur ya da yaratılır; Auto Style bu adı okur.
Nesnelerin tam listesi Alphacam ile gelen API belgesindedir (yardım menüsünden ya da kurulum dizinindeki dokümanlar). Her üye için parametre ve örnek bulunur; rehber niteliğinde okumaya değer.
İlk makro: ölçü girilince dikdörtgen parça çizen düğme
En yararlı ilk makro, klavyeden ölçü alıp KESIM katmanına dikdörtgen çizendir — dolap gövdesi parçalarının yarısı budur. Akış şöyledir:
- InputBox ile genişlik ve yükseklik alınır; sayıya çevrilir (nokta/virgül farkına dikkat — Türkçe Windows'ta CDbl virgül bekler).
- App.ActiveDrawing alınır; çizim yoksa uyarı verilip çıkılır.
- KESIM katmanı bulunur, yoksa yaratılır ve geçerli katman yapılır.
- Drawing.CreateRectangle x1, y1, x2, y2 ile geometri çizilir.
- Drawing.Redraw ile ekran tazelenir.
Bu beş adım, GMacros Dolap'ndaki Ölçülü Dikdörtgen Parça aracının çekirdeğidir; oradaki ek işler hata denetimi, birden çok parça ve etiket yazmaktır. Makroyu bir kez yazıp Auto Style ile birleştirdiğinizde "ölçü gir → NC çıkar" akışı tamamlanır.
Katman adı disiplini: makronun asıl değeri
Makro yazan herkesin ilk düştüğü tuzak, geometriyi geçerli katmana çizmektir. Operatör o an hangi katmandaysa geometri oraya düşer, Auto Style yanlış işlem atar ya da hiç atamaz. Kural: makro çizeceği her geometri için katmanı adıyla seçer (KESIM, DELIK, CEP, KANAL, ETIKET) ve işi bitince operatörün katmanını geri getirir. Katman adlarını tek bir sabit listede tutun; atölyedeki Auto Style kuralları da aynı listeyi kullanır.
Parametrik düşünmek: ölçü, pay, adet
İyi bir üretim makrosu "şu kapağı çiz" demez; "genişlik, yükseklik, çerçeve payı ve iç ofset sayısını al, kapağı ondan türet" der. Böylece aynı makro 300×700 de, 600×1200 de çizer. Parametreleri form (UserForm) ile almak daha rahattır: her alanın varsayılanı olur, son kullanılan değer hatırlanır, ölçü listesi (genişlik×yükseklik×adet) tek seferde girilir. Parametrik kapak ve kapı makrolarının nasıl kurgulandığı Alphacam tabanlı parametrik kapı ve kapak makroları nasıl çalışır? yazısında ayrıntılıdır.
Derleme ve dağıtım: .arb
Makrolar hazır olunca proje .arb olarak kaydedilir/derlenir ve Startup klasörüne konur; Alphacam bir sonraki açılışta yükler. Şerit düğmeleri ve sekme adı projede tanımlanır. Başka bilgisayarlara dağıtırken üç şeye dikkat: Alphacam sürüm uyumu (eski sürüm için derlenen yenisinde çalışır, tersi garanti değil), 32/64 bit farkı (yeni sürümler 64 bit) ve Windows bölgesel ayarları (ondalık ayracı). Bunların yanı sıra eklentinin nasıl yüklendiği Alphacam eklentisi nedir, nasıl kurulur ve nasıl çalışır? yazısında anlatılır.
Üretimde yaşadığımız tuzaklar
- Ondalık ayracı: "12.5" metni Türkçe Windows'ta CDbl ile 125 olur. Metni önce noktaya/virgüle normalize edin.
- Seçim boş: kullanıcı hiçbir şey seçmeden düğmeye basar; Selection üzerinde döngü hata verir. Önce say, sıfırsa açıklayıcı uyarı ver.
- Birim: çizim inç modundaysa milimetre girdisi yanlış ölçek verir. Çizim birimini kontrol edin.
- Yön: Path.Reverse kapalı konturda kesim yönünü (aynı/karşı yönlü) değiştirir; nesting sonrası yönleri toplu düzeltmek gerekir. GMacros'taki Yön Değiştir aracı bu yüzden var.
- Bölgesel ad çakışması: katman adlarında Türkçe karakter (İ, ş) kullanmayın; post ve DXF aktarımında sorun çıkarabilir.
- Hata yönetimi: On Error Resume Next ile sessizce geçilen hata, yanlış çizilmiş bir parça olarak tezgâha gider. Hataları yakalayın, kullanıcıya söyleyin.
Yazmak mı, hazır almak mı?
Atölyenin işi tek ve özelse (yalnız bir tip parça) bir akşam yazılan makro yeter. İş kapak, kapı ve dolap gövdesinin tamamını kapsıyorsa; membran, çerçeveli, camlı, panjurlu gibi türler ve kulp/menteşe/bas-aç delikleri de gerekiyorsa, bunları yazmak ve her Alphacam sürümünde test etmek aylar alır. GMacros paketleri tam bu iş için hazırdır: Kapak, Kapı ve Dolap makroları ile GMacros Araçlar. Kendi makronuzu yazmaya devam etmek isteyenler için bu yazıdaki katman ve parametre disiplini aynen geçerlidir.
Sık sorulanlar
Alphacam VBA için hangi dil kullanılır?
Visual Basic for Applications (VBA). Python ya da C# doğrudan desteklenmez; COM üzerinden dışarıdan otomasyon mümkündür ama üretim makroları için VBA standarttır.
Makrolarım Alphacam güncellenince bozulur mu?
Genellikle hayır; API geriye uyumludur. 32 bitten 64 bite geçişte Windows API çağrıları (Declare) güncellenmelidir; saf Alphacam API'si etkilenmez.
Alphacam API belgesini nerede bulurum?
Alphacam kurulumuyla gelen API yardım dosyasında ve Hexagon'un müşteri portalında. Nesne modeli, üyeler ve örnekler oradadır.
İlgili ürünler
Yazıda anlatılan işleri Alphacam içinde tek tıkla yapan araçlar: GMacros Alphacam Paketi. Nasıl satın alındığı ve lisansın nasıl çalıştığı Nasıl çalışır sayfasında.
GMacros ekibi tarafından yazıldı. Alphacam, Hexagon AB'nin tescilli markasıdır; bu rehber bağımsızdır.