From c4b40f2b8a0c04ef0eb78f3f825ee2e54b5e992d Mon Sep 17 00:00:00 2001 From: Mathias Hauan Arbo Date: Tue, 12 Feb 2019 10:49:17 +0100 Subject: [PATCH] Fix for lines for freecad>0.16 --- ARTools.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/ARTools.py b/ARTools.py index 26d29e6..8d9de03 100644 --- a/ARTools.py +++ b/ARTools.py @@ -468,15 +468,21 @@ def getPrimitiveInfo(prim_type, subobj, scale=1e-3): d["center"] = vector2list(subobj.Curve.Center, scale) d["focal"] = scale*subobj.Curve.Focal elif prim_type == "Line": - if not hasattr(subobj.Curve, "Infinite"): - d["startpoint"] = vector2list(subobj.Curve.StartPoint) - d["endpoint"] = vector2list(subobj.Curve.EndPoint) - if hasattr(subobj.Curve, "Infinite"): - if subobj.Curve.Infinite: - d["infinite"] = subobj.Curve.Infinite - else: + if int(FreeCAD.Version()[1]) > 16: + sp = subobj.valueAt(subobj.FirstParameter) + ep = subobj.valueAt(subobj.LastParameter) + d["startpoint"] = vector2list(sp) + d["endpoint"] = vector2list + else: + if not hasattr(subobj.Curve, "Infinite"): d["startpoint"] = vector2list(subobj.Curve.StartPoint) d["endpoint"] = vector2list(subobj.Curve.EndPoint) + if hasattr(subobj.Curve, "Infinite"): + if subobj.Curve.Infinite: + d["infinite"] = subobj.Curve.Infinite + else: + d["startpoint"] = vector2list(subobj.Curve.StartPoint) + d["endpoint"] = vector2list(subobj.Curve.EndPoint) elif prim_type == "BSplineSurface": FreeCAD.Console.PrintWarning("getPrimitiveInfo of BSpline incomplete.") elif prim_type == "BezierSurface":