Arch: Frame object - fixes #1166, #1314

This commit is contained in:
Yorik van Havre 2013-12-22 17:18:11 -02:00
parent d83cec2be2
commit 90a80da1cd
10 changed files with 2419 additions and 7 deletions

View File

@ -42,3 +42,4 @@ from ArchRoof import *
from ArchSpace import *
from ArchStairs import *
from ArchRebar import *
from ArchFrame import *

149
src/Mod/Arch/ArchFrame.py Normal file
View File

@ -0,0 +1,149 @@
#***************************************************************************
#* *
#* Copyright (c) 2013 *
#* Yorik van Havre <yorik@uncreated.net> *
#* *
#* This program is free software; you can redistribute it and/or modify *
#* it under the terms of the GNU Lesser General Public License (LGPL) *
#* as published by the Free Software Foundation; either version 2 of *
#* the License, or (at your option) any later version. *
#* for detail see the LICENCE text file. *
#* *
#* 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 Library General Public License for more details. *
#* *
#* You should have received a copy of the GNU Library General Public *
#* License along with this program; if not, write to the Free Software *
#* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
#* USA *
#* *
#***************************************************************************
import FreeCAD,FreeCADGui,Draft,ArchComponent,DraftVecUtils,ArchCommands
from FreeCAD import Vector
from PyQt4 import QtCore
from DraftTools import translate
__title__="FreeCAD Arch Frame"
__author__ = "Yorik van Havre"
__url__ = "http://www.freecadweb.org"
def makeFrame(base,profile,name="Frame"):
"""makeFrame(base,profile,[name]): creates a frame object from a base sketch (or any other object
containing wires) and a profile object (an extrudable 2D object containing faces or closed wires)"""
obj = FreeCAD.ActiveDocument.addObject("Part::FeaturePython",name)
_Frame(obj)
_ViewProviderFrame(obj.ViewObject)
obj.Base = base
obj.Profile = profile
#profile.ViewObject.hide()
class _CommandFrame:
"the Arch Frame command definition"
def GetResources(self):
return {'Pixmap' : 'Arch_Frame',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Arch_Frame","Frame"),
'Accel': "F, R",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Arch_Frame","Creates a frame object from a planar 2D object and a profile")}
def Activated(self):
s = FreeCADGui.Selection.getSelection()
if len(s) == 2:
FreeCAD.ActiveDocument.openTransaction(str(translate("Arch","Create Frame")))
FreeCADGui.doCommand("import Arch")
FreeCADGui.doCommand("Arch.makeFrame(FreeCAD.ActiveDocument."+s[0].Name+",FreeCAD.ActiveDocument."+s[1].Name+")")
FreeCAD.ActiveDocument.commitTransaction()
FreeCAD.ActiveDocument.recompute()
class _Frame(ArchComponent.Component):
"A parametric frame object"
def __init__(self,obj):
ArchComponent.Component.__init__(self,obj)
obj.addProperty("App::PropertyLink","Profile","Arch","The profile used to build this frame")
obj.addProperty("App::PropertyBool","Align","Arch","Specifies if the profile must be aligned with the extrusion wires")
obj.addProperty("App::PropertyVector","Offset","Arch","An offset vector between the base sketch and the frame")
obj.addProperty("App::PropertyAngle","Rotation","Arch","The rotation of the profile around its extrusion axis")
self.Type = "Frame"
def execute(self,obj):
if not obj.Base:
return
if not obj.Base.Shape:
return
if not obj.Base.Shape.Wires:
return
pl = obj.Placement
if obj.Base.Shape.Solids:
obj.Shape = obj.Base.Shape.copy()
if not pl.isNull():
obj.Placement = obj.Shape.Placement.multiply(pl)
else:
if not obj.Profile:
return
if not obj.Profile.isDerivedFrom("Part::Part2DObject"):
return
if not obj.Profile.Shape:
return
if not obj.Profile.Shape.Wires:
return
if not obj.Profile.Shape.Faces:
for w in obj.Profile.Shape.Wires:
if not w.isClosed():
return
import DraftGeomUtils, Part, math
baseprofile = obj.Profile.Shape.copy()
if not baseprofile.Faces:
f = []
for w in baseprofile.Wires:
f.append(Part.Face(w))
if len(f) == 1:
baseprofile = f[0]
else:
baseprofile = Part.makeCompound(f)
shapes = []
normal = DraftGeomUtils.getNormal(obj.Base.Shape)
for wire in obj.Base.Shape.Wires:
e = wire.Edges[0]
bvec = DraftGeomUtils.vec(e)
bpoint = e.Vertexes[0].Point
profile = baseprofile.copy()
profile.translate(bpoint.sub(profile.Placement.Base))
if obj.Align:
axis = profile.Placement.Rotation.multVec(FreeCAD.Vector(0,0,1))
angle = bvec.getAngle(axis)
if round(angle,Draft.precision()) != 0:
if round(angle,Draft.precision()) != round(math.pi,Draft.precision()):
rotaxis = axis.cross(bvec)
profile.rotate(DraftVecUtils.tup(bpoint), DraftVecUtils.tup(rotaxis), math.degrees(angle))
if obj.Rotation:
profile.rotate(DraftVecUtils.tup(bpoint), DraftVecUtils.tup(FreeCAD.Vector(bvec).normalize()), obj.Rotation)
#profile = wire.makePipeShell([profile],True,False,2) TODO buggy
profile = profile.extrude(bvec)
if obj.Offset:
if not DraftVecUtils.isNull(obj.Offset):
profile.translate(obj.Offset)
shapes.append(profile)
if shapes:
obj.Shape = Part.makeCompound(shapes)
obj.Placement = pl
class _ViewProviderFrame(ArchComponent.ViewProviderComponent):
"A View Provider for the Frame object"
def __init__(self,vobj):
ArchComponent.ViewProviderComponent.__init__(self,vobj)
def getIcon(self):
import Arch_rc
return ":/icons/Arch_Frame_Tree.svg"
FreeCADGui.addCommand('Arch_Frame',_CommandFrame())

View File

@ -132,7 +132,7 @@ class _Rebar(ArchComponent.Component):
obj.addProperty("App::PropertyLength","Spacing","Arch","The spacing between the bars")
obj.addProperty("App::PropertyVector","Direction","Arch","The direction to use to spread the bars. Keep (0,0,0) for automatic direction.")
obj.addProperty("App::PropertyFloat","Rounding","Arch","The fillet to apply to the angle of the base profile. This value is multiplied by the bar diameter.")
self.Type = "Component"
self.Type = "Rebar"
obj.setEditorMode("Spacing",1)
def getBaseAndAxis(self,obj):
@ -192,7 +192,7 @@ class _Rebar(ArchComponent.Component):
circle = Part.makeCircle(obj.Diameter/2,bpoint,bvec)
circle = Part.Wire(circle)
try:
bar = wire.makePipeShell([circle],1,0,2)
bar = wire.makePipeShell([circle],True,False,2)
except:
print "Arch: error sweeping rebar profile along the base sketch"
return

View File

@ -2,7 +2,7 @@
# Resource object code
#
# Created: Tue Dec 17 17:13:28 2013
# Created: Sun Dec 22 12:22:05 2013
# by: The Resource Compiler for PyQt (Qt v4.8.6)
#
# WARNING! All changes made in this file will be lost!
@ -34916,6 +34916,189 @@ qt_resource_data = "\
\xfa\x01\xcb\x1b\x20\xbe\x55\x40\xec\x3c\x84\xc0\x36\x9f\xb2\x33\
\xfb\x45\x1e\x42\x9c\x06\xc4\xcb\x67\xef\x17\xb3\xe5\xd5\xd9\x85\
\x3d\x98\xbb\x3a\xfb\x2f\x8c\x82\xb2\xa5\
\x00\x00\x0b\x45\
\x00\
\x00\x66\x1c\x78\x9c\xed\x5c\x59\x6f\xdb\xca\x15\x7e\xf7\xaf\x60\
\x95\x97\x04\x15\x47\xb3\x2f\xf2\x72\x51\x34\xc8\xc5\x05\x5a\x14\
\xe8\x4d\xd0\xc7\x82\x16\x47\x36\x1b\x89\x14\x28\xca\xb2\xf3\xeb\
\x7b\x86\xda\x48\x9b\x92\x25\x4a\x26\x15\xc4\x36\x0c\x93\xb3\x70\
\x86\xe7\x7c\xe7\x3b\x67\x16\xce\xd5\x6f\x8f\xe3\x91\xf7\x60\xd3\
\x69\x94\xc4\xd7\x1d\x82\x70\xc7\xb3\xf1\x20\x09\xa3\xf8\xee\xba\
\xf3\xed\xeb\x17\x5f\x77\xbc\x69\x16\xc4\x61\x30\x4a\x62\x7b\xdd\
\x89\x93\xce\x6f\x37\x17\x57\x7f\xf1\x7d\xef\xef\xa9\x0d\x32\x1b\
\x7a\xf3\x28\xbb\xf7\xfe\x88\xbf\x4f\x07\xc1\xc4\x7a\x1f\xef\xb3\
\x6c\xd2\xef\xf5\xe6\xf3\x39\x8a\x96\x89\x28\x49\xef\x7a\x9f\x3c\
\xdf\xbf\xb9\xb8\xb8\x9a\x3e\xdc\x5d\x78\x9e\x07\xed\xc6\xd3\x7e\
\x38\xb8\xee\x2c\x2b\x4c\x66\xe9\x28\x2f\x18\x0e\x7a\x76\x64\xc7\
\x36\xce\xa6\x3d\x82\x48\xaf\xb3\x29\x3e\xd8\x14\x1f\xb8\xd6\xa3\
\x07\x3b\x48\xc6\xe3\x24\x9e\xe6\x35\xe3\xe9\x87\x42\xe1\x34\x1c\
\xae\x4b\xbb\xde\xcc\x59\x5e\x88\x18\x63\x7a\x98\xf6\x28\xf5\xa1\
\x84\x3f\x7d\x8a\xb3\xe0\xd1\x2f\x57\x85\x3e\x56\x55\xa5\x18\xe3\
\x1e\xe4\x6d\x4a\xee\x57\xaa\xff\x38\x02\x51\x6c\xed\x4c\x9e\x5b\
\x6c\x1d\xc4\x3f\x81\xbf\x75\x85\x55\x02\x9a\x26\xb3\x74\x60\x87\
\x50\xd3\xa2\xd8\x66\xbd\xcf\x5f\x3f\xaf\x33\x7d\x8c\xc2\x2c\x2c\
\x3c\x66\x25\xfd\x52\xbb\x25\x95\xc4\xc1\xd8\x4e\x27\xc1\xc0\x4e\
\x7b\xab\xf4\xbc\xfe\x3c\x0a\xb3\xfb\xeb\x8e\xe4\x93\xc7\xfc\xfe\
\xde\x46\x77\xf7\x59\x21\x21\x0a\xaf\x3b\xf0\x86\xd4\x68\x91\xdf\
\x17\x00\x44\x16\x05\x96\x8f\xeb\xaf\x73\x30\xe2\x1a\x71\x2f\x35\
\x86\x99\xbc\xc8\xaa\xdf\xfd\x30\x19\xb8\x8e\x5c\x77\xfe\x96\x0e\
\xee\xff\xfb\x25\x85\x6b\xe4\xc4\x77\x03\xa5\xae\x42\x3b\x9c\xba\
\xd2\x8b\x36\xdd\x1d\x34\xaa\xf2\x3c\xc8\x05\xc1\xd9\x20\xfd\x3d\
\x0d\xc2\x08\xe0\xb2\x28\xb7\x28\x59\xce\x61\x5a\xb3\x65\x1d\xa8\
\x35\xcd\x92\xc9\xaa\x2c\xf4\x23\x7b\x1a\x41\xe3\x2e\xd1\x1f\x24\
\xa3\x24\xed\x7f\x18\x0e\x6f\x39\xc6\x97\x79\x52\x02\xf2\x89\xb2\
\xa7\x3e\xb9\xec\x6c\xea\x24\xc3\xe1\xd4\x82\x40\x70\x21\x2d\x97\
\x09\xd4\x80\xb6\x44\xc7\xeb\x1d\xd2\x9a\x35\x7b\xb5\x46\xaa\x5b\
\x53\xeb\xd6\xae\x7a\xe5\xd7\x3e\x54\x4a\xca\x1c\x22\x25\x80\xf9\
\x50\x07\x75\xa5\xa4\xcc\x61\x52\xc2\x58\xca\xe1\xb0\xae\x94\x94\
\xa9\x2b\xa5\x15\x90\xa1\x1b\x23\x3b\x80\xe7\x07\xa3\x79\xf0\x34\
\x5d\x37\x92\x1b\x6f\xff\x3e\xb5\x40\x36\x1f\x5e\xca\xd3\xa7\x9d\
\x9d\x02\x37\x40\xb0\xeb\x47\x11\xe8\x3d\x45\x98\x29\x8d\xe5\x3a\
\xf5\x09\x52\x05\x47\x18\x13\x4e\xcc\xa6\x2c\x85\x54\x8a\xb4\xa6\
\x92\x6f\x9e\xf0\x04\xa9\x06\x51\xc5\x49\x21\xf1\x6e\xd9\xda\xb7\
\x38\xca\x80\xb0\x66\x53\x9b\xfe\xe9\x8c\xfe\x5f\xf1\xb7\xa9\xdd\
\x48\xe5\x10\x94\xc0\x5b\x35\x88\x13\x5f\x36\x8b\x14\x1f\xb7\x80\
\x15\xc7\x50\x3b\x09\xcc\x94\x70\xc2\x4a\xf8\x60\x04\x49\x45\xb4\
\x12\x65\x7c\x00\x14\x44\x09\x1b\x2f\xcb\xed\x06\xc7\xf3\x52\x5f\
\xd3\x20\x9e\x82\xfb\x19\x5f\x77\x32\x77\x39\x82\x00\xe0\xa3\xe6\
\x88\x68\xf7\xdb\xf5\xc9\xea\xf2\xd3\xab\xb8\x3a\x52\x56\xbe\x7c\
\x45\x5a\x3e\x3f\x57\x79\xf9\x04\x2c\xd4\xfd\xb2\x2e\xf8\xec\x85\
\xbc\xf6\x91\x58\xa5\x57\x03\x39\x34\xe8\xd7\x40\xa8\x8d\x7a\x36\
\x5f\x9c\xcc\xb7\xe5\xb2\x6a\x34\x08\x38\x90\xb6\x4e\x20\x2c\x52\
\x4f\x5a\xd5\x48\xaf\xb0\x88\x6a\xcb\x29\x59\xd7\x6e\xe4\x03\xe2\
\x09\x32\x4c\x89\x4f\x07\x1a\x54\x85\x42\xb1\x31\xfb\x93\x45\x81\
\x5b\xb7\x11\xcf\x5b\x13\x16\x79\x8d\xb0\xca\x04\xef\x73\x81\x0c\
\x86\x5f\x5a\x92\x3f\xf8\x7c\x4a\x14\x63\xa4\xa4\x27\x57\x58\x8a\
\x72\x61\xa7\x54\x75\x32\xfa\x1a\x07\x59\x1a\x3d\x7e\xc4\x48\x69\
\x41\x19\x66\xdc\x71\x97\x24\x86\xba\x68\xa5\x5b\xba\x5c\x97\xe0\
\x10\xf3\x73\x03\xef\xd6\xf5\x05\x46\x58\x63\xa1\x6b\xd3\x1c\x39\
\xc0\x72\x03\x20\xd7\x23\x2d\x97\x35\x6c\xba\xec\x57\xb2\x5c\x23\
\x70\x1d\xab\x69\xcd\x70\x7d\xfc\xaa\xe9\x3e\x8b\x36\xce\xcc\x78\
\x37\x7a\x94\x14\x29\x05\x7d\x10\x79\xac\x46\x95\x66\x9a\xd5\x36\
\x49\x90\x4b\xb3\x46\xd9\xb8\x47\x65\x75\x03\x90\x6a\x05\x6e\xd3\
\x76\x35\x34\xaa\x71\xb4\x53\xbd\x0a\x46\x8f\xca\xd1\x6c\x57\x00\
\x0d\x1b\x42\x09\x3f\x85\xbd\x16\x86\x26\x07\x19\x4b\x7b\x16\x2b\
\x5e\xb7\x58\xf1\x2b\x5a\xac\x68\xda\x62\x1b\x77\xa4\x3e\xfd\x09\
\x2c\xb6\x4e\x34\xa5\x31\x3c\x98\x19\x46\xba\x3e\xc3\x88\x4a\xca\
\xf1\x49\x9c\xb1\x2e\xce\x51\x1d\x64\x59\xe7\xe9\x90\x39\x96\xf8\
\x78\x03\xac\xa3\x21\x09\xa3\x79\x25\xa5\x80\x78\x97\x2f\xe3\x5d\
\xf5\xe9\x0d\x59\xe6\xed\xe5\xfc\xea\x24\x8b\x29\x62\xe7\xfc\x68\
\xb4\xf5\x51\xcb\x41\xd3\x33\x27\x21\xdc\xa6\x67\x68\x98\x5f\x73\
\x66\xfd\xec\x09\xb7\x1a\x08\xc7\x12\x2e\xb0\xb6\xae\x67\x81\xed\
\xd1\xed\xae\xa9\x0b\x8e\x35\xf1\x5f\x8e\x22\x8f\x30\x55\xc1\x28\
\xc5\xda\x29\x48\x18\x66\x24\xa5\xbc\x5b\xba\x5c\x15\x30\x1c\x31\
\xce\x28\x87\xc8\x88\x23\xcd\x30\xd1\x58\xb7\x49\xb7\xdb\x28\xa0\
\xe9\xa9\x0b\xb7\x64\xdf\x30\x05\xb4\xb4\x60\xe2\x22\x81\x9d\x0b\
\x6c\x00\x4e\x56\x98\x57\x6b\x10\x9c\x84\x30\x88\xd1\xa4\xa3\x11\
\xa4\xa4\x8b\xdf\xe9\x39\x62\x13\x1f\xb4\x92\x77\x9a\x31\x7c\x21\
\x42\x6f\x6c\x14\xef\xd7\x9c\x1a\x3f\xc5\x50\x74\x67\x14\x05\x08\
\x15\x85\xc9\xa3\x06\x11\xaa\x14\x62\x84\x01\xa6\xba\x3e\x15\x48\
\x53\x26\xa5\x3c\x47\x88\x8a\xe6\x63\x28\xd6\x02\x44\x69\x81\xb6\
\x7f\x86\x38\x6a\x6f\x22\x64\x0c\x11\xae\x25\x5c\xb9\xc5\x61\x4c\
\xe8\x09\xa6\xa4\x38\x21\xa2\xae\x09\xd6\x0d\xa3\xb6\x52\x68\xe3\
\x0c\xca\x71\xf3\x0e\xfe\xe7\x0a\xf2\xf7\x05\x27\xe3\x48\x62\xa6\
\x99\x0b\x21\x0d\xd2\x58\x49\x73\x8a\x39\x15\x62\x0e\x41\x27\xa6\
\x6f\x09\x4e\x08\x7f\x1a\x87\x67\x0b\x83\x50\xac\xea\x4e\xfc\x55\
\xf9\x64\xd2\x58\xcc\x0e\x6d\x35\x38\x45\x0a\xad\xd5\xdd\x51\x71\
\x82\x50\x9d\x16\x42\xf1\xaa\x99\x48\xc3\x5b\x8a\xd5\x35\x8c\x24\
\x21\x58\x97\x5d\x5f\x11\x24\x24\xb8\x28\xfe\x2c\x12\xa2\x54\x23\
\xad\xb4\x2c\x6f\xcb\x03\x8f\x06\x8e\xcd\x28\x5a\x66\x36\x8a\x29\
\x84\x56\x94\x94\xf7\x12\xf9\x9c\x20\x43\x25\xa7\xf4\x70\x6b\x06\
\xbd\xe9\xe6\x10\x49\x1b\xf4\x2f\xd0\xda\xc9\xec\x76\x83\xb3\x43\
\xf6\xf9\x9c\x8a\xf3\xda\x70\xca\xb5\x07\xde\x95\x9c\xd7\x5c\xa0\
\xed\x58\xaf\xc9\xa5\x21\xc7\x7b\x6d\x4e\x52\x50\x7f\xe7\xe6\x4e\
\xc7\x7c\xf2\x9d\xf9\xb6\x31\x5f\x73\x21\x8c\xe3\xbe\xc2\x7c\x76\
\x23\xec\x57\x77\xfe\x7c\x67\xcc\xd7\xfc\xb4\x8e\x8b\xfa\x5a\x58\
\xed\x75\x71\x5f\x21\xdc\x3c\x96\x05\x09\x6d\xcc\x75\x40\x5b\x0d\
\x7e\x27\x02\xad\x1d\x31\x84\x2b\x58\xf0\x6b\xf6\x5e\x4d\x0e\xd5\
\x4c\xd2\x00\x87\xd5\x5f\xa6\xa1\xba\xb8\xa9\x6b\xaf\xe8\xd6\x7f\
\x8b\x91\x1c\x27\xac\xb1\x7d\x56\xd0\x56\x83\x33\x5f\xd0\x5a\x5d\
\xcb\x3d\x89\x4f\x7e\x75\x59\xcb\x71\xf3\x79\x7a\xe5\xb3\x98\x99\
\xcd\x45\xd8\xbc\x9b\x69\xc7\xc9\xb4\x3a\x6e\x7e\x65\x8d\xcb\x21\
\xf5\x5c\xe3\xc7\x73\x41\x6a\x1b\x01\x51\x83\x91\xe4\x06\xa9\xa6\
\xd5\x09\x9e\x57\xd6\xba\x1c\x52\x5f\xce\xe1\xbe\x23\xf5\x99\x0c\
\x9b\x87\x6a\xf3\x0b\x5e\x00\xd5\x36\xbe\xc9\xdd\x10\x02\xdf\x03\
\xaa\xfb\x7e\x45\xfb\xab\x62\x15\x84\xd8\x3c\x56\x9b\xff\x0a\xc0\
\x05\x00\xb2\x4d\xb0\xee\x41\xab\xea\x1d\xab\xbb\xb1\xda\x06\xad\
\xca\x56\x78\x95\xca\x37\x98\x53\x6f\x6c\x01\xa2\xe8\x95\x5a\xd8\
\xca\xa6\x8e\xd9\x88\x71\xd8\x44\x89\xd0\x48\x01\xda\x65\xf9\x08\
\x08\x9f\x2a\x8c\x24\x7d\xb9\xfd\xb9\xca\x50\xb9\x90\xcc\x08\x93\
\x5b\x2a\x83\xff\x46\x91\x6e\xf1\x6a\x9d\x4f\x08\x46\x44\x70\xc2\
\xbb\xbe\x20\x60\x63\xf4\x24\x9b\x59\x41\x68\x87\x11\xd9\xa6\xf8\
\x5b\xac\x75\xb7\xe1\x8d\x5a\x81\xa8\xaa\x19\xe5\xff\xa2\x18\x3d\
\xe8\x0b\x97\x1c\x47\x6f\x89\x52\xd9\x86\x27\xe2\x0d\x1f\x4a\xb4\
\xa4\xd2\x23\x3e\x6c\xf6\xb5\x8b\x38\x34\x91\x65\x98\x12\xc3\x91\
\x21\x82\xe8\x12\x4c\x89\x44\xcc\x18\xa9\x9e\x7d\x44\x4f\x0c\x43\
\x5a\x29\xf1\x32\x36\x3a\x0e\xa8\x98\x80\xa9\x60\x66\xf2\x4f\x03\
\x00\xb6\xb4\xb8\x77\xb2\x36\x52\x39\x53\x87\xe1\x54\xbe\xe9\xbe\
\x36\x9f\x34\xfe\x81\xaf\x5b\x47\x6f\x65\xd6\xe4\xa8\xd5\x91\x5f\
\x11\xa8\x85\xd9\xf3\xfd\x26\xdb\xf7\xfe\x2e\xf8\xaa\xe7\x8e\x79\
\xcb\xaf\xd6\x67\xc4\xb9\x03\xe2\xc2\x87\xc8\xce\x2f\xd6\x5d\xba\
\x0d\xd6\x7d\x9c\x04\x77\x36\x87\x03\xb4\x3f\xcc\x7f\x96\x19\xb7\
\x49\x1a\xda\x74\x95\x25\xf3\x9f\x52\xd6\x12\x31\x8b\x93\x0f\x2f\
\xca\xbd\x73\x4f\x5d\xe7\xe3\xea\xfc\xe9\x7d\x10\x26\xf3\xeb\x0e\
\x7d\x9e\xf9\x23\x49\xc6\xee\xa9\x86\x73\xc1\x99\x7c\x9e\x3d\x78\
\x84\x4c\x18\x17\x09\x4c\x29\x7b\x91\x09\xed\x81\xff\xe3\x46\x92\
\xf5\x89\x5f\x9b\xcc\x59\x9a\x82\x60\xfd\x51\xf0\x64\xe1\xa5\xf2\
\x7f\x2b\x55\x4c\xef\x93\xf9\x5d\xea\x84\x93\xa5\x33\xfb\xbc\x66\
\x98\x0c\x66\xee\x54\x45\x7f\xb6\x50\xf7\xf2\x2c\xbf\x42\x09\x57\
\xd7\xbf\xbd\x4d\x1e\xab\x1f\x30\x8f\x62\x78\x59\x7f\x79\x3a\xa0\
\xfb\x62\x6a\x4b\x89\xd5\x79\x81\x04\x8b\x17\x2f\xb7\x2c\xf2\xb8\
\xe1\x81\xe7\x59\x4f\xdb\xb3\xc6\xc1\x63\x34\x8e\x7e\xd8\xd0\x99\
\xf3\x12\x2d\x63\x9b\x05\x61\x90\x05\x1b\x64\xac\x52\xa8\x31\x2b\
\x02\xbb\x4a\xc3\x61\xff\xdf\x9f\xbf\xac\x79\x65\x30\xe8\xff\x27\
\x49\xbf\x6f\x28\xc1\x15\x08\x6e\x93\x19\x74\x7b\x4d\x7a\x50\x2e\
\x1c\xf4\x9d\xed\x05\xd9\x4d\x34\x06\x7d\xbb\x73\x1d\xff\xfa\x38\
\x1e\x01\x46\xd7\x19\xa5\xc2\xd9\xd3\xc4\x6e\x1e\xba\x78\x6c\x6a\
\x17\xe7\x36\x56\x1e\x75\x19\x0e\xc6\x91\xab\xd4\xfb\x33\x8b\x46\
\xa3\x3f\x5c\x23\x05\xfe\x5b\x3e\x34\xca\x46\xf6\x26\x6f\x73\x71\
\xb9\x7a\x8b\xde\xf2\x35\x56\xc4\x55\x78\xcb\xab\xde\x4a\x0c\xf9\
\xdd\xdd\x46\x3c\x25\xc8\xac\x25\x3c\x0a\x6e\xed\xe8\xba\xf3\x0f\
\x97\xe9\xbd\xc8\xbd\x4b\x93\xd9\x64\x9c\x84\x76\x59\x7d\x25\xd6\
\x49\x90\xdd\xaf\xba\xba\x24\xe7\xcd\xa9\x6f\xf0\x73\x39\x84\x97\
\xea\x7f\x08\x79\x48\x42\x92\xdf\x14\x48\x3a\xbf\x4d\x67\x23\xdb\
\xb7\x0f\x36\x4e\xc2\x10\x58\x3c\x4d\xbe\xdb\xfe\x07\xca\x89\x25\
\x76\x79\xbb\x00\x5c\x9f\xad\x6e\x1d\xc3\x40\xa7\xfa\xb7\xb3\x2c\
\x2b\xa6\xfd\x2f\x89\xe2\x3e\xf4\x33\x5e\x3d\xc7\x07\xc9\xda\x74\
\x04\x88\xc9\xfa\x7c\x95\xb6\x69\x7e\x99\x10\x06\x60\xc4\x69\x1a\
\x3c\xf5\xe3\x24\xb6\xc5\xd4\x85\xe7\xe8\xe3\xcb\x71\x90\x7e\xb7\
\xe9\x22\xff\x21\x9a\x46\xb7\xd1\xc8\x3d\x22\xbf\x1c\xd9\xcb\x30\
\x9a\x4e\x40\x2a\xfd\x28\x76\xdd\xb8\x4c\x1e\x6c\x3a\x1c\x25\xf3\
\x75\xbe\x8d\x03\xf8\xe7\xdf\x06\x83\xef\x77\x79\xff\xfa\xc1\x00\
\x4c\x71\xe6\xbe\xef\x5f\x93\xa2\xc3\xad\x47\x91\xe6\x9c\x08\x2c\
\x20\x14\x46\x4a\x33\xa3\xa5\xa7\x91\xc6\x84\x73\x99\x7f\xe6\xc6\
\x05\xe5\x42\x1b\x4f\x21\x05\x5e\x4f\xe9\x2e\x45\x0a\x98\x1e\x98\
\xdf\xf3\x35\x02\x32\xe1\x40\xf5\x1c\x69\xaa\x8d\xe0\xde\x8f\x12\
\x87\x3b\x5d\x31\xa2\x2a\x63\xdb\x18\x44\x9a\x25\xa9\x0f\xec\xf2\
\x10\x64\xb3\xd4\x16\xdd\xf4\x86\x85\x01\x00\x0e\xab\x40\x1e\x03\
\xf7\xb3\x71\x99\x7b\xe2\x20\x18\xb8\xdf\x77\x1c\xbc\x86\x03\x62\
\x10\x57\x8a\x51\x05\x0e\x1c\x51\xac\x18\xe0\xc0\x07\x9d\x83\xe3\
\x25\x1a\xf4\x2b\x8d\xd6\x92\x7b\xe0\xfd\xa9\x9b\x15\xeb\x72\x81\
\x94\x00\x50\xb8\x6c\x28\x80\xab\x35\x5f\x19\x2c\x36\xa4\xf9\x85\
\x5b\x7e\xd7\xfc\x6e\xcd\xff\x13\x18\x40\x49\x85\xb9\xc8\x19\xc0\
\xe4\xea\x84\x34\x22\x60\xac\xed\xce\x17\x90\xee\xc2\x1b\x39\x52\
\x80\x18\x4c\x80\xa6\x21\xf4\x54\x60\xeb\x8e\x1d\x04\x92\x00\x86\
\x6a\xdd\x57\xce\xbb\x9c\x54\xf7\x5b\x8b\xbf\xfb\x87\xd3\xf9\x07\
\x70\x10\x42\x30\xcd\xbb\xc0\x10\x5a\x11\x43\x88\x67\x10\x05\xa2\
\x20\x12\x22\x7c\x44\x14\xc1\x98\x16\xbd\x83\xe4\x5a\x52\xe9\x9c\
\x03\x17\x4c\x61\xd3\x05\x90\x40\x7d\xac\xb7\x38\x87\xea\xf3\x3d\
\x2a\x81\xf2\x4e\xfe\x6f\x43\x01\xcc\xe4\xdb\xe7\xa8\xe9\x12\x05\
\x63\x3a\xc6\x34\xf1\x18\x84\x03\xa0\x34\xc9\xba\x94\x81\xf9\xbb\
\x61\x1f\x01\x46\x70\xeb\x22\x39\x23\x68\x44\x0c\x16\x52\x6e\xa5\
\xfe\xea\xad\x69\xef\xe4\x7f\x46\x9a\x5f\x98\x37\xe3\x92\xb0\xdc\
\xbc\x1d\xc1\x7b\x8b\x05\x38\xe7\xe2\x31\xd2\x24\xd7\xb4\x59\x11\
\x3f\x77\x74\xdf\xf5\x1d\x08\x20\x03\x4c\xdc\x15\x80\x7b\x44\xb6\
\xbb\x81\x03\x70\xf0\x4e\xf3\x6d\xe1\x80\x33\xc4\xb8\x51\x82\x74\
\xa9\x44\x46\x18\xcc\x14\xd0\x3c\x44\x03\xca\xb8\xa9\x71\x64\x08\
\xe6\x84\x01\x14\x28\x8c\x0b\x28\x5f\x0f\x02\x3c\xdf\x20\x09\xd1\
\x22\x63\x5d\x89\xa8\x96\x86\x6c\x65\xf9\xa3\x71\xf0\xce\xf3\xc7\
\x6a\x59\x12\x17\xba\x29\x50\x32\x43\xe0\xae\x85\xd4\x4e\x7f\xa0\
\x78\xce\x28\xe8\x8f\x48\x62\x18\xcd\x63\x7c\x20\xfa\x25\x0d\x00\
\x0c\x38\x71\xe9\x3b\x88\xfe\x00\x17\xfe\x4e\xf5\x6d\x9a\x38\x75\
\x9b\xcc\x73\x13\x5f\x32\xfd\x62\x30\xc7\x18\xca\xf7\x3a\xb8\x20\
\x7f\xc9\xf4\x8b\xf8\xdf\x9d\xfb\x26\x9c\xdf\xdf\x9b\xeb\xab\x97\
\x5b\x77\x58\xf9\x55\xef\xee\xe6\xe2\xca\xcd\x72\xdd\x5c\xfc\x1f\
\x74\xab\x06\xdf\
\x00\x00\x10\x7d\
\x3c\
\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
@ -35182,6 +35365,221 @@ qt_resource_data = "\
\x73\x6f\x64\x69\x70\x6f\x64\x69\x3a\x6e\x6f\x64\x65\x74\x79\x70\
\x65\x73\x3d\x22\x63\x63\x63\x63\x63\x22\x20\x2f\x3e\x0a\x20\x20\
\x3c\x2f\x67\x3e\x0a\x3c\x2f\x73\x76\x67\x3e\x0a\
\x00\x00\x0d\x45\
\x00\
\x00\x98\x5f\x78\x9c\xed\x5d\x59\x6f\xa3\x4a\x16\x7e\xef\x5f\xc1\
\xb8\x5f\xba\x35\xa6\x5c\xfb\xe2\x4e\x72\x35\x9a\xab\x3b\xba\xd2\
\x8c\x46\xba\x8b\xe6\x71\x44\x0c\xb6\x99\xb6\xc1\xc2\x38\x4b\xff\
\xfa\x39\x85\x37\x48\x88\x6d\x1c\x1a\x70\x27\x4e\xa2\x40\x55\x41\
\x15\xa7\xbe\xf3\x9d\x85\x02\x5f\xfd\xf4\x30\x9f\x39\x77\x41\xb2\
\x0c\xe3\xe8\xba\x47\x10\xee\x39\x41\x34\x8a\xfd\x30\x9a\x5c\xf7\
\xfe\xfc\xe3\x17\x57\xf7\x9c\x65\xea\x45\xbe\x37\x8b\xa3\xe0\xba\
\x17\xc5\xbd\x9f\x6e\x3e\x5c\xfd\xc5\x75\x9d\xbf\x27\x81\x97\x06\
\xbe\x73\x1f\xa6\x53\xe7\xd7\xe8\xeb\x72\xe4\x2d\x02\xe7\xd3\x34\
\x4d\x17\xc3\xc1\xe0\xfe\xfe\x1e\x85\x9b\x42\x14\x27\x93\xc1\x67\
\xc7\x75\x6f\x3e\x7c\xb8\x5a\xde\x4d\x3e\x38\x8e\x03\xfd\x46\xcb\
\xa1\x3f\xba\xee\x6d\x0e\x58\xac\x92\x59\xd6\xd0\x1f\x0d\x82\x59\
\x30\x0f\xa2\x74\x39\x20\x88\x0c\x7a\xfb\xe6\xa3\x7d\xf3\x91\xed\
\x3d\xbc\x0b\x46\xf1\x7c\x1e\x47\xcb\xec\xc8\x68\xf9\x31\xd7\x38\
\xf1\xc7\xbb\xd6\x76\x34\xf7\x2c\x6b\x44\x8c\x31\x03\x4c\x07\x94\
\xba\xd0\xc2\x5d\x3e\x46\xa9\xf7\xe0\x16\x0f\x85\x31\x96\x1d\x4a\
\x31\xc6\x03\xa8\xdb\xb7\x3c\xad\xd5\xf0\x61\x06\xa2\x78\x71\x30\
\x59\x6d\xbe\x77\x10\xff\x02\xfe\x76\x07\x6c\x0b\xd0\x32\x5e\x25\
\xa3\x60\x0c\x47\x06\x28\x0a\xd2\xc1\xcf\x7f\xfc\xbc\xab\x74\x31\
\xf2\x53\x3f\x77\x9a\xad\xf4\x0b\xfd\x16\xa6\x24\xf2\xe6\xc1\x72\
\xe1\x8d\x82\xe5\x60\x5b\x9e\x1d\x7f\x1f\xfa\xe9\xf4\xba\x27\xf9\
\xe2\x21\xdb\x9f\x06\xe1\x64\x9a\xe6\x0a\x42\xff\xba\x07\x57\x48\
\x8d\x16\xd9\x7e\x0e\x40\x64\xdd\x60\x73\xba\xe1\xae\x06\x23\xae\
\x11\x77\x12\x63\x98\xc9\x9a\x6c\xc7\x3d\xf4\xe3\x91\x1d\xc8\x75\
\xef\x6f\xc9\x68\xfa\xdf\xdf\x82\x5b\x2f\x41\x56\x7c\x37\xd0\xea\
\xca\x0f\xc6\x4b\xdb\x7a\xdd\xa7\xdd\x83\x4e\x55\x56\x07\xb5\x20\
\xb8\xc0\x4b\xfe\x91\x78\x7e\x08\x70\x59\xb7\x5b\xb7\x2c\xd6\x30\
\xad\xd9\xe6\x18\x38\x6a\x99\xc6\x8b\x6d\x5b\x18\x47\xfa\x38\x83\
\xce\x6d\xa1\x3b\x8a\x67\x71\x32\xfc\x38\x1e\xdf\x72\x8c\xbf\x64\
\x45\x31\xc8\x27\x4c\x1f\x87\xe4\x4b\x6f\x7f\x4c\x3c\x1e\x2f\x03\
\x10\x08\xce\x95\x65\x32\x81\x23\xa0\x2f\xd1\x73\x06\x55\x7a\x0b\
\xcc\x49\xbd\x91\xf2\xde\xd4\xae\xb7\xab\x41\xf1\xb2\xab\x4a\x49\
\x99\x2a\x52\x02\x98\x8f\xb5\x77\xae\x94\x94\xa9\x26\x25\x8c\xa5\
\x1c\x8f\xcf\x95\x92\x32\xe7\x4a\x69\x0b\x64\x18\xc6\x2c\x18\xc1\
\xf9\xbd\xd9\xbd\xf7\xb8\xdc\x75\x92\x29\xef\x70\x9a\x04\x40\x36\
\x1f\x9f\xcb\xd3\xa5\xbd\x83\x02\x37\x40\xb0\xbb\x53\x11\x18\x3d\
\x45\x98\x29\x8d\xe5\xae\xf4\x11\x4a\x05\x47\x18\x13\x4e\xcc\xbe\
\x2d\x85\x52\x8a\xb4\xa6\x92\xef\xcf\xf0\x08\xa5\x06\x51\xc5\x49\
\xae\x70\xb2\xe9\xed\xcf\x28\x4c\x81\xb0\x56\xcb\x20\xf9\xdd\x2a\
\xfd\xbf\xa3\x3f\x97\xc1\x5e\x2a\x55\x50\x02\x57\xd5\x20\x4e\x5c\
\xd9\x2c\x52\x5c\xdc\x02\x56\x2c\x43\x1d\x24\x30\x53\xc0\x09\x2b\
\xe0\x83\x11\x24\x15\xd1\x4a\x14\xf1\x01\x50\x10\x05\x6c\x3c\x6f\
\x77\x18\x1c\x4f\x5b\xfd\x91\x78\xd1\x12\xcc\xcf\xfc\xba\x97\xda\
\xcd\x19\x38\x00\x9f\x34\x47\x44\xdb\x9f\xbe\x4b\xb6\x9b\x9f\x8f\
\xe2\xea\x95\xb2\x72\xe5\x11\x69\xb9\xbc\xab\xf2\x72\x09\x68\xa8\
\xfd\x61\x7d\xb0\xd9\x6b\x79\x9d\x22\xb1\x52\xab\x06\x72\x68\xd0\
\xae\x81\x50\x1b\xb5\x6c\xae\xa8\xcd\xb6\x65\xb2\x6a\xd4\x09\xa8\
\x48\x5b\x35\x08\x8b\x9c\x27\xad\x72\xa4\x97\x68\x44\xb9\xe6\x14\
\xb4\xeb\x30\xf2\x01\xf1\x04\x19\xa6\xc4\xe7\x8a\x0a\x55\x32\xa1\
\xd8\x98\xd3\xc9\x22\xc7\xad\x2f\x11\xcf\xf7\x26\x2c\x72\x8c\xb0\
\x8a\x04\xef\x72\x81\x0c\x86\x1f\x5a\x90\x3f\xd8\x7c\x4a\x14\x63\
\xa4\x30\x4f\xb6\xb1\x14\xc5\xc6\x76\x52\x55\x6d\xf4\x35\xf7\xd2\
\x24\x7c\xf8\x84\x91\xd2\x82\x32\xcc\xb8\xe5\x2e\x49\x0c\xb5\xde\
\x4a\xbf\xb0\xb9\x6b\xc1\xc1\xe7\xe7\x06\xae\xad\xef\x0a\x8c\xb0\
\xc6\x42\x9f\x4d\x73\xa4\x82\xe6\x7a\x40\xae\xaf\xd4\x5c\xd6\xb0\
\xea\xb2\xb7\xa4\xb9\x46\xe0\x73\xb4\xa6\x35\xc5\x75\xf1\x51\xd5\
\x7d\xe2\x6d\x74\x4c\x79\xf7\xf3\x28\x29\x52\x0a\xc6\x20\x32\x5f\
\x8d\x2a\xcd\x34\x3b\x5b\x25\x41\x2e\xcd\x2a\x65\xe3\x16\x95\x9d\
\xeb\x80\x94\x4f\xe0\x4b\xb3\x5d\x0e\x8d\x72\x1c\x1d\x9c\x5e\x05\
\xd1\xa3\xb2\x34\xdb\x17\x40\xc3\x86\x50\xc2\xeb\xd0\xd7\x5c\x68\
\x52\x49\x59\xda\xd3\x58\x71\x5c\x63\xc5\x5b\xd4\x58\xd1\xb4\xc6\
\x36\x6e\x48\x5d\x7a\x01\x1a\x7b\x8e\x37\xa5\x31\x9c\x98\x19\x46\
\xfa\x2e\xc3\x88\x4a\xca\x71\x2d\xc6\x58\xe7\x73\x54\x95\x34\xab\
\x9b\x06\x99\x63\x89\x5f\xaf\x80\xe7\xcc\x90\x84\x68\x5e\x49\x29\
\xc0\xdf\xe5\x1b\x7f\x57\x7d\xfe\x8e\x2c\xf3\xfd\xe5\x7c\x34\xc9\
\x62\xf2\xd8\xe9\x1e\x8d\xb6\x1e\xb5\x54\x4a\xcf\xd4\x42\xb8\x4d\
\x67\x68\x98\x7b\x66\x66\xbd\xf3\x84\x5b\x0e\x84\xd7\x12\x2e\xb0\
\xb6\x3e\x4f\x03\xbb\x98\xb8\xe0\x58\x93\x3a\xd5\x54\x30\x4a\xb1\
\xb6\x93\x23\x0c\x33\x92\x52\xde\x2f\x6c\x6e\x1b\x10\xc3\x10\x16\
\x60\x0d\xfb\xae\x34\xc8\x50\x9e\x9f\x9a\x4b\x64\xda\xc3\x16\x4d\
\x3f\x0f\xd3\x1b\x10\x32\x25\x10\xf2\x2b\x85\xad\x90\x31\x62\x8c\
\x0a\xca\x2f\x5b\xca\x87\xc2\x02\x90\x72\xad\x16\xe7\x64\x29\x33\
\x82\x34\x94\xcb\x8c\x66\x0c\xe1\x22\x9f\x64\xb9\x44\x29\x1f\x23\
\x0c\xb7\x15\x34\x1b\x8e\x18\x67\x94\x43\x20\xc5\x91\x66\x98\x68\
\xdc\x2a\x67\xbc\xe4\x31\x34\x9d\xe9\xb4\x2b\x7c\x1a\xf6\x18\x5a\
\xba\xbf\x6a\x69\xf6\xe0\xfd\x78\x4b\xb4\xb9\x34\x7c\x93\xf6\x8c\
\x30\x08\xe9\xa4\xf5\x3a\x90\x92\x36\xdc\xa7\x5d\xc4\x26\xae\x74\
\xe3\xbf\x9e\x94\x5f\x2e\xa0\x6f\x2c\xe9\xe7\x9e\x79\x27\xad\x0e\
\x13\x75\x30\xe8\xb2\x46\x2a\x97\x6b\x6e\x10\xa1\x4a\x21\x46\x18\
\x60\xaa\xef\x52\x81\x34\x65\x52\xca\x2e\x42\x54\x34\x1f\x72\xb1\
\x16\x20\x4a\x73\xb4\x7d\x09\x61\xd7\xc9\x44\xc8\x18\x22\x5c\x4b\
\xd8\xb2\x6b\x49\x30\xa1\x35\x64\xb0\x39\x21\xe2\x5c\x15\x6c\x31\
\xc9\x75\xc4\x54\x11\xf7\xb9\xec\x9b\x30\x55\x1a\x1c\x29\xb0\x55\
\xe0\xaf\x2a\x82\x84\x84\x19\x6a\x35\x2a\x78\xd1\x56\x35\x6e\xaa\
\x38\x6e\xde\x93\xba\xac\xe4\xcb\xa9\x18\x63\x1c\x49\xcc\x34\xb3\
\xbe\xba\x41\x1a\x2b\x69\xea\xc8\x75\x13\x53\x85\x06\xf2\xfa\xd7\
\x51\x16\x60\x94\xb4\x12\x4b\x9d\xc0\x01\x94\x6a\xa4\x95\x96\xc5\
\x85\xac\x40\xea\xc0\xed\x46\xd1\x22\xe6\x28\xa6\xe0\x5d\x50\x52\
\x5c\x7d\xe7\x72\x82\x0c\x95\x9c\xd2\x0e\xc8\xb9\x95\xdc\xc0\x09\
\x72\xb6\x99\x30\xad\x54\x2e\xa9\x98\xc9\x59\x22\x66\x8c\x54\xc5\
\x05\xc3\xd0\x58\x23\xc9\xb9\x2e\xae\x18\xb6\x79\x07\x2d\xa9\xe0\
\x8d\x24\xba\x0e\xca\xd9\x98\x5a\xef\xdd\x5c\xaa\x4d\xfb\xfe\x62\
\xee\xaa\xeb\xf0\xa3\xc1\xb9\x95\x58\xed\x87\xa4\xe7\x5c\x62\xa6\
\x9c\x38\x5c\xd5\x51\x59\x77\xc4\x1d\x06\x01\x36\xee\x10\xb7\x70\
\x3b\x12\xab\x73\x97\x80\x34\x02\x53\xda\x52\x82\xb1\x6b\xd4\x5b\
\x12\xd1\x92\xc6\x52\xdf\xd0\x57\x83\x0b\x93\xa0\xb7\x73\x9f\x63\
\x68\x02\x91\xbc\xb3\x88\x6c\xd6\x48\x95\x21\x52\x37\x87\x48\xda\
\x60\xf6\x00\x7a\x7b\xc5\x32\xb9\x9c\x4c\x8f\xcd\x40\xf9\x74\x95\
\xcf\x6d\x03\xa8\x3a\x7f\xd1\x06\xad\xb2\x68\xa3\xa8\x73\x6d\xe6\
\x0e\xdc\x83\x0f\x15\x5a\xa7\xa9\xab\x0e\x6a\x57\x9c\xa6\x2a\x8f\
\x8c\xd5\xe5\x34\xb5\x91\x47\x6c\xf3\xa6\xec\x51\x98\x52\xb7\x9d\
\x55\x46\x17\xe1\x34\x35\x77\xc3\xcb\xba\x4d\x4d\xae\xe8\xb6\x8e\
\x53\xa7\x71\xc9\xdd\xe7\xe6\xab\x1b\xb8\xec\x80\xeb\xd4\x5c\xbc\
\x69\x9d\xa7\xdc\x32\xd4\x46\xdc\xa7\xd7\x2c\x7b\x7d\x9b\x0e\x94\
\x5b\xd1\x85\xea\xc2\x33\xbb\x99\x2b\x77\xf8\x1d\x1e\x59\xe6\xc9\
\x3d\xf5\x75\x1b\x6f\xd5\x8d\x32\xcd\xaf\x1c\xb2\xd9\xa7\x16\x9e\
\x3f\xb2\xf9\xa7\x5c\xda\xab\x8d\x78\xff\x18\x60\x6d\x93\xae\xde\
\x67\x69\xdb\xa1\x22\xb4\x31\x8f\x1f\xfa\x6a\xf0\x4d\x51\xd0\xdb\
\xbb\xc9\xaa\x6a\xb2\xf8\x2b\x34\xef\x5c\xa3\x55\x82\x49\xd6\xd8\
\x93\xd6\xd0\x57\x83\x8b\xd9\xa0\xb7\x33\x99\xf2\x8d\x62\x92\xf0\
\x0a\xaf\x4e\xa8\x0d\x91\x0d\x58\x25\x4e\x74\x9d\xb7\xa4\xb9\x90\
\xcc\x08\x93\x4d\x14\x83\xff\x46\x91\x7e\x7e\x6b\x57\x4f\xb8\x44\
\x9a\x29\xae\xb2\x65\xad\x52\x29\x4d\x9f\x3e\x15\x70\x89\xb7\x4a\
\x8f\xc9\xba\xce\xd5\x2c\x75\xca\xfa\xf2\x6e\xff\x1f\xbc\xbb\xc2\
\x89\xa9\x33\x71\x75\xba\xa4\xa9\x42\xda\x08\x4c\xfb\x2e\xa3\x48\
\x49\x6e\xc4\x0f\xbe\x00\x00\x24\x5d\x67\x26\xbb\x4e\x49\x5f\x1e\
\xa6\x0f\xc9\x19\x5c\x8b\x56\xe4\x4c\x08\x62\x12\x33\x93\x3d\x5b\
\xaf\x05\x7d\xf6\xc0\xe7\xe5\x01\xfa\xb0\x98\xeb\x5c\xd8\x59\xa3\
\x98\x2f\x0f\xcd\xc7\x9f\x47\xa4\xef\x4b\x87\x4a\x85\x93\x17\x61\
\xf3\xc9\x9b\x76\x52\x37\x97\xf0\xc2\xa7\x5a\xa0\x46\x6a\x08\x47\
\x28\xad\xb6\xa0\xbe\x23\xaf\x73\xa3\xc7\x9e\x02\xb5\x94\xd0\xd5\
\x3b\x3b\x5d\xa1\x84\x36\xf2\xb9\x0d\xde\xe3\xd9\x53\x82\x79\x67\
\x84\x4a\x8c\x50\xf5\x3e\x4f\x67\x12\x14\x47\x1e\xbc\xb5\xa4\xd0\
\xd5\x65\xf3\x5d\x21\x05\xd3\xfc\xfb\x8e\x70\x0b\x4f\xdf\x02\x2b\
\xfc\x98\x0f\xde\x7d\x47\x56\xa8\xf4\x0e\xc9\xa2\x36\xb6\xeb\x2a\
\xf0\x13\x68\xe1\xfd\xf6\xef\x11\x67\x81\xb7\xc0\x0b\xcd\xbf\x2d\
\xd6\x06\x10\xf2\x9d\x18\xaa\x11\x43\x95\xb7\x4f\x3e\xd1\xc7\x56\
\x89\xe1\x04\x77\x41\xbd\xf3\xc2\x61\x5e\x68\xc3\x5d\x90\xad\xf8\
\x0b\x54\x5e\xd6\x8b\x69\x3b\x40\x0c\x15\x73\x0b\x1d\x71\x18\x0e\
\x5d\x15\x08\xaa\x9b\x59\x5d\xaa\x30\x92\x4f\xbe\x30\x40\x68\xa4\
\x00\x5e\x52\x17\x41\xd7\xf9\xd4\x39\xab\xd5\x1b\xab\x24\x64\xad\
\xb8\x14\x75\xa5\xce\x39\x32\x44\x90\x27\xa9\x73\x6d\x95\x50\x13\
\xd9\x8c\x89\xd3\x47\xc0\x5c\x6b\xde\xfc\x42\xe1\x7c\xc0\xba\x35\
\xf6\xf4\x58\x3e\x18\x6e\xe1\x75\x7e\xea\x35\x2f\xa3\xaa\xb6\x8a\
\xa7\x64\x16\xcb\x26\xbc\x26\x9c\x61\x44\x04\x27\xbc\xef\x0a\x02\
\x96\x96\xd6\xf2\xfe\x5f\xa6\x2b\xe6\xc7\x72\x4a\xd8\xaa\xbf\x7b\
\x30\x0e\xb6\x64\xd0\x1a\xed\x5e\x04\x19\xb4\x11\x01\xb7\xc2\x05\
\xea\x15\x09\xf3\x37\x48\x06\x55\xe3\xdf\xce\x84\xbf\x07\xe3\x5f\
\x70\xc2\x6a\x7d\x66\xef\x52\xdd\xb0\x43\xb1\x6f\x1b\xc1\x2f\x6f\
\xf8\xbb\x89\x37\xee\xc1\x2b\xbe\xdf\x6c\x2f\xeb\x63\x13\x53\x3e\
\x8b\xe5\x53\x5e\x0f\xd6\x30\xd8\x1e\x92\xd9\x1e\x01\xec\x40\x30\
\xcd\xbf\x13\xf5\x6c\x52\xe0\x4c\x9d\xaf\x8a\xad\x72\x02\x39\xf8\
\x1a\x7b\xcb\x09\xad\xc5\xbf\x97\xc1\x09\xa4\xf1\xaf\x54\xb3\x8f\
\x9b\xb7\x72\x5b\xfd\x55\x4f\xa3\xbc\x45\x4e\xc8\xd9\xd3\xca\xca\
\x78\x98\x15\xae\x06\x7e\x30\x5e\x66\x5b\xcb\xd8\x0f\x17\xf0\x37\
\x8c\xbc\x79\xe0\xdf\x85\xc1\xfd\x87\xdd\x90\x6e\xbd\xdd\x18\x17\
\xde\x24\xc8\xe0\x00\xfd\x8f\xb3\xcf\xa6\xe2\x36\x4e\xfc\x20\xd9\
\x56\xc9\xec\x53\xa8\xda\x20\x06\xa6\x05\x6d\xc7\xb7\x1b\x9d\x3d\
\xeb\xae\x1e\x97\xd7\x2f\xa7\x9e\x1f\xdf\x5f\xf7\xe8\xd3\xca\x6f\
\x71\x0c\x13\x26\x90\x78\x5a\x31\x7a\x80\xd6\x02\x80\x41\xc8\xee\
\x4b\xb4\xf7\x95\xd0\x13\x93\x08\x73\x40\xc8\xf3\x23\x57\x49\x02\
\x22\x75\x67\xde\x63\x00\x97\x93\xfd\xdb\x4e\xc2\x72\x1a\xdf\x4f\
\x12\x2b\x96\x34\x59\x05\x4f\x8f\xf4\xe3\xd1\x6a\x6e\x0f\x5d\xad\
\x27\x7a\xf1\xf0\xb4\x85\x3d\xd6\xbd\xbd\x8d\x1f\xca\x4f\x70\x1f\
\x46\x70\x99\xee\x7d\xe8\xa7\x53\x90\x95\xa1\xcf\x84\xb1\x69\x31\
\x0d\xc2\xc9\xd4\x2a\x1b\x16\xec\x85\x26\x0f\x7b\x06\x78\x5a\xf5\
\xf8\x72\xd5\xdc\x7b\x08\xe7\xe1\xb7\xc0\xb7\x8a\xbc\xc1\xc9\x3c\
\x48\x3d\xdf\x4b\xbd\x3d\x26\xb6\x25\xd4\xbe\xb9\x71\xa3\xb7\x89\
\x3f\x1e\xfe\xf6\xf3\x2f\x3b\x46\x19\x8d\x86\xff\x89\x93\xaf\x7b\
\x32\xb0\x0d\xbc\xdb\x78\x05\xc3\xde\xd1\x1d\xb4\xf3\x47\x43\xab\
\x75\x5e\x7a\x13\xce\x61\xa6\x07\xcb\xbb\xc9\x5f\x1f\xe6\x33\x40\
\xe7\xae\xa2\xd0\x38\x7d\x5c\x04\xfb\x93\xae\x4f\x9b\x04\xcb\x78\
\x95\x8c\x80\xb2\xa6\x69\xba\x18\x0e\x06\x8b\x55\x32\x43\x71\x32\
\x81\x93\xc0\xef\x3c\xb4\x07\x0d\x7e\x4f\xc3\xd9\xec\x57\xdb\x49\
\x8e\xf9\x36\x27\x0d\xd3\x59\x70\x93\xf5\xb9\xde\xdc\x5e\xc5\x60\
\x73\x19\x5b\xca\xca\x5d\xe5\xd5\x60\x2b\x86\x6c\x6f\xb2\x17\x4f\
\x01\x32\x3b\x09\xcf\xbc\xdb\x60\x76\xdd\xfb\xa7\xad\x74\x9e\xd5\
\x4e\x92\x78\xb5\x98\xc7\x7e\xb0\x39\x7c\x2b\xd6\x85\x97\x4e\xb7\
\x43\xdd\xd0\xf2\xee\x1b\xef\xed\xe7\xcb\x18\x2e\x2a\xa3\xe7\x31\
\xe3\xd9\x4e\x8e\x9e\xb3\xdd\x64\x35\x0b\x86\xc1\x5d\x10\xc5\xbe\
\x0f\xfc\x9d\xc4\x5f\x83\xe1\x47\xc1\xd9\x9a\xce\xed\xee\x1a\x70\
\x43\x30\x97\x26\xfb\xe8\x6d\xb9\x25\x19\x18\xdd\xf0\x76\x95\xa6\
\xf9\xb2\xff\xc5\x61\x34\x84\x01\x47\xdb\x13\xba\x20\xe2\x20\x99\
\x01\x74\xd2\x21\xdf\x96\xed\xc7\xb1\x29\xf0\x3d\xd0\xe3\x24\xf1\
\x1e\x87\x51\x1c\x05\xf9\xd2\xb5\xf1\x18\xe2\x2f\x73\x2f\xf9\x1a\
\x24\xeb\xfa\xbb\x70\x19\xde\x86\x33\x7b\x8a\x6c\x73\x16\x7c\xf1\
\xc3\xe5\x02\xc4\x33\x0c\x23\x3b\x8c\x2f\xf1\x5d\x90\x8c\x67\xf1\
\xfd\xae\x3e\x88\x3c\xf8\xe7\xde\x7a\xa3\xaf\x93\x6c\x7c\x43\x6f\
\x04\x3a\xb9\xb2\x5f\xaa\xb8\xe3\x45\x0b\x60\x87\x22\xcd\x39\x11\
\x58\x80\x9f\x80\x94\x66\x46\x4b\x47\x23\x8d\x09\x5f\x7b\x0c\xc0\
\xed\x94\x0b\x6d\x1c\x85\x14\x48\x4a\xe9\x3e\x45\x0a\xc8\x1e\xc8\
\xdf\x71\x35\xc2\x94\x82\x04\xfb\x1c\x69\xaa\x8d\xe0\xce\xb7\x02\
\x8d\xdb\x49\x63\x44\x95\x06\x6d\x11\x88\x34\x8d\x13\x17\x68\xe6\
\xce\x4b\x57\x49\x90\xb7\xd4\x7b\x22\x06\x24\x58\xd0\x02\x8b\x8c\
\xec\x67\x6f\x35\x4f\x03\x04\xe0\xff\xd3\xc7\xe7\x9e\xd8\xe7\xba\
\x10\x82\x37\x1f\xf6\x06\xa0\x42\x0c\xe2\x4a\x31\xaa\xc0\xcc\x23\
\x8a\x15\x03\xa8\xb8\x00\x0b\x30\xcf\x44\x03\x04\xa4\xd1\x5a\x72\
\x07\x7c\x04\x6a\xef\xd6\xf5\xb9\x40\x4a\x00\x6e\x6c\x35\x34\xc0\
\xe5\xe0\x28\xf5\xde\xdb\x04\x87\x7c\x07\x47\x65\x70\xfc\xcb\xc9\
\x32\x54\x6b\x12\x11\xb0\x43\x84\x84\x3d\x89\x91\xb4\x1b\x0e\x21\
\xf9\x6d\x94\xb5\x04\x6f\x55\xea\xac\x71\xee\xc8\x52\x88\x94\xe6\
\x80\x4b\x21\x52\x0e\x80\x17\xf1\xf2\x6e\x50\xbe\x83\x41\x01\x8b\
\x22\x04\xd3\xbc\x0f\x7c\xa1\x15\x01\xcf\xd3\x31\x88\x02\x6d\x10\
\xfb\x25\x5f\x88\x28\x82\x31\xcd\x9b\x13\xc9\xb5\xa4\xd2\x5a\x13\
\x2e\x98\xc2\xa6\x2f\x90\x84\xe3\xb1\x7e\xc1\x9a\x94\x7f\x0b\x6b\
\x05\x3c\x54\xb5\x16\x2e\x79\xa7\x84\x33\x28\x81\x99\xec\xe9\x33\
\x6a\xfa\x44\x41\xb0\xc8\x98\x26\x0e\x03\x2d\x87\x99\x95\xac\x4f\
\x99\x33\xb3\xb6\x22\x53\x7e\xbb\xc4\x23\x23\x07\x8d\x88\xc1\x42\
\xca\x17\xad\x45\xf9\x82\xe9\x56\xed\x85\xab\xde\xe1\x71\x26\x51\
\x30\x2e\x09\xcb\x88\x02\x42\x7c\xe1\xac\xd7\xdb\x58\xd7\x01\x23\
\x4d\x32\x38\x64\xbb\xd8\xc1\x88\x5b\x63\xd1\x77\x2d\x52\xa0\x02\
\xc8\xc2\x36\x80\x7d\x64\x7d\x8d\x17\xec\x46\x05\xb0\xbc\x5b\x8e\
\xd6\x01\xc1\x19\x62\xdc\x28\x41\xfa\x54\x22\x23\x0c\x66\x0a\x2c\
\x87\x81\x89\x34\xf6\xbe\x13\x32\x04\x73\xc2\x00\x13\x14\x62\x13\
\xca\x77\x81\x88\xe3\x1a\x24\xc1\x1d\x65\xac\x2f\x11\xd5\xd2\x90\
\x17\x0d\xc7\xab\x01\x51\xd9\x74\xbc\x7b\x93\xe7\x40\x41\x12\x24\
\x94\xcd\x2d\x52\x86\x40\x24\x42\x6a\x3b\xc9\x80\x0e\x90\x29\x4c\
\x32\x91\xc4\x30\x9a\x45\x1a\x60\x3b\x36\xa4\x01\x58\xe1\xc4\x96\
\x1f\xb0\x1d\x15\x5c\x87\xc6\xac\xc7\x7b\x30\x7a\x2e\x59\x50\xfb\
\x96\xa2\x8c\x2c\x36\xc6\x63\x1d\x77\x32\x86\xb2\xe5\xa2\x36\x8f\
\xb1\x31\x1e\xeb\x70\xc4\xb5\x50\xb1\xfe\xc6\xc9\xe6\xa3\x7c\xf9\
\xc9\x01\xbe\xb8\x1a\x4c\x6e\x3e\x5c\xd9\xe4\xdd\xcd\x87\xff\x03\
\x15\xdd\xc7\x56\
"
qt_resource_name = "\
@ -35500,17 +35898,26 @@ qt_resource_name = "\
\x08\xa2\xf8\x67\
\x00\x41\
\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x57\x00\x69\x00\x6e\x00\x64\x00\x6f\x00\x77\x00\x2e\x00\x73\x00\x76\x00\x67\
\x00\x13\
\x0b\x98\xbe\x87\
\x00\x41\
\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x46\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x5f\x00\x54\x00\x72\x00\x65\x00\x65\x00\x2e\x00\x73\
\x00\x76\x00\x67\
\x00\x12\
\x0a\x5f\x31\xa7\
\x00\x41\
\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x53\x00\x70\x00\x6c\x00\x69\x00\x74\x00\x4d\x00\x65\x00\x73\x00\x68\x00\x2e\x00\x73\x00\x76\
\x00\x67\
\x00\x0e\
\x09\x0c\x33\xe7\
\x00\x41\
\x00\x72\x00\x63\x00\x68\x00\x5f\x00\x46\x00\x72\x00\x61\x00\x6d\x00\x65\x00\x2e\x00\x73\x00\x76\x00\x67\
"
qt_resource_struct = "\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x08\x00\x00\x00\x41\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x26\x00\x00\x00\x1b\
\x00\x00\x00\x10\x00\x02\x00\x00\x00\x08\x00\x00\x00\x43\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x28\x00\x00\x00\x1b\
\x00\x00\x00\x1a\x00\x02\x00\x00\x00\x17\x00\x00\x00\x04\
\x00\x00\x01\x2e\x00\x00\x00\x00\x00\x01\x00\x02\x9d\x23\
\x00\x00\x02\x92\x00\x00\x00\x00\x00\x01\x00\x06\x6c\x9e\
@ -35555,15 +35962,17 @@ qt_resource_struct = "\
\x00\x00\x09\xbe\x00\x01\x00\x00\x00\x01\x00\x08\x59\xae\
\x00\x00\x04\xf0\x00\x01\x00\x00\x00\x01\x00\x07\x26\x34\
\x00\x00\x0a\x34\x00\x01\x00\x00\x00\x01\x00\x08\x71\xd0\
\x00\x00\x0a\xae\x00\x01\x00\x00\x00\x01\x00\x08\x97\xc9\
\x00\x00\x05\xe6\x00\x01\x00\x00\x00\x01\x00\x07\x66\x38\
\x00\x00\x08\x88\x00\x01\x00\x00\x00\x01\x00\x08\x10\x78\
\x00\x00\x07\x00\x00\x01\x00\x00\x00\x01\x00\x07\xa6\x1c\
\x00\x00\x07\xb0\x00\x01\x00\x00\x00\x01\x00\x07\xcf\x5c\
\x00\x00\x0a\x58\x00\x00\x00\x00\x00\x01\x00\x08\x7b\xff\
\x00\x00\x0a\x84\x00\x00\x00\x00\x00\x01\x00\x08\x87\x48\
\x00\x00\x04\x54\x00\x01\x00\x00\x00\x01\x00\x07\x05\x69\
\x00\x00\x05\xc4\x00\x01\x00\x00\x00\x01\x00\x07\x5e\x76\
\x00\x00\x09\x90\x00\x01\x00\x00\x00\x01\x00\x08\x51\xc6\
\x00\x00\x07\x86\x00\x00\x00\x00\x00\x01\x00\x07\xbd\x59\
\x00\x00\x0a\x58\x00\x01\x00\x00\x00\x01\x00\x08\x7b\xff\
\x00\x00\x08\xcc\x00\x01\x00\x00\x00\x01\x00\x08\x1d\xfd\
\x00\x00\x06\xd4\x00\x01\x00\x00\x00\x01\x00\x07\x9d\xa2\
\x00\x00\x08\x3e\x00\x01\x00\x00\x00\x01\x00\x07\xf3\xde\

View File

@ -26,6 +26,7 @@ SET(Arch_SRCS
ArchRebar.py
TestArch.py
ifcWriter.py
ArchFrame.py
)
SOURCE_GROUP("" FILES ${Arch_SRCS})

View File

@ -73,7 +73,7 @@ class ArchWorkbench(Workbench):
"Arch_Floor","Arch_Building","Arch_Site",
"Arch_Window","Arch_Roof","Arch_Axis",
"Arch_SectionPlane","Arch_Space","Arch_Stairs",
"Arch_Add","Arch_Remove"]
"Arch_Frame","Arch_Add","Arch_Remove"]
self.meshtools = ["Arch_SplitMesh","Arch_MeshToShape",
"Arch_SelectNonSolidMeshes","Arch_RemoveShape",
"Arch_CloseHoles","Arch_MergeWalls"]

