Skip to content

Commit ebd080e

Browse files
committed
fix: wouldn't properly handle node groups with periods in the name
1 parent 71f0815 commit ebd080e

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

node_to_python.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Node to Python",
33
"description": "Convert Geometry Node Groups to a Python add-on",
44
"author": "Brendan Parmer",
5-
"version": (1, 2, 1),
5+
"version": (1, 2, 2),
66
"blender": (3, 0, 0),
77
"location": "Node",
88
"category": "Node",
@@ -153,6 +153,9 @@
153153
'ShaderNodeVectorCurve',
154154
'ShaderNodeRGBCurve'}
155155

156+
def cleanup_string(string: str):
157+
return string.lower().replace(' ', '_').replace('.', '_')
158+
156159
class NodeToPython(bpy.types.Operator):
157160
bl_idname = "object.node_to_python"
158161
bl_label = "Node to Python"
@@ -164,8 +167,8 @@ def execute(self, context):
164167
if self.node_group_name not in bpy.data.node_groups:
165168
return {'FINISHED'}
166169
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('.', "")
169172
dir = bpy.path.abspath("//")
170173
if not dir or dir == "":
171174
self.report({'ERROR'},
@@ -205,7 +208,7 @@ def init_class():
205208
file.write("\tdef execute(self, context):\n")
206209

207210
def process_node_group(node_group, level):
208-
ng_name = node_group.name.lower().replace(' ', '_')
211+
ng_name = cleanup_string(node_group.name)
209212

210213
outer = "\t"*level #outer indentation
211214
inner = "\t"*(level + 1) #inner indentation
@@ -271,8 +274,7 @@ def process_node_group(node_group, level):
271274
file.write("\n")
272275

273276
#create node
274-
node_name = node.name.lower()
275-
node_name = node_name.replace(' ', '_').replace('.', '_')
277+
node_name = cleanup_string(node.name)
276278
file.write(f"{inner}#node {node.name}\n")
277279
file.write((f"{inner}{node_name} "
278280
f"= {ng_name}.nodes.new(\"{node.bl_idname}\")\n"))
@@ -387,8 +389,7 @@ def process_node_group(node_group, level):
387389
if node_group.links:
388390
file.write(f"{inner}#initialize {ng_name} links\n")
389391
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)
392393
input_socket = link.from_socket
393394

394395
"""
@@ -402,8 +403,7 @@ def process_node_group(node_group, level):
402403
input_idx = i
403404
break
404405

405-
output_node = link.to_node.name.lower()
406-
output_node = output_node.replace(' ', '_').replace('.', '_')
406+
output_node = cleanup_string(link.to_node.name)
407407
output_socket = link.to_socket
408408

409409
for i, item in enumerate(link.to_node.inputs.items()):

0 commit comments

Comments
 (0)