Merge branch '2.8'

This commit is contained in:
Phillip Carter 2019-07-17 17:09:11 +10:00
commit baaf887f1e
13 changed files with 481 additions and 144 deletions

View file

@ -457,9 +457,9 @@ class configurator:
elif line.startswith('EMBED_TAB_NAME') and 'Plasma Run' in line: elif line.startswith('EMBED_TAB_NAME') and 'Plasma Run' in line:
outFile.write(\ outFile.write(\
'\n'\ '\n'\
'EMBED_TAB_NAME = Plasma Run\n'\
'# use one of the next two\n'\ '# use one of the next two\n'\
'# run panel in tab behind preview\n') '# run panel in tab behind preview\n'\
'EMBED_TAB_NAME = Plasma Run\n')
elif line.startswith('EMBED_TAB_COMMAND') and 'plasmac_run.glade' in line: elif line.startswith('EMBED_TAB_COMMAND') and 'plasmac_run.glade' in line:
outFile.write('EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x {XID} -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade\n') outFile.write('EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x {XID} -u ./plasmac_run.py -H plasmac_run.hal plasmac_run_tab.glade\n')
if display == 'axis': if display == 'axis':

View file

@ -30,47 +30,75 @@ class materialConverter:
def __init__(self): def __init__(self):
self.W = gtk.Window() self.W = gtk.Window()
self.W.set_title('Plasmac Material File Converter') self.W.set_title('Plasmac Material File Creator')
self.W.connect('delete_event', self.on_window_delete_event) self.W.connect('delete_event', self.on_window_delete_event)
self.create_widgets() self.create_widgets()
self.W.show_all() self.W.show_all()
self.inLabel.hide()
self.inFile.hide()
self.outUnits.hide()
self.outMetric.hide()
self.outImperial.hide()
self.inFile.connect('button_press_event', self.on_infile_button_press_event) self.inFile.connect('button_press_event', self.on_infile_button_press_event)
self.outFile.connect('button_press_event', self.on_outfile_button_press_event) self.outFile.connect('button_press_event', self.on_outfile_button_press_event)
self.outMetric.connect('toggled', self.on_metric_toggled, 'metric') self.outMetric.connect('toggled', self.on_units_toggled)
self.inManual.connect('toggled', self.on_source_toggled)
self.inSheetcam.connect('toggled', self.on_source_toggled)
self.inFusion.connect('toggled', self.on_source_toggled)
self.convert.connect('clicked', self.on_convert_clicked) self.convert.connect('clicked', self.on_convert_clicked)
self.cancel.connect('clicked', self.on_cancel_clicked) self.cancel.connect('clicked', self.on_cancel_clicked)
self.divisor = 1 self.divisor = 1
self.precision = 2 self.precision = 2
self.inFileName = '' self.inFileName = ''
self.outFileName = '' self.outFileName = ''
self.fNUM = '1'
self.fNAM = '0'
self.fKW = '0'
self.fTHC = False
self.fPH = '0'
self.fPD = '0'
self.fPJH = '0'
self.fPJD = '0'
self.fCH = '0'
self.fCS = '0'
self.fCA = '0'
self.fCV = '0'
def create_widgets(self): def create_widgets(self):
self.T = gtk.Table(3, 9) self.T = gtk.Table(9, 7)
self.T.set_row_spacings(8)
self.T.set_homogeneous(True) self.T.set_homogeneous(True)
self.W.add(self.T) self.W.add(self.T)
self.inManual = gtk.RadioButton(None, 'Manual')
self.T.attach(self.inManual, 0, 2, 0, 1)
self.inSheetcam = gtk.RadioButton(self.inManual, 'SheetCam')
self.T.attach(self.inSheetcam, 0, 2, 1, 2)
self.inFusion = gtk.RadioButton(self.inManual, 'Fusion 360')
self.T.attach(self.inFusion, 0, 2, 2, 3)
self.outUnits = gtk.Label('Output Units')
self.outUnits.set_alignment(0, 0.5)
self.T.attach(self.outUnits, 5, 7, 0, 1)
self.outMetric = gtk.RadioButton(None, 'Metric')
self.T.attach(self.outMetric, 5, 7, 1, 2)
self.outImperial = gtk.RadioButton(self.outMetric, 'Imperial')
self.T.attach(self.outImperial, 5, 7, 2, 3)
self.inLabel = gtk.Label('Input File') self.inLabel = gtk.Label('Input File')
self.inLabel.set_alignment(0.95,0.5) self.inLabel.set_alignment(0, 1)
self.T.attach(self.inLabel, 0, 1, 0, 1) self.T.attach(self.inLabel, 0, 1, 3, 4)
self.outLabel = gtk.Label('Output File')
self.inLabel.set_alignment(0.95,0.5)
self.T.attach(self.outLabel, 0, 1, 1, 2)
self.inFile = gtk.Entry() self.inFile = gtk.Entry()
self.inFile.set_width_chars(50) self.inFile.set_width_chars(50)
self.T.attach(self.inFile, 1, 8, 0, 1) self.T.attach(self.inFile, 0, 7, 4, 5)
self.outLabel = gtk.Label('Output File')
self.outLabel.set_alignment(0,1 )
self.T.attach(self.outLabel, 0, 1, 5, 6)
self.outFile = gtk.Entry() self.outFile = gtk.Entry()
self.outFile.set_width_chars(50) self.outFile.set_width_chars(50)
self.T.attach(self.outFile, 1, 8, 1, 2) self.T.attach(self.outFile, 0, 7, 6, 7)
self.outMetric = gtk.RadioButton(group=None, label='Metric') self.convert = gtk.Button('Create')
self.T.attach(self.outMetric, 8, 9, 0, 1) self.T.attach(self.convert, 0, 2, 8, 9)
self.outImperial = gtk.RadioButton(group=self.outMetric, label='Imperial')
self.T.attach(self.outImperial, 8, 9, 1, 2)
self.convert = gtk.Button('Convert')
self.T.attach(self.convert, 0, 2, 2, 3)
self.outLabel = gtk.Label('') self.outLabel = gtk.Label('')
self.T.attach(self.outLabel, 3, 6, 2, 3) self.T.attach(self.outLabel, 2, 5, 8, 9)
self.cancel = gtk.Button('Exit') self.cancel = gtk.Button('Exit')
self.T.attach(self.cancel, 7, 9, 2, 3) self.T.attach(self.cancel, 5, 7, 8, 9)
def on_window_delete_event(self,window,event): def on_window_delete_event(self,window,event):
gtk.main_quit() gtk.main_quit()
@ -97,11 +125,11 @@ class materialConverter:
self.outFile.set_text(dlg.get_filename()) self.outFile.set_text(dlg.get_filename())
self.outFileName = dlg.get_filename() self.outFileName = dlg.get_filename()
else: else:
self.outFil.set_text('') self.outFile.set_text('')
self.outFileName = '' self.outFileName = ''
dlg.destroy() dlg.destroy()
def on_metric_toggled(self,button,name): def on_units_toggled(self,button):
self.outLabel.set_text('') self.outLabel.set_text('')
if button.get_active(): if button.get_active():
self.divisor = 1 self.divisor = 1
@ -109,29 +137,50 @@ class materialConverter:
else: else:
self.divisor = 25.4 self.divisor = 25.4
self.precision = 3 self.precision = 3
print 'divisor = {:.1f}'.format(self.divisor)
def on_source_toggled(self,button):
self.outLabel.set_text('')
if button.get_active():
if button.get_label() == 'SheetCam':
self.outUnits.show()
self.outMetric.show()
self.outImperial.show()
else:
self.outUnits.hide()
self.outMetric.hide()
self.outImperial.hide()
if button.get_label() == 'Manual':
self.inLabel.hide()
self.inFile.hide()
self.convert.set_label('Create')
else:
self.inLabel.show()
self.inFile.show()
self.convert.set_label('Convert')
def on_convert_clicked(self,button): def on_convert_clicked(self,button):
self.outLabel.set_text('') self.outLabel.set_text('')
if self.convert.get_label() != 'Add':
if not self.inManual.get_active():
if not self.inFileName: if not self.inFileName:
print 'missing input filename' self.outLabel.set_text('missing input filename')
return
if not self.outFileName:
print 'missing output filename'
return return
if not os.path.exists(self.inFileName): if not os.path.exists(self.inFileName):
print '{} does not exist'.format(self.inFileName) self.outLabel.set_text('{} missing'.format(self.inFileName))
return return
print 'convert from {} to {}...'.format(self.inFileName,self.outFileName) if not self.outFileName:
self.outLabel.set_text('missing output filename')
return
self.outLabel.set_text('converting...')
version = '[VERSION 1]' version = '[VERSION 1]'
try: # try:
with open(self.outFileName, 'w') as f_out: with open(self.outFileName, 'w') as f_out:
f_out.write(\ f_out.write(\
'#plasmac material file\n'\ '#plasmac material file\n'\
'#the next line is required for version checking\n'\ '#the next line is required for version checking\n'\
+ version + '\n\n'\ + version + '\n\n'\
'#example only, may be deleted\n'\ '#example only, may be deleted\n'\
'#[MATERIAL_NUMBER_1] = \n'\ '#[MATERIAL_NUMBER_1]\n'\
'#NAME = \n'\ '#NAME = \n'\
'#KERF_WIDTH = \n'\ '#KERF_WIDTH = \n'\
'#THC = (0 = off, 1 = on)\n'\ '#THC = (0 = off, 1 = on)\n'\
@ -144,9 +193,35 @@ class materialConverter:
'#CUT_AMPS = (optional, only used for operator information)\n'\ '#CUT_AMPS = (optional, only used for operator information)\n'\
'#CUT_VOLTS = (modes 0 & 1 only, if not using auto voltage sampling)\n'\ '#CUT_VOLTS = (modes 0 & 1 only, if not using auto voltage sampling)\n'\
'\n') '\n')
except: # except:
self.outLabel.set_text('WRITE ERROR!!!') # self.outLabel.set_text('WRITE ERROR!!!')
try: else:
self.fNUM = str(int(self.fNUM) + 1)
if self.inManual.get_active():
getParams = self.fusion_dialog()
if getParams == gtk.RESPONSE_REJECT:
return
self.materialNum = '[MATERIAL_NUMBER_{}]'.format(self.fNUM)
self.materialName = 'NAME = {}'.format(self.fNAM)
self.materialKerf = "{id:}{val:.{i}f}".format(id='KERF_WIDTH = ',
i=self.precision, val=float(self.fKW) / self.divisor)
self.materialTHC = 'THC = {}'.format(self.fTHC)
self.materialPierceH = "{id:}{val:.{i}f}".format(id='PIERCE_HEIGHT = ',
i=self.precision, val=float(self.fPH) / self.divisor)
self.materialPierceD = 'PIERCE_DELAY = {}'.format(self.fPD)
self.materialPuddleH = "{id:}{val:.{i}f}".format(id='PUDDLE_JUMP_HEIGHT = ',
i=self.precision, val=float(self.fPJH) / self.divisor)
self.materialPuddleD = 'PUDDLE_JUMP_DELAY = {}'.format(self.fPJD)
self.materialCutH = "{id:}{val:.{i}f}".format(id='CUT_HEIGHT = ',
i=self.precision, val=float(self.fCH) / self.divisor)
self.materialCutS = "{id:}{val:.{i}f}".format(id='CUT_SPEED = ',
i=0, val=float(self.fCS) / self.divisor)
self.materialCutA = 'CUT_AMPS = {}'.format(self.fCA)
self.materialCutV = 'CUT_VOLTS = {}'.format(self.fCV)
self.output()
self.convert.set_label('Add')
elif self.inSheetcam.get_active():
# try:
with open(self.inFileName, 'r') as f_in: with open(self.inFileName, 'r') as f_in:
count = 0 count = 0
valid = False valid = False
@ -206,15 +281,53 @@ class materialConverter:
count += 1 count += 1
if valid: if valid:
self.output() self.output()
except: # except:
self.outLabel.set_text('READ ERROR!!!') # self.outLabel.set_text('READ ERROR!!!')
self.outLabel.set_text('FINISHED') self.outLabel.set_text('FINISHED')
elif self.inFusion.get_active():
# try:
with open(self.inFileName, 'r') as f_in:
for line in f_in:
line = line.lower().strip().split('\t')
if line[0].lower() == 'type':
lNum = line.index('number')
lNam = line.index('description')
lCS = line.index('cutting-feedrate')
lKW = line.index('kerf-width')
else:
self.fNUM = line[lNum]
self.fNAM = line[lNam]
getParams = self.fusion_dialog()
if getParams == gtk.RESPONSE_REJECT:
return
self.materialNum = '[MATERIAL_NUMBER_{}]'.format(self.fNUM)
self.materialName = 'NAME = {}'.format(self.fNAM)
self.materialKerf = "{id:}{val:.{i}f}".format(id='KERF_WIDTH = ',
i=self.precision, val=float(line[lKW]) / self.divisor)
self.materialTHC = 'THC = {}'.format(self.fTHC)
self.materialPierceH = "{id:}{val:.{i}f}".format(id='PIERCE_HEIGHT = ',
i=self.precision, val=float(self.fPH) / self.divisor)
self.materialPierceD = 'PIERCE_DELAY = {}'.format(self.fPD)
self.materialPuddleH = "{id:}{val:.{i}f}".format(id='PUDDLE_JUMP_HEIGHT = ',
i=self.precision, val=float(self.fPJH) / self.divisor)
self.materialPuddleD = 'PUDDLE_JUMP_DELAY = {}'.format(self.fPJD)
self.materialCutH = "{id:}{val:.{i}f}".format(id='CUT_HEIGHT = ',
i=self.precision, val=float(self.fCH) / self.divisor)
self.materialCutS = "{id:}{val:.{i}f}".format(id='CUT_SPEED = ',
i=0, val=float(line[lCS]) / self.divisor)
self.materialCutA = 'CUT_AMPS = {}'.format(self.fCA)
self.materialCutV = 'CUT_VOLTS = {}'.format(self.fCV)
self.output()
# except:
# self.outLabel.set_text('READ ERROR!!!')
self.outLabel.set_text('FINISHED')
else:
self.outLabel.set_text('Invalid Conversion')
def on_cancel_clicked(self,button): def on_cancel_clicked(self,button):
gtk.main_quit() gtk.main_quit()
def output(self): def output(self):
try: # try:
with open(self.outFileName, 'a') as f_out: with open(self.outFileName, 'a') as f_out:
f_out.write(self.materialNum + '\n' + \ f_out.write(self.materialNum + '\n' + \
self.materialName + '\n' + \ self.materialName + '\n' + \
@ -228,8 +341,121 @@ class materialConverter:
self.materialCutS + '\n' + \ self.materialCutS + '\n' + \
self.materialCutA + '\n' + \ self.materialCutA + '\n' + \
self.materialCutV + '\n\n') self.materialCutV + '\n\n')
except: # except:
self.outLabel.set_text('WRITE ERROR!!!') # self.outLabel.set_text('WRITE ERROR!!!')
def fusion_dialog(self):
dialog = gtk.Dialog('CUT PARAMETERS',
self.W,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT))
infL = gtk.Label('For Material # {}\n{}'.format(self.fNUM,self.fNAM))
dNUl = gtk.Label('Material Number')
dNUl.set_alignment(0, 1)
dNU = gtk.Entry()
dNU.set_text(self.fNUM)
dNU.set_alignment(0.95)
dNAl = gtk.Label('Material Name')
dNAl.set_alignment(0, 1)
dNA = gtk.Entry()
dNA.set_text(self.fNAM)
dNA.set_alignment(0.95)
dKWl = gtk.Label('Kerf Width')
dKWl.set_alignment(0, 1)
dKW = gtk.Entry()
dKW.set_text(self.fKW)
dKW.set_alignment(0.95)
dTHC = gtk.CheckButton('THC Enabled')
dTHC.set_active(self.fTHC)
dPHl = gtk.Label('Pierce Height')
dPHl.set_alignment(0, 1)
dPH = gtk.Entry()
dPH.set_text(self.fPH)
dPH.set_alignment(0.95)
dPDl = gtk.Label('Pierce Delay')
dPDl.set_alignment(0, 1)
dPD = gtk.Entry()
dPD.set_text(self.fPD)
dPD.set_alignment(0.95)
dPJHl = gtk.Label('Puddle Jump Height')
dPJHl.set_alignment(0, 1)
dPJH = gtk.Entry()
dPJH.set_text(self.fPJH)
dPJH.set_alignment(0.95)
dPJDl = gtk.Label('Puddle Jump Delay')
dPJDl.set_alignment(0, 1)
dPJD = gtk.Entry()
dPJD.set_text(self.fPJD)
dPJD.set_alignment(0.95)
dCHl = gtk.Label('Cut Height')
dCHl.set_alignment(0, 1)
dCH = gtk.Entry()
dCH.set_text(self.fCH)
dCH.set_alignment(0.95)
dCSl = gtk.Label('Cut Speed')
dCSl.set_alignment(0, 1)
dCS = gtk.Entry()
dCS.set_text(self.fCS)
dCS.set_alignment(0.95)
dCAl = gtk.Label('Cut Amps')
dCAl.set_alignment(0, 1)
dCA = gtk.Entry()
dCA.set_text(self.fCA)
dCA.set_alignment(0.95)
dCVl = gtk.Label('Cut Volts')
dCVl.set_alignment(0, 1)
dCV = gtk.Entry()
dCV.set_text(self.fCV)
dCV.set_alignment(0.95)
if self.inManual.get_active():
dialog.vbox.add(dNUl)
dialog.vbox.add(dNU)
dialog.vbox.add(dNAl)
dialog.vbox.add(dNA)
dialog.vbox.add(dKWl)
dialog.vbox.add(dKW)
else:
dialog.vbox.add(infL)
dialog.vbox.add(dTHC)
dialog.vbox.add(dPHl)
dialog.vbox.add(dPH)
dialog.vbox.add(dPDl)
dialog.vbox.add(dPD)
dialog.vbox.add(dPJHl)
dialog.vbox.add(dPJH)
dialog.vbox.add(dPJDl)
dialog.vbox.add(dPJD)
dialog.vbox.add(dCHl)
dialog.vbox.add(dCH)
if self.inManual.get_active():
dialog.vbox.add(dCSl)
dialog.vbox.add(dCS)
dialog.vbox.add(dCAl)
dialog.vbox.add(dCA)
dialog.vbox.add(dCVl)
dialog.vbox.add(dCV)
dialog.show_all()
response = dialog.run()
if self.inManual.get_active():
self.fNUM = dNU.get_text()
self.fNAM = dNA.get_text()
self.fKW = dKW.get_text()
if dTHC.get_active():
self.fTHC = 1
else:
self.fTHC = 0
self.fPH = dPH.get_text()
self.fPD = dPD.get_text()
self.fPJH = dPJH.get_text()
self.fPJD = dPJD.get_text()
self.fCH = dCH.get_text()
if self.inManual.get_active():
self.fCS = dCS.get_text()
self.fCA = dCA.get_text()
self.fCV = dCV.get_text()
dialog.destroy()
return response
if __name__ == '__main__': if __name__ == '__main__':
try: try:

