added RFE 533 - Draft Array tool

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5256 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
yorikvanhavre
2011-12-10 18:31:32 +00:00
parent ac695ad67b
commit 57fa312673
6 changed files with 652 additions and 17 deletions

View File

@@ -544,6 +544,34 @@ def makeBlock(objectslist):
select(obj)
return obj
def makeArray(baseobject,arg1=Vector(0,0,0),arg2=360,arg3=4,arg4=None):
'''makeArray(object,xvector,yvector,xnum,ynum) for rectangular array, or
makeArray(object,center,totalangle,totalnum) for polar array: Creates an array
of the given object
with, in case of rectangular array, xnum of iterations in the x direction
at xvector distance between iterations, and same for y direction with yvector
and ynum. In case of polar array, center is a vector, totalangle is the angle
to cover (in degrees) and totalnum is the number of objects, including the original.
The result is a parametric Draft Array.'''
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython","Array")
_Array(obj)
_ViewProviderArray(obj.ViewObject)
obj.Base = baseobject
if arg4:
org.ArrayType = "ortho"
obj.IntervalX = arg1
obj.IntervalY = arg2
obj.NumberX = arg3
obj.NumberY = arg4
else:
obj.ArrayType = "polar"
obj.Center = arg1
obj.Angle = arg2
obj.NumberPolar = arg3
baseobject.ViewObject.hide()
select(obj)
return obj
def extrude(obj,vector):
'''makeExtrusion(object,vector): extrudes the given object
in the direction given by the vector. The original object
@@ -2181,3 +2209,88 @@ class _Shape2DView:
obj.Shape = visibleG0
if not fcgeo.isNull(pl):
obj.Placement = pl
class _Array:
"The Draft Array object"
def __init__(self,obj):
obj.addProperty("App::PropertyLink","Base","Base",
"The base object that must be duplicated")
obj.addProperty("App::PropertyEnumeration","ArrayType","Base",
"The type of array to create")
obj.addProperty("App::PropertyInteger","NumberX","Base",
"Number of copies in X direction (ortho arrays)")
obj.addProperty("App::PropertyInteger","NumberY","Base",
"Number of copies in Y direction (ortho arrays)")
obj.addProperty("App::PropertyInteger","NumberPolar","Base",
"Number of copies (polar arrays)")
obj.addProperty("App::PropertyVector","IntervalX","Base",
"Distance and orientation of intervals in X direction (ortho arrays)")
obj.addProperty("App::PropertyVector","IntervalY","Base",
"Distance and orientation of intervals in Y direction (ortho arrays)")
obj.addProperty("App::PropertyVector","Center","Base",
"Center point (polar arrays)")
obj.addProperty("App::PropertyAngle","Angle","Base",
"Angle to cover with copies (polar arrays)")
obj.Proxy = self
self.Type = "Array"
obj.ArrayType = ['ortho','polar']
obj.NumberX = 1
obj.NumberY = 1
obj.NumberPolar = 1
obj.IntervalX = Vector(1,0,0)
obj.IntervalY = Vector(0,1,0)
def execute(self,obj):
self.createGeometry(obj)
def onChanged(self,obj,prop):
if prop in ["ArrayType","NumberX","NumberY","NumberPolar","IntervalX","IntervalY","Angle","Center"]:
self.createGeometry(obj)
def createGeometry(self,obj):
if obj.Base:
pl = obj.Placement
if obj.ArrayType == "ortho":
sh = self.rectArray(obj.Base.Shape,obj.IntervalX,obj.IntervalY,obj.NumberX,obj.NumberY)
else:
sh = self.polarArray(obj.Base.Shape,obj.Center,obj.Angle,obj.NumberPolar)
obj.Shape = sh
if not fcgeo.isNull(pl):
obj.Placement = pl
def rectArray(self,shape,xvector,yvector,xnum,ynum):
base = [shape.copy()]
for xcount in range(xnum):
currentxvector=fcvec.scale(xvector,xcount)
if not xcount==0:
nshape = shape.copy()
nshape.translate(currentxvector)
base.append(nshape)
for ycount in range(ynum):
currentxvector=FreeCAD.Vector(currentxvector)
currentyvector=currentxvector.add(fcvec.scale(yvector,ycount))
if not ycount==0:
nshape = shape.copy()
nshape.translate(currentyvector)
base.append(nshape)
return Part.makeCompound(base)
def polarArray(self,shape,center,angle,num):
fraction = angle/num
base = [shape.copy()]
for i in range(num):
currangle = fraction + (i*fraction)
nshape = shape.copy()
nshape.rotate(fcvec.tup(center), (0,0,1), currangle)
base.append(nshape)
return Part.makeCompound(base)
class _ViewProviderArray(_ViewProviderDraft):
"A view provider for Array objects"
def __init__(self,obj):
_ViewProviderDraft.__init__(self,obj)
def claimChildren(self):
return [self.Object.Base]

View File

@@ -2,7 +2,7 @@
# Resource object code
#
# Created: Thu Dec 8 11:44:05 2011
# Created: Sat Dec 10 14:06:42 2011
# by: The Resource Compiler for PyQt (Qt v4.7.3)
#
# WARNING! All changes made in this file will be lost!
@@ -28329,6 +28329,371 @@ qt_resource_data = "\
\xe4\xb6\xce\x1c\x7a\x83\x62\xc0\x9d\x1d\x2b\xfd\xa2\xae\x9a\x4e\
\x16\xfb\x84\x01\x5f\x53\x93\xe0\x1e\xee\xfe\x0f\xea\x16\x2b\x89\
\
\x00\x00\x16\xaf\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
\x2d\x38\x22\x20\x73\x74\x61\x6e\x64\x61\x6c\x6f\x6e\x65\x3d\x22\
\x6e\x6f\x22\x3f\x3e\x0a\x3c\x21\x2d\x2d\x20\x43\x72\x65\x61\x74\
\x65\x64\x20\x77\x69\x74\x68\x20\x49\x6e\x6b\x73\x63\x61\x70\x65\
\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x69\x6e\x6b\
\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x29\x20\x2d\x2d\x3e\x0a\
\x0a\x3c\x73\x76\x67\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x64\
\x63\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\
\x72\x67\x2f\x64\x63\x2f\x65\x6c\x65\x6d\x65\x6e\x74\x73\x2f\x31\
\x2e\x31\x2f\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x63\x63\
\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x63\x72\x65\x61\x74\x69\x76\
\x65\x63\x6f\x6d\x6d\x6f\x6e\x73\x2e\x6f\x72\x67\x2f\x6e\x73\x23\
\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x72\x64\x66\x3d\x22\
\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\
\x67\x2f\x31\x39\x39\x39\x2f\x30\x32\x2f\x32\x32\x2d\x72\x64\x66\
\x2d\x73\x79\x6e\x74\x61\x78\x2d\x6e\x73\x23\x22\x0a\x20\x20\x20\
\x78\x6d\x6c\x6e\x73\x3a\x73\x76\x67\x3d\x22\x68\x74\x74\x70\x3a\
\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x32\x30\x30\
\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3d\
\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\
\x72\x67\x2f\x32\x30\x30\x30\x2f\x73\x76\x67\x22\x0a\x20\x20\x20\
\x78\x6d\x6c\x6e\x73\x3a\x78\x6c\x69\x6e\x6b\x3d\x22\x68\x74\x74\
\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x33\x2e\x6f\x72\x67\x2f\x31\
\x39\x39\x39\x2f\x78\x6c\x69\x6e\x6b\x22\x0a\x20\x20\x20\x78\x6d\
\x6c\x6e\x73\x3a\x73\x6f\x64\x69\x70\x6f\x64\x69\x3d\x22\x68\x74\
\x74\x70\x3a\x2f\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2e\x73\x6f\
\x75\x72\x63\x65\x66\x6f\x72\x67\x65\x2e\x6e\x65\x74\x2f\x44\x54\
\x44\x2f\x73\x6f\x64\x69\x70\x6f\x64\x69\x2d\x30\x2e\x64\x74\x64\
\x22\x0a\x20\x20\x20\x78\x6d\x6c\x6e\x73\x3a\x69\x6e\x6b\x73\x63\
\x61\x70\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\
\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x2f\x6e\x61\x6d\
\x65\x73\x70\x61\x63\x65\x73\x2f\x69\x6e\x6b\x73\x63\x61\x70\x65\
\x22\x0a\x20\x20\x20\x77\x69\x64\x74\x68\x3d\x22\x36\x34\x70\x78\
\x22\x0a\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x70\
\x78\x22\x0a\x20\x20\x20\x69\x64\x3d\x22\x73\x76\x67\x35\x38\x32\
\x31\x22\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x76\
\x65\x72\x73\x69\x6f\x6e\x3d\x22\x30\x2e\x33\x32\x22\x0a\x20\x20\
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x76\x65\x72\x73\x69\x6f\
\x6e\x3d\x22\x30\x2e\x34\x38\x2e\x31\x20\x72\x39\x37\x36\x30\x22\
\x0a\x20\x20\x20\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x64\x6f\x63\
\x6e\x61\x6d\x65\x3d\x22\x44\x72\x61\x66\x74\x5f\x44\x72\x61\x66\
\x74\x32\x53\x6b\x65\x74\x63\x68\x2e\x73\x76\x67\x22\x0a\x20\x20\
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6f\x75\x74\x70\x75\x74\
\x5f\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x3d\x22\x6f\x72\x67\x2e\
\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x75\x74\x70\x75\x74\x2e\
\x73\x76\x67\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x22\x0a\x20\x20\
\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x31\x22\x0a\x20\
\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\
\x74\x2d\x66\x69\x6c\x65\x6e\x61\x6d\x65\x3d\x22\x2f\x6d\x65\x64\
\x69\x61\x2f\x64\x61\x74\x61\x2f\x59\x6f\x72\x69\x6b\x2f\x46\x72\
\x65\x65\x43\x41\x44\x2f\x69\x63\x6f\x6e\x73\x2f\x53\x6b\x65\x74\
\x63\x68\x65\x72\x2e\x70\x6e\x67\x22\x0a\x20\x20\x20\x69\x6e\x6b\
\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x78\x64\x70\
\x69\x3d\x22\x34\x35\x22\x0a\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x79\x64\x70\x69\x3d\x22\
\x34\x35\x22\x3e\x0a\x20\x20\x3c\x64\x65\x66\x73\x0a\x20\x20\x20\
\x20\x20\x69\x64\x3d\x22\x64\x65\x66\x73\x35\x38\x32\x33\x22\x3e\
\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\
\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
\x63\x61\x70\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\
\x77\x61\x79\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\
\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x36\
\x33\x34\x39\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\
\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\
\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\
\x30\x30\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\
\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\
\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x36\x33\x35\x31\x22\
\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x73\x74\x6f\x70\x0a\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6c\x65\x3d\x22\
\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\
\x30\x30\x3b\x73\x74\x6f\x70\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\
\x30\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6f\x66\x66\
\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x36\x33\x35\x33\x22\x20\x2f\
\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\x6e\x65\x61\x72\x47\x72\
\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\
\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x0a\x20\x20\x20\x20\
\x20\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\
\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x3e\x0a\x20\x20\x20\x20\
\x20\x20\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\
\x6f\x72\x3a\x23\x30\x30\x31\x39\x61\x33\x3b\x73\x74\x6f\x70\x2d\
\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\
\x20\x20\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x30\x22\x0a\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\
\x70\x33\x33\x37\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x73\x74\x6f\x70\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\
\x74\x79\x6c\x65\x3d\x22\x73\x74\x6f\x70\x2d\x63\x6f\x6c\x6f\x72\
\x3a\x23\x30\x30\x36\x39\x66\x66\x3b\x73\x74\x6f\x70\x2d\x6f\x70\
\x61\x63\x69\x74\x79\x3a\x31\x3b\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x6f\x66\x66\x73\x65\x74\x3d\x22\x31\x22\x0a\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x73\x74\x6f\x70\x33\
\x33\x38\x31\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x6c\x69\
\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\x74\x3e\x0a\x20\x20\
\x20\x20\x3c\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6e\
\x74\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\
\x65\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\
\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\
\x68\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\
\x64\x69\x65\x6e\x74\x33\x33\x37\x37\x22\x0a\x20\x20\x20\x20\x20\
\x20\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\
\x69\x65\x6e\x74\x33\x33\x38\x33\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x78\x31\x3d\x22\x39\x30\x31\x2e\x31\x38\x37\x35\x22\x0a\x20\
\x20\x20\x20\x20\x20\x20\x79\x31\x3d\x22\x31\x31\x39\x30\x2e\x38\
\x37\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x32\x3d\x22\x31\
\x32\x36\x37\x2e\x39\x30\x36\x32\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x79\x32\x3d\x22\x31\x31\x39\x30\x2e\x38\x37\x35\x22\x0a\x20\
\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\
\x69\x74\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\
\x55\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\x64\
\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\
\x61\x74\x72\x69\x78\x28\x2d\x31\x2c\x30\x2c\x30\x2c\x31\x2c\x32\
\x31\x39\x39\x2e\x33\x35\x36\x2c\x30\x29\x22\x20\x2f\x3e\x0a\x20\
\x20\x20\x20\x3c\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\
\x73\x70\x65\x63\x74\x69\x76\x65\x0a\x20\x20\x20\x20\x20\x20\x20\
\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x74\x79\x70\x65\x3d\x22\x69\
\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\x64\x22\
\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
\x3a\x76\x70\x5f\x78\x3d\x22\x30\x20\x3a\x20\x33\x32\x20\x3a\x20\
\x31\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
\x70\x65\x3a\x76\x70\x5f\x79\x3d\x22\x30\x20\x3a\x20\x31\x30\x30\
\x30\x20\x3a\x20\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\
\x6b\x73\x63\x61\x70\x65\x3a\x76\x70\x5f\x7a\x3d\x22\x36\x34\x20\
\x3a\x20\x33\x32\x20\x3a\x20\x31\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x70\x65\x72\x73\x70\x33\
\x64\x2d\x6f\x72\x69\x67\x69\x6e\x3d\x22\x33\x32\x20\x3a\x20\x32\
\x31\x2e\x33\x33\x33\x33\x33\x33\x20\x3a\x20\x31\x22\x0a\x20\x20\
\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x70\x65\x72\x73\x70\x65\x63\
\x74\x69\x76\x65\x35\x38\x32\x39\x22\x20\x2f\x3e\x0a\x20\x20\x20\
\x20\x3c\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\x65\x6e\x74\
\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
\x3a\x63\x6f\x6c\x6c\x65\x63\x74\x3d\x22\x61\x6c\x77\x61\x79\x73\
\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x78\x6c\x69\x6e\x6b\x3a\x68\
\x72\x65\x66\x3d\x22\x23\x6c\x69\x6e\x65\x61\x72\x47\x72\x61\x64\
\x69\x65\x6e\x74\x36\x33\x34\x39\x22\x0a\x20\x20\x20\x20\x20\x20\
\x20\x69\x64\x3d\x22\x72\x61\x64\x69\x61\x6c\x47\x72\x61\x64\x69\
\x65\x6e\x74\x36\x33\x35\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\
\x63\x78\x3d\x22\x31\x31\x30\x33\x2e\x36\x33\x39\x39\x22\x0a\x20\
\x20\x20\x20\x20\x20\x20\x63\x79\x3d\x22\x31\x34\x32\x34\x2e\x34\
\x34\x36\x35\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x66\x78\x3d\x22\
\x31\x31\x30\x33\x2e\x36\x33\x39\x39\x22\x0a\x20\x20\x20\x20\x20\
\x20\x20\x66\x79\x3d\x22\x31\x34\x32\x34\x2e\x34\x34\x36\x35\x22\
\x0a\x20\x20\x20\x20\x20\x20\x20\x72\x3d\x22\x31\x39\x34\x2e\x34\
\x30\x36\x31\x34\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x67\x72\x61\
\x64\x69\x65\x6e\x74\x54\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\
\x6d\x61\x74\x72\x69\x78\x28\x2d\x31\x2e\x34\x33\x30\x37\x34\x39\
\x39\x2c\x2d\x31\x2e\x33\x36\x30\x35\x31\x35\x36\x65\x2d\x37\x2c\
\x2d\x31\x2e\x32\x30\x32\x37\x31\x33\x65\x2d\x38\x2c\x30\x2e\x31\
\x32\x36\x34\x38\x30\x31\x2c\x32\x36\x37\x34\x2e\x37\x34\x38\x38\
\x2c\x31\x32\x34\x34\x2e\x32\x38\x32\x36\x29\x22\x0a\x20\x20\x20\
\x20\x20\x20\x20\x67\x72\x61\x64\x69\x65\x6e\x74\x55\x6e\x69\x74\
\x73\x3d\x22\x75\x73\x65\x72\x53\x70\x61\x63\x65\x4f\x6e\x55\x73\
\x65\x22\x20\x2f\x3e\x0a\x20\x20\x3c\x2f\x64\x65\x66\x73\x3e\x0a\
\x20\x20\x3c\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x61\x6d\x65\
\x64\x76\x69\x65\x77\x0a\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x62\
\x61\x73\x65\x22\x0a\x20\x20\x20\x20\x20\x70\x61\x67\x65\x63\x6f\
\x6c\x6f\x72\x3d\x22\x23\x66\x66\x66\x66\x66\x66\x22\x0a\x20\x20\
\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x63\x6f\x6c\x6f\x72\x3d\x22\
\x23\x36\x36\x36\x36\x36\x36\x22\x0a\x20\x20\x20\x20\x20\x62\x6f\
\x72\x64\x65\x72\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x31\x2e\x30\
\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
\x70\x61\x67\x65\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x30\x2e\x30\
\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
\x70\x61\x67\x65\x73\x68\x61\x64\x6f\x77\x3d\x22\x32\x22\x0a\x20\
\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x7a\x6f\x6f\
\x6d\x3d\x22\x33\x2e\x38\x38\x39\x30\x38\x37\x33\x22\x0a\x20\x20\
\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x78\x3d\x22\
\x32\x38\x2e\x33\x33\x36\x32\x39\x39\x22\x0a\x20\x20\x20\x20\x20\
\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x63\x79\x3d\x22\x32\x30\x2e\
\x37\x35\x33\x33\x37\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\
\x63\x61\x70\x65\x3a\x63\x75\x72\x72\x65\x6e\x74\x2d\x6c\x61\x79\
\x65\x72\x3d\x22\x67\x33\x33\x36\x30\x22\x0a\x20\x20\x20\x20\x20\
\x73\x68\x6f\x77\x67\x72\x69\x64\x3d\x22\x74\x72\x75\x65\x22\x0a\
\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x64\x6f\
\x63\x75\x6d\x65\x6e\x74\x2d\x75\x6e\x69\x74\x73\x3d\x22\x70\x78\
\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
\x67\x72\x69\x64\x2d\x62\x62\x6f\x78\x3d\x22\x74\x72\x75\x65\x22\
\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\
\x69\x6e\x64\x6f\x77\x2d\x77\x69\x64\x74\x68\x3d\x22\x31\x32\x38\
\x30\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\
\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x68\x65\x69\x67\x68\x74\x3d\x22\
\x37\x35\x38\x22\x0a\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\
\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\x2d\x78\x3d\x22\x30\x22\x0a\
\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\
\x6e\x64\x6f\x77\x2d\x79\x3d\x22\x31\x39\x22\x0a\x20\x20\x20\x20\
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x77\x69\x6e\x64\x6f\x77\
\x2d\x6d\x61\x78\x69\x6d\x69\x7a\x65\x64\x3d\x22\x31\x22\x20\x2f\
\x3e\x0a\x20\x20\x3c\x6d\x65\x74\x61\x64\x61\x74\x61\x0a\x20\x20\
\x20\x20\x20\x69\x64\x3d\x22\x6d\x65\x74\x61\x64\x61\x74\x61\x35\
\x38\x32\x36\x22\x3e\x0a\x20\x20\x20\x20\x3c\x72\x64\x66\x3a\x52\
\x44\x46\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x63\x63\x3a\x57\x6f\
\x72\x6b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x64\x66\x3a\
\x61\x62\x6f\x75\x74\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x20\x20\x3c\x64\x63\x3a\x66\x6f\x72\x6d\x61\x74\x3e\x69\x6d\x61\
\x67\x65\x2f\x73\x76\x67\x2b\x78\x6d\x6c\x3c\x2f\x64\x63\x3a\x66\
\x6f\x72\x6d\x61\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\
\x64\x63\x3a\x74\x79\x70\x65\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20\x72\x64\x66\x3a\x72\x65\x73\x6f\x75\x72\x63\x65\x3d\
\x22\x68\x74\x74\x70\x3a\x2f\x2f\x70\x75\x72\x6c\x2e\x6f\x72\x67\
\x2f\x64\x63\x2f\x64\x63\x6d\x69\x74\x79\x70\x65\x2f\x53\x74\x69\
\x6c\x6c\x49\x6d\x61\x67\x65\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\
\x20\x20\x20\x20\x3c\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x3c\x2f\
\x64\x63\x3a\x74\x69\x74\x6c\x65\x3e\x0a\x20\x20\x20\x20\x20\x20\
\x3c\x2f\x63\x63\x3a\x57\x6f\x72\x6b\x3e\x0a\x20\x20\x20\x20\x3c\
\x2f\x72\x64\x66\x3a\x52\x44\x46\x3e\x0a\x20\x20\x3c\x2f\x6d\x65\
\x74\x61\x64\x61\x74\x61\x3e\x0a\x20\x20\x3c\x67\x0a\x20\x20\x20\
\x20\x20\x69\x64\x3d\x22\x6c\x61\x79\x65\x72\x31\x22\x0a\x20\x20\
\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x6c\x61\x62\x65\
\x6c\x3d\x22\x4c\x61\x79\x65\x72\x20\x31\x22\x0a\x20\x20\x20\x20\
\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\x67\x72\x6f\x75\x70\x6d\
\x6f\x64\x65\x3d\x22\x6c\x61\x79\x65\x72\x22\x3e\x0a\x20\x20\x20\
\x20\x3c\x67\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x67\
\x33\x33\x36\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\
\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x66\x69\x6c\
\x65\x6e\x61\x6d\x65\x3d\x22\x2f\x68\x6f\x6d\x65\x2f\x79\x6f\x72\
\x69\x6b\x2f\x44\x6f\x63\x75\x6d\x65\x6e\x74\x73\x2f\x4c\x61\x62\
\x2f\x44\x72\x61\x66\x74\x2f\x69\x63\x6f\x6e\x73\x2f\x64\x72\x61\
\x66\x74\x2e\x70\x6e\x67\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x69\
\x6e\x6b\x73\x63\x61\x70\x65\x3a\x65\x78\x70\x6f\x72\x74\x2d\x78\
\x64\x70\x69\x3d\x22\x33\x2e\x32\x34\x37\x38\x31\x35\x36\x22\x0a\
\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
\x65\x78\x70\x6f\x72\x74\x2d\x79\x64\x70\x69\x3d\x22\x33\x2e\x32\
\x34\x37\x38\x31\x35\x36\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x74\
\x72\x61\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\
\x28\x30\x2e\x31\x33\x36\x37\x38\x36\x33\x2c\x30\x2c\x30\x2c\x30\
\x2e\x31\x33\x36\x37\x38\x36\x33\x2c\x2d\x31\x31\x39\x2e\x31\x35\
\x35\x31\x39\x2c\x2d\x31\x33\x34\x2e\x38\x36\x39\x36\x32\x29\x22\
\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x70\x61\x74\x68\x0a\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x6b\x73\x63\x61\x70\x65\x3a\
\x63\x6f\x6e\x6e\x65\x63\x74\x6f\x72\x2d\x63\x75\x72\x76\x61\x74\
\x75\x72\x65\x3d\x22\x30\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x73\x74\x79\x6c\x65\x3d\x22\x6f\x70\x61\x63\x69\x74\x79\x3a\
\x30\x2e\x34\x37\x33\x34\x35\x31\x33\x32\x3b\x63\x6f\x6c\x6f\x72\
\x3a\x23\x30\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x30\
\x30\x30\x30\x30\x30\x3b\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\
\x74\x79\x3a\x31\x3b\x66\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\
\x76\x65\x6e\x6f\x64\x64\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x6e\x6f\
\x6e\x65\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\
\x31\x31\x2e\x39\x30\x35\x31\x37\x35\x32\x31\x3b\x6d\x61\x72\x6b\
\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\x69\x62\x69\x6c\x69\
\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x64\x69\x73\x70\x6c\
\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\x76\x65\x72\x66\x6c\
\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\x65\x6e\x61\x62\x6c\
\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x61\x63\x63\
\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x64\x3d\x22\x6d\x20\x31\x30\x39\x35\x2e\x33\x35\x33\x33\
\x2c\x31\x30\x33\x34\x2e\x34\x31\x38\x39\x20\x30\x2c\x31\x31\x36\
\x2e\x35\x31\x33\x38\x20\x35\x38\x2e\x39\x34\x32\x33\x2c\x30\x20\
\x30\x2c\x2d\x31\x31\x36\x2e\x35\x31\x33\x38\x20\x2d\x35\x38\x2e\
\x39\x34\x32\x33\x2c\x30\x20\x7a\x20\x6d\x20\x2d\x39\x30\x2e\x36\
\x39\x38\x31\x2c\x33\x38\x2e\x38\x33\x37\x39\x20\x2d\x34\x31\x2e\
\x38\x30\x37\x38\x39\x2c\x34\x31\x2e\x35\x37\x39\x35\x20\x38\x32\
\x2e\x34\x37\x33\x35\x39\x2c\x38\x32\x2e\x32\x34\x35\x31\x20\x34\
\x31\x2e\x35\x37\x39\x34\x2c\x2d\x34\x31\x2e\x35\x37\x39\x35\x20\
\x2d\x38\x32\x2e\x32\x34\x35\x31\x2c\x2d\x38\x32\x2e\x32\x34\x35\
\x31\x20\x7a\x20\x6d\x20\x32\x34\x37\x2e\x34\x32\x30\x37\x2c\x33\
\x2e\x38\x38\x33\x38\x20\x2d\x38\x32\x2e\x32\x34\x35\x31\x2c\x38\
\x32\x2e\x32\x34\x35\x31\x20\x34\x31\x2e\x35\x37\x39\x34\x2c\x34\
\x31\x2e\x35\x37\x39\x34\x20\x38\x32\x2e\x34\x37\x33\x36\x2c\x2d\
\x38\x32\x2e\x32\x34\x35\x20\x2d\x34\x31\x2e\x38\x30\x37\x39\x2c\
\x2d\x34\x31\x2e\x35\x37\x39\x35\x20\x7a\x20\x6d\x20\x2d\x33\x33\
\x34\x2e\x32\x33\x34\x39\x32\x2c\x31\x33\x36\x2e\x33\x38\x39\x38\
\x20\x30\x2c\x35\x38\x2e\x39\x34\x32\x33\x20\x31\x31\x36\x2e\x32\
\x38\x35\x34\x32\x2c\x30\x20\x30\x2c\x2d\x35\x38\x2e\x39\x34\x32\
\x33\x20\x2d\x31\x31\x36\x2e\x32\x38\x35\x34\x32\x2c\x30\x20\x7a\
\x20\x6d\x20\x32\x39\x34\x2e\x30\x32\x36\x31\x32\x2c\x30\x20\x30\
\x2c\x35\x38\x2e\x39\x34\x32\x33\x20\x31\x31\x36\x2e\x32\x38\x35\
\x35\x2c\x30\x20\x30\x2c\x2d\x35\x38\x2e\x39\x34\x32\x33\x20\x2d\
\x31\x31\x36\x2e\x32\x38\x35\x35\x2c\x30\x20\x7a\x20\x6d\x20\x30\
\x2e\x36\x38\x35\x34\x2c\x36\x37\x2e\x33\x39\x35\x32\x20\x2d\x34\
\x31\x2e\x35\x37\x39\x34\x2c\x34\x31\x2e\x38\x30\x38\x20\x38\x32\
\x2e\x32\x34\x35\x2c\x38\x32\x2e\x32\x34\x35\x20\x34\x31\x2e\x35\
\x37\x39\x35\x2c\x2d\x34\x31\x2e\x35\x37\x39\x34\x20\x2d\x38\x32\
\x2e\x32\x34\x35\x31\x2c\x2d\x38\x32\x2e\x34\x37\x33\x36\x20\x7a\
\x20\x6d\x20\x2d\x31\x36\x38\x2e\x31\x34\x35\x35\x2c\x34\x2e\x31\
\x31\x32\x33\x20\x2d\x38\x32\x2e\x34\x37\x33\x35\x32\x2c\x38\x32\
\x2e\x32\x34\x35\x31\x20\x34\x31\x2e\x38\x30\x37\x39\x32\x2c\x34\
\x31\x2e\x38\x30\x37\x39\x20\x38\x32\x2e\x32\x34\x35\x31\x2c\x2d\
\x38\x32\x2e\x34\x37\x33\x35\x20\x2d\x34\x31\x2e\x35\x37\x39\x35\
\x2c\x2d\x34\x31\x2e\x35\x37\x39\x35\x20\x7a\x20\x6d\x20\x35\x31\
\x2e\x31\x37\x34\x37\x2c\x34\x33\x2e\x34\x30\x37\x31\x20\x30\x2c\
\x31\x31\x36\x2e\x32\x38\x35\x34\x20\x35\x38\x2e\x39\x34\x32\x34\
\x2c\x30\x20\x30\x2c\x2d\x31\x31\x36\x2e\x32\x38\x35\x34\x20\x2d\
\x35\x38\x2e\x39\x34\x32\x34\x2c\x30\x20\x7a\x22\x0a\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x33\x30\
\x30\x35\x2d\x37\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\
\x70\x61\x74\x68\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\
\x79\x6c\x65\x3d\x22\x63\x6f\x6c\x6f\x72\x3a\x23\x30\x30\x30\x30\
\x30\x30\x3b\x66\x69\x6c\x6c\x3a\x23\x32\x65\x37\x36\x66\x66\x3b\
\x66\x69\x6c\x6c\x2d\x6f\x70\x61\x63\x69\x74\x79\x3a\x31\x3b\x66\
\x69\x6c\x6c\x2d\x72\x75\x6c\x65\x3a\x65\x76\x65\x6e\x6f\x64\x64\
\x3b\x73\x74\x72\x6f\x6b\x65\x3a\x23\x30\x30\x30\x33\x34\x33\x3b\
\x73\x74\x72\x6f\x6b\x65\x2d\x77\x69\x64\x74\x68\x3a\x31\x2e\x36\
\x32\x38\x34\x36\x34\x38\x32\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6c\
\x69\x6e\x65\x63\x61\x70\x3a\x62\x75\x74\x74\x3b\x73\x74\x72\x6f\
\x6b\x65\x2d\x6c\x69\x6e\x65\x6a\x6f\x69\x6e\x3a\x72\x6f\x75\x6e\
\x64\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6d\x69\x74\x65\x72\x6c\x69\
\x6d\x69\x74\x3a\x34\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x6f\x70\x61\
\x63\x69\x74\x79\x3a\x31\x3b\x73\x74\x72\x6f\x6b\x65\x2d\x64\x61\
\x73\x68\x61\x72\x72\x61\x79\x3a\x6e\x6f\x6e\x65\x3b\x73\x74\x72\
\x6f\x6b\x65\x2d\x64\x61\x73\x68\x6f\x66\x66\x73\x65\x74\x3a\x30\
\x3b\x6d\x61\x72\x6b\x65\x72\x3a\x6e\x6f\x6e\x65\x3b\x76\x69\x73\
\x69\x62\x69\x6c\x69\x74\x79\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\
\x64\x69\x73\x70\x6c\x61\x79\x3a\x69\x6e\x6c\x69\x6e\x65\x3b\x6f\
\x76\x65\x72\x66\x6c\x6f\x77\x3a\x76\x69\x73\x69\x62\x6c\x65\x3b\
\x65\x6e\x61\x62\x6c\x65\x2d\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
\x64\x3a\x61\x63\x63\x75\x6d\x75\x6c\x61\x74\x65\x22\x0a\x20\x20\
\x20\x20\x20\x20\x20\x20\x20\x64\x3d\x22\x4d\x20\x32\x38\x2e\x31\
\x32\x35\x20\x33\x2e\x34\x33\x37\x35\x20\x4c\x20\x32\x38\x2e\x31\
\x32\x35\x20\x31\x39\x2e\x33\x37\x35\x20\x4c\x20\x33\x36\x2e\x31\
\x38\x37\x35\x20\x31\x39\x2e\x33\x37\x35\x20\x4c\x20\x33\x36\x2e\
\x31\x38\x37\x35\x20\x33\x2e\x34\x33\x37\x35\x20\x4c\x20\x32\x38\
\x2e\x31\x32\x35\x20\x33\x2e\x34\x33\x37\x35\x20\x7a\x20\x4d\x20\
\x31\x35\x2e\x37\x31\x38\x37\x35\x20\x38\x2e\x37\x35\x20\x4c\x20\
\x31\x30\x20\x31\x34\x2e\x34\x33\x37\x35\x20\x4c\x20\x32\x31\x2e\
\x32\x38\x31\x32\x35\x20\x32\x35\x2e\x36\x38\x37\x35\x20\x4c\x20\
\x32\x36\x2e\x39\x36\x38\x37\x35\x20\x32\x30\x20\x4c\x20\x31\x35\
\x2e\x37\x31\x38\x37\x35\x20\x38\x2e\x37\x35\x20\x7a\x20\x4d\x20\
\x34\x39\x2e\x35\x36\x32\x35\x20\x39\x2e\x32\x38\x31\x32\x35\x20\
\x4c\x20\x33\x38\x2e\x33\x31\x32\x35\x20\x32\x30\x2e\x35\x33\x31\
\x32\x35\x20\x4c\x20\x34\x34\x20\x32\x36\x2e\x32\x31\x38\x37\x35\
\x20\x4c\x20\x35\x35\x2e\x32\x38\x31\x32\x35\x20\x31\x34\x2e\x39\
\x36\x38\x37\x35\x20\x4c\x20\x34\x39\x2e\x35\x36\x32\x35\x20\x39\
\x2e\x32\x38\x31\x32\x35\x20\x7a\x20\x4d\x20\x33\x2e\x38\x34\x33\
\x37\x35\x20\x32\x37\x2e\x39\x33\x37\x35\x20\x4c\x20\x33\x2e\x38\
\x34\x33\x37\x35\x20\x33\x36\x20\x4c\x20\x31\x39\x2e\x37\x35\x20\
\x33\x36\x20\x4c\x20\x31\x39\x2e\x37\x35\x20\x32\x37\x2e\x39\x33\
\x37\x35\x20\x4c\x20\x33\x2e\x38\x34\x33\x37\x35\x20\x32\x37\x2e\
\x39\x33\x37\x35\x20\x7a\x20\x4d\x20\x34\x34\x2e\x30\x36\x32\x35\
\x20\x32\x37\x2e\x39\x33\x37\x35\x20\x4c\x20\x34\x34\x2e\x30\x36\
\x32\x35\x20\x33\x36\x20\x4c\x20\x35\x39\x2e\x39\x36\x38\x37\x35\
\x20\x33\x36\x20\x4c\x20\x35\x39\x2e\x39\x36\x38\x37\x35\x20\x32\
\x37\x2e\x39\x33\x37\x35\x20\x4c\x20\x34\x34\x2e\x30\x36\x32\x35\
\x20\x32\x37\x2e\x39\x33\x37\x35\x20\x7a\x20\x4d\x20\x34\x34\x2e\
\x31\x35\x36\x32\x35\x20\x33\x37\x2e\x31\x35\x36\x32\x35\x20\x4c\
\x20\x33\x38\x2e\x34\x36\x38\x37\x35\x20\x34\x32\x2e\x38\x37\x35\
\x20\x4c\x20\x34\x39\x2e\x37\x31\x38\x37\x35\x20\x35\x34\x2e\x31\
\x32\x35\x20\x4c\x20\x35\x35\x2e\x34\x30\x36\x32\x35\x20\x34\x38\
\x2e\x34\x33\x37\x35\x20\x4c\x20\x34\x34\x2e\x31\x35\x36\x32\x35\
\x20\x33\x37\x2e\x31\x35\x36\x32\x35\x20\x7a\x20\x4d\x20\x32\x31\
\x2e\x31\x35\x36\x32\x35\x20\x33\x37\x2e\x37\x31\x38\x37\x35\x20\
\x4c\x20\x39\x2e\x38\x37\x35\x20\x34\x38\x2e\x39\x36\x38\x37\x35\
\x20\x4c\x20\x31\x35\x2e\x35\x39\x33\x37\x35\x20\x35\x34\x2e\x36\
\x38\x37\x35\x20\x4c\x20\x32\x36\x2e\x38\x34\x33\x37\x35\x20\x34\
\x33\x2e\x34\x30\x36\x32\x35\x20\x4c\x20\x32\x31\x2e\x31\x35\x36\
\x32\x35\x20\x33\x37\x2e\x37\x31\x38\x37\x35\x20\x7a\x20\x4d\x20\
\x32\x38\x2e\x31\x35\x36\x32\x35\x20\x34\x33\x2e\x36\x35\x36\x32\
\x35\x20\x4c\x20\x32\x38\x2e\x31\x35\x36\x32\x35\x20\x35\x39\x2e\
\x35\x36\x32\x35\x20\x4c\x20\x33\x36\x2e\x32\x31\x38\x37\x35\x20\
\x35\x39\x2e\x35\x36\x32\x35\x20\x4c\x20\x33\x36\x2e\x32\x31\x38\
\x37\x35\x20\x34\x33\x2e\x36\x35\x36\x32\x35\x20\x4c\x20\x32\x38\
\x2e\x31\x35\x36\x32\x35\x20\x34\x33\x2e\x36\x35\x36\x32\x35\x20\
\x7a\x20\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x61\
\x6e\x73\x66\x6f\x72\x6d\x3d\x22\x6d\x61\x74\x72\x69\x78\x28\x37\
\x2e\x33\x31\x30\x36\x37\x33\x37\x2c\x30\x2c\x30\x2c\x37\x2e\x33\
\x31\x30\x36\x37\x33\x37\x2c\x38\x37\x31\x2e\x31\x30\x34\x37\x31\
\x2c\x39\x38\x35\x2e\x39\x38\x37\x37\x38\x29\x22\x0a\x20\x20\x20\
\x20\x20\x20\x20\x20\x20\x69\x64\x3d\x22\x72\x65\x63\x74\x33\x30\
\x30\x35\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x67\x3e\x0a\
\x20\x20\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
\x00\x00\x0a\xb0\
\x00\
\x00\x39\x7d\x78\x9c\xed\x5a\xdb\x8e\xdb\x46\x12\x7d\xf7\x57\x70\
@@ -31170,6 +31535,10 @@ qt_resource_name = "\
\x00\x44\
\x00\x72\x00\x61\x00\x66\x00\x74\x00\x5f\x00\x53\x00\x77\x00\x69\x00\x74\x00\x63\x00\x68\x00\x4d\x00\x6f\x00\x64\x00\x65\x00\x2e\
\x00\x73\x00\x76\x00\x67\
\x00\x0f\
\x07\x41\x05\xe7\
\x00\x44\
\x00\x72\x00\x61\x00\x66\x00\x74\x00\x5f\x00\x41\x00\x72\x00\x72\x00\x61\x00\x79\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x0e\
\x00\x7f\x01\x67\
\x00\x44\
@@ -31231,8 +31600,8 @@ qt_resource_name = "\
qt_resource_struct = "\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x01\
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x02\x00\x00\x00\x3d\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x23\x00\x00\x00\x1a\
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x02\x00\x00\x00\x3e\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x24\x00\x00\x00\x1a\
\x00\x00\x00\x38\x00\x02\x00\x00\x00\x05\x00\x00\x00\x15\
\x00\x00\x00\x1a\x00\x02\x00\x00\x00\x10\x00\x00\x00\x05\
\x00\x00\x02\x72\x00\x01\x00\x00\x00\x01\x00\x05\x98\x94\
@@ -31256,41 +31625,42 @@ qt_resource_struct = "\
\x00\x00\x00\x64\x00\x00\x00\x00\x00\x01\x00\x00\x01\x64\
\x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x04\xc4\
\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x03\x12\
\x00\x00\x06\x74\x00\x01\x00\x00\x00\x01\x00\x06\xe3\xa8\
\x00\x00\x06\x98\x00\x01\x00\x00\x00\x01\x00\x06\xfa\x5b\
\x00\x00\x05\xa6\x00\x00\x00\x00\x00\x01\x00\x06\xa0\xce\
\x00\x00\x06\xe2\x00\x01\x00\x00\x00\x01\x00\x07\x08\xda\
\x00\x00\x07\x06\x00\x01\x00\x00\x00\x01\x00\x07\x1f\x8d\
\x00\x00\x03\x66\x00\x01\x00\x00\x00\x01\x00\x06\x03\x81\
\x00\x00\x03\xf0\x00\x00\x00\x00\x00\x01\x00\x06\x23\xea\
\x00\x00\x04\x60\x00\x01\x00\x00\x00\x01\x00\x06\x4c\xaf\
\x00\x00\x05\x26\x00\x01\x00\x00\x00\x01\x00\x06\x78\xfc\
\x00\x00\x05\xc8\x00\x00\x00\x00\x00\x01\x00\x06\xaf\x84\
\x00\x00\x06\xb6\x00\x01\x00\x00\x00\x01\x00\x06\xf7\xd0\
\x00\x00\x06\xda\x00\x01\x00\x00\x00\x01\x00\x07\x0e\x83\
\x00\x00\x05\x02\x00\x01\x00\x00\x00\x01\x00\x06\x6e\x90\
\x00\x00\x04\x86\x00\x01\x00\x00\x00\x01\x00\x06\x52\x73\
\x00\x00\x03\xbc\x00\x01\x00\x00\x00\x01\x00\x06\x17\xf9\
\x00\x00\x07\x54\x00\x01\x00\x00\x00\x01\x00\x07\x28\x2e\
\x00\x00\x07\x78\x00\x01\x00\x00\x00\x01\x00\x07\x3e\xe1\
\x00\x00\x04\xdc\x00\x01\x00\x00\x00\x01\x00\x06\x64\xfc\
\x00\x00\x02\xe2\x00\x00\x00\x00\x00\x01\x00\x05\xe1\x20\
\x00\x00\x03\x34\x00\x01\x00\x00\x00\x01\x00\x05\xfb\xc8\
\x00\x00\x06\x74\x00\x00\x00\x00\x00\x01\x00\x06\xe3\xa8\
\x00\x00\x06\x46\x00\x01\x00\x00\x00\x01\x00\x06\xdb\xc3\
\x00\x00\x04\x18\x00\x00\x00\x00\x00\x01\x00\x06\x33\x3b\
\x00\x00\x05\x56\x00\x00\x00\x00\x00\x01\x00\x06\x84\xd5\
\x00\x00\x04\x3c\x00\x01\x00\x00\x00\x01\x00\x06\x46\x12\
\x00\x00\x03\x04\x00\x01\x00\x00\x00\x01\x00\x05\xf3\x39\
\x00\x00\x07\x04\x00\x01\x00\x00\x00\x01\x00\x07\x11\x83\
\x00\x00\x08\x14\x00\x00\x00\x00\x00\x01\x00\x07\x73\x35\
\x00\x00\x07\xf2\x00\x01\x00\x00\x00\x01\x00\x07\x65\xd6\
\x00\x00\x07\x76\x00\x01\x00\x00\x00\x01\x00\x07\x32\x90\
\x00\x00\x07\x9e\x00\x00\x00\x00\x00\x01\x00\x07\x3c\x41\
\x00\x00\x07\x28\x00\x01\x00\x00\x00\x01\x00\x07\x28\x36\
\x00\x00\x08\x38\x00\x00\x00\x00\x00\x01\x00\x07\x89\xe8\
\x00\x00\x08\x16\x00\x01\x00\x00\x00\x01\x00\x07\x7c\x89\
\x00\x00\x07\x9a\x00\x01\x00\x00\x00\x01\x00\x07\x49\x43\
\x00\x00\x07\xc2\x00\x00\x00\x00\x00\x01\x00\x07\x52\xf4\
\x00\x00\x05\x7c\x00\x01\x00\x00\x00\x01\x00\x06\x96\x8d\
\x00\x00\x06\x16\x00\x01\x00\x00\x00\x01\x00\x06\xd1\xf0\
\x00\x00\x03\x94\x00\x01\x00\x00\x00\x01\x00\x06\x0c\x87\
\x00\x00\x05\xee\x00\x01\x00\x00\x00\x01\x00\x06\xc2\x1a\
\x00\x00\x04\xb2\x00\x01\x00\x00\x00\x01\x00\x06\x5a\x7a\
\x00\x00\x08\x3a\x00\x01\x00\x00\x00\x01\x00\x07\x7d\xe0\
\x00\x00\x07\x28\x00\x00\x00\x00\x00\x01\x00\x07\x18\xd4\
\x00\x00\x06\x96\x00\x01\x00\x00\x00\x01\x00\x06\xee\x5c\
\x00\x00\x07\xc0\x00\x00\x00\x00\x00\x01\x00\x07\x50\xd2\
\x00\x00\x08\x5e\x00\x01\x00\x00\x00\x01\x00\x07\x94\x93\
\x00\x00\x07\x4c\x00\x00\x00\x00\x00\x01\x00\x07\x2f\x87\
\x00\x00\x06\xba\x00\x01\x00\x00\x00\x01\x00\x07\x05\x0f\
\x00\x00\x07\xe4\x00\x00\x00\x00\x00\x01\x00\x07\x67\x85\
\x00\x00\x02\x8e\x00\x01\x00\x00\x00\x01\x00\x05\xcc\x17\
\x00\x00\x02\xba\x00\x01\x00\x00\x00\x01\x00\x05\xd3\xa8\
"

View File

@@ -191,7 +191,7 @@ class DraftWorkbench (Workbench):
self.modList = ["Draft_Move","Draft_Rotate","Draft_Offset",
"Draft_Trimex", "Draft_Upgrade", "Draft_Downgrade", "Draft_Scale",
"Draft_Drawing","Draft_Edit","Draft_WireToBSpline","Draft_AddPoint",
"Draft_DelPoint","Draft_Shape2DView","Draft_Draft2Sketch"]
"Draft_DelPoint","Draft_Shape2DView","Draft_Draft2Sketch","Draft_Array"]
self.treecmdList = ["Draft_ApplyStyle","Draft_ToggleDisplayMode","Draft_AddToGroup","Draft_SelectGroup"]
self.lineList = ["Draft_UndoLine","Draft_FinishLine","Draft_CloseLine"]
self.appendToolbar(str(draftTools.translate("draft","Draft tools")),self.cmdList+self.modList)

View File

@@ -35,6 +35,7 @@
<file>icons/Draft_2DShapeView.svg</file>
<file>icons/Draft_Wipe.svg</file>
<file>icons/Draft_Draft2Sketch.svg</file>
<file>icons/Draft_Array.svg</file>
<file>patterns/concrete.svg</file>
<file>patterns/cross.svg</file>
<file>patterns/line.svg</file>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -4474,6 +4474,25 @@ class Draft2Sketch():
Draft.draftify(sel,makeblock=True)
FreeCAD.ActiveDocument.commitTransaction()
class Array():
"The Shape2DView FreeCAD command definition"
def GetResources(self):
return {'Pixmap' : 'Draft_Array',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Array", "Array"),
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Draft_Array", "Creates a polar or rectangular array from a selected object")}
def IsActive(self):
if len(Draft.getSelection()) == 1:
return True
else:
return False
def Activated(self):
obj = Draft.getSelection()[0]
FreeCAD.ActiveDocument.openTransaction("Array")
Draft.makeArray(obj)
FreeCAD.ActiveDocument.commitTransaction()
#---------------------------------------------------------------------------
# Adds the icons & commands to the FreeCAD command manager, and sets defaults
@@ -4505,6 +4524,7 @@ FreeCADGui.addCommand('Draft_AddPoint',AddPoint())
FreeCADGui.addCommand('Draft_DelPoint',DelPoint())
FreeCADGui.addCommand('Draft_WireToBSpline',WireToBSpline())
FreeCADGui.addCommand('Draft_Draft2Sketch',Draft2Sketch())
FreeCADGui.addCommand('Draft_Array',Array())
# context commands
FreeCADGui.addCommand('Draft_FinishLine',FinishLine())