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:
authorSpivak Vladimir (cwolf3d) <cwolf3d@gmail.com>2019-10-05 20:36:31 +0300
committerSpivak Vladimir (cwolf3d) <cwolf3d@gmail.com>2019-10-05 20:36:31 +0300
commit85ff380af2843d4773a3daea3e3834bac5496c70 (patch)
treee17a58853435d435dfc84f72272dff2c0bbfcb19 /mesh_bsurfaces.py
parent5d97f79e6f3ef683f64815575085b9b22be34808 (diff)
Addon: BSurfaces: Fixed some bugs
Diffstat (limited to 'mesh_bsurfaces.py')
-rw-r--r--mesh_bsurfaces.py79
1 files changed, 46 insertions, 33 deletions
diff --git a/mesh_bsurfaces.py b/mesh_bsurfaces.py
index 74f0383f..b84d0177 100644
--- a/mesh_bsurfaces.py
+++ b/mesh_bsurfaces.py
@@ -20,7 +20,7 @@
bl_info = {
"name": "Bsurfaces GPL Edition",
"author": "Eclectiel, Spivak Vladimir(cwolf3d)",
- "version": (1, 6, 4),
+ "version": (1, 6, 5),
"blender": (2, 80, 0),
"location": "View3D EditMode > Sidebar > Edit Tab",
"description": "Modeling and retopology tool",
@@ -61,7 +61,7 @@ from bpy.types import (
)
# GLOBAL
-global_color = (1.0, 0.0, 0.0, 1.0)
+global_color = [1.0, 0.0, 0.0, 1.0]
global_offset = 0.01
global_in_front = False
@@ -1770,8 +1770,6 @@ class GPENCIL_OT_SURFSK_add_surface(Operator):
if len(self.main_object.modifiers) > 0:
for m_idx in range(len(self.main_object.modifiers)):
self.main_object.modifiers[m_idx].show_viewport = self.modifiers_prev_viewport_state[m_idx]
-
- self.update()
return {'FINISHED'}
@@ -3086,22 +3084,31 @@ class GPENCIL_OT_SURFSK_add_surface(Operator):
bpy.ops.mesh.normals_make_consistent('INVOKE_REGION_WIN', inside=False)
bpy.ops.mesh.select_all('INVOKE_REGION_WIN', action='DESELECT')
- self.update()
-
return{'FINISHED'}
def update(self):
- global global_color
- global global_offset
- global global_in_front
- shrinkwrap = self.main_object.modifiers["Shrinkwrap"]
- shrinkwrap.offset = global_offset
- material = makeMaterial("BSurfaceMesh", global_color)
- if self.main_object.data.materials:
- self.main_object.data.materials[0] = material
- else:
- self.main_object.data.materials.append(material)
- self.main_object.show_in_front = global_in_front
+ try:
+ global global_offset
+ shrinkwrap = self.main_object.modifiers["Shrinkwrap"]
+ shrinkwrap.offset = global_offset
+ bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset = global_offset
+ except:
+ self.report({'WARNING'}, "Shrinkwrap modifier not found")
+
+ try:
+ global global_color
+ material = makeMaterial("BSurfaceMesh", global_color)
+ if self.main_object.data.materials:
+ self.main_object.data.materials[0] = material
+ else:
+ self.main_object.data.materials.append(material)
+ bpy.context.scene.bsurfaces.SURFSK_mesh_color = global_color
+
+ global global_in_front
+ self.main_object.show_in_front = global_in_front
+ bpy.context.scene.bsurfaces.SURFSK_in_front = global_in_front
+ except:
+ pass
return{'FINISHED'}
@@ -3304,7 +3311,11 @@ class GPENCIL_OT_SURFSK_add_surface(Operator):
bpy.ops.object.delete({"selected_objects": [o]})
#bpy.ops.object.select_all('INVOKE_REGION_WIN', action='DESELECT')
- self.original_curve.select_set(True)
+ try:
+ self.original_curve.select_set(True)
+ except:
+ self.report({'WARNING'}, "Specify the name of the object with curve")
+ return{"CANCELLED"}
bpy.context.view_layer.objects.active = self.original_curve
bpy.ops.object.duplicate('INVOKE_REGION_WIN')
@@ -3525,18 +3536,21 @@ class GPENCIL_OT_SURFSK_init(Operator):
bpy.ops.object.mode_set('INVOKE_REGION_WIN', mode='OBJECT')
if bs.SURFSK_mesh == None:
+ global global_color
+ global global_offset
+ global global_in_front
bpy.ops.object.select_all('INVOKE_REGION_WIN', action='DESELECT')
mesh = bpy.data.meshes.new('BSurfaceMesh')
mesh_object = object_utils.object_data_add(context, mesh, operator=None)
mesh_object.select_set(True)
mesh_object.show_all_edges = True
- in_front = bpy.context.scene.bsurfaces.SURFSK_in_front
- mesh_object.show_in_front = in_front
+ global_in_front = bpy.context.scene.bsurfaces.SURFSK_in_front
+ mesh_object.show_in_front = global_in_front
mesh_object.display_type = 'SOLID'
mesh_object.show_wire = True
bpy.context.view_layer.objects.active = mesh_object
- color = bpy.context.scene.bsurfaces.SURFSK_mesh_color
- material = makeMaterial("BSurfaceMesh", color)
+ global_color = bpy.context.scene.bsurfaces.SURFSK_mesh_color
+ material = makeMaterial("BSurfaceMesh", global_color)
mesh_object.data.materials.append(material)
bpy.ops.object.modifier_add(type='SHRINKWRAP')
modifier = mesh_object.modifiers["Shrinkwrap"]
@@ -3545,7 +3559,8 @@ class GPENCIL_OT_SURFSK_init(Operator):
modifier.wrap_method = 'TARGET_PROJECT'
modifier.wrap_mode = 'OUTSIDE_SURFACE'
modifier.show_on_cage = True
- modifier.offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
+ global_offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
+ modifier.offset = global_offset
bpy.context.scene.bsurfaces.SURFSK_mesh = mesh_object
@@ -4270,37 +4285,35 @@ def makeMaterial(name, diffuse):
return material
def update_color(self, context):
- try:
+ try:
global global_color
- global_color = bpy.context.scene.bsurfaces.SURFSK_mesh_color
- material = makeMaterial("BSurfaceMesh", global_color)
mesh_object = bpy.context.scene.bsurfaces.SURFSK_mesh
+ material = makeMaterial("BSurfaceMesh", bpy.context.scene.bsurfaces.SURFSK_mesh_color)
if mesh_object.data.materials:
mesh_object.data.materials[0] = material
else:
mesh_object.data.materials.append(material)
- #bpy.ops.object.mode_set('INVOKE_REGION_WIN', mode='OBJECT')
+ diffuse_color = material.diffuse_color
+ global_color = (diffuse_color[0], diffuse_color[1], diffuse_color[2], diffuse_color[3])
except Exception as e:
pass
def update_Shrinkwrap_offset(self, context):
try:
- mesh_object = bpy.context.scene.bsurfaces.SURFSK_mesh
- modifier = mesh_object.modifiers["Shrinkwrap"]
global global_offset
global_offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
+ mesh_object = bpy.context.scene.bsurfaces.SURFSK_mesh
+ modifier = mesh_object.modifiers["Shrinkwrap"]
modifier.offset = global_offset
- #bpy.ops.object.mode_set('INVOKE_REGION_WIN', mode='OBJECT')
except Exception as e:
- pass
+ self.report({'WARNING'}, "Shrinkwrap modifier not found")
def update_in_front(self, context):
try:
- mesh_object = bpy.context.scene.bsurfaces.SURFSK_mesh
global global_in_front
global_in_front = bpy.context.scene.bsurfaces.SURFSK_in_front
+ mesh_object = bpy.context.scene.bsurfaces.SURFSK_mesh
mesh_object.show_in_front = global_in_front
- #bpy.ops.object.mode_set('INVOKE_REGION_WIN', mode='OBJECT')
except Exception as e:
pass