From 16988f8c30e384a96a928a8f6832f4d3b5bd0c67 Mon Sep 17 00:00:00 2001 From: Christian Bergmann Date: Thu, 9 Jan 2025 08:29:48 +0100 Subject: [PATCH 1/4] [ObjectsToPython] Code optimized read-only properties in FC 1.0 --- ImportExport/ObjectsToPython.FCMacro | 51 ++++++++++------------------ 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/ImportExport/ObjectsToPython.FCMacro b/ImportExport/ObjectsToPython.FCMacro index 9e355b6..af483ee 100644 --- a/ImportExport/ObjectsToPython.FCMacro +++ b/ImportExport/ObjectsToPython.FCMacro @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -__Version__ = '0.7.5' -__Date__ = '2025-01-08' +__Version__ = '0.7.3' +__Date__ = '2024-03-16' __License__ = 'LGPL-3.0-or-later' __Web__ = '' __Wiki__ = 'README.md' @@ -141,21 +141,11 @@ def addObject(doc, obj, objectlist): defaultobj.ViewObject, []) doc.removeObject(obj.Name + 'Default') - def addProperties(obj, objname, refobj, objectlist): - skipProperties = [ - 'AddSubShape', - 'FullyConstrained', - 'InternalShape', - 'Label', - 'MaterialName', - 'Proxy', - 'Shape', - 'ShapeAppearance', - 'ShapeMaterial', - 'SuppressedShape', - 'VisualLayerList', - ] + skipProperties = ['Label', 'Shape', 'Proxy', + 'AddSubShape', 'FullyConstrained', 'VisualLayerList', + 'InternalShape', 'ShapeMaterial', 'ShapeAppearance', 'MaterialName', + 'SuppressedShape'] skipObjProp = [ ('Sketcher::SketchObject', 'Geometry'), @@ -165,22 +155,17 @@ def addProperties(obj, objname, refobj, objectlist): ] # Cf. https://github.com/FreeCAD/FreeCAD/blob/278ce803907ef72548d7ac761613038ac435c481/src/App/Property.h#L60 - statusdict = { - 'PropStaticBegin': 21, - 'PropDynamic': 21, - 'PropNoPersist': 22, - 'PropNoRecompute': 23, - 'PropReadOnly': 24, - 'PropTransient': 25, - 'PropHidden': 26, - 'PropOutput': 27, - 'PropStaticEnd': 28, - } - - def dontWriteProperty(obj, propname, statuslist): + statuslist = [ + 'Immutable', 1, + 'ReadOnly', 2, + 'PropReadOnly', 24, + 'PropOutput', 27, + ] + + def propIsReadonly(obj, propname): statusnums = obj.getPropertyStatus(propname) for status in statuslist: - if statusdict[status] in statusnums: + if status in statusnums: return True return False @@ -192,9 +177,9 @@ def addProperties(obj, objname, refobj, objectlist): addSketch(obj, objname) for propname in obj.PropertiesList: - if ((propname not in skipProperties) - and ((obj.TypeId, propname) not in skipObjProp) - and (not dontWriteProperty(obj, propname, ["PropReadOnly", "PropOutput"]))): + if (propname not in skipProperties)\ + and ((obj.TypeId, propname) not in skipObjProp)\ + and not propIsReadonly(obj, propname): prop = obj.getPropertyByName(propname) val = objectToText(prop, objectlist) From 5181d54805c3dcf0a49c3d689a33374a78f59a9f Mon Sep 17 00:00:00 2001 From: Christian Bergmann Date: Thu, 9 Jan 2025 09:20:23 +0100 Subject: [PATCH 2/4] [ObjectsToPython] version number updated --- ImportExport/ObjectsToPython.FCMacro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ImportExport/ObjectsToPython.FCMacro b/ImportExport/ObjectsToPython.FCMacro index af483ee..77b8ac6 100644 --- a/ImportExport/ObjectsToPython.FCMacro +++ b/ImportExport/ObjectsToPython.FCMacro @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -__Version__ = '0.7.3' -__Date__ = '2024-03-16' +__Version__ = '0.7.4' +__Date__ = '2025-01-09' __License__ = 'LGPL-3.0-or-later' __Web__ = '' __Wiki__ = 'README.md' From bfab2eaf5ea4de1df90f8d0d714839200fd1bbca Mon Sep 17 00:00:00 2001 From: Christian Bergmann Date: Thu, 9 Jan 2025 09:23:14 +0100 Subject: [PATCH 3/4] [ObjectsToPython] version number updated --- ImportExport/ObjectsToPython.FCMacro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImportExport/ObjectsToPython.FCMacro b/ImportExport/ObjectsToPython.FCMacro index 77b8ac6..09593e1 100644 --- a/ImportExport/ObjectsToPython.FCMacro +++ b/ImportExport/ObjectsToPython.FCMacro @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -__Version__ = '0.7.4' +__Version__ = '0.7.6' __Date__ = '2025-01-09' __License__ = 'LGPL-3.0-or-later' __Web__ = '' From 029d9c29f67fefa7fdbe54d338269da59cb3717a Mon Sep 17 00:00:00 2001 From: Christian Bergmann Date: Sat, 11 Jan 2025 10:32:50 +0100 Subject: [PATCH 4/4] [ObjectsToPython] better code formating --- ImportExport/ObjectsToPython.FCMacro | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/ImportExport/ObjectsToPython.FCMacro b/ImportExport/ObjectsToPython.FCMacro index 09593e1..4655d09 100644 --- a/ImportExport/ObjectsToPython.FCMacro +++ b/ImportExport/ObjectsToPython.FCMacro @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -__Version__ = '0.7.6' -__Date__ = '2025-01-09' +__Version__ = '0.7.7' +__Date__ = '2025-01-11' __License__ = 'LGPL-3.0-or-later' __Web__ = '' __Wiki__ = 'README.md' @@ -141,11 +141,21 @@ def addObject(doc, obj, objectlist): defaultobj.ViewObject, []) doc.removeObject(obj.Name + 'Default') + def addProperties(obj, objname, refobj, objectlist): - skipProperties = ['Label', 'Shape', 'Proxy', - 'AddSubShape', 'FullyConstrained', 'VisualLayerList', - 'InternalShape', 'ShapeMaterial', 'ShapeAppearance', 'MaterialName', - 'SuppressedShape'] + skipProperties = [ + 'AddSubShape', + 'FullyConstrained', + 'InternalShape', + 'Label', + 'MaterialName', + 'Proxy', + 'Shape', + 'ShapeAppearance', + 'ShapeMaterial', + 'SuppressedShape', + 'VisualLayerList', + ] skipObjProp = [ ('Sketcher::SketchObject', 'Geometry'), @@ -177,9 +187,9 @@ def addProperties(obj, objname, refobj, objectlist): addSketch(obj, objname) for propname in obj.PropertiesList: - if (propname not in skipProperties)\ - and ((obj.TypeId, propname) not in skipObjProp)\ - and not propIsReadonly(obj, propname): + if ((propname not in skipProperties) + and ((obj.TypeId, propname) not in skipObjProp) + and not propIsReadonly(obj, propname)): prop = obj.getPropertyByName(propname) val = objectToText(prop, objectlist)