2 Author: Sergey Pokhodenko
3 Copyright (C) 2014-20xx CEA/DEN, EDF R&D
6 from model.roots import Interface
9 def addPartition(part, *args):
10 """Add an Partition feature to the Part and return Partition.
12 Pass all args to Partition __init__ function.
14 assert(len(args) > 0 and args[0] is not None)
15 feature = part.addFeature("Partition")
16 return Partition(feature, *args)
19 class Partition(Interface):
20 """Interface on an Partition feature."""
22 def __init__(self, feature, *args):
23 """Initialize an Partition feature with given parameters.
26 feature -- an Partition feature
28 Expected arguments for initializing the feature:
29 main_objects -- list of solids.
30 tool_objects -- list of solids.
31 partition_combine -- boolean value.
33 Interface.__init__(self, feature)
34 assert(self._feature.getKind() == "Partition")
36 self._main_objects = self._feature.data().selectionList("main_objects")
37 self._tool_objects = self._feature.data().selectionList("tool_objects")
38 self._partition_combine = self._feature.data().boolean("partition_combine")
40 assert(self._main_objects)
41 assert(self._tool_objects)
42 assert(self._partition_combine)
47 assert(len(args) == 3)
48 main_objects, tool_objects, partition_combine = args
50 self.setMainObjects(main_objects)
51 self.setToolObjects(tool_objects)
52 self.setPartitionCombine(partition_combine)
57 def setMainObjects(self, main_objects):
58 """Modify base attribute of the feature.
62 self._fill_attribute(self._main_objects, main_objects)
65 def setToolObjects(self, tool_objects):
66 """Modify the to_size, from_size attributes of the feature.
70 self._fill_attribute(self._tool_objects, tool_objects)
73 def setPartitionCombine(self, partition_combine):
74 """Modify planes and offsets attributes of the feature.
78 self._fill_attribute(self._partition_combine, partition_combine)