Salome HOME
Merge branch 'BR_EDF_2018_Lot1'
[modules/shaper.git] / src / FeaturesPlugin / Test / TestBooleanFill.py
1 ## Copyright (C) 2014-2017  CEA/DEN, EDF R&D
2 ##
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.
7 ##
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.
12 ##
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
16 ##
17 ## See http:##www.salome-platform.org/ or
18 ## email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
19 ##
20
21 """
22 Test case for Boolean Fill feature. Written on High API.
23 """
24 from ModelAPI import *
25 from GeomAPI import *
26
27 from salome.shaper import model
28
29 # Get session
30 aSession = ModelAPI_Session.get()
31
32 # Create a part
33 aDocument = aSession.activeDocument()
34 aSession.startOperation()
35 model.addPart(aDocument)
36 aDocument = aSession.activeDocument()
37 aSession.finishOperation()
38
39 # Create a sketch with circle to extrude
40 aSession.startOperation()
41 anOrigin = GeomAPI_Pnt(0, 0, 0)
42 aDirX = GeomAPI_Dir(1, 0, 0)
43 aNorm = GeomAPI_Dir(0, 0, 1)
44 aCircleSketch = model.addSketch(aDocument, GeomAPI_Ax3(anOrigin, aDirX, aNorm))
45 aCircleSketch.addCircle(0, 0, 50)
46 aSession.finishOperation()
47
48 # Create a sketch with triangle to extrude
49 aSession.startOperation()
50 aTriangleSketch = model.addSketch(aDocument, GeomAPI_Ax3(anOrigin, aDirX, aNorm))
51 aTriangleSketch.addLine(25, 25, 100, 25)
52 aTriangleSketch.addLine(100, 25, 60, 75)
53 aTriangleSketch.addLine(60, 75, 25, 25)
54 aSession.finishOperation()
55
56 # Make extrusion on circle (cylinder) and triangle (prism)
57 aSession.startOperation()
58 anExtrusion = model.addExtrusion(aDocument, aCircleSketch.results() + aTriangleSketch.results(), 100)
59 aSession.finishOperation()
60
61 # Fill prism with cylinder
62 aSession.startOperation()
63 aBoolean = model.addFill(aDocument, [anExtrusion.results()[0]], [anExtrusion.results()[1]])
64 assert (len(aBoolean.results()) > 0)
65 aSession.finishOperation()
66
67 assert(model.checkPythonDump())