]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/PythonAddons/macros/compoundVertices/feature.py
Salome HOME
updated copyright message
[modules/shaper.git] / src / PythonAddons / macros / compoundVertices / feature.py
index ea26d8993349d0ba60356a723c45d76847a2b072..7230c421ebad38f99ff711ad6131059832d3b991 100755 (executable)
@@ -1,5 +1,4 @@
-# -*- coding: utf-8 -*-
-# Copyright (C) 2016-2021  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 """compound of vertices Feature
 Author: Nathalie Gore
 """
-import os
 
 from salome.shaper import model
-
+from salome.shaper import geom
 import ModelAPI
 
 class compoundVertices(model.Feature):
@@ -33,10 +31,6 @@ class compoundVertices(model.Feature):
 
 # Feature initializations
 
-    lfeatures = list()
-    folder = None
-    separator = " "
-
     def __init__(self):
         """x.__init__(...) initializes x; see x.__class__.__doc__ for signature"""
         model.Feature.__init__(self)
@@ -48,7 +42,7 @@ class compoundVertices(model.Feature):
 
     @staticmethod
     def FILE_ID():
-        """Returns ID of the file."""
+        """Returns ID of the file select parameter."""
         return "file_path"
 
     @staticmethod
@@ -66,8 +60,12 @@ class compoundVertices(model.Feature):
     def initAttributes(self):
         """Override Feature.initAttributes()"""
         # Creating the input argument of the feature
-        self.data().addAttribute(self.FILE_ID(), ModelAPI.ModelAPI_AttributeString_typeId())
-        self.data().addAttribute(self.SEPARATOR_ID(), ModelAPI.ModelAPI_AttributeString_typeId())
+        self.data().addAttribute(self.FILE_ID(), ModelAPI.ModelAPI_AttributeString.typeId())
+        self.data().addAttribute(self.SEPARATOR_ID(), ModelAPI.ModelAPI_AttributeString.typeId())
+
+        self.lfeatures = []
+        self.folder = None
+        self.separator = " "
 
 # Execution of the Import
 
@@ -80,43 +78,39 @@ class compoundVertices(model.Feature):
             self.separator = aseparator
 
         filepath = apath.value()
-        #print("filepath : '{}'".format(filepath))
         if filepath != "" :
-            if os.path.isfile(filepath):
-                part = model.activeDocument()
-                if self.lfeatures :
-                    for feature in self.lfeatures:
-                        part.removeFeature(feature.feature())
-                    self.lfeatures = list()
-                    model.removeFolder(self.folder)
-
-                filename = os.path.basename(filepath)
-                nameRes = "Points_" + filename
-
-                # Creating the construction points in the current document
-                lVertices = list()
-
-                with open(filepath) as fic:
-                    for line in fic:
-                        coord = line.split(self.separator)
-                        if len(coord) != 3:
-                            return
-                        point = model.addPoint(part, float(coord[0]),float(coord[1]),float(coord[2]))
-                        point.execute(True)
-                        self.lfeatures.append(point)
-                        #vertex = model.addVertex(part, [point.result()]); vertex.execute(True); self.lfeatures.append(vertex)
-                        lVertices.append(point.result())
-                    fic.close()
-                    compound = model.addCompound(part, lVertices)
-                    compound.execute(True)
-                    self.lfeatures.append(compound)
-                    compound.result().setName(nameRes)
-                    self.folder = model.addFolder(part, self.lfeatures[0], compound)
-                    self.folder.setName(nameRes)
-            else:
-                self.setError("The file '{}' does not exist".format(filepath))
-
-        return
+            part = model.activeDocument()
+            if self.lfeatures :
+                for feature in self.lfeatures:
+                   part.removeFeature(feature.feature())
+                self.lfeatures = []
+                model.removeFolder(self.folder)
+
+            from os.path import basename
+            filename = basename(filepath)
+            nameRes = "Points_" + filename
+
+            # Creating the construction points in the current document
+            lVertices = []
+
+            with open(filepath) as file:
+                for line in file:
+                    coord = line.split(self.separator)
+                    if len(coord) != 3:
+                        return
+                    x = float(coord[0]); y = float(coord[1]); z = float(coord[2]);
+                    point = model.addPoint(part, x,y,z); point.execute(True); self.lfeatures.append(point)
+                    #vertex = model.addVertex(part, [point.result()]); vertex.execute(True); self.lfeatures.append(vertex)
+                    lVertices.append(point.result())
+                file.close()
+                compound = model.addCompound(part, lVertices)
+                compound.execute(True); self.lfeatures.append(compound)
+                compound.result().setName(nameRes)
+                self.folder = model.addFolder(part, self.lfeatures[0], compound)
+                self.folder.setName(nameRes)
+                return
+
+            setError("The file does not exist")
 
     def isMacro(self):
         """Override Feature.initAttributes().