implement command aligndrillgrid, which creates grid of holes to bed
This commit is contained in:
@@ -2238,6 +2238,61 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
return 'Ok'
|
return 'Ok'
|
||||||
|
|
||||||
|
def aligndrillgrid(outname, *args):
|
||||||
|
a, kwa = h(*args)
|
||||||
|
types = {'gridx': float,
|
||||||
|
'gridy': float,
|
||||||
|
'gridoffsetx': float,
|
||||||
|
'gridoffsety': float,
|
||||||
|
'columns':int,
|
||||||
|
'rows':int,
|
||||||
|
'dia': float
|
||||||
|
}
|
||||||
|
for key in kwa:
|
||||||
|
if key not in types:
|
||||||
|
return 'Unknown parameter: %s' % key
|
||||||
|
kwa[key] = types[key](kwa[key])
|
||||||
|
|
||||||
|
|
||||||
|
if 'columns' not in kwa or 'rows' not in kwa:
|
||||||
|
return "ERROR: Specify -columns and -rows"
|
||||||
|
|
||||||
|
if 'gridx' not in kwa or 'gridy' not in kwa:
|
||||||
|
return "ERROR: Specify -gridx and -gridy"
|
||||||
|
|
||||||
|
if 'dia' not in kwa:
|
||||||
|
return "ERROR: Specify -dia"
|
||||||
|
|
||||||
|
if 'gridoffsetx' not in kwa:
|
||||||
|
gridoffsetx=0
|
||||||
|
else:
|
||||||
|
gridoffsetx=kwa['gridoffsetx']
|
||||||
|
|
||||||
|
if 'gridoffsety' not in kwa:
|
||||||
|
gridoffsety=0
|
||||||
|
else:
|
||||||
|
gridoffsety=kwa['gridoffsety']
|
||||||
|
|
||||||
|
|
||||||
|
# Tools
|
||||||
|
tools = {"1": {"C": kwa['dia']}}
|
||||||
|
|
||||||
|
def aligndrillgrid_init_me(init_obj, app_obj):
|
||||||
|
drills = []
|
||||||
|
currenty=0
|
||||||
|
for row in range(kwa['rows']):
|
||||||
|
currentx=0
|
||||||
|
for col in range(kwa['columns']):
|
||||||
|
point = Point(currentx-gridoffsetx,currenty-gridoffsety)
|
||||||
|
drills.append({"point": point, "tool": "1"})
|
||||||
|
currentx=currentx+kwa['gridx']
|
||||||
|
currenty=currenty+kwa['gridy']
|
||||||
|
init_obj.tools = tools
|
||||||
|
init_obj.drills = drills
|
||||||
|
init_obj.create_geometry()
|
||||||
|
|
||||||
|
self.new_object("excellon", outname , aligndrillgrid_init_me)
|
||||||
|
|
||||||
def aligndrill(name, *args):
|
def aligndrill(name, *args):
|
||||||
a, kwa = h(*args)
|
a, kwa = h(*args)
|
||||||
types = {'box': str,
|
types = {'box': str,
|
||||||
@@ -3067,6 +3122,19 @@ class App(QtCore.QObject):
|
|||||||
" axis: Mirror axis parallel to the X or Y axis.\n" +
|
" axis: Mirror axis parallel to the X or Y axis.\n" +
|
||||||
" dist: Distance of the mirror axis to the X or Y axis."
|
" dist: Distance of the mirror axis to the X or Y axis."
|
||||||
},
|
},
|
||||||
|
'aligndrillgrid': {
|
||||||
|
'fcn': aligndrillgrid,
|
||||||
|
'help': "Create excellon with drills for aligment grid.\n" +
|
||||||
|
"> aligndrillgrid <outname> [-dia <3.0 (float)>] -gridx <float> [-gridoffsetx <0 (float)>] -gridy <float> [-gridoffsety <0 (float)>] -columns <int> -rows <int>\n" +
|
||||||
|
" outname: Name of the object to create.\n" +
|
||||||
|
" dia: Tool diameter\n" +
|
||||||
|
" gridx: grid size in X axis\n" +
|
||||||
|
" gridoffsetx: move grid from origin\n" +
|
||||||
|
" gridy: grid size in Y axis\n" +
|
||||||
|
" gridoffsety: move grid from origin\n" +
|
||||||
|
" colums: grid holes on X axis\n" +
|
||||||
|
" rows: grid holes on Y axis\n"
|
||||||
|
},
|
||||||
'aligndrill': {
|
'aligndrill': {
|
||||||
'fcn': aligndrill,
|
'fcn': aligndrill,
|
||||||
'help': "Create excellon with drills for aligment.\n" +
|
'help': "Create excellon with drills for aligment.\n" +
|
||||||
|
|||||||
Reference in New Issue
Block a user