Just to drop an idea I saw in 3DS Max, if someone developer is interested to implement this script, please feel free to try it.
Uploaded with ImageShack.us
Just to drop an idea I saw in 3DS Max, if someone developer is interested to implement this script, please feel free to try it.
Uploaded with ImageShack.us
something similar exists already i think… http://www.blendernation.com/2010/04/08/new-script-surface-sketching/ ? and http://vimeo.com/10695820 not sure if the script still works without modifications.
Surface sketching doesnt work, zelfii
http://blenderartists.org/forum/showthread.php?t=183863&page=7 i think this is where you are most likely to find answers flopoloco
You can do it in blender this way: select an edge, e to extrude and then r to rotate, s to scale it. Repeat.
Hi,
Or you can select an edge, then press CTRL-Left click to extrude and rotate it. You’ll have to fine tune the vertices afterwards though.
For creating faces with new vertices blender already has nice ways (as mentioned above). What I’d like, is something like you describe for existing vertices (to create new faces).
Sometimes I get annoyed by the structure of a part of my low-poly model (I mainly do low-poly modeling), so I delete some edges, and then manually re-draw faces.
At the moment this goes by
When the vertices already exist, the approach described would be a very neat one I think.
Here’s a very basic version. (1. Paste in text editor, 2. Run it, 3. In 3D Viewport hit space bar and type polygon weaver to start), see if you can hack it and improve it.
Warning: It does not work because it’s not finished yet, I need to find out how to get the exact number of vertices in a mesh at any moment while in edit mode. Now I have to toggle edit mode to update the list, then keep testing it.
import bpy
class PolygonWeaver(bpy.types.Operator):
bl_idname = "view3d.polygon_weaver"
bl_label = "Polygon Weaver"
old_object_num_verts = 0
face_step = 0
def get_object_num_verts():
return len(bpy.context.object.data.vertices)
def modal(self, context, event):
# Find if the number of vertices has increased sequentially.
# TODO: Update the mesh interactively and
bpy.context.object.update()
current_step = PolygonWeaver.get_object_num_verts() - PolygonWeaver.old_object_num_verts
if current_step == 1:
PolygonWeaver.face_step += 1
else:
PolygonWeaver.face_step = 0
# When we have 4 new sequential vertices then form a face.
if PolygonWeaver.face_step == 3:
print("New Face")
PolygonWeaver.old_object_num_verts = PolygonWeaver.get_object_num_verts()
# Temp - Cancel script
if event.type == "ESC":
print("Polygon Weaver - Cancelled")
return {'CANCELLED'}
return {'PASS_THROUGH'}
def invoke(self, context, event):
# If current selected object is a mesh then register handler
if bpy.context.active_object.type == "MESH":
context.window_manager.modal_handler_add(self)
# Enter edit mode (if not already)
if bpy.context.active_object.mode != "EDIT":
bpy.ops.object.editmode_toggle()
# Reset variables
PolygonWeaver.old_object_num_verts = PolygonWeaver.get_object_num_verts()
PolygonWeaver.face_step = 0
print(PolygonWeaver.old_object_num_verts)
print("Polygon Weaver - Started")
return {'RUNNING_MODAL'}
else:
print("Polygon Weaver - Please select a mesh")
return {'CANCELLED'}
if __name__ == "__main__":
bpy.types.register(PolygonWeaver)