View File

@ -38,6 +38,8 @@
<file>icons/Arch_Stairs_Tree.svg</file>
<file>icons/Arch_Rebar.svg</file>
<file>icons/Arch_Rebar_Tree.svg</file>
<file>icons/Arch_Frame.svg</file>
<file>icons/Arch_Frame_Tree.svg</file>
<file>ui/archprefs-base.ui</file>
<file>ui/archprefs-import.ui</file>
<file>ui/ParametersWindowDouble.svg</file>

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,750 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="64px"
height="64px"
id="svg2985"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Arch_Frame.svg">
<defs
id="defs2987">
<linearGradient
id="linearGradient3883">
<stop
style="stop-color:#ffb400;stop-opacity:1;"
offset="0"
id="stop3885" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887" />
</linearGradient>
<linearGradient
id="linearGradient3793">
<stop
style="stop-color:#000f8a;stop-opacity:1;"
offset="0"
id="stop3795" />
<stop
style="stop-color:#0066ff;stop-opacity:1;"
offset="1"
id="stop3797" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3793-2"
id="linearGradient3799-8"
x1="12.037806"
y1="54.001419"
x2="52.882648"
y2="9.274148"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3793-2">
<stop
style="stop-color:#000f8a;stop-opacity:1;"
offset="0"
id="stop3795-6" />
<stop
style="stop-color:#0066ff;stop-opacity:1;"
offset="1"
id="stop3797-0" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883"
id="linearGradient3889"
x1="3"
y1="31.671875"
x2="59.25"
y2="31.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(84.181818,-14.181818)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-6"
id="linearGradient3889-4"
x1="3"
y1="31.671875"
x2="59.25"
y2="31.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-1.2727273,-0.18181818)" />
<linearGradient
id="linearGradient3883-6">
<stop
style="stop-color:#ffb400;stop-opacity:1;"
offset="0"
id="stop3885-4" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-5" />
</linearGradient>
<linearGradient
id="linearGradient3883-63">
<stop
style="stop-color:#ffb400;stop-opacity:1;"
offset="0"
id="stop3885-6" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-51" />
</linearGradient>
<linearGradient
y2="31.671875"
x2="59.25"
y1="31.671875"
x1="3"
gradientTransform="translate(-3,-1.9375)"
gradientUnits="userSpaceOnUse"
id="linearGradient3099"
xlink:href="#linearGradient3883-63"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1"
id="linearGradient3889-9"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.78523034,-0.61920378,0.61920378,0.78523034,40.449388,-50.080588)" />
<linearGradient
id="linearGradient3883-1">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3" />
</linearGradient>
<linearGradient
y2="31.671875"
x2="59.25"
y1="31.671875"
x1="3"
gradientTransform="translate(-3,-1.9375)"
gradientUnits="userSpaceOnUse"
id="linearGradient3950"
xlink:href="#linearGradient3883-1"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-0"
id="linearGradient3889-9-4"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(62.772175,-14.278383)" />
<linearGradient
id="linearGradient3883-1-0">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-6" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-5" />
</linearGradient>
<linearGradient
y2="37.671875"
x2="-45.659092"
y1="52.217331"
x1="-45.909092"
gradientTransform="translate(72.070588,5.7891214)"
gradientUnits="userSpaceOnUse"
id="linearGradient3983"
xlink:href="#linearGradient3883-1-0"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-5"
id="linearGradient3889-9-5"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(62.772175,-14.278383)" />
<linearGradient
id="linearGradient3883-1-5">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-3" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-2" />
</linearGradient>
<linearGradient
y2="37.671875"
x2="-45.659092"
y1="52.217331"
x1="-45.909092"
gradientTransform="matrix(0.78523034,-0.61920378,0.61920378,0.78523034,80.903931,-30.262405)"
gradientUnits="userSpaceOnUse"
id="linearGradient3983-2"
xlink:href="#linearGradient3883-1-5"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-0"
id="linearGradient4060"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.78523034,-0.61920378,0.61920378,0.78523034,60.176658,-40.080587)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-6"
id="linearGradient3889-9-2"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.78523034,-0.61920378,0.61920378,0.78523034,40.449388,-50.080588)" />
<linearGradient
id="linearGradient3883-1-6">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-4" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-7" />
</linearGradient>
<linearGradient
y2="37.671875"
x2="-45.659092"
y1="52.217331"
x1="-45.909092"
gradientTransform="matrix(0.78523034,-0.61920378,0.61920378,0.78523034,40.449388,-50.080588)"
gradientUnits="userSpaceOnUse"
id="linearGradient4058"
xlink:href="#linearGradient3883-1-6"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-1"
id="linearGradient4081-3"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,94.343245,-4.8301808)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-1">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-8" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-0" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-0-2"
id="linearGradient4083-9"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,113.26634,4.7621752)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-0-2">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-6-2" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-5-1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-5-6"
id="linearGradient4085-4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,77.313909,-25.823666)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-5-6">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-3-2" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-2-8" />
</linearGradient>
<linearGradient
y2="37.671875"
x2="-45.659092"
y1="52.217331"
x1="-45.909092"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,133.14868,14.180124)"
gradientUnits="userSpaceOnUse"
id="linearGradient4115"
xlink:href="#linearGradient3883-1-5-6"
inkscape:collect="always" />
<linearGradient
id="linearGradient3883-1-02">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07" />
</linearGradient>
<linearGradient
y2="37.671875"
x2="-45.659092"
y1="52.217331"
x1="-45.909092"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,34.603835,-49.807695)"
gradientUnits="userSpaceOnUse"
id="linearGradient3195"
xlink:href="#linearGradient3883-1-02"
inkscape:collect="always" />
<linearGradient
id="linearGradient3883-1-02-9">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-4" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-2" />
</linearGradient>
<linearGradient
id="linearGradient4011">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4013" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4015" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-9"
id="linearGradient3994-9"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-228.87866"
y1="14.868972"
x2="-202.31215"
y2="-41.926422" />
<linearGradient
id="linearGradient4018">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4020" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4022" />
</linearGradient>
<linearGradient
id="linearGradient3883-1-02-3">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-0" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-0" />
</linearGradient>
<linearGradient
id="linearGradient4011-6">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4013-3" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4015-0" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-3"
id="linearGradient3994-6"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-228.87866"
y1="14.868972"
x2="-202.31215"
y2="-41.926422" />
<linearGradient
id="linearGradient4018-9">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4020-7" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4022-7" />
</linearGradient>
<linearGradient
id="linearGradient3883-1-02-9-2">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-4-3" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-2-4" />
</linearGradient>
<linearGradient
id="linearGradient4123">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4125" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4127" />
</linearGradient>
<linearGradient
y2="-41.926422"
x2="-202.31215"
y1="14.868972"
x1="-228.87866"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
gradientUnits="userSpaceOnUse"
id="linearGradient4028-4"
xlink:href="#linearGradient3883-1-02-9-2"
inkscape:collect="always" />
<linearGradient
id="linearGradient4130">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop4132" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop4134" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-1"
id="linearGradient4081-2-7"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-02-1">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-3" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-25" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-2"
id="linearGradient4081-2-6"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-02-2">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-7" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-9" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-96"
id="linearGradient4081-2-2"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-02-96">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-2" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-7" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-24"
id="linearGradient4081-2-28"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-02-24">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-6" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-26" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3883-1-02-6"
id="linearGradient4081-2-78"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7532208,-0.59396224,0.59396224,0.7532208,184.32666,-71.561244)"
x1="-45.909092"
y1="52.217331"
x2="-45.659092"
y2="37.671875" />
<linearGradient
id="linearGradient3883-1-02-6">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-62" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-262" />
</linearGradient>
<linearGradient
id="linearGradient3883-1-02-8">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-28" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-8" />
</linearGradient>
<linearGradient
y2="-41.926422"
x2="-202.31215"
y1="58.765968"
x1="-270.625"
gradientTransform="matrix(0.45639598,-0.3598971,0.3598971,0.45639598,110.15414,-51.65288)"
gradientUnits="userSpaceOnUse"
id="linearGradient4388"
xlink:href="#linearGradient3883-1-02-8"
inkscape:collect="always" />
<linearGradient
id="linearGradient3883-1-02-4">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-8" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-79" />
</linearGradient>
<linearGradient
y2="-41.926422"
x2="-202.31215"
y1="58.765968"
x1="-270.625"
gradientTransform="matrix(0.45639598,-0.3598971,0.3598971,0.45639598,110.15414,-51.65288)"
gradientUnits="userSpaceOnUse"
id="linearGradient4388-2"
xlink:href="#linearGradient3883-1-02-4"
inkscape:collect="always" />
<linearGradient
id="linearGradient3883-1-02-66">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-45" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-83" />
</linearGradient>
<linearGradient
y2="-80.59816"
x2="-194.91518"
y1="16.399679"
x1="-193.87758"
gradientTransform="matrix(0.45639598,-0.3598971,0.3598971,0.45639598,101.31039,-50.110266)"
gradientUnits="userSpaceOnUse"
id="linearGradient4437"
xlink:href="#linearGradient3883-1-02-66"
inkscape:collect="always" />
<linearGradient
id="linearGradient3883-1-02-10">
<stop
style="stop-color:#a27200;stop-opacity:1;"
offset="0"
id="stop3885-63-40-07" />
<stop
style="stop-color:#ffe900;stop-opacity:1;"
offset="1"
id="stop3887-3-07-27" />
</linearGradient>
<linearGradient
y2="-80.59816"
x2="-194.91518"
y1="16.399679"
x1="-193.87758"
gradientTransform="matrix(0.45639598,-0.3598971,0.3598971,0.45639598,101.31039,-50.110266)"
gradientUnits="userSpaceOnUse"
id="linearGradient4437-1"
xlink:href="#linearGradient3883-1-02-10"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.9445436"
inkscape:cx="15.950223"
inkscape:cy="51.496119"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1053"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata2990">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer">
<path
style="color:#000000;fill:#d4d1d1;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 2.8441505,11.783986 8.8014465,-4.4524589 7.790078,2.7395359 -8.022439,4.828954 z"
id="path3174"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;fill:#acacac;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 19.477327,10.207386 -7.744318,4.698864 -0.21875,45.75 7.431818,0 z"
id="path3176"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 2.7670455,11.931818 2.15625,60.65625 l 8.84375,0 0.579545,-45.6875 z"
id="path3178"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="ccccc"
style="color:#000000;fill:#d4d1d1;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 22.855384,19.871911 9.232716,-5.171002 7.790078,2.648626 -8.453709,5.638408 z"
id="path3174-5"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#acacac;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="M 39.868929,17.353381 31.740863,23 l -0.3125,37.65625 8.190566,0 z"
id="path3176-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 22.834613,19.84375 -0.59375,40.8125 8.9375,0 0.46875,-37.625 -8.8125,-3.1875 z"
id="path3178-2"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccc"
style="color:#000000;fill:#d4d1d1;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 43.349751,26.959037 9.931794,-5.910413 8.244624,2.739535 -9.607333,6.28691 z"
id="path3174-5-2"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#acacac;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 61.57971,23.900568 -9.349432,6.161932 -0.25,30.59375 9.411932,0 z"
id="path3176-2-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#241e1e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 43.324028,26.9375 -0.21875,33.71875 8.875,0 0.15625,-30.53125 -8.8125,-3.1875 z"
id="path3178-2-8"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -50,6 +50,7 @@
<File Id="ArchStairsPy" Name="ArchStairs.py" DiskId="1" />
<File Id="ArchRebarPy" Name="ArchRebar.py" DiskId="1" />
<File Id="ArchIfcWriterPy" Name="ifcWriter.py" DiskId="1" />
<File Id="ArchRebarPy" Name="ArchFrame.py" DiskId="1" />
</Component>
</Directory>
</Include>