Advertisement
Guest User

segfaulting hook gen script blender2.5

a guest
Jul 14th, 2010
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.26 KB | None | 0 0
  1. #mesh = bpy.data.meshes.new(name="Foo")
  2. #obj = bpy.data.objects.new(name="Foo",object_data=mesh)
  3. #bpy.context.scene.objects.link(obj)
  4.  
  5. import bpy, random, sys
  6. print( sys.argv[-1] )
  7.  
  8. #bpy.ops.mesh.primitive_ico_sphere_add()
  9. for o in bpy.data.objects: o.selected=False
  10. #bpy.ops.object.select_all()
  11. #bpy.ops.object.select_all()
  12. bpy.context.scene.update()
  13.  
  14.  
  15. scn = bpy.context.scene
  16. if 0:
  17.     arm_data = bpy.data.armatures.new("MyBVH")
  18.     arm_ob = bpy.data.objects.new("MyBVH", arm_data)
  19.     scn.objects.link(arm_ob)
  20.  
  21.     arm_ob.selected = True
  22.     scn.objects.active = arm_ob
  23.  
  24.     bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
  25.     bpy.ops.object.mode_set(mode='EDIT', toggle=False)
  26.  
  27.     ## sloppy
  28.     bpy.ops.armature.delete()
  29.     bpy.ops.armature.select_all()
  30.     bpy.ops.armature.delete()
  31.  
  32.  
  33. data = bpy.data.curves.new(name='brain', type='CURVE')
  34. for i in range(2):
  35.     spline = data.splines.new('BEZIER')
  36.  
  37.     bez = spline.bezier_points[-1]
  38.     bez.co.x = i * 0.4
  39.  
  40.     prevbone = None
  41.     for j in range(3):
  42.         x = i * 0.4; y = j * 0.1
  43.         spline.bezier_points.add()
  44.         bez = spline.bezier_points[-1]
  45.         bez.co.x = x
  46.         bez.co.y = y
  47.         bez.handle1.x = i * 0.4 + random.uniform(-.1,.1)
  48.         bez.handle1.y = j * 0.1 + random.uniform(-.1,.1)
  49.         bez.handle2.x = i * 0.4 + random.uniform(-.1,.1)
  50.         bez.handle2.y = j * 0.1 + random.uniform(-.1,.1)
  51.  
  52.         bez.selected_control_point = bez.selected_handle1 = bez.selected_handle2 = True
  53.  
  54.         if 0:
  55.             bpy.ops.armature.bone_primitive_add(name="Bone")
  56.             bone = arm_data.edit_bones[-1]
  57.             bone.head = [x,y,.0]
  58.             bone.tail = [(j+1)*0.4, (j+1)*0.1, .0]
  59.             if prevbone: bone.parent = prevbone; bone.connected = True
  60.             prevbone = bone
  61.  
  62.         # and 2 = Vector, what is bez.radius?
  63.  
  64. bpy.context.scene.update()
  65.  
  66.        
  67. obj = bpy.data.objects.new(name='brain', object_data=data)
  68. bpy.context.scene.objects.link(obj)
  69. bpy.context.scene.objects.active = obj
  70.  
  71. def deselect( data ):
  72.     for s in data.splines:
  73.         for bez in s.bezier_points:
  74.             bez.selected_control_point = bez.selected_handle1 = bez.selected_handle2 = False
  75.  
  76.  
  77. for spline in data.splines:
  78.     for bez in spline.bezier_points:
  79.         bpy.context.scene.objects.active = obj
  80.         bpy.context.scene.update()
  81.         deselect( data )
  82.         bez.selected_control_point = bez.selected_handle1 = bez.selected_handle2 = True
  83.         bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
  84.         bpy.ops.object.mode_set(mode='EDIT', toggle=True)
  85.         bpy.ops.object.hook_add_newob()
  86.  
  87.  
  88. #m = obj.modifiers.new(name='armature', type="ARMATURE")
  89. #m.object = arm_ob
  90. #obj.selected = True
  91.  
  92. #grp = obj.add_vertex_group()
  93. #print( dir(grp) )
  94. #obj.add_vertex_to_group( group=grp, vertex_index=0, weight=1.0, type='ADD' )
  95.  
  96. #readonly#obj.active_vertex_group = grp
  97.  
  98. #bpy.ops.object.editmode_toggle()
  99. bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
  100. bpy.ops.object.mode_set(mode='EDIT', toggle=True)
  101.  
  102. #bez.selected_control_point = bez.selected_handle1 = bez.selected_handle2 = True
  103. #obj.update(bpy.context.scene)
  104. #bpy.context.scene.update()
  105. #bpy.ops.object.modifier_add('EXEC_DEFAULT',type="HOOK")
  106.  
  107. bpy.ops.object.hook_add_newob()
  108.  
  109. #print( dir(obj) )
  110. #print( dir(obj.data) )
  111.  
  112. hook = obj.modifiers[-1]
  113. #hook = obj.modifiers.new(name='hook', type="HOOK")
  114. #print( dir(hook) )
  115. #hook.vertex_group = grp.name
  116. #hook.object = bpy.data.objects['Cube']
  117. print( hook.object )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement