X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPythonAddons%2Fmacros%2Fbox%2Ffeature.py;h=72fc83d530db9e88a17c9ff9f035fc6dd511fadf;hb=84f912d8ca079ae8f0a43826983e77acdfb68bf5;hp=4238622c68aab5ca7858761563eb859e7b87d943;hpb=b02c1a358b7e36a7caf8ec3d20c02c1f58b40733;p=modules%2Fshaper.git diff --git a/src/PythonAddons/macros/box/feature.py b/src/PythonAddons/macros/box/feature.py index 4238622c6..72fc83d53 100644 --- a/src/PythonAddons/macros/box/feature.py +++ b/src/PythonAddons/macros/box/feature.py @@ -1,10 +1,30 @@ +## Copyright (C) 2014-2017 CEA/DEN, EDF R&D +## +## This library is free software; you can redistribute it and/or +## modify it under the terms of the GNU Lesser General Public +## License as published by the Free Software Foundation; either +## version 2.1 of the License, or (at your option) any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## Lesser General Public License for more details. +## +## You should have received a copy of the GNU Lesser General Public +## License along with this library; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +## +## See http:##www.salome-platform.org/ or +## email : webmaster.salome@opencascade.com +## + """Box macro-feature Authors: Renaud Nedelec - Daniel Brunier-Coulin Copyright (C) 2014-20xx CEA/DEN, EDF R&D """ -import model -import geom +from salome.shaper import model +from salome.shaper import geom class BoxFeature(model.Feature): @@ -22,7 +42,7 @@ class BoxFeature(model.Feature): @staticmethod def ID(): """Return Id of the feature.""" - return "Box" + return "Box_script" @staticmethod def WIDTH_ID(): @@ -65,17 +85,25 @@ class BoxFeature(model.Feature): p3 = geom.Pnt2d(1, 1) p4 = geom.Pnt2d(1, 0) - line = self.base.addPolygon(p1, p2, p3, p4) + line = model.addPolygon(self.base, p1, p2, p3, p4) - self.base.setParallel(line[0].result(), line[2].result()) - self.base.setParallel(line[1].result(), line[3].result()) - self.base.setPerpendicular(line[0].result(), line[3].result()) + self.base.setFixed(line[0].startPoint()) + self.base.setVertical(line[0]) # Setting the size of the base with default values # Width - self.width = self.base.setLength(line[0].result(), 50) # Keeps the constraint for edition + self.width = self.base.setLength(line[3], 50) # Keeps the constraint for edition # Length - self.length = self.base.setLength(line[3].result(), 50) # Keeps the constraint for edition + self.length = self.base.setLength(line[0], 50) # Keeps the constraint for edition + + # Keeping the rectangle + self.base.setParallel(line[0], line[2]) + self.base.setParallel(line[1], line[3]) + self.base.setPerpendicular(line[0], line[3]) + + # execute sketch + mypart.setCurrentFeature(self.base.feature(), False) + model.updateFeatures() # Creating the extrusion (the box) at default size # A box result @@ -86,22 +114,25 @@ class BoxFeature(model.Feature): def execute(self): """F.execute() -- execute the feature""" # Retrieving the user inputs - width = self.getRealInput(self.WIDTH_ID()) - length = self.getRealInput(self.LENGTH_ID()) - height = self.getRealInput(self.HEIGHT_ID()) - - width_text = self.getTextInput(self.WIDTH_ID()) - length_text = self.getTextInput(self.LENGTH_ID()) - height_text = self.getTextInput(self.HEIGHT_ID()) + width = self.real(self.WIDTH_ID()) + length = self.real(self.LENGTH_ID()) + height = self.real(self.HEIGHT_ID()) # Editing the box - self.base.setValue(self.width, width) - self.base.setText(self.width, width_text) - - self.base.setValue(self.length, length) - self.base.setText(self.length, length_text) - - self.box.setSize(height) + if width.text() == "": + self.base.setValue(self.width, width.value()) + else: + self.base.setValue(self.width, width.text()) + + if length.text() == "": + self.base.setValue(self.length, length.value()) + else: + self.base.setValue(self.length, length.text()) + + if (height.text() == ""): + self.box.setSize(height.value()) + else: + self.box.setSize(height.text()) # Publishing the result: not needed for Macro feature # self.addResult( self.box.result() )