diff --git a/freecad/LaserCladdingWorkbench/commands.py b/freecad/LaserCladdingWorkbench/commands.py index 7eb9f9a..4a6b7ea 100644 --- a/freecad/LaserCladdingWorkbench/commands.py +++ b/freecad/LaserCladdingWorkbench/commands.py @@ -158,7 +158,7 @@ class LCSaveProg(): line.append(pose) prog.append_hatchline(line, progpart.pathtype) - prog.save_prog(c.progpath) + prog.save_prog(c.article, c.progpath) App.ActiveDocument.recompute() diff --git a/freecad/LaserCladdingWorkbench/kuka.py b/freecad/LaserCladdingWorkbench/kuka.py index 5ab7bd5..7631a1d 100644 --- a/freecad/LaserCladdingWorkbench/kuka.py +++ b/freecad/LaserCladdingWorkbench/kuka.py @@ -5,7 +5,7 @@ import time import Part import re import copy - +import os TeachPointFold = """ ;FOLD LIN P4 Vel= 0.2 m/s CPDAT1 Tool[1] Base[0];%{PE}%R 5.4.27,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P4, 3:, 5:0.2, 7:CPDAT1 @@ -134,10 +134,13 @@ class Kuka_Prog: def get_vectors(self): return [FreeCAD.Base.Vector(p.X, p.Y, p.Z) for p in poses for poses in self.contour_path_list ] - def save_prog(self, filename): - if not filename.endswith('.src'): - filename = filename +'.src' - srcfile = open(filename, 'w') + def save_prog(self, article, path): + if self.simulation: + filename = "kvt_{}_sim.src".format(article) + else: + filename = "kvt_{}.src" + + srcfile = open(os.path.join(path, filename), 'w') srcfile.write(header_src) # subroutine definition srcfile.write("DEF "+filename+"( )\n\n") @@ -179,8 +182,10 @@ class Kuka_Prog: srcfile.write(";- Contourpaths\n") for (poses, seg_type) in self.contour_path_list: # start laser code - srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vproc) srcfile.write(";- Turn on Laser\n") + srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vmax) + srcfile.write("LIN_REL {Z 90.0} C_VEL; GENERATED\n") + srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vproc) if seg_type == 'LIN': srcfile.write("LIN {} C_VEL; GENERATED\n".format(poses[0].translate_with(self.baseorigin).to_string())) srcfile.write("TRIGGER WHEN DISTANCE=0 DELAY=0 DO $OUT[%d]=True\n" % self.use_laser_out) @@ -198,6 +203,8 @@ class Kuka_Prog: # end of subroutine srcfile.write(";- Hatchlines\n") + srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vmax) + srcfile.write("LIN_REL {Z 90.0} C_VEL; GENERATED\n") for (line, seg_type) in self.hatchlines_list: # start laser code srcfile.write(";- Hatchline\n") @@ -212,6 +219,10 @@ class Kuka_Prog: srcfile.write("$OUT[%d] = FALSE\n" % self.use_laser_out) srcfile.write("$OUT[%d] = FALSE\n" % self.powder_out) srcfile.write("$OUT[%d] = FALSE\n" % self.inert_gas_out) + srcfile.write("startp=$POS_ACT\n") + srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vmax) + #srcfile.write("LIN_REL {Z 90.0} C_DIS; GENERATED\n") + srcfile.write("PTP {A1 -33.31, A2 -104.71, A3 114.60, A4 282.66, A5 -39.21, A6 -104.87, E1 -90, E2 1.0}\n") srcfile.write("\n;------------- end ------------\n") srcfile.write("END \n\n") srcfile.close() diff --git a/freecad/LaserCladdingWorkbench/program.py b/freecad/LaserCladdingWorkbench/program.py index bbf7408..7aa432c 100644 --- a/freecad/LaserCladdingWorkbench/program.py +++ b/freecad/LaserCladdingWorkbench/program.py @@ -43,8 +43,11 @@ class LaserProgram: obj.addProperty("App::PropertyBool", "simulation", "Roboter Parameter", "Use Simulation") obj.simulation = True - obj.addProperty("App::PropertyFile", "progpath", "Export Parameters", "Where to store the Program") - obj.progpath = "/home/jk/test_export_workbench.src" + obj.addProperty("App::PropertyPath", "progpath", "Export Parameters", "Where to store the Program") + obj.progpath = "/home/jk/" + + obj.addProperty("App::PropertyString", "article", "Export Parameters", "Article Number") + obj.article = "0000000" obj.addExtension("App::GroupExtensionPython") obj.Proxy = self