View file

@ -55,7 +55,7 @@
<object class="GtkTable" id="table5"> <object class="GtkTable" id="table5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="n_rows">7</property> <property name="n_rows">6</property>
<property name="n_columns">2</property> <property name="n_columns">2</property>
<property name="column_spacing">2</property> <property name="column_spacing">2</property>
<property name="row_spacing">2</property> <property name="row_spacing">2</property>
@ -285,64 +285,6 @@ from end of previous cut</property>
<property name="bottom_attach">5</property> <property name="bottom_attach">5</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="labelR300000">
<property name="width_request">55</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="HAL_CheckButton" id="ohmic-probe-enable">
<property name="width_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">enable/disable THC</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="labelC4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">skip IHS if start of next cut
is less than this distance
from end of previous cut</property>
<property name="xalign">0</property>
<property name="xpad">2</property>
<property name="label" translatable="yes">Ohmic Enable</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">6</property>
<property name="bottom_attach">7</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>

View file

@ -9,7 +9,6 @@ net plasmac:arc-voltage-scale plasmac_config.arc-voltage-scale-f =>
net plasmac:float-switch-travel plasmac_config.float-switch-travel-f => plasmac.float-switch-travel net plasmac:float-switch-travel plasmac_config.float-switch-travel-f => plasmac.float-switch-travel
net plasmac:height-per-volt plasmac_config.height-per-volt-f => plasmac.height-per-volt net plasmac:height-per-volt plasmac_config.height-per-volt-f => plasmac.height-per-volt
net plasmac:ohmic-max-attempts plasmac_config.ohmic-max-attempts-s => plasmac.ohmic-max-attempts net plasmac:ohmic-max-attempts plasmac_config.ohmic-max-attempts-s => plasmac.ohmic-max-attempts
net plasmac:ohmic-probe-enable plasmac_config.ohmic-probe-enable => plasmac.ohmic-probe-enable
net plasmac:pid-d-gain plasmac_config.pid-d-gain-f => plasmac.pid-d-gain net plasmac:pid-d-gain plasmac_config.pid-d-gain-f => plasmac.pid-d-gain
net plasmac:pid-i-gain plasmac_config.pid-i-gain-f => plasmac.pid-i-gain net plasmac:pid-i-gain plasmac_config.pid-i-gain-f => plasmac.pid-i-gain
net plasmac:probe-feed-rate plasmac_config.probe-feed-rate-f => plasmac.probe-feed-rate net plasmac:probe-feed-rate plasmac_config.probe-feed-rate-f => plasmac.probe-feed-rate

