From bff814b73a0dd469e8a58fd1d7c21852b421b1ea Mon Sep 17 00:00:00 2001 From: Sebastian Hoogen Date: Sat, 17 May 2014 21:57:15 +0200 Subject: [PATCH] support Part::Compound in OpenSCADCommands.ExplodeGroup --- src/Mod/OpenSCAD/OpenSCADCommands.py | 4 +++- src/Mod/OpenSCAD/exportDRAWEXE.py | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Mod/OpenSCAD/OpenSCADCommands.py b/src/Mod/OpenSCAD/OpenSCADCommands.py index 45b90ed7e38b..4f919672d102 100644 --- a/src/Mod/OpenSCAD/OpenSCADCommands.py +++ b/src/Mod/OpenSCAD/OpenSCADCommands.py @@ -53,7 +53,9 @@ def randomcolor(transp=0.0): return (random.random(),random.random(),random.random(),transp) def explode(obj,color=True): - if obj.isDerivedFrom('Part::Fuse') or obj.isDerivedFrom('Part::MultiFuse'): + if obj.isDerivedFrom('Part::Fuse') or \ + obj.isDerivedFrom('Part::MultiFuse') or \ + obj.isDerivedFrom('Part::Compound'): plm = obj.Placement outlist = obj.OutList[:] if plm.isNull() or all(len(oo.InList)==1 for oo in obj.OutList): diff --git a/src/Mod/OpenSCAD/exportDRAWEXE.py b/src/Mod/OpenSCAD/exportDRAWEXE.py index fbe362a08532..9ba490c3b207 100644 --- a/src/Mod/OpenSCAD/exportDRAWEXE.py +++ b/src/Mod/OpenSCAD/exportDRAWEXE.py @@ -146,6 +146,18 @@ def process_object(csg,ob,filename): d1['y']=f2s(ob.Normal.y) d1['z']=f2s(ob.Normal.z) csg.write('smirror %(name)s %(x)s %(y)s %(z)s %(dx)s %(dy)s %(dz)s\n' % d1) + elif ob.TypeId == 'Part::Compound': + if len(ob.Links) == 0: + pass + elif len(ob.Links) == 1: + process_object(csg,ob.Links[0],filename) + csg.write('tcopy %s %s\n'%(ob.Links[0].Name,d1['name'])) + else: + basenames=[] + for i,subobj in enumerate(ob.Links): + process_object(csg,subobj,filename) + basenames.append(subobj.Name) + csg.write('compound %s %s\n' % (' '.join(basenames),ob.Name)) elif ob.TypeId in ["Part::MultiCommon", "Part::MultiFuse"]: if len(ob.Shapes) == 0: pass