diff --git a/utils/sv_default_macros.py b/utils/sv_default_macros.py index 34fb4c162f369402d54582208a89931a824ca76a..f029230b215e3421a6ecbe4d9f861213df5cad3d 100644 --- a/utils/sv_default_macros.py +++ b/utils/sv_default_macros.py @@ -31,20 +31,24 @@ macros = { 'ident': ['verbose_macro_handler', 'obj vd']}, "> objs vd": { 'display_name': "multi obj in + vdmk2", - 'file':'macro', + 'file': 'macro', 'ident': ['verbose_macro_handler', 'objs vd']}, "> zen": { 'display_name': "zen of Sverchok", - 'file':'macro', + 'file': 'macro', 'ident': ['verbose_macro_handler', 'zen']}, "> sn petal": { 'display_name': "load snlite w/ petalsine", - 'file':'macro', + 'file': 'macro', 'ident': ['verbose_macro_handler', 'sn petal']}, "> monad info": { 'display_name': "output current idx / total", - 'file':'macro', - 'ident': ['verbose_macro_handler', 'monad info']} + 'file': 'macro', + 'ident': ['verbose_macro_handler', 'monad info']}, + "> gp +": { + 'display_name': "grease pencil setup", + 'file': 'macro', + 'ident': ['verbose_macro_handler', 'gp +']} } @@ -52,6 +56,16 @@ macros = { sv_types = {'SverchCustomTreeType', 'SverchGroupTreeType'} +def sn_loader(snlite, script_name=None): + sv_path = os.path.dirname(sv_get_local_path()[0]) + snlite_template_path = os.path.join(sv_path, 'node_scripts', 'SNLite_templates') + fullpath = os.path.join(snlite_template_path, script_name) + + txt = bpy.data.texts.load(fullpath) + snlite.script_name = os.path.basename(txt.name) + snlite.load() + + class DefaultMacros(): @classmethod @@ -92,6 +106,7 @@ class DefaultMacros(): links.new(obj_in_node.outputs[0], vd_node.inputs[0]) links.new(obj_in_node.outputs[2], vd_node.inputs[1]) links.new(obj_in_node.outputs[3], vd_node.inputs[2]) + elif term == 'objs vd': obj_in_node = nodes.new('SvObjectsNodeMK3') obj_in_node.get_objects_from_scene(operator) @@ -101,22 +116,73 @@ class DefaultMacros(): links.new(obj_in_node.outputs[0], vd_node.inputs[0]) links.new(obj_in_node.outputs[2], vd_node.inputs[1]) links.new(obj_in_node.outputs[3], vd_node.inputs[2]) + elif term == 'zen': full_url_term = 'https://blenderpython.tumblr.com/post/91951323209/zen-of-sverchok' webbrowser.open(full_url_term) + elif term == 'sn petal': snlite = nodes.new('SvScriptNodeLite') - # set location of snlite based on mouse? + sn_loader(snlite, script_name='petal_sine.py') - sv_path = os.path.dirname(sv_get_local_path()[0]) - snlite_template_path = os.path.join(sv_path, 'node_scripts', 'SNLite_templates') - fullpath = os.path.join(snlite_template_path, 'petal_sine.py') - - txt = bpy.data.texts.load(fullpath) - snlite.script_name = os.path.basename(txt.name) - snlite.load() elif term == 'monad info': x, y = context.space_data.cursor_location[:] monad_info = nodes.new('SvMonadInfoNode') monad_info.location = x, y + elif term == 'gp +': + needed_nodes = [ + ['SvGetAssetProperties', (0.00, 0.00)], + ['SvScriptNodeLite', (250, 55)], + ['SvScalarMathNodeMK2', (430, 115)], + ['Float2IntNode', (600, 50)], + ['SvGenFloatRange', (720, 90)], + ['SvInterpolationNodeMK3', (880, 40)], + ['LineConnectNodeMK2', (1060, -40)], + ['ViewerNode2', (1245, 50)], + ] + + made_nodes = [] + x, y = context.space_data.cursor_location[:] + for node_bl_idname, node_location in needed_nodes: + n = nodes.new(node_bl_idname) + n.location = node_location[0] + x, node_location[1] + y + made_nodes.append(n) + + # Script node lite + snlite = made_nodes[1] + sn_loader(snlite, script_name='path_length.py') + + # ID Selector + made_nodes[0].Mode = 'grease_pencil' # the rest must be user driven + links.new(made_nodes[0].outputs[0], made_nodes[1].inputs[0]) + + # Scalar Math node + made_nodes[2].current_op = 'MUL' + made_nodes[2].y_ = 2.5 + links.new(made_nodes[1].outputs[0], made_nodes[2].inputs[0]) # snlite-> math + links.new(made_nodes[2].outputs[0], made_nodes[3].inputs[0]) # math -> float + + # Float2Int node + # made_nodes[3] + links.new(made_nodes[3].outputs[0], made_nodes[4].inputs[2]) + + # Float range + made_nodes[4].mode = 'FRANGE_COUNT' + made_nodes[4].stop_ = 1.0 + links.new(made_nodes[4].outputs[0], made_nodes[5].inputs[1]) + + # Vector Interpolate + made_nodes[5] + links.new(made_nodes[0].outputs[0], made_nodes[5].inputs[0]) + links.new(made_nodes[5].outputs[0], made_nodes[6].inputs[0]) + + # UV connect + made_nodes[6].polygons = 'Edges' + made_nodes[6].slice_check = False + made_nodes[6].dir_check = 'U_dir' + + # Viewer Draw + made_nodes[7] + links.new(made_nodes[6].outputs[0], made_nodes[7].inputs[0]) + links.new(made_nodes[6].outputs[1], made_nodes[7].inputs[1])