From 249d2040eb71459089182b668798fc3de44e4b4c Mon Sep 17 00:00:00 2001 From: Jean-Marie Verdun Date: Sun, 19 Apr 2020 13:10:32 -0400 Subject: [PATCH] Add initial link support --- src/Mod/Arch/importOBJ.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Mod/Arch/importOBJ.py b/src/Mod/Arch/importOBJ.py index b449846717..29162c691f 100644 --- a/src/Mod/Arch/importOBJ.py +++ b/src/Mod/Arch/importOBJ.py @@ -72,14 +72,23 @@ def getIndices(obj,shape,offsetv,offsetvn): try: if not isinstance(e.Curve,Part.LineSegment): if not curves: - myshape = obj.Shape.copy(False) - myshape.Placement=obj.getGlobalPlacement() + if obj.isDerivedFrom("App::Link"): + myshape = obj.LinkedObject.Shape.copy(False) + myshape.Placement=obj.LinkPlacement + else: + myshape = obj.Shape.copy(False) + myshape.Placement=obj.getGlobalPlacement() mesh=MeshPart.meshFromShape(Shape=myshape, LinearDeflection=0.1, AngularDeflection=0.7, Relative=True) FreeCAD.Console.PrintWarning(translate("Arch","Found a shape containing curves, triangulating")+"\n") break except: # unimplemented curve type - myshape = obj.Shape.copy(False) - myshape.Placement=obj.getGlobalPlacement() + if obj.isDerivedFrom("App::Link"): + if obj.Shape: + myshape = obj.Shape.copy(False) + myshape.Placement=obj.LinkPlacement + else: + myshape = obj.Shape.copy(False) + myshape.Placement=obj.getGlobalPlacement() mesh=MeshPart.meshFromShape(Shape=myshape, LinearDeflection=0.1, AngularDeflection=0.7, Relative=True) FreeCAD.Console.PrintWarning(translate("Arch","Found a shape containing curves, triangulating")+"\n") break @@ -157,7 +166,7 @@ def export(exportList,filename,colors=None): materials = [] outfile.write("mtllib " + os.path.basename(filenamemtl) + "\n") for obj in objectslist: - if obj.isDerivedFrom("Part::Feature") or obj.isDerivedFrom("Mesh::Feature"): + if obj.isDerivedFrom("Part::Feature") or obj.isDerivedFrom("Mesh::Feature") or obj.isDerivedFrom("App::Link") or obj.isDerivedFrom("App::Link"): hires = None if FreeCAD.GuiUp: visible = obj.ViewObject.isVisible()