View file

@ -57,7 +57,6 @@ class HandlerClass:
self.builder.get_object('arc-voltage-scale').set_digits(6) self.builder.get_object('arc-voltage-scale').set_digits(6)
self.builder.get_object('arc-voltage-scale-adj').configure(1,-9999,9999,0.000001,0,0) self.builder.get_object('arc-voltage-scale-adj').configure(1,-9999,9999,0.000001,0,0)
self.builder.get_object('max-offset-velocity-in').set_label(str(int(self.thcFeedRate))) self.builder.get_object('max-offset-velocity-in').set_label(str(int(self.thcFeedRate)))
self.builder.get_object('ohmic-probe-enable').set_active(1)
self.builder.get_object('ohmic-max-attempts').set_digits(0) self.builder.get_object('ohmic-max-attempts').set_digits(0)
self.builder.get_object('ohmic-max-attempts-adj').configure(0,0,10,1,0,0) self.builder.get_object('ohmic-max-attempts-adj').configure(0,0,10,1,0,0)
self.builder.get_object('pid-i-gain').set_digits(0) self.builder.get_object('pid-i-gain').set_digits(0)

View file

@ -12,6 +12,7 @@ net plasmac:cut-height plasmac_run.cut-height-f => plas
net plasmac:cut-volts plasmac_run.cut-volts-f => plasmac.cut-volts net plasmac:cut-volts plasmac_run.cut-volts-f => plasmac.cut-volts
net plasmac:kerfcross-enable plasmac_run.kerfcross-enable => plasmac.kerfcross-enable net plasmac:kerfcross-enable plasmac_run.kerfcross-enable => plasmac.kerfcross-enable
net plasmac:kerfcross-override plasmac_run.kerfcross-override-f => plasmac.kerfcross-override net plasmac:kerfcross-override plasmac_run.kerfcross-override-f => plasmac.kerfcross-override
net plasmac:ohmic-probe-enable plasmac_run.ohmic-probe-enable => plasmac.ohmic-probe-enable
net plasmac:pid-p-gain plasmac_run.pid-p-gain-f => plasmac.pid-p-gain net plasmac:pid-p-gain plasmac_run.pid-p-gain-f => plasmac.pid-p-gain
net plasmac:pierce-delay plasmac_run.pierce-delay-f => plasmac.pierce-delay net plasmac:pierce-delay plasmac_run.pierce-delay-f => plasmac.pierce-delay
net plasmac:pierce-height plasmac_run.pierce-height-f => plasmac.pierce-height net plasmac:pierce-height plasmac_run.pierce-height-f => plasmac.pierce-height

