Cura yazılımı 3D yazıcılar için kullanılan, açık kaynaklı bir dilimleme yazılımıdır.
Cura yazılımının çıktısı bilindiği üzere .gcode uzantısındadır.
Diğer taraftan Zaxe 3D Printing Technologies şirketinin geliştirmiş olduğu Zaxe 3D yazıcılar ise başka bir formattaki .zaxe_code uzantısını kullanır.
Elinizdeki .gcode dosyasını zaxe_code dosyasına çevirmek mümkün ve bunun için aşağıdaki bizim yazdığımız VBS dosyasını kullanabilirsiniz.
Dim md5obj set md5obj = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider") md5obj.Initialize() Set fso = CreateObject("Scripting.FileSystemObject") Const adTypeBinary = 1 Set objStream = CreateObject("ADODB.Stream") Function bytesToHex(aBytes) Dim hexStr, x For x=1 To lenb(aBytes) hexStr= LCase(hex(ascb(midb( (aBytes) ,x,1)))) if len(hexStr)=1 then hexStr="0" & hexStr bytesToHex=bytesToHex & hexStr Next end Function ' read bytes from fileName Function LoadFile(fileName) objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile( fileName ) LoadFile = objStream.Read objStream.Close End Function ' returns hex value of md5 hash from content of fileName Function HashOfFile(fileName) fileBytes = LoadFile(fileName) ' Do NOT omit braces around fileBytes - it will not work... md5hashBytes = md5obj.ComputeHash_2( (fileBytes) ) HashOfFile = bytesToHex(md5hashBytes) End Function Function BrowseForFile() '@description: Browse for file dialog. '@author: Jeremy England (SimplyCoded) BrowseForFile = CreateObject("WScript.Shell").Exec( _ "mshta.exe ""about:<input type=file id=f>" & _ "<script>resizeTo(0,0);f.click();new ActiveXObject('Scripting.FileSystemObject')" & _ ".GetStandardStream(1).WriteLine(f.value);close();</script>""" _ ).StdOut.ReadLine() End Function ' open dialog ile dosya seçimi filePath = BrowseForFile() ' seçilen dosyanın md5 hashini hesapla hash=HashOfFile(filepath) 'json dosyasına yazılacak içerik. aynı zamanda hesaplanan hash dosyasını da bu dosyaya yaz json_content="{""filament_used"": 3640.0, ""sub_material"": ""zaxe_pla"", ""nozzle_diameter"": 0.4, ""bed_temperature"": 60, ""checksum"": """ & hash & """, ""material"": ""zaxe_pla"", ""name"": ""astm_d638_type1_3.2mm"", ""model"": ""Z1PLUS"", ""version"": ""1.0.2"", ""extruder_temperature"": 200, ""duration"": ""00:30:22""}" Set objFSO=CreateObject("Scripting.FileSystemObject") 'json dosyasını kaydet Set objFile = objFSO.CreateTextFile("info.json",True) objFile.Write json_content & vbCrLf objFile.Close Set oShell = WScript.CreateObject ("WScript.Shell") ' dosyanın sadece adını al (path bilgisinden arındır) ShortFileName = Mid(filePath, InStrRev(filePath, "\") + 1) '7za ile gcode dosyasını, info.json dosyasını ve snapshot.png dosyasını sıkıştır oShell.run "7za a -tzip " & ShortFileName & ".zaxe " & filePath & " info.json snapshot.png" '1 saniye bekle WScript.Sleep 1000 'kayıt edilen zip dosyası içindeki gcode dosyasının ismini data.zaxe_code olarak değiştir oShell.run "7za rn " & ShortFileName & ".zaxe " & ShortFileName & " data.zaxe_code"
Kodda gördüğünüz üzere işlemler bittikten sonra bir de sıkıştırma işlemi yapılmaktadır ve bunun için ilgili klasörde 7ZIP dos komut satırı programının bulunması gerekmektedir. Ayrıca bu script’in bulunduğu klasörde snapshot.png dosyasının da bulunması gerekir.
Bunun yanında kodda göreceğiniz üzere bazı şifrelemeler yapmak için MD5 Crypto Servisi kullanılmaktadır ve bu da .NET Framework 3.5 içerisinde bulunan bir servistir. Dolayısı ile bu script’in çalışacağı bilgisayarda .NET Framework 3.5′in kurulu olması gerekir.
Detayları geçelim derseniz bu script’in kullanımı oldukça basit 🙂
Buradan şu dosyayı indirin ve içerisindeki ZAXE_CONVERT.vbs dosyasını çalıştırın.
Dosyanın içerisinde gerekli her şey var. (.NET Framework 3.5 dışında)
Dosyayı çalıştırdıktan sonra gcode dosyanızı seçin ve saniyeler içerisinde zaxe_code dosyanıza kavuşun.
Notlar :
* Zaxe Z1 Plus modelinde denenmiştir. Diğer modellerde çalışmıyorsa iletişim için yorum bırakabilirsiniz. Bunun için kod üzerinde düzenleme yapılması gerekebilir.
* Dosyanın kullanımı ve diğer konularda sorumluluk kullanıcının kendisine aittir.