]> SALOME platform Git repositories - modules/shaper.git/blob - src/PythonAPI/model/features/extrusion_boolean.py
Salome HOME
f7e168fdef15b5fc716fd55a79d1b7377bed0a57
[modules/shaper.git] / src / PythonAPI / model / features / extrusion_boolean.py
1 """ExtrusionCut and ExtrusionFuse  Interfaces
2 Author: Sergey Pokhodenko
3 Copyright (C) 2014-20xx CEA/DEN, EDF R&D
4 """
5
6 from .roots import CompositeBoolean
7
8
9 def addExtrusionCut(part, *args):
10     """Add an ExtrusionCut feature to the Part and return ExtrusionBoolean.
11
12     Pass all args to Extrusion __init__ function.
13     """
14     assert(args)
15     feature = part.addFeature("ExtrusionCut")
16     return ExtrusionBoolean(feature, *args)
17
18 def addExtrusionFuse(part, *args):
19     """Add an ExtrusionFuse feature to the Part and return ExtrusionBoolean.
20
21     Pass all args to Extrusion __init__ function.
22     """
23     assert(args)
24     feature = part.addFeature("ExtrusionFuse")
25     return ExtrusionBoolean(feature, *args)
26
27
28 class ExtrusionBoolean(CompositeBoolean):
29
30     def __init__(self, feature, *args):
31         CompositeBoolean.__init__(self, feature, *args[:3])
32         args = args[3:]
33
34         self._CreationMethod = self._feature.string("CreationMethod")
35         self._to_size = self._feature.data().real("to_size")
36         self._from_size = self._feature.data().real("from_size")
37         self._to_object = self._feature.data().selection("to_object")
38         self._to_offset = self._feature.data().real("to_offset")
39         self._from_object = self._feature.data().selection("from_object")
40         self._from_offset = self._feature.data().real("from_offset")
41
42         assert(self._CreationMethod)
43         assert(self._to_size)
44         assert(self._from_size)
45         assert(self._to_object)
46         assert(self._to_offset)
47         assert(self._from_object)
48         assert(self._from_offset)
49
50         if not args:
51             return
52
53         assert(len(args) in (2, 4))
54         if len(args) == 4:
55             self.setPlanesAndOffsets(*args)
56         elif len(args) == 2:
57             self.setSizes(*args)
58
59         self._execute()
60         pass
61
62     def __clear(self):
63         self._CreationMethod.setValue("BySizes")
64         self._fill_attribute(self._to_size, 0)
65         self._fill_attribute(self._from_size, 0)
66         self._fill_attribute(self._to_object, None)
67         self._fill_attribute(self._to_offset, 0)
68         self._fill_attribute(self._from_object, None)
69         self._fill_attribute(self._from_offset, 0)
70         pass
71
72     def setSizes(self, to_size, from_size):
73         """Modify the to_size, from_size attributes of the feature.
74
75         See __init__.
76         """
77         self.__clear()
78         self._CreationMethod.setValue("BySizes")
79         self._fill_attribute(self._to_size, to_size)
80         self._fill_attribute(self._from_size, from_size)
81         pass
82
83     def setPlanesAndOffsets(self, to_object, to_offset,
84                             from_object, from_offset):
85         """Modify planes and offsets attributes of the feature.
86
87         See __init__.
88         """
89         self.__clear()
90         self._CreationMethod.setValue("ByPlanesAndOffsets")
91         self._fill_attribute(self._to_object, to_object)
92         self._fill_attribute(self._to_offset, to_offset)
93         self._fill_attribute(self._from_object, from_object)
94         self._fill_attribute(self._from_offset, from_offset)
95         pass
96