Solves seed painting problem in issue #102.

This commit is contained in:
jpcaram 2015-01-21 09:50:01 -05:00
parent 0cee5d95cc
commit fd2657a8d7
2 changed files with 15 additions and 15 deletions

View File

@ -1,8 +1,6 @@
import traceback
import sys import sys
import urllib import urllib
import getopt import getopt
from copy import copy
import random import random
import logging import logging
import simplejson as json import simplejson as json
@ -10,9 +8,8 @@ import re
import webbrowser import webbrowser
import os import os
import Tkinter import Tkinter
import re
from PyQt4 import QtCore from PyQt4 import QtCore
import time import time # Just used for debugging. Double check before removing.
######################################## ########################################
## Imports part of FlatCAM ## ## Imports part of FlatCAM ##
@ -61,7 +58,7 @@ class App(QtCore.QObject):
log.addHandler(handler) log.addHandler(handler)
## Version ## Version
version = 8.1 version = 8.11
version_date = "2015/01" version_date = "2015/01"
## URL for update checks and statistics ## URL for update checks and statistics
@ -616,17 +613,18 @@ class App(QtCore.QObject):
cmdfcn = commands[parts[0]]["fcn"] cmdfcn = commands[parts[0]]["fcn"]
cmdconv = commands[parts[0]]["converters"] cmdconv = commands[parts[0]]["converters"]
if len(parts)-1 > 0: if len(parts) - 1 > 0:
retval = cmdfcn(*[cmdconv[i](parts[i+1]) for i in range(len(parts)-1)]) retval = cmdfcn(*[cmdconv[i](parts[i + 1]) for i in range(len(parts)-1)])
else: else:
retval = cmdfcn() retval = cmdfcn()
retfcn = commands[parts[0]]["retfcn"] retfcn = commands[parts[0]]["retfcn"]
if retval and retfcn(retval): if retval and retfcn(retval):
self.shell.append_output(retfcn(retval) + "\n") self.shell.append_output(retfcn(retval) + "\n")
except: except Exception, e:
self.shell.append_error(''.join(traceback.format_exc())) #self.shell.append_error(''.join(traceback.format_exc()))
#self.shell.append_error("?\n") #self.shell.append_error("?\n")
self.shell.append_error(str(e) + "\n")
def info(self, msg): def info(self, msg):
""" """
@ -1172,7 +1170,9 @@ class App(QtCore.QObject):
# Keep this for later # Keep this for later
try: try:
name = copy(self.collection.get_active().options["name"]) #name = copy(self.collection.get_active().options["name"])
# Shouldn't need to copy. String are immutable.
name = self.collection.get_active().options["name"]
except AttributeError: except AttributeError:
self.log.debug("Nothing selected for deletion") self.log.debug("Nothing selected for deletion")
return return

View File

@ -329,10 +329,6 @@ class Geometry(object):
:return: :return:
""" """
# Estimate good seedpoint if not provided.
if seedpoint is None:
seedpoint = polygon.representative_point()
# Current buffer radius # Current buffer radius
radius = tooldia / 2 * (1 - overlap) radius = tooldia / 2 * (1 - overlap)
@ -342,6 +338,10 @@ class Geometry(object):
# Path margin # Path margin
path_margin = polygon.buffer(-tooldia / 2) path_margin = polygon.buffer(-tooldia / 2)
# Estimate good seedpoint if not provided.
if seedpoint is None:
seedpoint = path_margin.representative_point()
# Grow from seed until outside the box. # Grow from seed until outside the box.
while 1: while 1:
path = Point(seedpoint).buffer(radius).exterior path = Point(seedpoint).buffer(radius).exterior
@ -3091,7 +3091,7 @@ def parse_gerber_number(strnumber, frac_digits):
:return: The number in floating point. :return: The number in floating point.
:rtype: float :rtype: float
""" """
return int(strnumber)*(10**(-frac_digits)) return int(strnumber) * (10 ** (-frac_digits))
# def voronoi(P): # def voronoi(P):