Browse Source

article number for program name; z move

master
Jörg Kurlbaum 3 years ago
parent
commit
b206f70d02
  1. 2
      freecad/LaserCladdingWorkbench/commands.py
  2. 23
      freecad/LaserCladdingWorkbench/kuka.py
  3. 7
      freecad/LaserCladdingWorkbench/program.py

2
freecad/LaserCladdingWorkbench/commands.py

@ -158,7 +158,7 @@ class LCSaveProg():
line.append(pose) line.append(pose)
prog.append_hatchline(line, progpart.pathtype) prog.append_hatchline(line, progpart.pathtype)
prog.save_prog(c.progpath) prog.save_prog(c.article, c.progpath)
App.ActiveDocument.recompute() App.ActiveDocument.recompute()

23
freecad/LaserCladdingWorkbench/kuka.py

@ -5,7 +5,7 @@ import time
import Part import Part
import re import re
import copy import copy
import os
TeachPointFold = """ 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 ;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): 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 ] 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): def save_prog(self, article, path):
if not filename.endswith('.src'): if self.simulation:
filename = filename +'.src' filename = "kvt_{}_sim.src".format(article)
srcfile = open(filename, 'w') else:
filename = "kvt_{}.src"
srcfile = open(os.path.join(path, filename), 'w')
srcfile.write(header_src) srcfile.write(header_src)
# subroutine definition # subroutine definition
srcfile.write("DEF "+filename+"( )\n\n") srcfile.write("DEF "+filename+"( )\n\n")
@ -179,8 +182,10 @@ class Kuka_Prog:
srcfile.write(";- Contourpaths\n") srcfile.write(";- Contourpaths\n")
for (poses, seg_type) in self.contour_path_list: for (poses, seg_type) in self.contour_path_list:
# start laser code # start laser code
srcfile.write("$VEL.CP = %f ; m/s ; m/s \n" % self.vproc)
srcfile.write(";- Turn on Laser\n") 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': if seg_type == 'LIN':
srcfile.write("LIN {} C_VEL; GENERATED\n".format(poses[0].translate_with(self.baseorigin).to_string())) 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) 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 # end of subroutine
srcfile.write(";- Hatchlines\n") 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: for (line, seg_type) in self.hatchlines_list:
# start laser code # start laser code
srcfile.write(";- Hatchline\n") 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.use_laser_out)
srcfile.write("$OUT[%d] = FALSE\n" % self.powder_out) srcfile.write("$OUT[%d] = FALSE\n" % self.powder_out)
srcfile.write("$OUT[%d] = FALSE\n" % self.inert_gas_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("\n;------------- end ------------\n")
srcfile.write("END \n\n") srcfile.write("END \n\n")
srcfile.close() srcfile.close()

7
freecad/LaserCladdingWorkbench/program.py

@ -43,8 +43,11 @@ class LaserProgram:
obj.addProperty("App::PropertyBool", "simulation", "Roboter Parameter", "Use Simulation") obj.addProperty("App::PropertyBool", "simulation", "Roboter Parameter", "Use Simulation")
obj.simulation = True obj.simulation = True
obj.addProperty("App::PropertyFile", "progpath", "Export Parameters", "Where to store the Program") obj.addProperty("App::PropertyPath", "progpath", "Export Parameters", "Where to store the Program")
obj.progpath = "/home/jk/test_export_workbench.src" obj.progpath = "/home/jk/"
obj.addProperty("App::PropertyString", "article", "Export Parameters", "Article Number")
obj.article = "0000000"
obj.addExtension("App::GroupExtensionPython") obj.addExtension("App::GroupExtensionPython")
obj.Proxy = self obj.Proxy = self

Loading…
Cancel
Save