bl_info = {
"name": "Simple Liner",
"category": "Add Curve",
}
import bmesh
n = 3
def genVert(n):
for i in range(n+1):
f = float(i)
yield(0.0, 0.0, f)
def genEdge(n):
for i in range(n):
yield(i, i+1)
def toggleFramed(self, context):
if self.isFramed:
print("framed")
else:
print("not framed")
def toggleLooped(self, context):
if self.isLooped:
print("looped")
else:
print("not looped")
class AddCurveSimpleLiner(bpy.types.Operator):
"""Add Curve Simple Liner"""
bl_idname = "add_curve.simple_liner"
bl_label = "Simple Liner"
bl_options = {'REGISTER', 'UNDO'}
isFramed = bpy.props.BoolProperty(name="is Framed", default=False, update=toggleFramed)
isLooped = bpy.props.BoolProperty(name="is Looped", default=False, update=toggleLooped)
def execute(self, context):
self.verts = list(genVert(n))
self.edges = list(genEdge(n))
m = bpy.data.meshes.new('seamedLineMesh')
o = bpy.data.objects.new('seamedLine', m)
bpy.context.scene.objects.link(o)
bpy.context.scene.objects.active = o
bpy.context.scene.objects.active.select = True
m.from_pydata(self.verts, self.edges, [])
m.update()
return {'FINISHED'}
def menu_func(self, context):
self.layout.operator(AddCurveSimpleLiner.bl_idname)
addon_keymaps = []
def register():
bpy.utils.register_class(AddCurveSimpleLiner)
bpy.types.VIEW3D_MT_object.append(menu_func)
wm = bpy.context.window_manager
km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
kmi = km.keymap_items.new(AddCurveSimpleLiner.bl_idname, 'SPACE', 'PRESS', ctrl=True, shift=True)
kmi.properties.isFramed = False
kmi.properties.isLooped = False
addon_keymaps.append(km)
def unregister():
bpy.utils.unregister_class(AddCurveSimpleLiner)
bpy.types.VIEW3D_MT_object.remove(menu_func)
wm = bpy.context.window_manager
for km in addon_keymaps:
wm.keyconfigs.addon.keymaps.remove(km)
del addon_keymaps[:]
if __name__ == "__main__":
register()