1 # Copyright (C) 2018-2021 CEA/DEN, EDF R&D
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 from ModelAPI import *
22 aSession = ModelAPI_Session.get()
23 aDocument = aSession.moduleDocument()
26 aSession.startOperation()
27 aPartFeature = aDocument.addFeature("Part")
28 aSession.finishOperation()
29 aPartResult = modelAPI_ResultPart(aPartFeature.firstResult())
30 aPart = aPartResult.partDoc()
32 # Create auxiliary box
33 aSession.startOperation()
34 aBox = aPart.addFeature("Box")
35 aBox.string("CreationMethod").setValue("BoxByDimensions")
36 aBox.real("dx").setValue(50)
37 aBox.real("dy").setValue(50)
38 aBox.real("dz").setValue(50)
39 aSession.finishOperation()
41 # Create auxiliary compound
42 aSession.startOperation()
43 aCompound = aPart.addFeature("Compound")
44 aCompoundList = aCompound.selectionList("base_objects")
45 aCompoundList.append("Box_1_1/Front", "FACE")
46 aCompoundList.append("[Box_1_1/Left][Box_1_1/Top]", "EDGE")
47 aSession.finishOperation()
49 # Create auxiliary box 2
50 aSession.startOperation()
51 aBox = aPart.addFeature("Box")
52 aBox.string("CreationMethod").setValue("BoxByDimensions")
53 aBox.real("dx").setValue(50)
54 aBox.real("dy").setValue(50)
55 aBox.real("dz").setValue(50)
56 aSession.finishOperation()
58 # Create auxiliary compound 2
59 aSession.startOperation()
60 aCompound = aPart.addFeature("Compound")
61 aCompoundList = aCompound.selectionList("base_objects")
62 aCompoundList.append("[Box_2_1/Left][Box_2_1/Top]", "EDGE")
63 aCompoundList.append("Box_2_1/Front", "FACE")
64 aSession.finishOperation()
67 # Point by line and plane
68 aSession.startOperation()
69 Point_1 = aPart.addFeature("Point")
70 Point_1.string("creation_method").setValue("by_intersection")
71 Point_1.string("intersection_type").setValue("intersection_type_by_line_and_plane")
72 Point_1.selection("intersection_line").selectSubShape("COMPOUND", "Compound_1_1")
73 Point_1.selection("intersection_plane").selectSubShape("COMPOUND", "Compound_2_1")
75 assert(Point_1.error() != "")
76 aSession.finishOperation()