Cismi tutacak cihazın ne tür bir cihaz olduğuna göre hesap şekli biraz değişmekle birlikte temelde aynı olur.
Daha basit olduğu için önce 3.5 eksen bir CNC ile çalıştığınızı düşünelim.
Cismin kenar koordinatlarını çıkardıktan sonra cismin tutmanız gereken noktalarını hesaplamak gerekir. Örneğin cisim dikdörgen şekilli ise uzun kenarların ortasından tutmak isteriz. iki tutma noktasını birleştiren çizginin ortası da cismin merkez koordinatıdır.
Genel standartlara uygun birşey olması için basit G-code komutları kullanılabilir.
G0Z500 // z yi kaldır
G0X500Y300 //koordinata git
G0Z200 // z y indir.
gibi . Bu komutlara göre step motorları hareket ettirmek için bir kaç yol var. Bilginize tecrübenize göre biri tercih ediliebilir.
Ben bir mcu kullanarak yapmayı tercih ederdim. g-code lar mcu ya seriport- usb vs ile aktarılır. mcu da buna uygun step darbelerini üretirdi.
Diğer bir yol hazır 3-5 eksen bir step sürücü kullanmak. Bu durumda sürücüyü kontrol için gereken yön ve darbe sinyallerinin yine bir mcu veya PC ile üretilmesi gerekir.
PC de üretildiği durumda iletişim için paralel port kullanmak mantıklı. Aynı mach3 gibi çalışacak, yani çok basit bir mach3 benzeri program yazılacak.
Paralel port kontrolü için inpout.dll veya inout.dll adında bir arabirim vardı. Bu kullanılabilir.
Ayrıca mach3 de bir arabirim sunuyor. Pek detaylı bilmiyorum ama komutları direkt mach3 arabirimi üzerinden mach3'e aktarıp stepleri gerçek zamanlı kontrol etme olanağı da olabilir. mach3'ün sitesinde bununla ilgili bir döküman gördüm sanki..
Neyse, özetlersek donanım olarak ya kendi indeksleyici ve sürücünüzü kendiniz yapacaksınız. Veya sürücüyü hazır alıp indeksleyiciyi yapacaksınız.
Indeksleyici için de bir mcu veya PC kullanmanız gerekir. Önerim eğer mcu'lar hakkında biraz bilgi ve tecrübeniz varsa bir işlemciye bu işi yaptırmanız. Yoksa PC üzerinde yapacaksınız.
Eğer CNC değilde robot kol gibi bir uygulama yapacaksanız da işlemler hemen hemen aynı. Sadece gitmek istediğiniz koordinatların hesaplanmasında işin içine bir de ters kinematik girecek.