[Bf-extensions-cvs] [7580e19b] master: Add Advanced Objects: Fix pixelate properties error
lijenstina
noreply at git.blender.org
Mon Jun 19 03:43:35 CEST 2017
Commit: 7580e19b74a2d7bb9f05e3ac40e1e2c1edc79fd9
Author: lijenstina
Date: Mon Jun 19 03:42:57 2017 +0200
Branches: master
https://developer.blender.org/rBA7580e19b74a2d7bb9f05e3ac40e1e2c1edc79fd9
Add Advanced Objects: Fix pixelate properties error
Bumped the Menu to 1.1.5
Fixed the ommission during the refactor
Scene properties cannot be used inside an Operator
replaced them with the self ones
Removed the pixelate properties from init as not needed
Fix the error related to moving drop to ground to a
separate add-on - if it is not enabled it will error out
No need for a duplicate entry
===================================================================
M add_advanced_objects_menu/__init__.py
M add_advanced_objects_menu/pixelate_3d.py
===================================================================
diff --git a/add_advanced_objects_menu/__init__.py b/add_advanced_objects_menu/__init__.py
index cacf8419..8b9cd86a 100644
--- a/add_advanced_objects_menu/__init__.py
+++ b/add_advanced_objects_menu/__init__.py
@@ -25,7 +25,7 @@
bl_info = {
"name": "Add Advanced Objects",
"author": "Meta Androcto",
- "version": (0, 1, 4),
+ "version": (0, 1, 5),
"blender": (2, 78, 0),
"location": "View3D > Add ",
"description": "Add Object & Camera extras",
@@ -179,8 +179,7 @@ class INFO_MT_Physics_tools_add(Menu):
def draw(self, context):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("object.drop_on_active",
- text="Drop To Ground", icon="SORTSIZE")
+
layout.operator("ball.rope",
text="Wrecking Ball", icon='PHYSICS')
layout.operator("clot.rope",
@@ -249,7 +248,7 @@ class AdvancedObjPreferences(AddonPreferences):
box.label(text="Panels located in 3D View Tools Region > Create",
icon="LAYER_ACTIVE")
box.label(text="CubeSter", icon="LAYER_USED")
- box.label(text="Duplicate on Curve (Shown if an Active Curve Object is it the 3D View)",
+ box.label(text="Arrange on Curve (Shown if an Active Curve Object is it the 3D View)",
icon="LAYER_USED")
@@ -498,26 +497,6 @@ class AdvancedObjProperties(PropertyGroup):
default=0.25
)
- # pixelate_3d properties
- pixelate_3d_size = FloatProperty(
- name="Size",
- min=.05, max=5,
- default=.25,
- description="Size of the cube / grid"
- )
- pixelate_3d_gap = IntProperty(
- name="Gap",
- min=0, max=90,
- default=10,
- subtype='PERCENTAGE',
- description="Separation - percent of size"
- )
- pixelate_3d_smooth = FloatProperty(
- name="Smooth",
- min=0, max=1,
- default=.0,
- description="Smooth factor when subdividing mesh"
- )
# arrange_on_curve
arrange_c_use_selected = BoolProperty(
name="Use Selected",
diff --git a/add_advanced_objects_menu/pixelate_3d.py b/add_advanced_objects_menu/pixelate_3d.py
index d2b28971..3a9fc886 100644
--- a/add_advanced_objects_menu/pixelate_3d.py
+++ b/add_advanced_objects_menu/pixelate_3d.py
@@ -4,22 +4,25 @@
bl_info = {
"name": "3D Pixelate",
"author": "liero",
- "version": (0, 5, 2),
+ "version": (0, 5, 3),
"blender": (2, 74, 0),
"location": "View3D > Tool Shelf",
"description": "Creates a 3d pixelated version of the object",
"category": "Object"}
-# Note: winmgr properties are moved into __init__
-# search for patterns advanced_objects and adv_obj
+# Note: winmgr properties are moved to the operator
+
import bpy
from bpy.types import Operator
+from bpy.props import (
+ FloatProperty,
+ IntProperty,
+ )
-def pix(obj):
+def pix(self, obj):
sce = bpy.context.scene
- props = sce.advanced_objects
obj.hide = obj.hide_render = True
mes = obj.to_mesh(sce, True, 'RENDER')
mes.transform(obj.matrix_world)
@@ -34,12 +37,12 @@ def pix(obj):
fin = True
for i in dup.data.edges:
d = ver[i.vertices[0]].co - ver[i.vertices[1]].co
- if d.length > props.pixelate_3d_size:
+ if d.length > self.size:
ver[i.vertices[0]].select = True
ver[i.vertices[1]].select = True
fin = False
bpy.ops.object.editmode_toggle()
- bpy.ops.mesh.subdivide(number_cuts=1, smoothness=props.pixelate_3d_smooth)
+ bpy.ops.mesh.subdivide(number_cuts=1, smoothness=self.smooth)
bpy.ops.mesh.select_all(action='DESELECT')
bpy.ops.object.editmode_toggle()
if fin:
@@ -47,14 +50,14 @@ def pix(obj):
for i in ver:
for n in range(3):
- i.co[n] -= (.001 + i.co[n]) % props.pixelate_3d_size
+ i.co[n] -= (.001 + i.co[n]) % self.size
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.remove_doubles(threshold=0.0001)
bpy.ops.mesh.delete(type='EDGE_FACE')
bpy.ops.object.mode_set()
- sca = props.pixelate_3d_size * (100 - props.pixelate_3d_gap) * .005
+ sca = self.size * (100 - self.gap) * .005
bpy.ops.mesh.primitive_cube_add(layers=[True] + [False] * 19)
bpy.ops.transform.resize(value=[sca] * 3)
bpy.context.scene.objects.active = dup
@@ -70,6 +73,27 @@ class Pixelate(Operator):
"Needs an existing Active Mesh Object")
bl_options = {'REGISTER', 'UNDO'}
+ size = FloatProperty(
+ name="Size",
+ min=.05, max=5,
+ default=.25,
+ description="Size of the cube / grid \n"
+ "Small values (below 0.1) can create a high polygon count"
+ )
+ gap = IntProperty(
+ name="Gap",
+ min=0, max=90,
+ default=10,
+ subtype='PERCENTAGE',
+ description="Separation - percent of size"
+ )
+ smooth = FloatProperty(
+ name="Smooth",
+ min=0, max=1,
+ default=.0,
+ description="Smooth factor when subdividing mesh"
+ )
+
@classmethod
def poll(cls, context):
return (context.active_object and
@@ -78,17 +102,16 @@ class Pixelate(Operator):
def draw(self, context):
layout = self.layout
- adv_obj = context.scene.advanced_objects
col = layout.column(align=True)
- col.prop(adv_obj, "pixelate_size")
- col.prop(adv_obj, "pixelate_gap")
- layout.prop(adv_obj, "pixelate_smooth")
+ col.prop(self, "size")
+ col.prop(self, "gap")
+ layout.prop(self, "smooth")
def execute(self, context):
- objeto = context.active_object
+ objeto = bpy.context.object
try:
- pix(objeto)
+ pix(self, objeto)
except Exception as e:
self.report({'WARNING'},
More information about the Bf-extensions-cvs
mailing list