From 66eb7b19d4631a2fd4560cc58b74a293be3e0d87 Mon Sep 17 00:00:00 2001 From: Dealga McArdle Date: Mon, 25 Apr 2022 21:47:59 +0200 Subject: [PATCH 1/2] test one way --- nodes/exchange/FCStd_write.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/nodes/exchange/FCStd_write.py b/nodes/exchange/FCStd_write.py index 102e09c48..b22053bde 100644 --- a/nodes/exchange/FCStd_write.py +++ b/nodes/exchange/FCStd_write.py @@ -136,16 +136,25 @@ else: else: return - - + def fc_write_parts(fc_file, verts, faces, part_name, solid, mod): try: - F.open(fc_file) + from os.path import exists + Fname = bpy.path.display_name_from_filepath(fc_file) - except: - info ('FCStd open error') + + if not exists(fc_file): + doc = F.newDocument(Fname) + doc.FileName = fc_file + doc.recompute() + doc.save() + + F.open(fc_file) + + except Exception as err: + info(f'FCStd open error, {err}') return F.setActiveDocument(Fname) -- GitLab From 8fb4dd54e5176ba0ec3dac5bc336d26dabb3406d Mon Sep 17 00:00:00 2001 From: Dealga McArdle Date: Sun, 1 May 2022 13:28:33 +0200 Subject: [PATCH 2/2] force file exists, must be called something.FCStd ? this does not do that yet. --- nodes/exchange/FCStd_write.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/nodes/exchange/FCStd_write.py b/nodes/exchange/FCStd_write.py index b22053bde..431be64d8 100644 --- a/nodes/exchange/FCStd_write.py +++ b/nodes/exchange/FCStd_write.py @@ -147,9 +147,8 @@ def fc_write_parts(fc_file, verts, faces, part_name, solid, mod): if not exists(fc_file): doc = F.newDocument(Fname) - doc.FileName = fc_file doc.recompute() - doc.save() + doc.saveAs(fc_file) # using full filepath, saveAs also sets doc.FileName internally F.open(fc_file) @@ -179,7 +178,7 @@ def fc_write_parts(fc_file, verts, faces, part_name, solid, mod): if mod == 'solid': #EXPORT SOLID - for i,s in enumerate(solid): + for i, s in enumerate(solid): new_part = F.ActiveDocument.addObject( "Part::Feature",part_name+str(i) ) #multiple: give numbered name new_part.Shape = s @@ -189,10 +188,9 @@ def fc_write_parts(fc_file, verts, faces, part_name, solid, mod): for i in range(len(verts)): - temp_faces=faces[i] - temp_verts=verts[i] - - meshdata=[] + temp_faces = faces[i] + temp_verts = verts[i] + meshdata = [] for f in temp_faces: v1,v2,v3 = f[0],f[1],f[2] -- GitLab