[Bf-extensions-cvs] [fab37f5] blender-v2.78-release: Fix T49785: Archimesh crash if create material using BI render

Antonioya noreply at git.blender.org
Mon Oct 24 12:35:55 CEST 2016


Commit: fab37f574535b73aed39d86e2749fa169f0775c2
Author: Antonioya
Date:   Wed Oct 19 18:39:27 2016 +0200
Branches: blender-v2.78-release
https://developer.blender.org/rBAfab37f574535b73aed39d86e2749fa169f0775c2

Fix T49785: Archimesh crash if create material using BI render

In some situations the program creates materials for Cycles when the BI
render was selected.

===================================================================

M	archimesh/achm_books_maker.py
M	archimesh/achm_curtain_maker.py
M	archimesh/achm_kitchen_maker.py
M	archimesh/achm_lamp_maker.py
M	archimesh/achm_window_maker.py

===================================================================

diff --git a/archimesh/achm_books_maker.py b/archimesh/achm_books_maker.py
index 890a695..1c78f8b 100644
--- a/archimesh/achm_books_maker.py
+++ b/archimesh/achm_books_maker.py
@@ -369,7 +369,7 @@ def create_book(objname, sx, sy, sz, px, py, pz, mat, frx,
     # ---------------------------------
     # Materials and UV Maps
     # ---------------------------------
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         rgb = objcol
         # External
         mat = create_diffuse_material(objname + "_material", True,
diff --git a/archimesh/achm_curtain_maker.py b/archimesh/achm_curtain_maker.py
index dcb5dad..c02d821 100644
--- a/archimesh/achm_curtain_maker.py
+++ b/archimesh/achm_curtain_maker.py
@@ -490,7 +490,7 @@ def create_japan_rail(objname, sx, ways, px, py, pz, mat):
     # ---------------------------------
     # Materials
     # ---------------------------------
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         # External
         mat = create_diffuse_material(objname + "_material", False, 0.8, 0.8, 0.8, 0.6, 0.6, 0.6, 0.15)
         set_material(myobject, mat)
@@ -537,7 +537,7 @@ def create_japan_support(objname, sx, px, py, pz, mat):
     # ---------------------------------
     # Materials
     # ---------------------------------
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         # External
         mat = create_diffuse_material(objname + "_material", False, 0.8, 0.8, 0.8, 0.6, 0.6, 0.6, 0.15)
         set_material(myobject, mat)
@@ -578,7 +578,7 @@ def create_japan_panel(objname, sx, sz, px, py, pz, mat, fabricmat):
     # ---------------------------------
     # Materials
     # ---------------------------------
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         unwrap_mesh(myobject, True)
         # remap UV to use all texture
         for uv_loop in myobject.data.uv_layers.active.data:
@@ -781,7 +781,7 @@ def create_roller_rail(objname, width, radio, px, py, pz, mat, mymaterial):
     myroll.location.z = pz
 
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(myroll, mymaterial)
 
     # Smooth
@@ -825,7 +825,7 @@ def create_roller_sides(myroller, side, px, py, pz, mat, plastic):
     myside.parent = myroller
 
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(myside, plastic)
 
     # Smooth
diff --git a/archimesh/achm_kitchen_maker.py b/archimesh/achm_kitchen_maker.py
index 3cbfe02..f9d9818 100644
--- a/archimesh/achm_kitchen_maker.py
+++ b/archimesh/achm_kitchen_maker.py
@@ -1056,7 +1056,7 @@ def create_baseboard(objname, sx, sy, sz, mat, bl, br, depth, doortype, gap):
     mymesh.update(calc_edges=True)
 
     # Material
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_diffuse_material("Baseboard_material", False, 0.8, 0.8, 0.8)
         set_material(mybaseboard, mat)
 
@@ -1124,7 +1124,7 @@ def create_countertop(objname, sx, sy, sz, over, mat, doortype, depth, edge):
     mymesh.update(calc_edges=True)
 
     # Material
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_diffuse_material("countertop_material", False, 0, 0, 0, 0.2, 0.2, 0.2, 0.15)
         set_material(mycountertop, mat)
 
@@ -1238,7 +1238,7 @@ def create_door(type_cabinet, objname, thickness, sx, sz, doortype, gf, mat, han
 
         create_handle(handle_model, mydoor, thickness, hpos, mat, handle_x, handle_z)
 
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         # Door material
         mat = create_diffuse_material("Door_material", False, 0.8, 0.8, 0.8, 0.279, 0.337, 0.6, 0.2)
         set_material(mydoor, mat)
@@ -1324,7 +1324,7 @@ def create_drawer(objname, thickness, sx, sy, sz, mat, handle, handle_model, han
         create_handle(model, mydrawer, thickness, "TM", mat, 0, handle_z)  # always in the top area/middle
 
     # Material
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_diffuse_material("Drawer_material", False, 0.8, 0.8, 0.8, 0.6, 0.6, 0.6, 0.2)
         set_material(mydrawer, mat)
 
@@ -1447,7 +1447,7 @@ def create_handle(model, mydoor, thickness, handle_position, mat, handle_x, hand
     # parent
     myhandle.parent = mydoor
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_glossy_material("Handle_material", False, 0.733, 0.779, 0.8, 0.733, 0.779, 0.8, 0.02)
         set_material(myhandle, mat)
 
diff --git a/archimesh/achm_lamp_maker.py b/archimesh/achm_lamp_maker.py
index 0a250bb..a6b1543 100644
--- a/archimesh/achm_lamp_maker.py
+++ b/archimesh/achm_lamp_maker.py
@@ -543,7 +543,7 @@ def create_lamp_base(objname, height, px, py, pz, segments, rings, radios, ratio
     mycylinder.location.y = py
     mycylinder.location.z = pz
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         rgb = objcol
         mymat = create_diffuse_material(mycylinder.name + "_material", True, rgb[0], rgb[1], rgb[2], rgb[0], rgb[1],
                                         rgb[2], 0.1)
@@ -581,7 +581,7 @@ def create_lampholder(objname, height, px, py, pz, mat):
     mycylinder.location.z = pz
 
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_diffuse_material(mycylinder.name + "_material", True, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.1)
         set_material(mycylinder, mat)
 
@@ -627,7 +627,7 @@ def create_lampholder_strings(objname, height, px, py, pz, radio, shadeh, mat):
     box2.location = (-0.021, 0, height + 0.004)
 
     # Materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mat = create_diffuse_material(mycylinder.name + "_material", True, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.1)
         set_material(mycylinder, mat)
         set_material(box1, mat)
@@ -673,7 +673,7 @@ def create_lampshade(objname, height, px, py, pz, segments, radio1, radio2, plea
     mycylinder.location.y = py
     mycylinder.location.z = pz
     # materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mymat = create_translucent_material(mycylinder.name + "_material", True, 0.8, 0.65, 0.45, 0.8, 0.65, 0.45,
                                             opacity)
         set_material(mycylinder, mymat)
diff --git a/archimesh/achm_window_maker.py b/archimesh/achm_window_maker.py
index fa8bf39..5095f47 100644
--- a/archimesh/achm_window_maker.py
+++ b/archimesh/achm_window_maker.py
@@ -906,7 +906,7 @@ def create_rail_window_frame(mywindow, mymesh, sx, sy, sz, frame, mat, matdata,
     mymesh.from_pydata(myvertex, [], myfaces)
     mymesh.update(calc_edges=True)
 
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(mywindow, matdata)
     # --------------
     # Blind Box
@@ -919,7 +919,7 @@ def create_rail_window_frame(mywindow, mymesh, sx, sy, sz, frame, mat, matdata,
         mybox.location.x = 0
         mybox.location.y = -blind_back - sy
         mybox.location.z = sz
-        if mat:
+        if mat and bpy.context.scene.render.engine == 'CYCLES':
             set_material(mybox, matdata)
         # Lock
         mybox.lock_location = (True, True, True)
@@ -1030,7 +1030,7 @@ def create_leaf_window_frame(mywindow, mymesh, sx, sy, sz, frame, frame_l, leafr
     mymesh.from_pydata(myvertex, [], myfaces)
     mymesh.update(calc_edges=True)
 
-    if mat is True:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(mywindow, matdata)
 
     # --------------
@@ -1044,7 +1044,7 @@ def create_leaf_window_frame(mywindow, mymesh, sx, sy, sz, frame, frame_l, leafr
         mybox.location.x = 0
         mybox.location.y = -blind_back - sy
         mybox.location.z = sz
-        if mat:
+        if mat and bpy.context.scene.render.engine == 'CYCLES':
             set_material(mybox, matdata)
         # Lock
         mybox.lock_location = (True, True, True)
@@ -1226,7 +1226,7 @@ def create_rail_window_leaf(objname, hand, sx, sy, sz, f, px, py, pz, mat, matda
         else:
             myhandle.location.z = 1
 
-    if mat is True and bpy.context.scene.render.engine == 'CYCLES':
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(mywindow, matdata)
         # Glass
         glass = create_glass_material("Glass_material", False)
@@ -1338,7 +1338,7 @@ def create_leaf_window_leaf(objname, hand, sx, sy, sz, f, px, py, pz, mat, matda
         set_smooth(myhandle)
         set_modifier_subsurf(myhandle)
 
-    if mat is True:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         set_material(mywindow, matdata)
         # Glass
         glass = create_glass_material("Glass_material", False)
@@ -1765,7 +1765,7 @@ def create_leaf_handle(objname, mat):
     mesh.update(calc_edges=True)
 
     # Create materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         alumat = create_glossy_material("Handle_material", False, 0.733, 0.779, 0.8)
         set_material(myobject, alumat)
 
@@ -2106,7 +2106,7 @@ def create_rail_handle(objname, mat):
     mesh.update(calc_edges=True)
 
     # Create materials
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         plastic = create_diffuse_material("Plastic_Handle_material", False, 0.01, 0.01, 0.01, 0.082, 0.079, 0.02, 0.01)
         set_material(myobject, plastic)
 
@@ -2143,7 +2143,7 @@ def create_sill(objname, x, y, z, mat):
     mesh.from_pydata(myvertex, [], myfaces)
     mesh.update(calc_edges=True)
 
-    if mat:
+    if mat and bpy.context.scene.render.engine == 'CYCLES':
         mymat = create_diffuse_material("Sill_material", False, 0.8, 0.8, 0.8)
         set_material(myobject, mymat)
 
@@ -2241,7 +2241,7 @@ def create_blind_rail(objname, sx, sz, px, py, pz, mat, matdata, blind_rail):
     mymesh.from_pydata(myvertex, [], myfaces)
     mymesh.update(calc_edges=True)
 
-    if mat:
+    if mat and bpy.context.scene.render.engine == '

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list