Fixed error in circle tangent extension
This commit is contained in:
parent
42b57852d4
commit
5d6248e21e
@ -104,11 +104,6 @@ def getPathData(obj):
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
def stockErrorMsg(bygtrac):
|
|
||||||
inkex.errormsg("Please select exactly two circles and try again! %s" % bygtrac)
|
|
||||||
exit()
|
|
||||||
|
|
||||||
class Tangent(inkex.Effect):
|
class Tangent(inkex.Effect):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
inkex.Effect.__init__(self)
|
inkex.Effect.__init__(self)
|
||||||
@ -117,14 +112,12 @@ class Tangent(inkex.Effect):
|
|||||||
|
|
||||||
def effect(self):
|
def effect(self):
|
||||||
if len(self.options.ids) != 2:
|
if len(self.options.ids) != 2:
|
||||||
stockErrorMsg("1")
|
inkex.errormsg("Please select exactly two circles and try again!")
|
||||||
|
return
|
||||||
|
|
||||||
c1object = self.svg.selected[self.options.ids[0]]
|
c1object = self.svg.selected[self.options.ids[0]]
|
||||||
c2object = self.svg.selected[self.options.ids[1]]
|
c2object = self.svg.selected[self.options.ids[1]]
|
||||||
|
|
||||||
#if c1object.get(inkex.addNS("type", "sodipodi")) != "arc" or c2object.get(inkex.addNS("type", "sodipodi")) != "arc":
|
|
||||||
# stockErrorMsg("2")#PROBLEM HERE!
|
|
||||||
|
|
||||||
c1 = getPathData(c1object)
|
c1 = getPathData(c1object)
|
||||||
c2 = getPathData(c2object)
|
c2 = getPathData(c2object)
|
||||||
|
|
||||||
@ -150,12 +143,21 @@ class Tangent(inkex.Effect):
|
|||||||
|
|
||||||
# Test whether the circles are actually circles!
|
# Test whether the circles are actually circles!
|
||||||
if c1['rx'] != c1['ry'] or c2['rx'] != c2['ry']:
|
if c1['rx'] != c1['ry'] or c2['rx'] != c2['ry']:
|
||||||
stockErrorMsg("One or both objects may be elliptical. Ensure you have circles!")
|
inkex.errormsg("One or both objects may be elliptical. Ensure you have circles!")
|
||||||
|
return
|
||||||
|
|
||||||
# Hypotenus of the triangle - Euclidean distance between c1 x, y and c2 x, y.
|
# Hypotenus of the triangle - Euclidean distance between c1 x, y and c2 x, y.
|
||||||
h = deuclid(c1['x'], c1['y'], c2['x'], c2['y'])
|
h = deuclid(c1['x'], c1['y'], c2['x'], c2['y'])
|
||||||
b = c3r
|
b = c3r
|
||||||
B = getAngle(b, h)
|
B = None
|
||||||
|
try:
|
||||||
|
B = getAngle(b, h)
|
||||||
|
except ValueError as e:
|
||||||
|
if self.options.position == "inner":
|
||||||
|
inkex.errormsg("Error calculating angle. Maybe your circles are overlapping each other")
|
||||||
|
else:
|
||||||
|
inkex.errormsg("Error calculating angle.")
|
||||||
|
return
|
||||||
a = aLength(b, h)
|
a = aLength(b, h)
|
||||||
# Angle of hypotenuse to x-axis
|
# Angle of hypotenuse to x-axis
|
||||||
E = getAngle(max(c1['y'], c2['y']) - min(c1['y'], c2['y']), h)
|
E = getAngle(max(c1['y'], c2['y']) - min(c1['y'], c2['y']), h)
|
||||||
|
Reference in New Issue
Block a user