Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'archipack/archipack_object.py')
-rw-r--r--archipack/archipack_object.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/archipack/archipack_object.py b/archipack/archipack_object.py
index b99fc33b..7c3a2c16 100644
--- a/archipack/archipack_object.py
+++ b/archipack/archipack_object.py
@@ -36,7 +36,6 @@ from bpy_extras.view3d_utils import (
region_2d_to_origin_3d,
region_2d_to_vector_3d
)
-# from .materialutils import MaterialUtils
class ArchipackObject():
@@ -151,18 +150,30 @@ class ArchipackCreateTool():
def load_preset(self, d):
"""
Load python preset
+ d: archipack object datablock
preset: full filename.py with path
"""
d.auto_update = False
+ fallback = True
if self.filepath != "":
try:
bpy.ops.script.python_file_run(filepath=self.filepath)
+ fallback = False
except:
- print("Archipack unable to load preset file : %s" % (self.filepath))
pass
+ if fallback:
+ # fallback to load preset on background process
+ try:
+ exec(compile(open(self.filepath).read(), self.filepath, 'exec'))
+ except:
+ print("Archipack unable to load preset file : %s" % (self.filepath))
+ pass
d.auto_update = True
def add_material(self, o, material='DEFAULT', category=None):
+ # skip if preset allready add material
+ if "archipack_material" in o:
+ return
try:
if category is None:
category = self.archipack_category