View file

@ -231,6 +231,7 @@ class HandlerClass:
self.builder.get_object('kerfcross-enable').set_active(0) self.builder.get_object('kerfcross-enable').set_active(0)
self.builder.get_object('kerfcross-override').set_digits(0) self.builder.get_object('kerfcross-override').set_digits(0)
self.builder.get_object('kerfcross-override-adj').configure(100,10,500,1,0,0) self.builder.get_object('kerfcross-override-adj').configure(100,10,500,1,0,0)
self.builder.get_object('ohmic-probe-enable').set_active(1)
self.builder.get_object('pid-p-gain').set_digits(0) self.builder.get_object('pid-p-gain').set_digits(0)
self.builder.get_object('pid-p-gain-adj').configure(25,0,1000,1,0,0) self.builder.get_object('pid-p-gain-adj').configure(25,0,1000,1,0,0)
self.builder.get_object('pierce-delay').set_digits(1) self.builder.get_object('pierce-delay').set_digits(1)

View file

@ -109,7 +109,7 @@ Note: this also saves current cut parameters as the default</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
@ -616,11 +616,89 @@ set to 0 to disable</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">False</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkFrame" id="ohmic-frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0.05000000074505806</property>
<property name="shadow_type">out</property>
<child>
<object class="GtkAlignment" id="alignmentR1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<child>
<object class="GtkTable" id="kerf-box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="n_columns">3</property>
<property name="column_spacing">2</property>
<property name="row_spacing">2</property>
<child>
<object class="GtkLabel" id="labelR2">
<property name="width_request">55</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkLabel" id="labelR3">
<property name="width_request">128</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">enable/disable kerf crossing mode</property>
<property name="xalign">0</property>
<property name="xpad">2</property>
<property name="label" translatable="yes">Enabled</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_CheckButton" id="ohmic-probe-enable">
<property name="width_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">enable/disable kerf crossing mode</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="ohmic-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="label" translatable="yes">&lt;b&gt;Ohmic Probe&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child> <child>
<object class="GtkFrame" id="frameR3"> <object class="GtkFrame" id="frameR3">
<property name="visible">True</property> <property name="visible">True</property>
@ -932,9 +1010,9 @@ for mode 3 this is the percentage of max velocity used for THC</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">False</property>
<property name="position">2</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1200,9 +1278,9 @@ for mode 3 this is the percentage of max velocity used for THC</property>
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">False</property>
<property name="position">3</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1213,7 +1291,7 @@ for mode 3 this is the percentage of max velocity used for THC</property>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
</object> </object>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gladevcp 0.0 -->
<requires lib="gtk+" version="2.18"/> <requires lib="gtk+" version="2.18"/>
<!-- interface-requires gladevcp 0.0 -->
<!-- interface-naming-policy project-wide --> <!-- interface-naming-policy project-wide -->
<object class="GtkAdjustment" id="cornerlock-threshold-adj"/> <object class="GtkAdjustment" id="cornerlock-threshold-adj"/>
<object class="GtkAdjustment" id="cut-amps-adj"/> <object class="GtkAdjustment" id="cut-amps-adj"/>
@ -642,6 +642,82 @@ Note: this also saves current cut parameters as the default</property>
<object class="GtkVBox" id="vbox2"> <object class="GtkVBox" id="vbox2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<child>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">out</property>
<child>
<object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkTable" id="ohmic-box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="n_columns">3</property>
<property name="column_spacing">2</property>
<property name="row_spacing">2</property>
<child>
<object class="GtkLabel" id="labelR2">
<property name="width_request">55</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkLabel" id="labelR3">
<property name="width_request">128</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">enable/disable kerf crossing mode</property>
<property name="xalign">0</property>
<property name="xpad">2</property>
<property name="label" translatable="yes">Enabled</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
</packing>
</child>
<child>
<object class="HAL_CheckButton" id="ohmic-probe-enable">
<property name="width_request">20</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes">enable/disable kerf crossing mode</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;b&gt;Ohmic Probe&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child> <child>
<object class="GtkFrame" id="frameR3"> <object class="GtkFrame" id="frameR3">
<property name="visible">True</property> <property name="visible">True</property>
@ -957,7 +1033,7 @@ for mode 3 this is the percentage of max velocity used for THC</property>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">0</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -1225,7 +1301,7 @@ for mode 3 this is the percentage of max velocity used for THC</property>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

