[Bf-extensions-cvs] [af291e44] master: Addon: Mesh Extra Objects: Gears, Wallfactory, Beam, Pipe: Implemented add object in edit mode
Spivak Vladimir cwolf3d
noreply at git.blender.org
Thu Aug 15 02:04:15 CEST 2019
Commit: af291e44f861f2adc6fbbcff038e7dcb94862a10
Author: Spivak Vladimir (cwolf3d)
Date: Thu Aug 15 03:03:26 2019 +0300
Branches: master
https://developer.blender.org/rBAaf291e44f861f2adc6fbbcff038e7dcb94862a10
Addon: Mesh Extra Objects: Gears, Wallfactory, Beam, Pipe: Implemented add object in edit mode
===================================================================
M add_mesh_extra_objects/Wallfactory.py
M add_mesh_extra_objects/__init__.py
M add_mesh_extra_objects/add_mesh_beam_builder.py
M add_mesh_extra_objects/add_mesh_gears.py
M add_mesh_extra_objects/add_mesh_pipe_joint.py
===================================================================
diff --git a/add_mesh_extra_objects/Wallfactory.py b/add_mesh_extra_objects/Wallfactory.py
index db7918c3..66926214 100644
--- a/add_mesh_extra_objects/Wallfactory.py
+++ b/add_mesh_extra_objects/Wallfactory.py
@@ -872,26 +872,40 @@ class add_mesh_wallb(Operator):
stepBack
)
- if self.change == True and self.change != None:
- obj = context.active_object
- oldmesh = obj.data
- oldmeshname = obj.data.name
- mesh = bpy.data.meshes.new("Wall")
- mesh.from_pydata(verts_array, [], faces_array)
- obj.data = mesh
- bpy.data.meshes.remove(oldmesh)
- obj.data.name = oldmeshname
- else:
- mesh = bpy.data.meshes.new("Wall")
+ if bpy.context.mode == "OBJECT":
+ if self.change == True and self.change != None:
+ obj = context.active_object
+ oldmesh = obj.data
+ oldmeshname = obj.data.name
+ mesh = bpy.data.meshes.new("Wall")
+ mesh.from_pydata(verts_array, [], faces_array)
+ obj.data = mesh
+ bpy.data.meshes.remove(oldmesh)
+ obj.data.name = oldmeshname
+ else:
+ mesh = bpy.data.meshes.new("Wall")
+ mesh.from_pydata(verts_array, [], faces_array)
+ obj = object_utils.object_data_add(context, mesh, operator=None)
+
+ mesh.update()
+
+ obj.data["Wall"] = True
+ obj.data["change"] = False
+ for prm in WallParameters():
+ obj.data[prm] = getattr(self, prm)
+
+ if bpy.context.mode == "EDIT_MESH":
+ active_object = context.active_object
+ name_active_object = active_object.name
+ bpy.ops.object.mode_set(mode='OBJECT')
+ mesh = bpy.data.meshes.new("TMP")
mesh.from_pydata(verts_array, [], faces_array)
obj = object_utils.object_data_add(context, mesh, operator=None)
-
- mesh.update()
-
- obj.data["Wall"] = True
- obj.data["change"] = False
- for prm in WallParameters():
- obj.data[prm] = getattr(self, prm)
+ obj.select_set(True)
+ active_object.select_set(True)
+ bpy.ops.object.join()
+ context.active_object.name = name_active_object
+ bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
@@ -965,4 +979,4 @@ def WallParameters():
"StepOnly",
"StepBack",
]
- return WallParameters
\ No newline at end of file
+ return WallParameters
diff --git a/add_mesh_extra_objects/__init__.py b/add_mesh_extra_objects/__init__.py
index 560305be..f785c663 100644
--- a/add_mesh_extra_objects/__init__.py
+++ b/add_mesh_extra_objects/__init__.py
@@ -86,7 +86,6 @@ else:
import bpy
from bpy.types import Menu
-from sys import *
class VIEW3D_MT_mesh_vert_add(Menu):
# Define the "Single Vert" menu
@@ -289,6 +288,41 @@ def Extras_contex_menu(self, context):
setattr(props, prm, obj.data[prm])
layout.separator()
+ if 'ElbowJoint' in obj.data.keys():
+ props = layout.operator("mesh.primitive_elbow_joint_add", text="Change ElbowJoint")
+ props.change = True
+ for prm in add_mesh_pipe_joint.ElbowJointParameters():
+ setattr(props, prm, obj.data[prm])
+ layout.separator()
+
+ if 'TeeJoint' in obj.data.keys():
+ props = layout.operator("mesh.primitive_tee_joint_add", text="Change TeeJoint")
+ props.change = True
+ for prm in add_mesh_pipe_joint.TeeJointParameters():
+ setattr(props, prm, obj.data[prm])
+ layout.separator()
+
+ if 'WyeJoint' in obj.data.keys():
+ props = layout.operator("mesh.primitive_wye_joint_add", text="Change WyeJoint")
+ props.change = True
+ for prm in add_mesh_pipe_joint.WyeJointParameters():
+ setattr(props, prm, obj.data[prm])
+ layout.separator()
+
+ if 'CrossJoint' in obj.data.keys():
+ props = layout.operator("mesh.primitive_cross_joint_add", text="Change CrossJoint")
+ props.change = True
+ for prm in add_mesh_pipe_joint.CrossJointParameters():
+ setattr(props, prm, obj.data[prm])
+ layout.separator()
+
+ if 'NJoint' in obj.data.keys():
+ props = layout.operator("mesh.primitive_n_joint_add", text="Change NJoint")
+ props.change = True
+ for prm in add_mesh_pipe_joint.NJointParameters():
+ setattr(props, prm, obj.data[prm])
+ layout.separator()
+
# Register
classes = [
VIEW3D_MT_mesh_vert_add,
diff --git a/add_mesh_extra_objects/add_mesh_beam_builder.py b/add_mesh_extra_objects/add_mesh_beam_builder.py
index 9aa89ef1..623fc0ca 100644
--- a/add_mesh_extra_objects/add_mesh_beam_builder.py
+++ b/add_mesh_extra_objects/add_mesh_beam_builder.py
@@ -790,9 +790,20 @@ class addBeam(Operator):
obj.data[prm] = getattr(self, prm)
return {'FINISHED'}
-
- self.report({'WARNING'}, "Option only valid in Object mode")
- return {'CANCELLED'}
+
+ if bpy.context.mode == "EDIT_MESH":
+ active_object = context.active_object
+ name_active_object = active_object.name
+ bpy.ops.object.mode_set(mode='OBJECT')
+ mesh = addBeamMesh(self, context)
+ obj = object_utils.object_data_add(context, mesh, operator=None)
+ obj.select_set(True)
+ active_object.select_set(True)
+ bpy.ops.object.join()
+ context.active_object.name = name_active_object
+ bpy.ops.object.mode_set(mode='EDIT')
+
+ return {'FINISHED'}
def BeamParameters():
BeamParameters = [
@@ -803,4 +814,4 @@ def BeamParameters():
"edgeA",
"Cursor",
]
- return BeamParameters
\ No newline at end of file
+ return BeamParameters
diff --git a/add_mesh_extra_objects/add_mesh_gears.py b/add_mesh_extra_objects/add_mesh_gears.py
index 35ec12bd..0ccc265d 100644
--- a/add_mesh_extra_objects/add_mesh_gears.py
+++ b/add_mesh_extra_objects/add_mesh_gears.py
@@ -19,7 +19,6 @@ from mathutils import (
Matrix,
)
from bpy_extras import object_utils
-from sys import *
# A very simple "bridge" tool.
# Connects two equally long vertex rows with faces.
@@ -671,38 +670,58 @@ class AddGear(Operator):
def execute(self, context):
- if self.change == True and self.change != None:
- obj = context.active_object
- if 'Gear' in obj.data.keys():
- oldmesh = obj.data
- oldmeshname = obj.data.name
- mesh, verts_tip, verts_valley = AddGearMesh(self, context)
- obj.data = mesh
- try:
- bpy.ops.object.vertex_group_remove(all=True)
- except:
- pass
- bpy.data.meshes.remove(oldmesh)
- obj.data.name = oldmeshname
+ if bpy.context.mode == "OBJECT":
+ if self.change == True and self.change != None:
+ obj = context.active_object
+ if 'Gear' in obj.data.keys():
+ oldmesh = obj.data
+ oldmeshname = obj.data.name
+ mesh, verts_tip, verts_valley = AddGearMesh(self, context)
+ obj.data = mesh
+ try:
+ bpy.ops.object.vertex_group_remove(all=True)
+ except:
+ pass
+ bpy.data.meshes.remove(oldmesh)
+ obj.data.name = oldmeshname
+ else:
+ mesh, verts_tip, verts_valley = AddGearMesh(self, context)
+ obj = object_utils.object_data_add(context, mesh, operator=None)
else:
mesh, verts_tip, verts_valley = AddGearMesh(self, context)
obj = object_utils.object_data_add(context, mesh, operator=None)
- else:
+
+ # Create vertex groups from stored vertices.
+ tipGroup = obj.vertex_groups.new(name='Tips')
+ tipGroup.add(verts_tip, 1.0, 'ADD')
+
+ valleyGroup = obj.vertex_groups.new(name='Valleys')
+ valleyGroup.add(verts_valley, 1.0, 'ADD')
+
+ obj.data["Gear"] = True
+ obj.data["change"] = False
+ for prm in GearParameters():
+ obj.data[prm] = getattr(self, prm)
+
+ if bpy.context.mode == "EDIT_MESH":
+ active_object = context.active_object
+ name_active_object = active_object.name
+ bpy.ops.object.mode_set(mode='OBJECT')
mesh, verts_tip, verts_valley = AddGearMesh(self, context)
obj = object_utils.object_data_add(context, mesh, operator=None)
-
- # Create vertex groups from stored vertices.
- tipGroup = obj.vertex_groups.new(name='Tips')
- tipGroup.add(verts_tip, 1.0, 'ADD')
-
- valleyGroup = obj.vertex_groups.new(name='Valleys')
- valleyGroup.add(verts_valley, 1.0, 'ADD')
-
- obj.data["Gear"] = True
- obj.data["change"] = False
- for prm in GearParameters():
- obj.data[prm] = getattr(self, prm)
-
+
+ # Create vertex groups from stored vertices.
+ tipGroup = obj.vertex_groups.new(name='Tips')
+ tipGroup.add(verts_tip, 1.0, 'ADD')
+
+ valleyGroup = obj.vertex_groups.new(name='Valleys')
+ valleyGroup.add(verts_valley, 1.0, 'ADD')
+
+ obj.select_set(True)
+ active_object.select_set(True)
+ bpy.ops.object.join()
+ context.active_object.name = name_active_object
+ bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
def GearParameters():
@@ -848,37 +867,58 @@ class AddWormGear(Operator):
def execute(self, context):
- if self.change == True and s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list