-# -*- coding: utf-8 -*-
# Copyright (C) 2016-2021 CEA/DEN, EDF R&D
#
# This library is free software; you can redistribute it and/or
"""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):
# Feature initializations
- lfeatures = list()
- folder = None
- separator = " "
-
def __init__(self):
"""x.__init__(...) initializes x; see x.__class__.__doc__ for signature"""
model.Feature.__init__(self)
@staticmethod
def FILE_ID():
- """Returns ID of the file."""
+ """Returns ID of the file select parameter."""
return "file_path"
@staticmethod
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
def execute(self):
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().