View file

@ -1047,7 +1047,7 @@ Files in the example configurations are:
|plasmac_gcode.py|removes z axis moves from the opened G-Code file |plasmac_gcode.py|removes z axis moves from the opened G-Code file
|plasmac_axis.py|python code to customise the Axis GUI |plasmac_axis.py|python code to customise the Axis GUI
|M190|for G-Code changing of materials |M190|for G-Code changing of materials
|materialverter.py|tool table file converter |materialverter.py|tool table converter and material file creator
|configurator.py|configure a new or upgrade an existing PlasmaC configuration |configurator.py|configure a new or upgrade an existing PlasmaC configuration
|=== |===
@ -1128,13 +1128,16 @@ Select the ini file of the PlasmaC configuration you wish to upgrade, click 'Upg
== Materialverter == Materialverter
This application is used to convert existing tool tables into PlasmaC material files. This application is used to convert existing tool tables into PlasmaC material files it can also create a material file from manual user input to entry fields.
At this stage the only conversion available is from SheetCam. At this stage the only conversions available are from SheetCam and Fusion 360.
Sheetcam tool tables are complete and the conversion is fully automatic.
Fusion 360 tool tables do not have all required fields so the user is prompted for missing parameters.
If you have a format you would like converted place a request in https://forum.linuxcnc.org/plasma-laser/35449-another-plasma-component[this LinuxCNC forum thread]: If you have a format you would like converted place a request in https://forum.linuxcnc.org/plasma-laser/35449-another-plasma-component[this LinuxCNC forum thread]:
Materialverter may be run from a GUI file manager by double clicking on 'materialverter.py' in your configuration directory or may be run from a terminal with the following command: Materialverter may be run from a GUI file manager by double clicking on 'materialverter.py' in your configuration directory or may be run from a terminal with the following command:
---- ----
@ -1143,15 +1146,27 @@ $ python ~/linuxcnc/configs/<machine-name>/materialverter.py
This will bring up the materialverter dialog: This will bring up the materialverter dialog:
image::images/plasmac_materialverter.png[width=400] image::images/plasmac_material_main.png[width=400]
For the Input File, select the tool table file you wish to convert. Select one of:
For the Output File, select the file that you wish to write. This would normally be ~/linuxcnc/configs/<machine-name>_material.cfg, although you could select a different file and hand edit your <machine-name>_material.cfg file. * Manual - to manually create a new material file.
Select whether you would like a metric or imperial output file. * SheetCam - to convert a SheetCam tool file.
Click Convert and your new material file will be written. * Fusion 360 - to convert a Fusion 360 tool file.
For SheetCam only, select whether you would like a metric or imperial output file.
For a conversion, select the Input File you wish to have converted.
Select the Output File you wish to write to, this would normally be ~/linuxcnc/configs/<machine-name>_material.cfg, although you could select a different file and hand edit your <machine-name>_material.cfg file.
Click Create/Convert and your new material file will be created.
For a Manual creation or a Fusion 360 conversion a dialog will show with any required parameters displayed for input.
image::images/plasmac_material_dialogs.png[width=300]
NOTE: If you select ~/linuxcnc/configs/<machine-name>_material.cfg then if this file already exists it will be overwritten. NOTE: If you select ~/linuxcnc/configs/<machine-name>_material.cfg then if this file already exists it will be overwritten.