2
2
"name" : "Node to Python" ,
3
3
"description" : "Convert Geometry Node Groups to a Python add-on" ,
4
4
"author" : "Brendan Parmer" ,
5
- "version" : (1 , 2 , 1 ),
5
+ "version" : (1 , 2 , 2 ),
6
6
"blender" : (3 , 0 , 0 ),
7
7
"location" : "Node" ,
8
8
"category" : "Node" ,
153
153
'ShaderNodeVectorCurve' ,
154
154
'ShaderNodeRGBCurve' }
155
155
156
+ def cleanup_string (string : str ):
157
+ return string .lower ().replace (' ' , '_' ).replace ('.' , '_' )
158
+
156
159
class NodeToPython (bpy .types .Operator ):
157
160
bl_idname = "object.node_to_python"
158
161
bl_label = "Node to Python"
@@ -164,8 +167,8 @@ def execute(self, context):
164
167
if self .node_group_name not in bpy .data .node_groups :
165
168
return {'FINISHED' }
166
169
ng = bpy .data .node_groups [self .node_group_name ]
167
- ng_name = ng .name . lower (). replace ( ' ' , '_' )
168
- class_name = ng .name .replace (" " , "" )
170
+ ng_name = cleanup_string ( ng .name )
171
+ class_name = ng .name .replace (" " , "" ). replace ( '.' , "" )
169
172
dir = bpy .path .abspath ("//" )
170
173
if not dir or dir == "" :
171
174
self .report ({'ERROR' },
@@ -205,7 +208,7 @@ def init_class():
205
208
file .write ("\t def execute(self, context):\n " )
206
209
207
210
def process_node_group (node_group , level ):
208
- ng_name = node_group .name . lower (). replace ( ' ' , '_' )
211
+ ng_name = cleanup_string ( node_group .name )
209
212
210
213
outer = "\t " * level #outer indentation
211
214
inner = "\t " * (level + 1 ) #inner indentation
@@ -271,8 +274,7 @@ def process_node_group(node_group, level):
271
274
file .write ("\n " )
272
275
273
276
#create node
274
- node_name = node .name .lower ()
275
- node_name = node_name .replace (' ' , '_' ).replace ('.' , '_' )
277
+ node_name = cleanup_string (node .name )
276
278
file .write (f"{ inner } #node { node .name } \n " )
277
279
file .write ((f"{ inner } { node_name } "
278
280
f"= { ng_name } .nodes.new(\" { node .bl_idname } \" )\n " ))
@@ -387,8 +389,7 @@ def process_node_group(node_group, level):
387
389
if node_group .links :
388
390
file .write (f"{ inner } #initialize { ng_name } links\n " )
389
391
for link in node_group .links :
390
- input_node = link .from_node .name .lower ()
391
- input_node = input_node .replace (' ' , '_' ).replace ('.' , '_' )
392
+ input_node = cleanup_string (link .from_node .name )
392
393
input_socket = link .from_socket
393
394
394
395
"""
@@ -402,8 +403,7 @@ def process_node_group(node_group, level):
402
403
input_idx = i
403
404
break
404
405
405
- output_node = link .to_node .name .lower ()
406
- output_node = output_node .replace (' ' , '_' ).replace ('.' , '_' )
406
+ output_node = cleanup_string (link .to_node .name )
407
407
output_socket = link .to_socket
408
408
409
409
for i , item in enumerate (link .to_node .inputs .items ()):
0 commit comments