← All ideas
  • Published 1 Mar 2021

Amazing bug in 2.93 and 2.83 versions (Simple script nonsense)

Simple script is doing some kind of nonsense youtube.com/watch

0%

Development Status: Open

Upvote 0 Downvote 3
useracc09
1 Mar 2021

3 Comments

testure

RCS is not a bug report board, if it's a legitimate bug follow these instructions: wiki.blender.org/wiki/Process/Bug_Reports

I suspect that it is probably not a bug, but more of a misunderstanding of the python API, in which case the Python Support board on blenderarstists.org would be more appropriate: blenderartists.org/c/coding/python-support/19

In either case, RCS is not the place for it.

1
useracc09 Author

This Script works fine. 2.83

import bpy

ind = 0 print('point',ind)

bpy.ops.object.editmode_toggle()

obj = bpy.context.active_object curve = obj.data.splines[0] #scene = bpy.context.scene

bpy.ops.object.mode_set(mode = 'EDIT') bpy.ops.curve.select_all(action='DESELECT')

curve.bezier_points[ind].select_control_point = True curve.bezier_points[ind].co[0]=-1 curve.bezier_points[ind].co[1]=0 curve.bezier_points[ind].co[2]=0.5 curve.bezier_points[ind].select_control_point = False

curve.bezier_points[ind+1].select_right_handle = True curve.bezier_points[ind].handle_right[0]=-2 curve.bezier_points[ind].handle_right[1]=0 curve.bezier_points[ind].handle_right[2]=0.5 curve.bezier_points[ind+1].select_right_handle = False

curve.bezier_points[ind+1].select_control_point = True #Second point curve.bezier_points[ind+1].co[0]=1 curve.bezier_points[ind+1].co[1]=0 curve.bezier_points[ind+1].co[2]=0.5 curve.bezier_points[ind+1].select_control_point = False

curve.bezier_points[ind+1].select_left_handle = True

curve.bezier_points[ind+1].handle_left[0]=2 curve.bezier_points[ind+1].handle_left[1]=0 curve.bezier_points[ind+1].handle_left[2]=0.5

curve.bezier_points[ind+1].select_left_handle = False

bpy.ops.object.mode_set(mode = 'OBJECT')

useracc09 Author

Looks like when all vertices selected in EDIT MODE, script works fine. UPD : no (

import bpy

ind = 0 print('point',ind)

bpy.ops.object.editmode_toggle()

bpy.ops.curve.select_all(action='DESELECT')

bpy.ops.curve.select_all(action='SELECT')

bpy.context.object.data.splines[0].bezier_points[ind].co[0]=-1 bpy.context.object.data.splines[0].bezier_points[ind].co[1]=0 bpy.context.object.data.splines[0].bezier_points[ind].co[2]=0.5

bpy.context.object.data.splines[0].bezier_points[ind+1].co[0]=1 bpy.context.object.data.splines[0].bezier_points[ind+1].co[1]=0 bpy.context.object.data.splines[0].bezier_points[ind+1].co[2]=0.5

bpy.context.object.data.splines[0].bezier_points[ind].handle_right[0]=-2 bpy.context.object.data.splines[0].bezier_points[ind].handle_right[1]=0 bpy.context.object.data.splines[0].bezier_points[ind].handle_right[2]=0.5

print(bpy.context.object.data.splines[0].bezier_points[ind].handle_right)

bpy.context.object.data.splines[0].bezier_points[ind+1].handle_left[0]=2 bpy.context.object.data.splines[0].bezier_points[ind+1].handle_left[1]=0 bpy.context.object.data.splines[0].bezier_points[ind+1].handle_left[2]=0.5

print(bpy.context.object.data.splines[0].bezier_points[ind+1].handle_left)

bpy.ops.curve.select_all(action='DESELECT')

bpy.ops.object.editmode_toggle()