Override Ctrl-N new file menu to make it easier to start new projects and new IFC icon.

This commit is contained in:
Dion Moult
2023-07-10 17:16:20 +10:00
parent f4a4e906ab
commit 717c28b7c9
7 changed files with 199 additions and 23 deletions
+23
View File
@@ -16,11 +16,15 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>. # along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
import os
import bpy import bpy
import bpy.utils.previews
import blenderbim import blenderbim
import importlib import importlib
from . import handler, ui, prop, operator, helper from . import handler, ui, prop, operator, helper
cwd = os.path.dirname(os.path.realpath(__file__))
modules = { modules = {
"project": None, "project": None,
"search": None, "search": None,
@@ -143,6 +147,9 @@ for mod in modules.values():
classes.extend(mod.classes) classes.extend(mod.classes)
icons = None
def on_register(scene): def on_register(scene):
handler.setDefaultProperties(scene) handler.setDefaultProperties(scene)
if not bpy.app.background: if not bpy.app.background:
@@ -177,8 +184,24 @@ def register():
for mod in modules.values(): for mod in modules.values():
mod.register() mod.register()
global icons
icons_dir = os.path.join(cwd, "data", "icons")
icon_preview = bpy.utils.previews.new()
for filename in os.listdir(icons_dir):
if filename.endswith(".png"):
icon_name = os.path.splitext(filename)[0]
icon_path = os.path.join(icons_dir, filename)
icon_preview.load(icon_name, icon_path, "IMAGE")
icons = icon_preview
def unregister(): def unregister():
global icons
bpy.utils.previews.remove(icons)
for cls in reversed(classes): for cls in reversed(classes):
if getattr(cls, "is_registered", None) is None: if getattr(cls, "is_registered", None) is None:
bpy.utils.unregister_class(cls) bpy.utils.unregister_class(cls)
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -74,25 +74,38 @@ def register():
if wm.keyconfigs.addon: if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.new(name="Object Mode", space_type="EMPTY") km = wm.keyconfigs.addon.keymaps.new(name="Object Mode", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_object_join", "J", "PRESS", ctrl=True) kmi = km.keymap_items.new("bim.override_object_join", "J", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_macro", "D", "PRESS", shift=True) kmi = km.keymap_items.new("bim.override_object_duplicate_move_macro", "D", "PRESS", shift=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_linked_macro", "D", "PRESS", alt=True) kmi = km.keymap_items.new("bim.override_object_duplicate_move_linked_macro", "D", "PRESS", alt=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_duplicate_move_aggregate_macro", "D", "PRESS", ctrl=True, shift=True) kmi = km.keymap_items.new("bim.override_object_duplicate_move_aggregate_macro", "D", "PRESS", ctrl=True, shift=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True) kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_mode_set_edit", "TAB", "PRESS") kmi = km.keymap_items.new("bim.override_mode_set_edit", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_delete", "X", "PRESS") kmi = km.keymap_items.new("bim.override_object_delete", "X", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_object_delete", "DEL", "PRESS") kmi = km.keymap_items.new("bim.override_object_delete", "DEL", "PRESS")
kmi.properties.confirm = False kmi.properties.confirm = False
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Mesh", space_type="EMPTY") km = wm.keyconfigs.addon.keymaps.new(name="Mesh", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS") kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Curve", space_type="EMPTY") km = wm.keyconfigs.addon.keymaps.new(name="Curve", space_type="EMPTY")
kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS") kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS")
addon_keymaps.append((km, kmi))
km = wm.keyconfigs.addon.keymaps.new(name="Outliner", space_type="OUTLINER") km = wm.keyconfigs.addon.keymaps.new(name="Outliner", space_type="OUTLINER")
kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True) kmi = km.keymap_items.new("bim.override_paste_buffer", "V", "PRESS", ctrl=True)
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_outliner_delete", "X", "PRESS") kmi = km.keymap_items.new("bim.override_outliner_delete", "X", "PRESS")
addon_keymaps.append((km, kmi))
kmi = km.keymap_items.new("bim.override_outliner_delete", "DEL", "PRESS") kmi = km.keymap_items.new("bim.override_outliner_delete", "DEL", "PRESS")
addon_keymaps.append((km, kmi))
def unregister(): def unregister():
@@ -49,6 +49,7 @@ classes = (
prop.FilterCategory, prop.FilterCategory,
prop.Link, prop.Link,
prop.BIMProjectProperties, prop.BIMProjectProperties,
ui.BIM_MT_new_project,
ui.BIM_MT_project, ui.BIM_MT_project,
ui.BIM_PT_project, ui.BIM_PT_project,
ui.BIM_PT_project_library, ui.BIM_PT_project_library,
@@ -59,11 +60,28 @@ classes = (
) )
addon_keymaps = []
def register(): def register():
bpy.types.Scene.BIMProjectProperties = bpy.props.PointerProperty(type=prop.BIMProjectProperties) bpy.types.Scene.BIMProjectProperties = bpy.props.PointerProperty(type=prop.BIMProjectProperties)
bpy.types.TOPBAR_MT_file.prepend(ui.file_menu) bpy.types.TOPBAR_MT_file.prepend(ui.file_menu)
wm = bpy.context.window_manager
if wm.keyconfigs.addon:
km = wm.keyconfigs.addon.keymaps.get("Window")
if not km:
km = wm.keyconfigs.addon.keymaps.new("Window")
kmi = km.keymap_items.new("wm.call_menu", "N", "PRESS", ctrl=True)
kmi.properties.name = "BIM_MT_new_project"
addon_keymaps.append((km, kmi))
def unregister(): def unregister():
bpy.types.TOPBAR_MT_file.remove(ui.file_menu) bpy.types.TOPBAR_MT_file.remove(ui.file_menu)
del bpy.types.Scene.BIMProjectProperties del bpy.types.Scene.BIMProjectProperties
wm = bpy.context.window_manager
kc = wm.keyconfigs.addon
if kc:
for km, kmi in addon_keymaps:
km.keymap_items.remove(kmi)
addon_keymaps.clear()
@@ -17,6 +17,7 @@
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>. # along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
import os import os
import blenderbim.bim
from blenderbim.bim.helper import prop_with_search from blenderbim.bim.helper import prop_with_search
from bpy.types import Panel, Menu, UIList from bpy.types import Panel, Menu, UIList
from blenderbim.bim.ifc import IfcStore from blenderbim.bim.ifc import IfcStore
@@ -28,12 +29,32 @@ class BIM_MT_project(Menu):
bl_label = "New IFC Project" bl_label = "New IFC Project"
def draw(self, context): def draw(self, context):
layout = self.layout self.layout.operator("bim.new_project", text="New Metric (m) Project").preset = "metric_m"
layout.operator("bim.new_project", text="New Metric (m) Project").preset = "metric_m" self.layout.operator("bim.new_project", text="New Metric (mm) Project").preset = "metric_mm"
layout.operator("bim.new_project", text="New Metric (mm) Project").preset = "metric_mm" self.layout.operator("bim.new_project", text="New Imperial (ft) Project").preset = "imperial_ft"
layout.operator("bim.new_project", text="New Imperial (ft) Project").preset = "imperial_ft" self.layout.operator("bim.new_project", text="New Demo Project").preset = "demo"
layout.operator("bim.new_project", text="New Demo Project").preset = "demo" self.layout.operator("bim.new_project", text="New Project Wizard").preset = "wizard"
layout.operator("bim.new_project", text="New Project Wizard").preset = "wizard"
class BIM_MT_new_project(Menu):
bl_idname = "BIM_MT_new_project"
bl_label = "New Project"
def draw(self, context):
self.layout.label(text="New IFC Project", icon_value=blenderbim.bim.icons["IFC"].icon_id)
self.layout.operator("bim.new_project", text="Metric (m) Project").preset = "metric_m"
self.layout.operator("bim.new_project", text="Metric (mm) Project").preset = "metric_mm"
self.layout.operator("bim.new_project", text="Imperial (ft) Project").preset = "imperial_ft"
self.layout.operator("bim.new_project", text="Demo Project").preset = "demo"
self.layout.operator("bim.new_project", text="Project Wizard").preset = "wizard"
self.layout.separator()
self.layout.label(text="New Blender Project", icon="BLENDER")
# In theory we can dynamically grab the list from list(bpy.utils.app_template_paths())
self.layout.operator("wm.read_homefile", text="General Project").app_template = ""
self.layout.operator("wm.read_homefile", text="2D Animation Project").app_template = "2D_Animation"
self.layout.operator("wm.read_homefile", text="Sculpting Project").app_template = "Sculpting"
self.layout.operator("wm.read_homefile", text="VFX Project").app_template = "VFX"
self.layout.operator("wm.read_homefile", text="Video Editing Project").app_template = "Video_Editing"
def file_menu(self, context): def file_menu(self, context):
@@ -205,7 +226,7 @@ class BIM_PT_project(Panel):
row = self.layout.row(align=True) row = self.layout.row(align=True)
row.operator("bim.create_project") row.operator("bim.create_project")
row.operator("bim.load_project").should_start_fresh_session = False row.operator("bim.load_project").should_start_fresh_session = True
class BIM_PT_project_library(Panel): class BIM_PT_project_library(Panel):
+17 -16
View File
@@ -30,8 +30,9 @@ from ifcopenshell.util.doc import (
get_property_doc, get_property_doc,
get_predefined_type_doc, get_predefined_type_doc,
) )
import blenderbim.bim.handler import blenderbim.bim
import blenderbim.bim.schema import blenderbim.bim.schema
import blenderbim.bim.handler
from blenderbim.bim.ifc import IfcStore from blenderbim.bim.ifc import IfcStore
import blenderbim.tool as tool import blenderbim.tool as tool
from collections import defaultdict from collections import defaultdict
@@ -335,22 +336,22 @@ class ModuleVisibility(PropertyGroup):
is_visible: BoolProperty(name="Value", default=True, update=update_is_visible) is_visible: BoolProperty(name="Value", default=True, update=update_is_visible)
def get_tab(self, context):
return [
("PROJECT", "Project Overview", "", blenderbim.bim.icons["IFC"].icon_id, 0),
("OBJECT", "Object Information", "", "FILE_3D", 1),
("MATERIALS", "Materials and Styles", "", "MATERIAL", 2),
("DRAWINGS", "Drawings and Documents", "", "DOCUMENTS", 3),
("SERVICES", "Services and Systems", "", "NETWORK_DRIVE", 4),
("STRUCTURE", "Structural Analysis", "", "EDITMODE_HLT", 5),
("SCHEDULING", "Construction Scheduling", "", "NLA", 6),
("FM", "Facility Management", "", "PACKAGE", 7),
("OTHER", "Other Properties", "", "COLLAPSEMENU", 8),
]
class BIMAreaProperties(PropertyGroup): class BIMAreaProperties(PropertyGroup):
tab: EnumProperty( tab: EnumProperty(default=0, items=get_tab, name="Tab")
default="PROJECT",
items=[
("PROJECT", "Project Overview", "", "VIEW3D", 1),
("OBJECT", "Object Information", "", "FILE_3D", 2),
("MATERIALS", "Materials and Styles", "", "MATERIAL", 3),
("DRAWINGS", "Drawings and Documents", "", "DOCUMENTS", 4),
("SERVICES", "Services and Systems", "", "NETWORK_DRIVE", 5),
("STRUCTURE", "Structural Analysis", "", "EDITMODE_HLT", 6),
("SCHEDULING", "Construction Scheduling", "", "NLA", 7),
("FM", "Facility Management", "", "PACKAGE", 8),
("OTHER", "Other Properties", "", "COLLAPSEMENU", 9),
],
name="Tab",
)
class BIMProperties(PropertyGroup): class BIMProperties(PropertyGroup):
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48mm"
height="48mm"
viewBox="0 0 48 48"
version="1.1"
id="svg9030"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icons.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview9032"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6106622"
inkscape:cx="66.121873"
inkscape:cy="50.600307"
inkscape:window-width="1920"
inkscape:window-height="1055"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs9027" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#363636;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9216"
width="48"
height="48"
x="0"
y="0" />
<path
id="path8952"
style="fill:#ffffff;fill-opacity:1"
sodipodi:type="inkscape:offset"
inkscape:radius="-0.33450544"
inkscape:original="M 148.37109 1251.9766 C 147.60971 1251.9997 146.85647 1252.3141 146.29297 1252.9121 L 139.05664 1260.6016 C 137.93064 1261.7986 137.98855 1263.6806 139.18555 1264.8066 L 145.61914 1270.8633 C 146.21714 1271.4268 146.989 1271.6929 147.75 1271.6699 C 148.511 1271.6469 149.26317 1271.3348 149.82617 1270.7363 L 150.30273 1270.2285 L 142.19141 1262.5938 L 148.49023 1255.9004 L 150.66406 1257.9473 L 153.16406 1255.293 L 150.5 1252.7852 C 149.902 1252.2222 149.13248 1251.9535 148.37109 1251.9766 z M 157.90625 1252.1191 C 157.14548 1252.1421 156.39308 1252.4562 155.83008 1253.0547 L 149.77344 1259.4883 C 148.64644 1260.6843 148.70144 1262.5693 149.89844 1263.6953 L 150.40625 1264.1699 L 158.04102 1256.0586 L 164.73633 1262.3594 L 162.6875 1264.5332 L 165.34375 1267.0332 L 167.84961 1264.3691 C 168.97561 1263.1721 168.91866 1261.2881 167.72266 1260.1621 L 160.0332 1252.9258 C 159.4352 1252.3628 158.66702 1252.0962 157.90625 1252.1191 z M 156.44727 1258.3828 L 150.71875 1264.4668 L 153.375 1266.9668 L 157.0625 1263.0469 C 158.1885 1261.8499 158.13155 1259.9678 156.93555 1258.8418 L 156.44727 1258.3828 z M 147.05078 1262.7656 C 146.28976 1262.7887 145.53761 1263.1032 144.97461 1263.7012 L 144.51367 1264.1895 L 150.59961 1269.916 L 153.09766 1267.2598 L 149.17969 1263.5723 C 148.58119 1263.0093 147.8118 1262.7425 147.05078 1262.7656 z M 159.01758 1262.834 C 158.25656 1262.8571 157.50441 1263.1696 156.94141 1263.7676 L 156.46484 1264.2754 L 164.57617 1271.9102 L 158.27539 1278.6035 L 156.10156 1276.5566 L 153.60156 1279.2109 L 156.26562 1281.7188 C 156.86362 1282.2817 157.63535 1282.5503 158.39648 1282.5273 C 159.1576 1282.5042 159.91016 1282.1898 160.47266 1281.5918 L 167.70898 1273.9023 C 168.83498 1272.7063 168.77708 1270.8223 167.58008 1269.6953 L 161.14648 1263.6406 C 160.54798 1263.0777 159.77859 1262.8108 159.01758 1262.834 z M 156.16797 1264.5879 L 153.66992 1267.2441 L 157.58789 1270.9316 C 158.14899 1271.4598 158.86029 1271.7282 159.57422 1271.7402 C 160.38335 1271.7542 161.19478 1271.4386 161.79297 1270.8027 L 162.25391 1270.3145 L 156.16797 1264.5879 z M 141.42383 1267.4707 L 138.91602 1270.1348 C 137.79002 1271.3308 137.84893 1273.2148 139.04492 1274.3418 L 146.73242 1281.5781 C 147.33092 1282.141 148.10033 1282.4078 148.86133 1282.3848 C 149.62233 1282.3616 150.37595 1282.0477 150.93945 1281.4492 L 156.99414 1275.0156 C 158.12014 1273.8186 158.06419 1271.9346 156.86719 1270.8086 L 156.35938 1270.334 L 148.72461 1278.4453 L 142.03125 1272.1445 L 144.07812 1269.9707 L 141.42383 1267.4707 z M 153.39258 1267.5391 L 149.70508 1271.4551 C 148.57808 1272.6521 148.63504 1274.5361 149.83203 1275.6621 L 150.32031 1276.123 L 156.04883 1270.0371 L 153.39258 1267.5391 z "
d="m 148.38086,1252.3105 c -0.67611,0.021 -1.34215,0.2978 -1.84375,0.8301 l -7.23633,7.6895 c -1.00218,1.0654 -0.95215,2.7302 0.11328,3.7324 l 6.4336,6.0566 c 0.53169,0.5011 1.21627,0.7373 1.89257,0.7168 0.67632,-0.02 1.34091,-0.2956 1.8418,-0.8281 l 0.24805,-0.2656 -7.86719,-7.4043 a 0.33453889,0.33453889 0 0 1 -0.0156,-0.4727 l 6.29882,-6.6933 a 0.33453889,0.33453889 0 0 1 0.47266,-0.016 l 1.93164,1.8184 2.04102,-2.168 -2.41993,-2.2773 c -0.53239,-0.5012 -1.21465,-0.7393 -1.89062,-0.7188 z m 9.53516,0.1426 c -0.67549,0.02 -1.34069,0.2974 -1.8418,0.8301 l -6.05664,6.4336 c -1.00297,1.0644 -0.95565,2.7325 0.10937,3.7344 l 0.26367,0.2461 7.40626,-7.8672 a 0.33453889,0.33453889 0 0 1 0.47265,-0.016 l 6.69531,6.3007 a 0.33453889,0.33453889 0 0 1 0.0156,0.4727 l -1.82031,1.9316 2.16992,2.041 2.27539,-2.4199 c 1.00212,-1.0653 0.95294,-2.7324 -0.11133,-3.7344 l -7.68945,-7.2363 c -0.53228,-0.5011 -1.21272,-0.7371 -1.88867,-0.7168 z m -1.45508,6.4024 -5.26953,5.5976 2.16992,2.041 3.45703,-3.6757 c 1.00224,-1.0655 0.95308,-2.7304 -0.11133,-3.7325 z m -9.40039,4.2441 c -0.67567,0.021 -1.3406,0.2977 -1.8418,0.8301 a 0.33453889,0.33453889 0 0 1 0,0 l -0.23047,0.2442 5.59766,5.2676 2.03906,-2.17 -3.67383,-3.457 c -0.5327,-0.5011 -1.21451,-0.7373 -1.89062,-0.7168 z m 11.96679,0.068 c -0.67625,0.021 -1.34085,0.296 -1.84179,0.8281 l -0.24805,0.2656 7.86719,7.4043 a 0.33453889,0.33453889 0 0 1 0.0156,0.4727 l -6.30078,6.6933 a 0.33453889,0.33453889 0 0 1 -0.47265,0.016 l -1.93165,-1.8184 -2.04101,2.168 2.41992,2.2773 c 0.53209,0.5009 1.21686,0.7392 1.89258,0.7188 0.67581,-0.021 1.34122,-0.298 1.8418,-0.8301 l 7.23632,-7.6895 c 1.0019,-1.0642 0.95218,-2.7312 -0.11328,-3.7343 l -6.43359,-6.0547 c -0.53272,-0.5011 -1.21458,-0.7374 -1.89063,-0.7168 z m -2.8457,1.8925 -2.03906,2.17 3.67383,3.457 c 0.49954,0.4703 1.12981,0.7081 1.76367,0.7187 0.71832,0.013 1.43615,-0.2658 1.96875,-0.832 a 0.33453889,0.33453889 0 0 1 0,-0 l 0.23047,-0.2442 z m -14.74414,2.8829 -2.27734,2.4199 c -1.00183,1.0641 -0.95128,2.7312 0.11328,3.7344 l 7.6875,7.2363 c 0.5327,0.501 1.2145,0.7372 1.89062,0.7168 0.67587,-0.021 1.34227,-0.2975 1.84375,-0.8301 l 6.05469,-6.4336 c 1.00219,-1.0654 0.95383,-2.7324 -0.11133,-3.7344 l -0.26367,-0.2461 -7.40625,7.8672 a 0.33453889,0.33453889 0 0 1 -0.47266,0.016 l -6.69336,-6.3008 a 0.33453889,0.33453889 0 0 1 -0.0156,-0.4727 l 1.81836,-1.9316 z m 11.96875,0.068 -3.45703,3.6719 c -1.00306,1.0654 -0.95389,2.7323 0.11133,3.7344 a 0.33453889,0.33453889 0 0 1 0.002,0 l 0.24414,0.2304 5.26953,-5.5976 z"
inkscape:export-filename="../Projects/ifcopenshell/src/blenderbim/blenderbim/bim/data/icons/IFC.png"
inkscape:export-xdpi="150.82909"
inkscape:export-ydpi="150.82909"
transform="matrix(0.53537983,0,0,-0.53537983,-58.118351,686.46113)" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9655"
width="16"
height="16"
x="0"
y="0" />
<path
id="path8815"
d="M 10.625225,7.1021518e-4 C 10.226604,-0.01131418 9.8229501,0.12932665 9.5097659,0.42417064 L 8.1142731,1.7374953 9.4230672,3.1275415 10.562324,2.0551173 l 3.299598,3.5050444 -4.2485927,3.999048 0.250105,0.2654095 c 0.5896997,0.6263398 1.5756447,0.6564528 2.2025477,0.066772 l 3.369417,-3.1713453 c 0.626888,-0.5902061 0.657218,-1.5768488 0.06755,-2.2031904 L 11.712358,0.49015782 C 11.417761,0.17698777 11.02389,0.01275687 10.625269,7.1169967e-4 Z M 5.6317063,0.07512783 C 5.2331595,0.06310344 4.8304559,0.20301686 4.5170044,0.49785491 L 0.49012295,4.2874765 C -0.13624251,4.8776811 -0.16633023,5.863592 0.42337685,6.4899321 L 1.736779,7.8853196 3.1268887,6.5766042 2.0543842,5.4374076 5.559586,2.1379654 9.5588605,6.3863457 9.8243011,6.1370133 C 10.451204,5.5473313 10.480762,4.5606885 9.8911071,3.9338244 L 6.7196265,0.56457395 C 6.4244501,0.25114115 6.0302679,0.08727691 5.6317063,0.07512783 Z M 6.3958128,3.3546169 6.1395766,3.5955174 C 5.5126885,4.185198 5.4833683,5.1718422 6.0736616,5.7987064 L 8.0046376,7.8500228 9.3955134,6.541306 Z m 4.8462202,2.2952542 c -0.373903,0.00623 -0.746426,0.146846 -1.040281,0.4234604 L 8.1495761,8.0042512 9.4583554,9.3950307 12.645186,6.3962948 12.4043,6.1401025 C 12.091012,5.8070848 11.665787,5.6424873 11.242033,5.6498711 Z M 5.0494295,5.6860037 C 4.6508678,5.6739793 4.2471443,5.813581 3.9339586,6.1086788 L 0.56377528,9.2808094 C -0.06312017,9.8704915 -0.09267938,10.856349 0.49702918,11.483213 L 4.286855,15.509911 c 0.5902311,0.626341 1.5769484,0.656401 2.2033169,0.06671 L 7.8848927,14.2633 6.5760986,12.87252 5.437614,13.944946 2.1380069,10.4399 6.3866085,6.4408533 6.1365035,6.1754439 C 5.8416537,5.8620111 5.4479763,5.6980429 5.0494146,5.6859977 Z M 6.5415824,6.6050382 3.354743,9.6037727 3.5956333,9.8599649 c 0.5897115,0.6263401 1.5756494,0.6564531 2.2025523,0.066773 L 7.8503765,7.9958178 Z M 14.263928,8.1147479 12.872265,9.4234647 13.945548,10.56266 10.439565,13.862102 6.4410772,9.6137232 6.1748647,9.8630556 C 5.5479767,10.452736 5.5186565,11.439118 6.1089497,12.065459 l 3.172252,3.370035 c 0.5897145,0.626865 1.5754073,0.6564 2.2017763,0.06671 l 4.026887,-3.789622 c 0.626368,-0.589682 0.65646,-1.575591 0.06681,-2.2024551 z M 7.9953593,8.1498413 6.6044835,9.4585581 9.604125,12.645249 9.8603612,12.404348 C 10.48673,11.814666 10.51605,10.828757 9.926276,10.201893 Z"
style="fill:#dadada;fill-opacity:1;stroke-width:0.52371" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9657"
width="16"
height="16"
x="0"
y="32" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9659"
width="16"
height="16"
x="32"
y="0" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9661"
width="16"
height="16"
x="32"
y="32" />
<rect
style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round"
id="rect9663"
width="16"
height="16"
x="16"
y="16" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB