Import LinuxCNC source tree
This commit is contained in:
138
configs/sim/axis/plasma/plasmac2/lib/conv_rectangle.py
Normal file
138
configs/sim/axis/plasma/plasmac2/lib/conv_rectangle.py
Normal file
@@ -0,0 +1,138 @@
|
||||
'''
|
||||
conv_rectangle.py
|
||||
|
||||
Copyright (C) 2020, 2021, 2022 Phillip A Carter
|
||||
Copyright (C) 2020, 2021, 2022 Gregory D Carl
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
'''
|
||||
|
||||
import os, sys
|
||||
import gettext
|
||||
from importlib import reload
|
||||
from plasmac import rectangle as RECTANGLE
|
||||
|
||||
for f in sys.path:
|
||||
if '/lib/python' in f:
|
||||
if '/usr' in f:
|
||||
localeDir = 'usr/share/locale'
|
||||
else:
|
||||
localeDir = os.path.join(f"{f.split('/lib')[0]}",'share','locale')
|
||||
break
|
||||
gettext.install('linuxcnc', localedir=localeDir)
|
||||
|
||||
|
||||
def preview(self):
|
||||
matNum = int(self.matCombo.get().split(':')[0])
|
||||
matNam = self.matCombo.get().split(':')[1].strip()
|
||||
isCenter = self.spbValue.get() == _('CENTER')
|
||||
isExternal = self.ctbValue.get() == _('EXTERNAL')
|
||||
isOvercut = self.ocButton['state'] == 'normal' and self.ocbValue.get() == _('ON')
|
||||
kerfWidth = self.materials[matNum]['kerf_width']
|
||||
styles = [None, 'extRadius', 'extRadius', 'extRadius', 'extRadius']
|
||||
values = [None, self.r1bValue.get(), self.r2bValue.get(), self.r3bValue.get(), self.r4bValue.get()]
|
||||
for n in range(1, 5):
|
||||
if values[n].startswith(_('CHAMFER')):
|
||||
styles[n] = 'chamfer'
|
||||
elif values[n].startswith(_('iRADIUS')):
|
||||
styles[n] = 'intRadius'
|
||||
error = RECTANGLE.preview(self, self.fTmp, self.fNgc, self.fNgcBkp, \
|
||||
matNum, matNam, \
|
||||
self.preAmble, self.postAmble, \
|
||||
self.liValue.get(), self.loValue.get(), \
|
||||
isCenter, self.xsValue.get(), self.ysValue.get(), \
|
||||
kerfWidth, isExternal, \
|
||||
self.wValue.get(), self.hValue.get(), self.aValue.get(), \
|
||||
styles[1], styles[2], styles[3], styles[4], \
|
||||
self.r1Value.get(), self.r2Value.get(), self.r3Value.get(), self.r4Value.get(),
|
||||
self.r1bValue.get(), self.r2bValue.get(), self.r3bValue.get(), self.r4bValue.get())
|
||||
if error:
|
||||
self.dialog_show_ok(_('Rectangle Error'), error)
|
||||
else:
|
||||
self.fileOpener(self.fNgc, True, False)
|
||||
self.addC['state'] = 'normal'
|
||||
self.undoC['state'] = 'normal'
|
||||
self.preview_button_pressed(True)
|
||||
|
||||
def auto_preview(self):
|
||||
if self.wValue.get() and self.hValue.get():
|
||||
preview(self)
|
||||
|
||||
def radius_button_pressed(self, value, sequence):
|
||||
if value.get().split()[0] == _('RADIUS'):
|
||||
text = _('CHAMFER')
|
||||
elif value.get().split()[0] == _('CHAMFER'):
|
||||
text = _('iRADIUS')
|
||||
else:
|
||||
text = _('RADIUS')
|
||||
value.set(f'{text} {sequence}')
|
||||
auto_preview(self)
|
||||
|
||||
def widgets(self):
|
||||
if self.comp['development']:
|
||||
reload(RECTANGLE)
|
||||
# start settings
|
||||
if not self.settingsExited:
|
||||
self.wValue.set('')
|
||||
self.hValue.set('')
|
||||
self.aValue.set('')
|
||||
self.r1Value.set('')
|
||||
self.r1bValue.set(_('RADIUS 1'))
|
||||
self.r2Value.set('')
|
||||
self.r2bValue.set(_('RADIUS 2'))
|
||||
self.r3Value.set('')
|
||||
self.r3bValue.set(_('RADIUS 3'))
|
||||
self.r4Value.set('')
|
||||
self.r4bValue.set(_('RADIUS 4'))
|
||||
#connections
|
||||
self.ctButton['command'] = lambda:self.cut_type_clicked()
|
||||
self.spButton['command'] = lambda:self.start_point_clicked()
|
||||
self.previewC['command'] = lambda:preview(self)
|
||||
self.r1Button['command'] = lambda:radius_button_pressed(self, self.r1bValue, '1')
|
||||
self.r2Button['command'] = lambda:radius_button_pressed(self, self.r2bValue, '2')
|
||||
self.r3Button['command'] = lambda:radius_button_pressed(self, self.r3bValue, '3')
|
||||
self.r4Button['command'] = lambda:radius_button_pressed(self, self.r4bValue, '4')
|
||||
#add to layout
|
||||
self.matLabel.grid(column=0, row=0, pady=(4,0), sticky='e')
|
||||
self.matCombo.grid(column=1, row=0, pady=(4,0), columnspan=3, sticky='ew')
|
||||
self.spLabel.grid(column=0, row=1, pady=(4,0), sticky='e')
|
||||
self.spButton.grid(column=1, row=1, pady=(4,0))
|
||||
self.ctLabel.grid(column=2, row=1, pady=(4,0), sticky='e')
|
||||
self.ctButton.grid(column=3, row=1, pady=(4,0))
|
||||
self.xsLabel.grid(column=0, row=2, pady=(4,0), sticky='e')
|
||||
self.xsEntry.grid(column=1, row=2, pady=(4,0))
|
||||
self.ysLabel.grid(column=2, row=2, pady=(4,0), sticky='e')
|
||||
self.ysEntry.grid(column=3, row=2, pady=(4,0))
|
||||
self.liLabel.grid(column=0, row=3, pady=(4,0), sticky='e')
|
||||
self.liEntry.grid(column=1, row=3, pady=(4,0))
|
||||
self.loLabel.grid(column=2, row=3, pady=(4,0), sticky='e')
|
||||
self.loEntry.grid(column=3, row=3, pady=(4,0))
|
||||
self.wLabel.grid(column=0, row=4, pady=(4,0), sticky='e')
|
||||
self.wEntry.grid(column=1, row=4, pady=(4,0))
|
||||
self.hLabel.grid(column=2, row=4, pady=(4,0), sticky='e')
|
||||
self.hEntry.grid(column=3, row=4, pady=(4,0))
|
||||
self.aLabel.grid(column=0, row=5, pady=(4,0), sticky='e')
|
||||
self.aEntry.grid(column=1, row=5, pady=(4,0))
|
||||
self.r1Button.grid(column=0, row=6, pady=(4,0), sticky='e')
|
||||
self.r1Entry.grid(column=1, row=6, pady=(4,0))
|
||||
self.r2Button.grid(column=2, row=6, pady=(4,0), sticky='e')
|
||||
self.r2Entry.grid(column=3, row=6, pady=(4,0))
|
||||
self.r3Button.grid(column=0, row=7, pady=(4,0), sticky='e')
|
||||
self.r3Entry.grid(column=1, row=7, pady=(4,0))
|
||||
self.r4Button.grid(column=2, row=7, pady=(4,0), sticky='e')
|
||||
self.r4Entry.grid(column=3, row=7, pady=(4,0))
|
||||
# finish setup
|
||||
self.wEntry.focus()
|
||||
self.settingsExited = False
|
||||
Reference in New Issue
Block a user