Fix #104441: Bsurfaces: get modifiers with their type instead of name #104443
@ -76,8 +76,12 @@ class VIEW3D_PT_tools_SURFSK_mesh(Panel):
|
|||||||
except: pass
|
except: pass
|
||||||
try: col.prop(mesh_object.data.materials[0], "diffuse_color")
|
try: col.prop(mesh_object.data.materials[0], "diffuse_color")
|
||||||
except: pass
|
except: pass
|
||||||
try: col.prop(mesh_object.modifiers['Shrinkwrap'], "offset")
|
try:
|
||||||
except: pass
|
shrinkwrap = next(mod for mod in mesh_object.modifiers
|
||||||
|
if mod.type == 'SHRINKWRAP')
|
||||||
|
col.prop(shrinkwrap, "offset")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
try: col.prop(mesh_object, "show_in_front")
|
try: col.prop(mesh_object, "show_in_front")
|
||||||
except: pass
|
except: pass
|
||||||
try: col.prop(bs, "SURFSK_shade_smooth")
|
try: col.prop(bs, "SURFSK_shade_smooth")
|
||||||
@ -1652,8 +1656,7 @@ class MESH_OT_SURFSK_add_surface(Operator):
|
|||||||
|
|
||||||
final_ob_duplicate = bpy.context.view_layer.objects.active
|
final_ob_duplicate = bpy.context.view_layer.objects.active
|
||||||
|
|
||||||
bpy.ops.object.modifier_add('INVOKE_REGION_WIN', type='SHRINKWRAP')
|
shrinkwrap_modifier = context.object.modifiers.new("", 'SHRINKWRAP')
|
||||||
shrinkwrap_modifier = final_ob_duplicate.modifiers[-1]
|
|
||||||
shrinkwrap_modifier.wrap_method = "NEAREST_VERTEX"
|
shrinkwrap_modifier.wrap_method = "NEAREST_VERTEX"
|
||||||
shrinkwrap_modifier.target = self.main_object
|
shrinkwrap_modifier.target = self.main_object
|
||||||
|
|
||||||
@ -3514,8 +3517,7 @@ class MESH_OT_SURFSK_init(Operator):
|
|||||||
color_red = [1.0, 0.0, 0.0, 0.3]
|
color_red = [1.0, 0.0, 0.0, 0.3]
|
||||||
material = makeMaterial("BSurfaceMesh", color_red)
|
material = makeMaterial("BSurfaceMesh", color_red)
|
||||||
mesh_object.data.materials.append(material)
|
mesh_object.data.materials.append(material)
|
||||||
bpy.ops.object.modifier_add(type='SHRINKWRAP')
|
modifier = mesh_object.modifiers.new("", 'SHRINKWRAP')
|
||||||
modifier = mesh_object.modifiers["Shrinkwrap"]
|
|
||||||
if self.active_object is not None:
|
if self.active_object is not None:
|
||||||
modifier.target = self.active_object
|
modifier.target = self.active_object
|
||||||
modifier.wrap_method = 'TARGET_PROJECT'
|
modifier.wrap_method = 'TARGET_PROJECT'
|
||||||
@ -3593,44 +3595,36 @@ class MESH_OT_SURFSK_add_modifiers(Operator):
|
|||||||
bpy.context.view_layer.objects.active = mesh_object
|
bpy.context.view_layer.objects.active = mesh_object
|
||||||
|
|
||||||
try:
|
try:
|
||||||
shrinkwrap = mesh_object.modifiers["Shrinkwrap"]
|
shrinkwrap = next(mod for mod in mesh_object.modifiers
|
||||||
if self.active_object is not None and self.active_object != mesh_object:
|
if mod.type == 'SHRINKWRAP')
|
||||||
shrinkwrap.target = self.active_object
|
|
||||||
shrinkwrap.wrap_method = 'TARGET_PROJECT'
|
|
||||||
shrinkwrap.wrap_mode = 'OUTSIDE_SURFACE'
|
|
||||||
shrinkwrap.show_on_cage = True
|
|
||||||
shrinkwrap.offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
|
|
||||||
except:
|
except:
|
||||||
bpy.ops.object.modifier_add(type='SHRINKWRAP')
|
shrinkwrap = mesh_object.modifiers.new("", 'SHRINKWRAP')
|
||||||
shrinkwrap = mesh_object.modifiers["Shrinkwrap"]
|
if self.active_object is not None and self.active_object != mesh_object:
|
||||||
if self.active_object is not None and self.active_object != mesh_object:
|
shrinkwrap.target = self.active_object
|
||||||
shrinkwrap.target = self.active_object
|
shrinkwrap.wrap_method = 'TARGET_PROJECT'
|
||||||
shrinkwrap.wrap_method = 'TARGET_PROJECT'
|
shrinkwrap.wrap_mode = 'OUTSIDE_SURFACE'
|
||||||
shrinkwrap.wrap_mode = 'OUTSIDE_SURFACE'
|
shrinkwrap.show_on_cage = True
|
||||||
shrinkwrap.show_on_cage = True
|
shrinkwrap.offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
|
||||||
shrinkwrap.offset = bpy.context.scene.bsurfaces.SURFSK_Shrinkwrap_offset
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
mirror = mesh_object.modifiers["Mirror"]
|
mirror = next(mod for mod in mesh_object.modifiers
|
||||||
mirror.use_clip = True
|
if mod.type == 'MIRROR')
|
||||||
except:
|
except:
|
||||||
bpy.ops.object.modifier_add(type='MIRROR')
|
mirror = mesh_object.modifiers.new("", 'MIRROR')
|
||||||
mirror = mesh_object.modifiers["Mirror"]
|
mirror.use_clip = True
|
||||||
mirror.use_clip = True
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_subsurf = mesh_object.modifiers["Subdivision"]
|
_subsurf = next(mod for mod in mesh_object.modifiers
|
||||||
|
if mod.type == 'SUBSURF')
|
||||||
except:
|
except:
|
||||||
bpy.ops.object.modifier_add(type='SUBSURF')
|
_subsurf = mesh_object.modifiers.new("", 'SUBSURF')
|
||||||
_subsurf = mesh_object.modifiers["Subdivision"]
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
solidify = mesh_object.modifiers["Solidify"]
|
solidify = next(mod for mod in mesh_object.modifiers
|
||||||
solidify.thickness = 0.01
|
if mod.type == 'SOLIDIFY')
|
||||||
except:
|
except:
|
||||||
bpy.ops.object.modifier_add(type='SOLIDIFY')
|
solidify = mesh_object.modifiers.new("", 'SOLIDIFY')
|
||||||
solidify = mesh_object.modifiers["Solidify"]
|
solidify.thickness = 0.01
|
||||||
solidify.thickness = 0.01
|
|
||||||
|
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
@ -3960,10 +3954,10 @@ class CURVE_OT_SURFSK_reorder_splines(Operator):
|
|||||||
curves_duplicate_2.select_set(True)
|
curves_duplicate_2.select_set(True)
|
||||||
bpy.context.view_layer.objects.active = curves_duplicate_2
|
bpy.context.view_layer.objects.active = curves_duplicate_2
|
||||||
|
|
||||||
bpy.ops.object.modifier_add('INVOKE_REGION_WIN', type='SHRINKWRAP')
|
shrinkwrap = curves_duplicate_2.modifiers.new("", 'SHRINKWRAP')
|
||||||
curves_duplicate_2.modifiers["Shrinkwrap"].wrap_method = "NEAREST_VERTEX"
|
shrinkwrap.wrap_method = "NEAREST_VERTEX"
|
||||||
curves_duplicate_2.modifiers["Shrinkwrap"].target = GP_strokes_mesh
|
shrinkwrap.target = GP_strokes_mesh
|
||||||
bpy.ops.object.modifier_apply('INVOKE_REGION_WIN', modifier='Shrinkwrap')
|
bpy.ops.object.modifier_apply('INVOKE_REGION_WIN', modifier=shrinkwrap.name)
|
||||||
|
|
||||||
# Get the distance of each vert from its original position to its position with Shrinkwrap
|
# Get the distance of each vert from its original position to its position with Shrinkwrap
|
||||||
nearest_points_coords = {}
|
nearest_points_coords = {}
|
||||||
|
Loading…
Reference in New Issue
Block a user