First stable version after merging with V3_2_2
@ -63,6 +63,7 @@ chamfer.png \
|
||||
chamferall.png \
|
||||
chamferedge.png \
|
||||
chamferface.png \
|
||||
change_orientation.png \
|
||||
check.png \
|
||||
circle.png \
|
||||
circlepointvector.png \
|
||||
@ -122,6 +123,7 @@ point2.png \
|
||||
pointonedge.png \
|
||||
polyline.png \
|
||||
prism.png \
|
||||
prism2.png \
|
||||
revol.png \
|
||||
rotate.png \
|
||||
scale.png \
|
||||
|
@ -1,6 +1,8 @@
|
||||
# common directories to put headerfiles
|
||||
inc_builddir=$(top_builddir)/include/salome
|
||||
|
||||
MODULE_NAME=@MODULE_NAME@
|
||||
|
||||
@SET_MAKE@
|
||||
SHELL=/bin/sh
|
||||
|
||||
|
@ -23,11 +23,15 @@ AC_CANONICAL_HOST
|
||||
PACKAGE=salome
|
||||
AC_SUBST(PACKAGE)
|
||||
|
||||
VERSION=3.2.0
|
||||
XVERSION=0x030200
|
||||
VERSION=3.2.2
|
||||
XVERSION=0x030202
|
||||
AC_SUBST(VERSION)
|
||||
AC_SUBST(XVERSION)
|
||||
|
||||
# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
|
||||
MODULE_NAME=geom
|
||||
AC_SUBST(MODULE_NAME)
|
||||
|
||||
dnl
|
||||
dnl Initialize source and build root directories
|
||||
dnl
|
||||
@ -325,7 +329,7 @@ else
|
||||
fi
|
||||
|
||||
# make other build directories
|
||||
for rep in salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources idl
|
||||
for rep in salome_adm adm_local doc bin/salome include/salome lib${LIB_LOCATION_SUFFIX}/salome share/salome/resources/${MODULE_NAME} idl
|
||||
do
|
||||
# if test ! -d $rep ; then
|
||||
# eval mkdir $rep
|
||||
|
@ -15,6 +15,7 @@ if (navigator.appName !="Netscape")
|
||||
<style type="text/css">
|
||||
<!--
|
||||
p.whs1 { font-family:'Lucida Console' , monospace; }
|
||||
p.whs2 { font-family:'Times New Roman' , serif; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -79,15 +80,18 @@ if (window.writeIntopicBar)
|
||||
|
||||
<h3><a name=bookmark4>Multi Transformation</a></h3>
|
||||
|
||||
<p class="whs1">import geompy</p>
|
||||
<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
|
||||
geompy</span></p>
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create vertices</p>
|
||||
<p class="whs2"># create vertices</p>
|
||||
|
||||
<p class="whs1">p_25_25_50 = geompy.MakeVertex(25.,
|
||||
25., 50.)</p>
|
||||
@ -98,9 +102,13 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">p_25_50_25 = geompy.MakeVertex(25.,
|
||||
50., 25.)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">box = geompy.MakeBoxDXDYDZ(50,
|
||||
50, 50)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">top_face = geompy.GetFaceNearPoint(box,
|
||||
p_25_25_50)</p>
|
||||
|
||||
@ -110,18 +118,21 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">xz_face = geompy.GetFaceNearPoint(box,
|
||||
p_25_50_25)</p>
|
||||
|
||||
<p class="whs1">top_face_ind = geompy.LocalOp.GetSubShapeIndex(box,
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">top_face_ind = geompy.GetSubShapeID(box,
|
||||
top_face)</p>
|
||||
|
||||
<p class="whs1">yz_face_ind = geompy.LocalOp.GetSubShapeIndex(box,
|
||||
<p class="whs1">yz_face_ind = geompy.GetSubShapeID(box,
|
||||
yz_face)</p>
|
||||
|
||||
<p class="whs1">xz_face_ind = geompy.LocalOp.GetSubShapeIndex(box,
|
||||
<p class="whs1">xz_face_ind = geompy.GetSubShapeID(box,
|
||||
xz_face)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># Multi-transformate block and glue the result</p>
|
||||
<p class="whs2"># Multi-transformate
|
||||
block and glue the result</p>
|
||||
|
||||
<p class="whs1">box_tr1 = geompy.MakeMultiTransformation1D(box,
|
||||
yz_face_ind, top_face_ind, 3)</p>
|
||||
@ -129,9 +140,10 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">box_tr2 = geompy.MakeMultiTransformation2D(box,
|
||||
xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">id_box = geompy.addToStudy(box,
|
||||
"Box")</p>
|
||||
@ -142,9 +154,9 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">id_box_tr2 = geompy.addToStudy(box_tr2,
|
||||
"Multi-transformed Block 2D")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># display the results</p>
|
||||
<p class="whs2"># display the results</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_box)</p>
|
||||
|
||||
@ -152,10 +164,10 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_box_tr1)</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_box_tr2)</span>
|
||||
<p class="whs1">gg.createAndDisplayGO(id_box_tr2)
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<h3><a name=bookmark5>Explode on Blocks</a></h3>
|
||||
|
||||
@ -163,11 +175,14 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a box and a sphere</p>
|
||||
<p class="whs2"># create a box and a
|
||||
sphere</p>
|
||||
|
||||
<p class="whs1">box = geompy.MakeBoxDXDYDZ(200,
|
||||
200, 200)</p>
|
||||
@ -176,31 +191,38 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># make a compound</p>
|
||||
<p class="whs2"># make a compound</p>
|
||||
|
||||
<p class="whs1">compound = geompy.MakeCompound([box,
|
||||
sphere])</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p># get all the blocks, contained in the given compound</p>
|
||||
<p class="whs2"># get all the blocks
|
||||
of the given compound, by criteria: min_nb_faces <= nb. of faces <=
|
||||
max_nb_faces</p>
|
||||
|
||||
<p class="whs1">min_nb_faces = 6</p>
|
||||
|
||||
<p class="whs1">max_nb_faces = 6</p>
|
||||
|
||||
<p class="whs1">make_block_explode
|
||||
= geompy.MakeBlockExplode(compound, 1, 1)</p>
|
||||
= geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">id_compound = geompy.addToStudy(compound,
|
||||
"Compound")</p>
|
||||
|
||||
<p class="whs1">id_make_block_explode
|
||||
= geompy.addToStudy(make_block_explode[0], "MakeBlockExplode")</p>
|
||||
= geompy.addToStudyInFather(compound, make_block_explode[0], "MakeBlockExplode")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># display the results</p>
|
||||
<p class="whs2"># display the results</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_compound)</p>
|
||||
|
||||
@ -217,42 +239,45 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a box and a sphere</p>
|
||||
<p class="whs2"># create a box</p>
|
||||
|
||||
<p class="whs1">box = geompy.MakeBoxDXDYDZ(200,
|
||||
200, 200)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># check and improve</p>
|
||||
|
||||
<p class="whs1">check_box = geompy.CheckAndImprove(box)</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># build all possible propagation groups</p>
|
||||
<p class="whs2"># build all possible
|
||||
propagation groups</p>
|
||||
|
||||
<p class="whs1">listChains = geompy.Propagate(check_box)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(check_box,
|
||||
"Box")</p>
|
||||
|
||||
<p class="whs1">ii = 1</p>
|
||||
|
||||
<p class="whs1">for chain in listChains:</p>
|
||||
|
||||
<p class="whs1"> geompy.addToStudyInFather(check_box,
|
||||
chain, "propagation chain")</p>
|
||||
chain, "propagation chain " + `ii`)</p>
|
||||
|
||||
<p class="whs1"> ii
|
||||
= ii + 1</p>
|
||||
|
||||
<p class="whs1"> pass</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
|
@ -104,8 +104,9 @@ if (window.writeIntopicBar)
|
||||
<p> </p>
|
||||
|
||||
<p>Firstly, you can define a <span style="font-weight: bold;"><B>Box</B></span>
|
||||
by two specified <span style="font-weight: bold;"><B>Vertices (</B></span>its
|
||||
opposite corners), and with edges, parallel to the coordinate axes. </p>
|
||||
by two specified <span style="font-weight: bold;"><B>Vertices </B></span>(its
|
||||
opposite corners). The edges of the box will be parallel to the coordinate
|
||||
axes.</p>
|
||||
|
||||
<p><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI Command
|
||||
:</b> </B></span><span style="font-style: italic;"><I>geompy.MakeBoxTwoPnt(Point1,
|
||||
|
@ -15,6 +15,7 @@ if (navigator.appName !="Netscape")
|
||||
<style type="text/css">
|
||||
<!--
|
||||
p.whs1 { font-family:'Lucida Console' , monospace; }
|
||||
p.whs2 { font-family:'Times New Roman' , serif; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -200,8 +201,6 @@ if (window.writeIntopicBar)
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_qface3,1)</span>
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<h3>Hexagonal Solid</h3>
|
||||
|
||||
<p class="whs1">import geompy</p>
|
||||
@ -210,120 +209,141 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create vertices</p>
|
||||
<p class="whs2"># create vertices</p>
|
||||
|
||||
<p class="whs1">p1 = geompy.MakeVertex(
|
||||
0., 0.,
|
||||
<p class="whs1">p0 =
|
||||
geompy.MakeVertex( 0.,
|
||||
0.,
|
||||
0.)</p>
|
||||
|
||||
<p class="whs1">p2 = geompy.MakeVertex(150.,
|
||||
30., 0.)</p>
|
||||
<p class="whs1">p1 =
|
||||
geompy.MakeVertex( 0.,
|
||||
0.,
|
||||
40.)</p>
|
||||
|
||||
<p class="whs1">p3 = geompy.MakeVertex(
|
||||
0., 120.,
|
||||
50.)</p>
|
||||
<p class="whs1">p2 =
|
||||
geompy.MakeVertex( 70., -15., 0.)</p>
|
||||
|
||||
<p class="whs1">p4 = geompy.MakeVertex(
|
||||
0., 40.,
|
||||
<p class="whs1">p3 =
|
||||
geompy.MakeVertex( 70., -15., 70.)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">p4 =
|
||||
geompy.MakeVertex( 0.,
|
||||
70., 0.)</p>
|
||||
|
||||
<p class="whs1">p5 =
|
||||
geompy.MakeVertex( 0.,
|
||||
70., 40.)</p>
|
||||
|
||||
<p class="whs1">p6 =
|
||||
geompy.MakeVertex( 70., 70.,
|
||||
0.)</p>
|
||||
|
||||
<p class="whs1">p7 =
|
||||
geompy.MakeVertex( 70., 70.,
|
||||
70.)</p>
|
||||
|
||||
<p class="whs1">p5 = geompy.MakeVertex(100.,
|
||||
20., 45.)</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">p6 = geompy.MakeVertex(
|
||||
0., 70.,
|
||||
40.)</p>
|
||||
<p class="whs1">p8 =
|
||||
geompy.MakeVertex( 0.,
|
||||
-50., 0.)</p>
|
||||
|
||||
<p class="whs1">p7 = geompy.MakeVertex(
|
||||
70., 70., 70.)</p>
|
||||
|
||||
<p class="whs1">p8 = geompy.MakeVertex(
|
||||
70.,-15., 70.)</p>
|
||||
|
||||
<p class="whs1">p9 = geompy.MakeVertex(
|
||||
0., 0.,
|
||||
40.)</p>
|
||||
<p class="whs1">p9 =
|
||||
geompy.MakeVertex( 0.,
|
||||
-50., 40.)</p>
|
||||
|
||||
<p class="whs1">p10 = geompy.MakeVertex(
|
||||
0., 70.,
|
||||
0.)</p>
|
||||
70., -35., 0.)</p>
|
||||
|
||||
<p class="whs1">p11 = geompy.MakeVertex(
|
||||
70., 70., 0.)</p>
|
||||
70., -35., 70.)</p>
|
||||
|
||||
<p class="whs1">p12 = geompy.MakeVertex(
|
||||
70., -15., 0.)</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">p13 = geompy.MakeVertex(
|
||||
0., 0.,
|
||||
0.)</p>
|
||||
<p class="whs2"># create faces</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1">qface1 = geompy.MakeQuad4Vertices(p0,
|
||||
p1, p2, p3)</p>
|
||||
|
||||
<p># create faces</p>
|
||||
<p class="whs1">qface2 = geompy.MakeQuad4Vertices(p4,
|
||||
p5, p6, p7)</p>
|
||||
|
||||
<p class="whs1">qface1 = geompy.MakeQuad4Vertices(p1,
|
||||
p2, p3, p4)</p>
|
||||
<p class="whs1">qface3 = geompy.MakeQuad4Vertices(p0,
|
||||
p1, p4, p5)</p>
|
||||
|
||||
<p class="whs1">qface2 = geompy.MakeQuad4Vertices(p1,
|
||||
p2, p5, p4)</p>
|
||||
<p class="whs1">qface4 = geompy.MakeQuad4Vertices(p2,
|
||||
p3, p6, p7)</p>
|
||||
|
||||
<p class="whs1">qface3 = geompy.MakeQuad4Vertices(p13,
|
||||
p12, p11, p10)</p>
|
||||
<p class="whs1">qface5 = geompy.MakeQuad4Vertices(p0,
|
||||
p2, p4, p6)</p>
|
||||
|
||||
<p class="whs1">qface4 = geompy.MakeQuad4Vertices(p9,
|
||||
p8, p7, p6)</p>
|
||||
<p class="whs1">qface6 = geompy.MakeQuad4Vertices(p1,
|
||||
p3, p5, p7)</p>
|
||||
|
||||
<p class="whs1">qface5 = geompy.MakeQuad4Vertices(p13,
|
||||
p9, p6, p10)</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">qface6 = geompy.MakeQuad4Vertices(p13,
|
||||
p9, p8, p12)</p>
|
||||
<p class="whs1">qface7 = geompy.MakeQuad4Vertices(p8,
|
||||
p9, p10, p11)</p>
|
||||
|
||||
<p class="whs1">qface7 = geompy.MakeQuad4Vertices(p12,
|
||||
p8, p7, p11)</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">qface8 = geompy.MakeQuad4Vertices(p11,
|
||||
p7, p6, p10)</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># create a hexahedral solid between two given faces</p>
|
||||
<p class="whs2"># create a hexahedral
|
||||
solid between two given faces</p>
|
||||
|
||||
<p class="whs1">solid1 = geompy.MakeHexa2Faces(qface1,
|
||||
qface2)</p>
|
||||
qface7)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a hexahedral solids, bounded by six given faces</p>
|
||||
<p class="whs2"># create a hexahedral
|
||||
solid, bounded by six given faces</p>
|
||||
|
||||
<p class="whs1">solid2 = geompy.MakeHexa(qface3,
|
||||
qface4, qface5, qface6, qface7, qface8)</p>
|
||||
<p class="whs1">solid2 = geompy.MakeHexa(qface1,
|
||||
qface2, qface3, qface4, qface5, qface6)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface1,"qface1")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface2,"qface2")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface3,"qface3")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface4,"qface4")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface5,"qface5")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface6,"qface6")</p>
|
||||
|
||||
<p class="whs1">geompy.addToStudy(qface7,"qface7")</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">id_solid1 = geompy.addToStudy(solid1,"Solid1")</p>
|
||||
|
||||
<p class="whs1">id_solid2 = geompy.addToStudy(solid2,"Solid2")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># display solids</p>
|
||||
<p class="whs2"># display solids</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_solid1)</p>
|
||||
|
||||
<p class="whs1">gg.setDisplayMode(id_solid1,1)</p>
|
||||
<p class="whs1">gg.setDisplayMode(id_solid1,
|
||||
1)</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_solid2)</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_solid2,1)</span>
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_solid2,
|
||||
1)</span> </p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
|
155
doc/salome/gui/GEOM/change_orientation.htm
Executable file
@ -0,0 +1,155 @@
|
||||
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Change Orientation</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
|
||||
<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
|
||||
<!--
|
||||
if (navigator.appName !="Netscape")
|
||||
{ document.write("<link rel='stylesheet' href='default.css'>");}
|
||||
//-->
|
||||
</script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
img_whs1 { border:none; width:23px; height:24px; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; font-weight:bold; }
|
||||
p.whs4 { font-size:12pt; margin-left:40px; }
|
||||
img_whs5 { border:none; width:400px; height:315px; float:none; border-style:none; }
|
||||
table.whs6 { x-cell-content-align:top; border-spacing:0px; width:46.327%; }
|
||||
col.whs7 { width:52.644%; }
|
||||
col.whs8 { width:47.356%; }
|
||||
tr.whs9 { x-cell-content-align:top; }
|
||||
td.whs10 { width:52.644%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
|
||||
img_whs11 { border:none; width:138px; height:143px; border-style:none; }
|
||||
td.whs12 { width:47.356%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
|
||||
img_whs13 { border:none; width:139px; height:144px; border-style:none; }
|
||||
td.whs14 { width:52.644%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
|
||||
td.whs15 { width:47.356%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
function reDo() {
|
||||
if (innerWidth != origWidth || innerHeight != origHeight)
|
||||
location.reload();
|
||||
}
|
||||
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
|
||||
origWidth = innerWidth;
|
||||
origHeight = innerHeight;
|
||||
onresize = reDo;
|
||||
}
|
||||
onerror = null;
|
||||
//-->
|
||||
</script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
|
||||
p.WebHelpNavBar { text-align:right; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="whver.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.gbWhTopic)
|
||||
{
|
||||
if (window.setRelStartPage)
|
||||
{
|
||||
addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nChange Orientation");
|
||||
addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
|
||||
addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (window.setRelStartPage)
|
||||
{
|
||||
setRelStartPage("index.htm");
|
||||
|
||||
autoSync(1);
|
||||
sendSyncInfo();
|
||||
sendAveInfoOut();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
if (window.gbIE4)
|
||||
document.location.reload();
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body><script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
writeIntopicBar(4);
|
||||
//-->
|
||||
</script>
|
||||
<h1><img src="image43.gif" width="23px" height="24px" border="0" class="img_whs1"> Change Orientation</h1>
|
||||
|
||||
<p class="whs2"><b style="font-weight: normal;">T</b>o <span
|
||||
style="font-weight: bold;"><B>Change Orientation</B></span> in the Main Menu
|
||||
select <span style="font-weight: bold;"><B>Repair - > Change Orientation</B></span>.</p>
|
||||
|
||||
<p class="whs2">This operation reverses the normals of faces
|
||||
composing the selected shell. </p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i><span
|
||||
style="font-style: italic;"><I> geompy.ChangeOrientation(shape)</I></span></i></p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments: <span
|
||||
style="font-weight: normal;">Name + 1 shape (shell) </span></b></p>
|
||||
|
||||
<p class="whs3"><span style="font-weight: normal;">Uncheck</span>
|
||||
Create a copy<span style="font-weight: normal;"> checkbox if you don't
|
||||
wish to leave the initial object in the project (</span>Result name<span
|
||||
style="font-weight: normal;"> field will be locked).</span></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs4"><img src="pics/changeorientation.png" x-maintain-ratio="TRUE" width="400px" height="315px" border="0" class="img_whs5"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"><span style="font-weight: bold;"><B>Example:</B></span>
|
||||
</p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<table x-use-null-cells cellspacing="0" width="46.327%" class="whs6">
|
||||
<col class="whs7">
|
||||
<col class="whs8">
|
||||
|
||||
<tr valign="top" class="whs9">
|
||||
<td width="52.644%" class="whs10">
|
||||
<p><img src="image38.gif" width="138px" height="143px" border="0" class="img_whs11"></td>
|
||||
<td width="47.356%" class="whs12">
|
||||
<p><img src="image40.gif" width="139px" height="144px" border="0" class="img_whs13"></td></tr>
|
||||
|
||||
<tr valign="top" class="whs9">
|
||||
<td width="52.644%" class="whs14">
|
||||
<p>Inward orientation. </td>
|
||||
<td width="47.356%" class="whs15">
|
||||
<p>Outward orientation</td></tr>
|
||||
</table>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
writeIntopicBar(0);
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -17,11 +17,13 @@ if (navigator.appName !="Netscape")
|
||||
img_whs1 { width:20px; height:20px; border-style:none; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:312px; height:350px; float:none; border-style:none; }
|
||||
img_whs4 { border:none; width:400px; height:350px; float:none; border-style:none; }
|
||||
p.whs5 { font-size:12pt; font-weight:bold; }
|
||||
p.whs6 { font-size:12pt; font-style:italic; margin-left:40px; }
|
||||
img_whs7 { border:none; float:none; width:300px; height:175px; border-style:none; }
|
||||
img_whs8 { border:none; width:350px; height:175px; float:none; border-style:none; }
|
||||
p.whs6 { font-size:12pt; margin-left:40px; font-weight:normal; font-style:italic; }
|
||||
img_whs7 { border:none; width:400px; height:359px; float:none; border-style:none; }
|
||||
p.whs8 { font-size:12pt; font-style:italic; margin-left:40px; }
|
||||
img_whs9 { border:none; float:none; width:300px; height:175px; border-style:none; }
|
||||
img_whs10 { border:none; width:350px; height:175px; float:none; border-style:none; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -92,10 +94,13 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">To create an Extrusion (Prism) you should define
|
||||
the <span style="font-weight: bold;"><B>Base Shape </B></span>(a basis of the
|
||||
extrusion)<span style="font-weight: bold;"><B>, </B></span>the <span style="font-weight: bold;"><B>Vector</B></span>
|
||||
(a direction of the extrusion) and the <span style="font-weight: bold;"><B>Height</B></span>
|
||||
<p>There are 2 algorithms for creation of <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">an
|
||||
Extrusion (Prism)</font></span>. </p>
|
||||
|
||||
<p class="whs2">Firstly, you can define the <span style="font-weight: bold;"><B>Base
|
||||
Shape </B></span>(a basis of the extrusion)<span style="font-weight: bold;"><B>,
|
||||
</B></span>the <span style="font-weight: bold;"><B>Vector</B></span> (a direction
|
||||
of the extrusion) and the <span style="font-weight: bold;"><B>Height</B></span>
|
||||
of extrusion. </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span>
|
||||
@ -112,16 +117,12 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/extrusion.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs4"></p>
|
||||
<p class="whs3"><img src="pics/extrusion1.png" x-maintain-ratio="TRUE" width="400px" height="350px" border="0" class="img_whs4"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs5">NB! <span style="font-weight: normal;">The
|
||||
is another way to create an</span> Extrusion, <span style="font-weight: normal;">which
|
||||
is currently accessible only via</span> TUI commands.</p>
|
||||
|
||||
<p class="whs5"><span style="font-weight: normal;">You
|
||||
can define the</span> Extrusion <span style="font-weight: normal;">by
|
||||
<p class="whs5"><span style="font-weight: normal;">Secondly,
|
||||
you can define the</span> Extrusion <span style="font-weight: normal;">by
|
||||
the </span>Base Shape<span style="font-weight: normal;"> and the </span>Start<span
|
||||
style="font-weight: normal;"> and </span>End Point<span style="font-weight: normal;">
|
||||
of the </span>Vector<span style="font-weight: normal;"> (in
|
||||
@ -131,17 +132,23 @@ if (window.writeIntopicBar)
|
||||
Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakePrism(Base,
|
||||
Point1, Point2) </I></span></p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments:</b>
|
||||
Name + 1 shape (vertex, edge, wire, face or shell) serving as base object
|
||||
+ 2 vertices.</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p class="whs3"> </p>
|
||||
<p class="whs6"><img src="pics/extrusion2.png" x-maintain-ratio="TRUE" width="400px" height="359px" border="0" class="img_whs7"></p>
|
||||
|
||||
<p class="whs6"> </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Examples:</b></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs6">Base Shape Prisms</p>
|
||||
<p class="whs8">Base Shape Prisms</p>
|
||||
|
||||
<p class="whs3"><img src="pics/prisms_basessn.png" x-maintain-ratio="TRUE" width="300px" height="175px" border="0" class="img_whs7"> <img src="pics/prismssn.png" x-maintain-ratio="TRUE" width="350px" height="175px" border="0" class="img_whs8"> </p>
|
||||
<p class="whs3"><img src="pics/prisms_basessn.png" x-maintain-ratio="TRUE" width="300px" height="175px" border="0" class="img_whs9"> <img src="pics/prismssn.png" x-maintain-ratio="TRUE" width="350px" height="175px" border="0" class="img_whs10"> </p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Titre</title>
|
||||
<title>Using Boolean Operations</title>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
|
||||
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
|
||||
<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
|
||||
@ -98,7 +98,7 @@ if (window.writeIntopicBar)
|
||||
writeIntopicBar(4);
|
||||
//-->
|
||||
</script>
|
||||
<h1 class="whs1">Using boolean operations</h1>
|
||||
<h1 class="whs1">Using Boolean Operations</h1>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Titre</title>
|
||||
<title>Importing and exporting geometrical objects</title>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
|
||||
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
|
||||
<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Titre</title>
|
||||
<title>Using Measurement Tools</title>
|
||||
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
|
||||
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
|
||||
<link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
|
||||
@ -38,7 +38,7 @@ img_whs16 { border:none; width:360px; height:328px; float:none; border-style:non
|
||||
p.whs17 { font-size:12pt; font-weight:normal; }
|
||||
img_whs18 { border:none; width:360px; height:290px; float:none; border-style:none; }
|
||||
img_whs19 { border:none; width:360px; height:405px; float:none; border-style:none; }
|
||||
img_whs20 { border:none; width:360px; height:309px; float:none; border-style:none; }
|
||||
img_whs20 { border:none; width:360px; height:337px; float:none; border-style:none; }
|
||||
p.whs21 { font-size:12pt; margin-left:40px; text-indent:-40px; }
|
||||
img_whs22 { border:none; width:25px; height:23px; border-style:none; }
|
||||
ul.whs23 { list-style:disc; }
|
||||
@ -174,16 +174,14 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the coordinates of a point.</font></span></p>
|
||||
<p class="whs1"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Returns the
|
||||
coordinates of a point.</font></span></p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Point
|
||||
coordinates (X, Y, Z) in 3D space in the form of Python Tuple.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><span style="font-weight: bold;"><B>TUI command:</B></span>
|
||||
<span style="font-style: italic;"><I>geompy.PointCoordinates(Point)</I></span>,
|
||||
where Point is a point whose coordinates are inquired.</p>
|
||||
@ -203,17 +201,14 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Return the properties (Length, Surface & Volume) of a definite geometrical
|
||||
object.</p>
|
||||
<p class="whs1">Returns the properties (Length, Surface &
|
||||
Volume) for the selected geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Display
|
||||
Length, Surface & Volume in the form of Python Tuple.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><span style="font-weight: bold;"><B>TUI command:</B></span>
|
||||
<span style="font-style: italic;"><I>geompy.BasicProperties(Shape)</I></span>,
|
||||
where Shape is a shape whose properties are inquired.</p>
|
||||
@ -232,16 +227,14 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Creates a gravity center of a shape and returns its coordinates.</p>
|
||||
<p class="whs1">Calculates and returns the coordinates of the
|
||||
gravity center for the selected geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> GEOM_Object
|
||||
(vertex).</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">TUI Command:</b><i>
|
||||
</i><span style="font-style: italic;"><I>geompy.MakeCDG(Shape)</I></span>, where
|
||||
Shape is the shape for which a center of gravity is computed.</p>
|
||||
@ -261,12 +254,12 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs7"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the inertia axis of a geometrical object.</p>
|
||||
<p class="whs1">Returns the axis of inertia for the selected
|
||||
geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Display
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Displays
|
||||
the matrix and moments of inertia in the form of Python Tuple (I11, I12,
|
||||
I13, </p>
|
||||
|
||||
@ -301,8 +294,8 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs7"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the dimensions of the bounding box of a geometrical object.</p>
|
||||
<p class="whs1">Returns the dimensions of the bounding box
|
||||
for the selected geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
@ -310,8 +303,6 @@ if (window.writeIntopicBar)
|
||||
the dimensions of the bounding box of a geometrical object in the form
|
||||
of Python Tuple (Xmin, Xmax, Ymin, Ymax, Zmin, Zmax).</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs15">TUI command: <span style="font-weight: normal; font-style: italic;"><I>geompy.BoundingBox(Shape)</I></span><span
|
||||
style="font-weight: normal;">, where Shape is a shape for which a bounding
|
||||
box is computed.</span></p>
|
||||
@ -330,13 +321,8 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs7"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the min. distance between 2 geometrical objects.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Displays
|
||||
the min. distance.</p>
|
||||
<p class="whs1">Returns the minimum distance between two geometrical
|
||||
objects.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
@ -358,8 +344,8 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the tolerance of a geometrical object.</p>
|
||||
<p class="whs1">Returns the maximum and the minimum tolerance
|
||||
for the selected geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
@ -367,8 +353,6 @@ if (window.writeIntopicBar)
|
||||
the tolerance values (FaceMinTol, FaceMaxTol, EgdeMinTol, EgdeMaxTol,
|
||||
VertexMinTol, VertexMaxTol).</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs15">TUI command: <span style="font-weight: normal; font-style: italic;"><I>geompy.Tolerance(Shape)</I></span><span
|
||||
style="font-weight: normal;">, where Shape is a shape for which minimal
|
||||
and maximal tolerances are returned.</span></p>
|
||||
@ -387,13 +371,8 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns the type of a geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Displays
|
||||
all elements composing your geometrical object.</p>
|
||||
<p class="whs1">Displays types and quantities of all elements
|
||||
composing the selected geometrical object.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
@ -416,24 +395,21 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs7"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Returns True if this geometrical object is valid.</p>
|
||||
<p class="whs1">Checks the topology of the selected geometrical
|
||||
object and returns True if it is valid. <span style="font-weight: bold;"><B>Check
|
||||
also geometry</B></span> checkbox allows to test the geometry as well. </p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Boolean.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">TUI Command:</b><i>
|
||||
</i><span style="font-style: italic;"><I>geompy.CheckShape(Shape)</I></span>,
|
||||
where is shape which is checked for validity.</p>
|
||||
</i><span style="font-style: italic;"><I>geompy.(theShape, theIsCheckGeom
|
||||
= 0)</I></span>, where is shape which is checked for validity.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs11"><img src="../pics/measures9.png" x-maintain-ratio="TRUE" width="360px" height="309px" border="0" class="img_whs20"></p>
|
||||
|
||||
<p class="whs11"> </p>
|
||||
<p class="whs11"><img src="../pics/measures9.png" x-maintain-ratio="TRUE" width="360px" height="337px" border="0" class="img_whs20"></p>
|
||||
|
||||
<p class="whs21"> </p>
|
||||
|
||||
@ -444,9 +420,9 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs21"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">Description:</b>
|
||||
Checks whether a shape is a compound of glued blocks. To be considered
|
||||
as a compound of blocks, the given shape must satisfy the following conditions:</p>
|
||||
<p class="whs1">Checks whether a shape is a compound of glued
|
||||
blocks. To be considered as a compound of blocks, the given shape must
|
||||
satisfy the following conditions:</p>
|
||||
|
||||
<ul type="disc" class="whs23">
|
||||
|
||||
@ -485,8 +461,6 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1"><b style="font-weight: bold;">Result:</b> Boolean;
|
||||
highlight in the viewer.</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1"><b style="font-weight: bold;">TUI Command:</b><i>
|
||||
</i><span style="font-style: italic;"><I>geompy.CheckCompoundOfBlocks(Compound).
|
||||
</I></span>Checks if the<span style="font-style: italic;"> <I></I></span>shape is
|
||||
|
@ -17,7 +17,7 @@ if (navigator.appName !="Netscape")
|
||||
img_whs1 { width:20px; height:20px; border-style:none; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:312px; height:367px; float:none; border-style:none; }
|
||||
img_whs4 { border:none; width:400px; height:367px; border-style:none; float:none; }
|
||||
img_whs5 { border:none; float:none; width:260px; height:230px; border-style:none; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
@ -80,7 +80,7 @@ if (window.writeIntopicBar)
|
||||
//-->
|
||||
</script>
|
||||
<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Filling
|
||||
Surface with Curves</h1>
|
||||
Surface with Edges</h1>
|
||||
|
||||
<p><b><span style="font-weight: normal;">T</b>o</span> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">generate
|
||||
a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Filling</B></font></span><span
|
||||
@ -91,9 +91,9 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">To create a curving face using several curves
|
||||
you need to define the <span style="font-weight: bold;"><B>Curves</B></span>,
|
||||
which will be the components of your face, <span style="font-weight: bold;"><B>Minimum</B></span>
|
||||
<p class="whs2">To create a curving face using several edges
|
||||
you need to define the <span style="font-weight: bold;"><B>Edges Compound,</B></span>
|
||||
<span style="font-weight: bold;"><B>Minimum</B></span>
|
||||
and <span style="font-weight: bold;"><B>Maximum Degree</B></span>, <span style="font-weight: bold;"><B>Tolerance
|
||||
</B></span>for<span style="font-weight: bold;"><B> 2D</B></span> and for <span style="font-weight: bold;"><B>3D
|
||||
</B></span> and
|
||||
@ -115,7 +115,7 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/filling.png" x-maintain-ratio="TRUE" width="312px" height="367px" border="0" class="img_whs4"></p>
|
||||
<p class="whs3"><img src="pics/filling.png" x-maintain-ratio="TRUE" width="400px" height="367px" border="0" class="img_whs4"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -125,6 +125,7 @@ boolean_operations.htm
|
||||
box.htm
|
||||
building_by_blocks.htm
|
||||
chamfer.htm
|
||||
change_orientation.htm
|
||||
changing_display_parameters.htm
|
||||
check_free_boundaries.htm
|
||||
check_free_faces.htm
|
||||
@ -267,6 +268,7 @@ image37.gif
|
||||
files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif
|
||||
files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif
|
||||
files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif
|
||||
image38.gif
|
||||
pics\multi_transformationsn1d.png
|
||||
pics\fillingsn.png
|
||||
pics\spheres.png
|
||||
@ -330,13 +332,14 @@ image29.gif
|
||||
image160.jpg
|
||||
files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif
|
||||
files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif
|
||||
pics\changeorientation.png
|
||||
pics\pipesn.png
|
||||
pics\pipe_wire_edgesn.png
|
||||
image2.gif
|
||||
pics\chamfer_faces.png
|
||||
pics\fillet_prism.png
|
||||
pics\rotationsn1.png
|
||||
pics\disp_mode1sn.png
|
||||
pics\pipesn.png
|
||||
pics\pipe_wire_edgesn.png
|
||||
pics\cones.png
|
||||
pics\planes1.png
|
||||
pics\lines.png
|
||||
@ -364,6 +367,7 @@ pics\ellipse.png
|
||||
pics\circle1.png
|
||||
image3.gif
|
||||
files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif
|
||||
pics\extrusion1.png
|
||||
image4.gif
|
||||
pics\isos_u12_v12sn.png
|
||||
pics\free_boudaries1.png
|
||||
@ -383,6 +387,7 @@ pics\circle2.png
|
||||
pics\point3.png
|
||||
image185.jpg
|
||||
files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif
|
||||
pics\extrusion2.png
|
||||
image5.gif
|
||||
pics\free_boudaries2.png
|
||||
pics\multi_rotation2d1.png
|
||||
@ -415,6 +420,7 @@ image61.gif
|
||||
image154.jpg
|
||||
image110.jpg
|
||||
files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif
|
||||
image40.gif
|
||||
pics\scale_transformsn2.png
|
||||
pics\translationsn1.png
|
||||
pics\facesn1.png
|
||||
@ -473,6 +479,7 @@ image113.jpg
|
||||
files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif
|
||||
files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif
|
||||
salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif
|
||||
image43.gif
|
||||
pics\image95.gif
|
||||
pics\mirror_planesn2.png
|
||||
pics\neo-scetcher2.png
|
||||
@ -499,7 +506,6 @@ pics\repair10.png
|
||||
pics\transformation2.png
|
||||
pics\mtransf1.png
|
||||
pics\editgroup.png
|
||||
pics\extrusion.png
|
||||
pics\box2.png
|
||||
image44.gif
|
||||
files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif
|
||||
@ -576,6 +582,7 @@ whgdata\whlstf10.htm
|
||||
whgdata\whlstf11.htm
|
||||
whgdata\whlstf12.htm
|
||||
whgdata\whlstf13.htm
|
||||
whgdata\whlstf14.htm
|
||||
whgdata\whlstg0.htm
|
||||
index.htm
|
||||
index_csh.htm
|
||||
|
@ -491,88 +491,73 @@ if (window.writeIntopicBar)
|
||||
|
||||
<h3><a name=bookmark4>Creation of a Compound</a></h3>
|
||||
|
||||
<p class="whs1">import geompy</p>
|
||||
<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
|
||||
geompy</span></p>
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2">#create vertices</p>
|
||||
<p class="whs2"># create a vertex and
|
||||
a vector</p>
|
||||
|
||||
<p class="whs1">p0 = geompy.MakeVertex(
|
||||
0., 0.,
|
||||
0.)</p>
|
||||
<p class="whs1">p1 = geompy.MakeVertex(
|
||||
-30., -30.,
|
||||
50.)</p>
|
||||
|
||||
<p class="whs1">pz = geompy.MakeVertex(
|
||||
0., 0.,
|
||||
40.)</p>
|
||||
<p class="whs1">p2 = geompy.MakeVertex(
|
||||
-60., -60.,
|
||||
30.)</p>
|
||||
|
||||
<p class="whs1">p3 = geompy.MakeVertex(
|
||||
-30., -30.,
|
||||
10.)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># create sketchers</p>
|
||||
<p class="whs2"># create an arc from
|
||||
three points</p>
|
||||
|
||||
<p class="whs1">sketcher = geompy.MakeSketcher("Sketcher:F
|
||||
-50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW")</p>
|
||||
<p class="whs1">arc = geompy.MakeArc(p1,
|
||||
p2, p3)</p>
|
||||
|
||||
<p class="whs1">ShapeListCompound
|
||||
= []</p>
|
||||
|
||||
<p class="whs1">i = 0</p>
|
||||
|
||||
<p class="whs1">while i <= 3 :</p>
|
||||
|
||||
<p class="whs1"> S
|
||||
= geompy.MakeTranslation(arc, i * 50., 0., 0.)</p>
|
||||
|
||||
<p class="whs1"> ShapeListCompound.append(S)</p>
|
||||
|
||||
<p class="whs1"> i
|
||||
= i + 1</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># create faces from two
|
||||
wires</p>
|
||||
<p class="whs2"># create a compund of
|
||||
the given shapes</p>
|
||||
|
||||
<p class="whs1">face = geompy.MakeFace(sketcher,1)</p>
|
||||
<p class="whs1">compound = geompy.MakeCompound(ShapeListCompound)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># create a prism</p>
|
||||
<p class="whs2"># add object in the study</p>
|
||||
|
||||
<p class="whs1">prism = geompy.MakePrism(face,
|
||||
p0, pz)</p>
|
||||
<p class="whs1">id_compound = geompy.addToStudy(compound,"Compound")</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># explode the prism into
|
||||
faces</p>
|
||||
<p class="whs2"># display the compound</p>
|
||||
|
||||
<p class="whs1">prism_faces = geompy.SubShapeAllSorted(prism,
|
||||
geompy.ShapeType["FACE"])</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># create a shell from
|
||||
a set of faces</p>
|
||||
|
||||
<p class="whs1">shell = geompy.MakeShell([prism_faces[0],
|
||||
prism_faces[1],</p>
|
||||
|
||||
<p class="whs1"> prism_faces[3],
|
||||
prism_faces[4],</p>
|
||||
|
||||
<p class="whs1"> prism_faces[5],
|
||||
prism_faces[2]])</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># create a solid, bounded
|
||||
by the given shells</p>
|
||||
|
||||
<p class="whs1">solid = geompy.MakeSolid([shell])</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">id_solid = geompy.addToStudy(solid,"Solid")</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># display the solid</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_solid)</p>
|
||||
|
||||
<p class="whs1">gg.setDisplayMode(id_solid,1)
|
||||
<p class="whs1">gg.createAndDisplayGO(id_compound)
|
||||
</p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
|
BIN
doc/salome/gui/GEOM/image38.gif
Executable file
After Width: | Height: | Size: 3.5 KiB |
BIN
doc/salome/gui/GEOM/image40.gif
Executable file
After Width: | Height: | Size: 3.8 KiB |
BIN
doc/salome/gui/GEOM/image43.gif
Executable file
After Width: | Height: | Size: 1.0 KiB |
@ -132,10 +132,9 @@ if (window.writeIntopicBar)
|
||||
<p class="whs5"> </p>
|
||||
|
||||
<p class="whs6">Secondly, you can simply
|
||||
select a point in the object browser or 3D viewer, in this case the coordinates
|
||||
of origin are automatically filled in with the coordinates of the selected
|
||||
point and X and Y axes direction will be parallel to the X and Y direction
|
||||
of the Global CS. </p>
|
||||
select any object in the object browser or 3D viewer, in this case the
|
||||
coordinates of origin and axes direction of the LCS are calculated automatically
|
||||
basing on the selected object. </p>
|
||||
|
||||
<p class="whs6"><b style="font-weight: bold;">Arguments:
|
||||
</b>Name + reference object.</p>
|
||||
@ -146,9 +145,9 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">The last algorithm also presumes that you select
|
||||
a point in the object browser or 3D viewer, but in this case you define
|
||||
X and Y axes direction yourselves. </p>
|
||||
<p class="whs2">The last algorithm of LCS construction allows
|
||||
to define the coordinates of origin by a point and axes directions by
|
||||
a line or a vector. </p>
|
||||
|
||||
<p class="whs8"><b style="font-weight: bold;">Arguments:</b>
|
||||
<span style="font-weight: normal;">Name + 1 point of origin + X axis direction,
|
||||
|
@ -80,32 +80,52 @@ if (window.writeIntopicBar)
|
||||
|
||||
<h3>Point Coordinates</h3>
|
||||
|
||||
<p class="whs1">import math</p>
|
||||
|
||||
<p class="whs1">import geompy</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a point</p>
|
||||
<p class="whs2"># create a point</p>
|
||||
|
||||
<p class="whs1">point = geompy.MakeVertex(15,
|
||||
23, 80)</p>
|
||||
<p class="whs1">point = geompy.MakeVertex(15.,
|
||||
23., 80.)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># get the coordinates of the point and check its values</p>
|
||||
<p class="whs2"># get the coordinates
|
||||
of the point and check its values</p>
|
||||
|
||||
<p class="whs1">coords = geompy.PointCoordinates(point)</p>
|
||||
|
||||
<p class="whs1">if coords[0] != 15
|
||||
or coords[1] != 23 or coords[2] != 80 :</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs2"># check the obtained
|
||||
coordinate values </p>
|
||||
|
||||
<p class="whs1">tolerance = 1.e-07</p>
|
||||
|
||||
<p class="whs1">def IsEqual(val1,
|
||||
val2): return (math.fabs(val1 - val2) < tolerance)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">if IsEqual(coords[0],
|
||||
15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.):</p>
|
||||
|
||||
<p class="whs1"> print
|
||||
"Coordinates of point must be (15, 23, 80), but returned (",
|
||||
coords[0], ", ", coords[1], ", ", coords[2], ")"</p>
|
||||
"All values are OK."</p>
|
||||
|
||||
<p class="whs1">else :</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;"> print
|
||||
"All values are OK."</span> </p>
|
||||
<p class="whs1"> print
|
||||
"Coordinates of point must be (15, 23, 80), but returned (",</p>
|
||||
|
||||
<p class="whs1"> print
|
||||
coords[0], ", ", coords[1], ", ", coords[2], ")"</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;"> pass</span>
|
||||
</p>
|
||||
|
||||
<h3>Basic Properties</h3>
|
||||
|
||||
|
BIN
doc/salome/gui/GEOM/pics/changeorientation.png
Executable file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
@ -86,7 +86,7 @@ if (window.writeIntopicBar)
|
||||
a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Pipe</B></font></span>
|
||||
in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span
|
||||
style="font-weight: bold;"><B>New Entity - > Generation -
|
||||
> Pipe</B></span></p>
|
||||
> Extrusion along a path</B></span></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
|
@ -20,7 +20,7 @@ p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:312px; height:346px; float:none; border-style:none; }
|
||||
p.whs5 { font-size:12pt; font-weight:bold; }
|
||||
img_whs6 { border:none; width:312px; height:385px; float:none; border-style:none; }
|
||||
p.whs7 { margin-left:40px; }
|
||||
img_whs7 { border:none; width:400px; height:315px; float:none; }
|
||||
table.whs8 { x-cell-content-align:top; width:72.604%; border-spacing:0px; }
|
||||
col.whs9 { width:32.089%; }
|
||||
col.whs10 { width:32.008%; }
|
||||
@ -100,7 +100,7 @@ if (window.writeIntopicBar)
|
||||
<p> </p>
|
||||
|
||||
<p>There are three algorithms to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">create
|
||||
a point in the 3D space.</font></span></p>
|
||||
a plane in the 3D space.</font></span></p>
|
||||
|
||||
<p><b style="font-weight: bold;"><span style="font-weight: normal;">The</span><span
|
||||
style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> Result </font></span><span style="font-weight: normal;">of
|
||||
@ -130,7 +130,7 @@ if (window.writeIntopicBar)
|
||||
<p class="whs2">Secondly, you can define a <span style="font-weight: bold;"><B>Plane</B></span>
|
||||
by three <span style="font-weight: bold;"><B>Points </B></span>through which
|
||||
the plane
|
||||
passes.</p>
|
||||
passes and a <span style="font-weight: bold;"><B>Size of the Plane</B></span>.</p>
|
||||
|
||||
<p class="whs5"><b style="font-weight: bold;">TUI
|
||||
Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakePlaneThreePnt(Point1,
|
||||
@ -146,19 +146,20 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">Finally, you can define a <span style="font-weight: bold;"><B>Plane</B></span>,
|
||||
similar to the existing one, but with another size of representing face.
|
||||
</p>
|
||||
<p class="whs2">Finally, you can define a <span style="font-weight: bold;"><B>Plane
|
||||
</B></span>by another <span style="font-weight: bold;"><B>Plane</B></span> or <span
|
||||
style="font-weight: bold;"><B>Local Coordinate System</B></span> and a <span
|
||||
style="font-weight: bold;"><B>Size of the Plane</B></span>. </p>
|
||||
|
||||
<p class="whs2"><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI
|
||||
Command:</b> </B></span>geompy.MakePlaneFace(Face, TrimSize) </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name
|
||||
+ 1 face + 1 value (to define the size of the plane).</p>
|
||||
<p class="whs2"><b>Arguments: </b>Name + 1 face + 1 value (to
|
||||
define the size of the plane).</p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs7"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="pics/plane3.png" x-maintain-ratio="TRUE" width="312px" height="385px" border="0" class="img_whs6"></font></span> </p>
|
||||
<p class="whs3"><img src="pics/plane3.png" x-maintain-ratio="TRUE" width="400px" height="315px" border="0" class="img_whs7"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -143,50 +143,62 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a vertex and a vector</p>
|
||||
|
||||
<p class="whs1">p1 = geompy.MakeVertex(35,
|
||||
35, 0)</p>
|
||||
<p class="whs1">p1 = geompy.MakeVertex(25,
|
||||
35, 45)</p>
|
||||
|
||||
<p class="whs1">p2 = geompy.MakeVertex(35,
|
||||
35, 70)</p>
|
||||
<p class="whs1">p2 = geompy.MakeVertex(70,
|
||||
70, 70)</p>
|
||||
|
||||
<p class="whs1">v = geompy.MakeVector(p1,
|
||||
p2)</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># create cones</p>
|
||||
<p># create cylinders</p>
|
||||
|
||||
<p class="whs1">cone1 = geompy.MakeCone(p1,
|
||||
v, 17, 1, 20)</p>
|
||||
<p class="whs1">height = 40</p>
|
||||
|
||||
<p class="whs1">cone2 = geompy.MakeConeR1R2H(30,
|
||||
10, 30)</p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">radius1 = 15</p>
|
||||
|
||||
<p class="whs1">cylinder1 = geompy.MakeCylinder(p1,
|
||||
v, radius1, height)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">radius2 = 30</p>
|
||||
|
||||
<p class="whs1">cylinder2 = geompy.MakeCylinderRH(radius2,
|
||||
height)</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
|
||||
<p class="whs1">id_cone1 = geompy.addToStudy(cone1,"Cone1")</p>
|
||||
<p class="whs1">id_cylinder1 = geompy.addToStudy(cylinder1,"Cylinder1")</p>
|
||||
|
||||
<p class="whs1">id_cone2 = geompy.addToStudy(cone2,"Cone2")</p>
|
||||
<p class="whs1">id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2")</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># display cones</p>
|
||||
<p># display the cylinders</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_cone1)</p>
|
||||
<p class="whs1">gg.createAndDisplayGO(id_cylinder1)</p>
|
||||
|
||||
<p class="whs1">gg.setDisplayMode(id_cone1,1)</p>
|
||||
<p class="whs1">gg.setDisplayMode(id_cylinder1,1)</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_cone2)</p>
|
||||
<p class="whs1">gg.createAndDisplayGO(id_cylinder2)</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cone2,1)</span>
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cylinder2,1)</span>
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
|
@ -81,11 +81,13 @@ if (window.writeIntopicBar)
|
||||
</script>
|
||||
<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span>Revolution</h1>
|
||||
|
||||
<p><b><span style="font-weight: normal;">T</b>o</span> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">create
|
||||
an extruded shape by </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Revolution</B></font></span>
|
||||
in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span
|
||||
style="font-weight: bold;"><B>New Entity - > Generation -
|
||||
> Revolution</B></span></p>
|
||||
<p><b><span style="font-weight: normal;">T</span></b><b><span style="font-weight: normal;">o</span>
|
||||
<span style="font-weight: normal; font-size: 12pt;"><font size=3 style="font-size:12pt;">create an extruded
|
||||
shape by</font></span><span style="font-size: 12pt;"> <font size=3 style="font-size:12pt;"></font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Revolution</B></font></span><span
|
||||
style="font-weight: normal;"> in the </span><span style="font-weight: bold;"><B>Main
|
||||
Menu</B></span><span style="font-weight: normal;"> select </span><span style="font-weight: bold;"><B>New
|
||||
Entity - > Generation -
|
||||
> Revolution</B></span></b></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -15,6 +15,7 @@ if (navigator.appName !="Netscape")
|
||||
<style type="text/css">
|
||||
<!--
|
||||
p.whs1 { font-family:'Lucida Console' , monospace; }
|
||||
p.whs2 { font-family:'Times New Roman' , serif; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -347,7 +348,7 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># create an object, symmetrical to the given one relatively the given
|
||||
<p># create an object, symmetrical to another object through the given
|
||||
plane</p>
|
||||
|
||||
<p class="whs1">p1 = geompy.MakeVertex(
|
||||
@ -367,7 +368,7 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># create an object, symmetrical to the given one relatively the given
|
||||
<p># create an object, symmetrical to another object through the given
|
||||
axis</p>
|
||||
|
||||
<p class="whs1">p4 = geompy.MakeVertex(
|
||||
@ -384,7 +385,7 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p># create an object, symmetrical to the given one relatively the given
|
||||
<p># create an object, symmetrical to another object through the given
|
||||
point</p>
|
||||
|
||||
<p class="whs1">mirror3 = geompy.MakeMirrorByPoint(box,
|
||||
@ -450,18 +451,22 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs1">import salome</p>
|
||||
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p class="whs1">gg = salome.ImportComponentGUI("GEOM")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># create a box and a sphere</p>
|
||||
<p class="whs2"># create a box and a
|
||||
sphere</p>
|
||||
|
||||
<p class="whs1">box = geompy.MakeBoxDXDYDZ(200,
|
||||
200, 200)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># scale the given object by the factor</p>
|
||||
<p class="whs2"># scale the given object
|
||||
by the factor</p>
|
||||
|
||||
<p class="whs1">p0 = geompy.MakeVertex(100,
|
||||
100, 100)</p>
|
||||
@ -471,9 +476,10 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">scale = geompy.MakeScaleTransform(box,
|
||||
p0, factor)</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># add objects in the study</p>
|
||||
<p class="whs2"># add objects in the
|
||||
study</p>
|
||||
|
||||
<p class="whs1">id_box = geompy.addToStudy(box,
|
||||
"Box")</p>
|
||||
@ -481,14 +487,16 @@ if (window.writeIntopicBar)
|
||||
<p class="whs1">id_scale = geompy.addToStudy(scale,
|
||||
"Scale")</p>
|
||||
|
||||
<p> </p>
|
||||
<p class="whs1"> </p>
|
||||
|
||||
<p># display the results</p>
|
||||
<p class="whs2"># display the results</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_box)</p>
|
||||
|
||||
<p class="whs1">gg.setDisplayMode(id_box,1)</p>
|
||||
|
||||
<p class="whs1">gg.setTransparency(id_box,0.5)</p>
|
||||
|
||||
<p class="whs1">gg.createAndDisplayGO(id_scale)</p>
|
||||
|
||||
<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_scale,1)</span>
|
||||
|
@ -597,4 +597,4 @@ function window_OnLoad()
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -22,6 +22,7 @@ aTE("Boolean Operations","boolean_operations.htm");
|
||||
aTE("Box","box.htm");
|
||||
aTE("Building by Blocks","building_by_blocks.htm");
|
||||
aTE("Chamfer","chamfer.htm");
|
||||
aTE("Change Orientation","change_orientation.htm");
|
||||
aTE("Changing Display Parameters","changing_display_parameters.htm");
|
||||
aTE("Check Free Boundaries","check_free_boundaries.htm");
|
||||
aTE("Check Free Faces","check_free_faces.htm");
|
||||
@ -42,9 +43,9 @@ aTE("Explode on Blocks","explode_on_blocks.htm");
|
||||
aTE("Extrusion","extrusion.htm");
|
||||
aTE("Face","face.htm");
|
||||
aTE("Introduction to GEOM","files/introduction_to_geom.htm");
|
||||
aTE("Titre","files/salome2_sp3_booleangui_functions.htm");
|
||||
aTE("Titre","files/salome2_sp3_geomtoolsgui_functions.htm");
|
||||
aTE("Titre","files/salome2_sp3_measuregui_functions.htm");
|
||||
aTE("Using Boolean Operations","files/salome2_sp3_booleangui_functions.htm");
|
||||
aTE("Importing and exporting geometrical objects","files/salome2_sp3_geomtoolsgui_functions.htm");
|
||||
aTE("Using Measurement Tools","files/salome2_sp3_measuregui_functions.htm");
|
||||
aTE("Fillet","fillet.htm");
|
||||
aTE("Filling","filling.htm");
|
||||
aTE("Fuse","fuse.htm");
|
||||
|
@ -15,4 +15,4 @@ iTM(0,82,"whftdata0.htm");
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<script language="javascript" src="whtdata.js"></script>
|
||||
<script language="javascript">
|
||||
<!--
|
||||
aTE(1,97,"Geometry module");
|
||||
aTE(1,98,"Geometry module");
|
||||
aTE(2,0,"Introduction to Geometry","geometry.htm");
|
||||
aTE(2,0,"Importing/exporting geometrical objects","files/salome2_sp3_geomtoolsgui_functions.htm");
|
||||
aTE(1,33,"Creating geometrical objects");
|
||||
@ -33,7 +33,7 @@
|
||||
aTE(2,0,"Extrusion","extrusion.htm");
|
||||
aTE(2,0,"Revolution","revolution.htm");
|
||||
aTE(2,0,"Filling","filling.htm");
|
||||
aTE(2,0,"Pipe","pipe_creation.htm");
|
||||
aTE(2,0,"Extrusion along a path","pipe_creation.htm");
|
||||
aTE(2,0,"Working with groups","working_with_groups.htm");
|
||||
aTE(2,0,"Building by blocks","newentity_blocks.htm");
|
||||
aTE(2,0,"Sketcher","sketcher.htm");
|
||||
@ -52,7 +52,7 @@
|
||||
aTE(2,0,"Color","color.htm");
|
||||
aTE(2,0,"Transparency","transparency.htm");
|
||||
aTE(2,0,"Isolines","isos.htm");
|
||||
aTE(1,35,"Transforming geometrical objects");
|
||||
aTE(1,36,"Transforming geometrical objects");
|
||||
aTE(1,2,"Basic Operations");
|
||||
aTE(2,0,"Partition","partition.htm");
|
||||
aTE(2,0,"Archimede","archimede.htm");
|
||||
@ -77,7 +77,7 @@
|
||||
aTE(2,0,"Multi Transformation","multi_transformation.htm");
|
||||
aTE(2,0,"Explode on Blocks","explode_on_blocks.htm");
|
||||
aTE(2,0,"Propagate","propagate.htm");
|
||||
aTE(1,10,"Repairing Operations");
|
||||
aTE(1,11,"Repairing Operations");
|
||||
aTE(2,0,"Shape Processing","shape_processing.htm");
|
||||
aTE(2,0,"Suppress Faces","suppress_faces.htm");
|
||||
aTE(2,0,"Close Contour","close_contour.htm");
|
||||
@ -88,8 +88,9 @@
|
||||
aTE(2,0,"Add Point on Edge","add_point_on_edge.htm");
|
||||
aTE(2,0,"Check Free Boundaries","check_free_boundaries.htm");
|
||||
aTE(2,0,"Check Free Faces","check_free_faces.htm");
|
||||
aTE(2,0,"Change Orientation","change_orientation.htm");
|
||||
aTE(2,0,"Using measurement tools","files/salome2_sp3_measuregui_functions.htm");
|
||||
aTE(2,0,"Access to Geometry module functionality from Python (using geompy.py)","geompy_doc/namespacegeompy.html");
|
||||
aTE(2,0,"Python interface geompy.py" , geompy_doc/namespacegeompy.html");
|
||||
aTE(1,16,"TUI Scripts");
|
||||
aTE(2,0,"Viewing Geometrical Objects","changing_display_parameters.htm");
|
||||
aTE(1,7,"Creating Geometric Objects");
|
||||
|
@ -133,4 +133,4 @@ else
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -49,7 +49,7 @@ img {vertial-align:middle;}
|
||||
<nobr><a name="15"></a><a href="whlstt15.htm#15" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Creating Geometric Objects</a></nobr><br>
|
||||
<nobr><a name="16"></a><a href="whlstt16.htm#16" target="_self" title="closed book"><img src="../whd_toc1.gif" border="0" align="absmiddle"> Transformation</a></nobr><br>
|
||||
<nobr><a href="../measurement_tools.htm"><img src="../whd_toc3.gif" border="0" align="absmiddle"> Measurement Tools</a></nobr><br>
|
||||
<nobr><a href="../geompy_doc/namespacegeompy.html"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Access to Geometry module functionality from Python (using geompy.py)</a></nobr><br>
|
||||
<nobr><a href="../geompy_doc/namespacegeompy.html"><img src="../wht_toc3.gif" border="0" align="absmiddle"> Python interface geompy.py</a></nobr><br>
|
||||
</p>
|
||||
|
||||
</td></tr>
|
||||
|
@ -88,4 +88,4 @@ else
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -22,4 +22,4 @@ window.onload=window_Onload;
|
||||
</head>
|
||||
|
||||
<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="geometry.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -253,4 +253,4 @@
|
||||
<indent attr="9pt" />
|
||||
</glossary>
|
||||
</paneskin>
|
||||
</resource>
|
||||
</resource>
|
||||
|
@ -17,4 +17,4 @@
|
||||
<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>
|
||||
<table>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -226,4 +226,4 @@ writeStyle();
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
@ -429,4 +429,4 @@ function isAPane(sPaneName)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -46,4 +46,4 @@ TocInitPage();
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@ -722,4 +722,4 @@ setButtonFont("hide","","","","","","");
|
||||
gbWhTopic=true;
|
||||
}
|
||||
else
|
||||
document.location.reload();
|
||||
document.location.reload();
|
||||
|
@ -10,6 +10,7 @@
|
||||
<topic name="Box" url="box.htm" />
|
||||
<topic name="Building by Blocks" url="building_by_blocks.htm" />
|
||||
<topic name="Chamfer" url="chamfer.htm" />
|
||||
<topic name="Change Orientation" url="change_orientation.htm" />
|
||||
<topic name="Changing Display Parameters" url="changing_display_parameters.htm" />
|
||||
<topic name="Check Free Boundaries" url="check_free_boundaries.htm" />
|
||||
<topic name="Check Free Faces" url="check_free_faces.htm" />
|
||||
@ -30,9 +31,9 @@
|
||||
<topic name="Extrusion" url="extrusion.htm" />
|
||||
<topic name="Face" url="face.htm" />
|
||||
<topic name="Introduction to GEOM" url="files/introduction_to_geom.htm" />
|
||||
<topic name="Titre" url="files/salome2_sp3_booleangui_functions.htm" />
|
||||
<topic name="Titre" url="files/salome2_sp3_geomtoolsgui_functions.htm" />
|
||||
<topic name="Titre" url="files/salome2_sp3_measuregui_functions.htm" />
|
||||
<topic name="Using Boolean Operations" url="files/salome2_sp3_booleangui_functions.htm" />
|
||||
<topic name="Importing and exporting geometrical objects" url="files/salome2_sp3_geomtoolsgui_functions.htm" />
|
||||
<topic name="Using Measurement Tools" url="files/salome2_sp3_measuregui_functions.htm" />
|
||||
<topic name="Fillet" url="fillet.htm" />
|
||||
<topic name="Filling" url="filling.htm" />
|
||||
<topic name="Fuse" url="fuse.htm" />
|
||||
|
@ -27,7 +27,7 @@
|
||||
<item name="Extrusion" url="extrusion.htm" />
|
||||
<item name="Revolution" url="revolution.htm" />
|
||||
<item name="Filling" url="filling.htm" />
|
||||
<item name="Pipe" url="pipe_creation.htm" />
|
||||
<item name="Extrusion along a path" url="pipe_creation.htm" />
|
||||
</book>
|
||||
<item name="Working with groups" url="working_with_groups.htm" />
|
||||
<item name="Building by blocks" url="newentity_blocks.htm" />
|
||||
@ -90,10 +90,12 @@
|
||||
<item name="Add Point on Edge" url="add_point_on_edge.htm" />
|
||||
<item name="Check Free Boundaries" url="check_free_boundaries.htm" />
|
||||
<item name="Check Free Faces" url="check_free_faces.htm" />
|
||||
<item name="Change Orientation" url="change_orientation.htm" />
|
||||
</book>
|
||||
</book>
|
||||
<item name="Using measurement tools" url="files/salome2_sp3_measuregui_functions.htm" />
|
||||
<item name="Access to Geometry module functionality from Python (using geompy.py)" url="geompy_doc/namespacegeompy.html" />
|
||||
<item name="Python Interface geompy.py" url="geompy_doc/namespacegeompy.html" />
|
||||
|
||||
<book name="TUI Scripts" >
|
||||
<item name="Viewing Geometrical Objects" url="changing_display_parameters.htm" />
|
||||
<book name="Creating Geometric Objects" >
|
||||
|
@ -17,7 +17,7 @@ if (navigator.appName !="Netscape")
|
||||
img_whs1 { width:20px; height:20px; border-style:none; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:312px; height:231px; float:none; border-style:none; }
|
||||
img_whs4 { border:none; width:400px; height:231px; float:none; }
|
||||
img_whs5 { border:none; width:312px; height:266px; float:none; border-style:none; }
|
||||
img_whs6 { border:none; width:312px; height:274px; float:none; border-style:none; }
|
||||
-->
|
||||
@ -93,14 +93,17 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">Firstly, you can select a <span style="font-weight: bold;"><B>Plane</B></span>
|
||||
or a <span style="font-weight: bold;"><B>Planar Face</B></span> to be your <span
|
||||
style="font-weight: bold;"><B>Working Plane</B></span></p>
|
||||
<p class="whs2">Firstly, you can select a <span style="font-weight: bold;"><B>Plane</B></span>,<span
|
||||
style="font-weight: bold;"> <B></B></span>a <span style="font-weight: bold;"><B>Planar
|
||||
Face</B></span> or a <span style="font-weight: bold;"><B>Local Coordinate System</B></span>
|
||||
to be your <span style="font-weight: bold;"><B>Working Plane</B></span></p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments:</b>
|
||||
Name + 1 selection (face or planar face), </p>
|
||||
<p class="whs2"><b>Arguments:</b> Name + 1 selection (face
|
||||
or planar face), </p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane4.png" x-maintain-ratio="TRUE" width="312px" height="231px" border="0" class="img_whs4"></p>
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane4.png" x-maintain-ratio="TRUE" width="400px" height="231px" border="0" class="img_whs4"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -339,7 +339,7 @@ module GEOM
|
||||
|
||||
/*!
|
||||
* Create a plane, similar to the existing one, but with another size of representing face.
|
||||
* \param theFace Referenced plane.
|
||||
* \param theFace Referenced plane or LCS(Marker).
|
||||
* \param theTrimSize New half size of a side of quadrangle face, representing the plane.
|
||||
* \return New GEOM_Object, containing the created plane.
|
||||
*/
|
||||
@ -616,15 +616,31 @@ module GEOM
|
||||
in double theFactor);
|
||||
|
||||
/*!
|
||||
* Modify the Location of the given object by LCS
|
||||
* Modify the Location of the given object by LCS.
|
||||
* \param theObject The object to be displaced.
|
||||
* \param theStartLCS Coordinate system to perform displacement from it.
|
||||
* If \a theStartLCS is NULL, displacement
|
||||
* will be performed from global CS.
|
||||
* If \a theObject itself is used as \a theStartLCS,
|
||||
* its location will be changed to \a theEndLCS.
|
||||
* \param theEndLCS Coordinate system to perform displacement to it.
|
||||
* \return theObject.
|
||||
*/
|
||||
GEOM_Object PositionShape (in GEOM_Object theObject,
|
||||
in GEOM_Object theStartLCS,
|
||||
in GEOM_Object theEndLCS);
|
||||
|
||||
/*!
|
||||
* Modify the Location of the given object by LCS
|
||||
* creating its copy before the setting
|
||||
* Modify the Location of the given object by LCS,
|
||||
* creating its copy before the setting.
|
||||
* \param theObject The object to be displaced.
|
||||
* \param theStartLCS Coordinate system to perform displacement from it.
|
||||
* If \a theStartLCS is NULL, displacement
|
||||
* will be performed from global CS.
|
||||
* If \a theObject itself is used as \a theStartLCS,
|
||||
* its location will be changed to \a theEndLCS.
|
||||
* \param theEndLCS Coordinate system to perform displacement to it.
|
||||
* \return New GEOM_Object, containing the displaced shape.
|
||||
*/
|
||||
GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
|
||||
in GEOM_Object theStartLCS,
|
||||
@ -868,7 +884,7 @@ module GEOM
|
||||
|
||||
/*!
|
||||
* Create a face on the given wire.
|
||||
* \param theWire Wire to build the face on.
|
||||
* \param theWire closed Wire or Edge to build the face on.
|
||||
* \param isPlanarWanted If TRUE, only planar face will be built.
|
||||
* If impossible, NULL object will be returned.
|
||||
* \return New GEOM_Object, containing the created face.
|
||||
@ -877,7 +893,7 @@ module GEOM
|
||||
|
||||
/*!
|
||||
* Create a face on the given wires set.
|
||||
* \param theWires List of wires to build the face on.
|
||||
* \param theWires List of closed wires or edges to build the face on.
|
||||
* \param isPlanarWanted If TRUE, only planar face will be built.
|
||||
* If impossible, NULL object will be returned.
|
||||
* \return New GEOM_Object, containing the created face.
|
||||
@ -1037,6 +1053,24 @@ module GEOM
|
||||
in long theShapeType,
|
||||
in GEOM_Object theAx1,
|
||||
in shape_state theState);
|
||||
/*!
|
||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||
* the specified plane by the certain way, defined through \a theState parameter.
|
||||
* \param theShape Shape to find sub-shapes of.
|
||||
* \param theShapeType Type of sub-shapes to be retrieved.
|
||||
* \param theAx1 Vector (or line, or linear edge), specifying normal
|
||||
* direction of the plane to find shapes on.
|
||||
* \param thePnt Point specifying location of the plane to find shapes on.
|
||||
* \param theState The state of the subshapes to find.
|
||||
* \return List of all found sub-shapes.
|
||||
*/
|
||||
ListOfGO GetShapesOnPlaneWithLocation (in GEOM_Object theShape,
|
||||
in long theShapeType,
|
||||
in GEOM_Object theAx1,
|
||||
in GEOM_Object thePnt,
|
||||
in shape_state theState);
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||
@ -1105,6 +1139,23 @@ module GEOM
|
||||
in long theShapeType,
|
||||
in GEOM_Object theAx1,
|
||||
in shape_state theState);
|
||||
|
||||
/*!
|
||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||
* the specified plane by the certain way, defined through \a theState parameter.
|
||||
* \param theShape Shape to find sub-shapes of.
|
||||
* \param theShapeType Type of sub-shapes to be retrieved.
|
||||
* \param theAx1 Vector (or line, or linear edge), specifying normal
|
||||
* direction of the plane to find shapes on.
|
||||
* \param thePnt Point specifying location of the plane to find shapes on.
|
||||
* \param theState The state of the subshapes to find.
|
||||
* \return List of IDs of all found sub-shapes.
|
||||
*/
|
||||
ListOfLong GetShapesOnPlaneWithLocationIDs (in GEOM_Object theShape,
|
||||
in long theShapeType,
|
||||
in GEOM_Object theAx1,
|
||||
in GEOM_Object thePnt,
|
||||
in shape_state theState);
|
||||
|
||||
/*!
|
||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||
@ -1667,7 +1718,7 @@ module GEOM
|
||||
* For format of the description string see the previous method.\n
|
||||
* \param theCommand String, defining the sketcher in local
|
||||
* coordinates of the working plane.
|
||||
* \param theWorkingPlane Planar Face of the working plane.
|
||||
* \param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
|
||||
* \return New GEOM_Object, containing the created wire.
|
||||
*/
|
||||
GEOM_Object MakeSketcherOnPlane (in string theCommand, in GEOM_Object theWorkingPlane);
|
||||
@ -1894,6 +1945,15 @@ module GEOM
|
||||
boolean GetFreeBoundary (in GEOM_Object theObject,
|
||||
out ListOfGO theClosedWires,
|
||||
out ListOfGO theOpenWires);
|
||||
|
||||
/*!
|
||||
* Change orientation of the given object.
|
||||
* \param theObject Shape to be processed.
|
||||
* \return New GEOM_Object, containing processed shape.
|
||||
*/
|
||||
GEOM_Object ChangeOrientation (in GEOM_Object theObject);
|
||||
GEOM_Object ChangeOrientationCopy (in GEOM_Object theObject);
|
||||
|
||||
};
|
||||
|
||||
/*!
|
||||
@ -1952,6 +2012,22 @@ module GEOM
|
||||
*/
|
||||
interface GEOM_IMeasureOperations : GEOM_IOperations
|
||||
{
|
||||
/*!
|
||||
* Get position (LCS) of theShape.
|
||||
* \param theShape Shape to calculate position of.
|
||||
* \param Ox,Oy,Oz Output. Coordinates of shape's location origin.
|
||||
* Origin of the LCS is situated at the shape's center of mass.
|
||||
* \param Zx,Zy,Zz Output. Coordinates of shape's location normal(main) direction.
|
||||
* \param Xx,Xy,Xz Output. Coordinates of shape's location X direction.
|
||||
* Axes of the LCS are obtained from shape's location or,
|
||||
* if the shape is a planar face, from position of its plane.
|
||||
* \return Returns position of the shape through the last nine arguments.
|
||||
*/
|
||||
void GetPosition (in GEOM_Object theShape,
|
||||
out double Ox, out double Oy, out double Oz,
|
||||
out double Zx, out double Zy, out double Zz,
|
||||
out double Xx, out double Xy, out double Xz);
|
||||
|
||||
/*!
|
||||
* Get summarized length of all wires,
|
||||
* area of surface and volume of the given shape.
|
||||
@ -2021,6 +2097,15 @@ module GEOM
|
||||
boolean CheckShape (in GEOM_Object theShape,
|
||||
out string theDescription);
|
||||
|
||||
/*!
|
||||
* Check a topology and a geometry of the given shape.
|
||||
* \param theShape Shape to check validity of.
|
||||
* \param theDescription Output. Description of problems in the shape, if they are.
|
||||
* \return TRUE, if the shape "seems to be valid".
|
||||
*/
|
||||
boolean CheckShapeWithGeometry (in GEOM_Object theShape,
|
||||
out string theDescription);
|
||||
|
||||
/*!
|
||||
* Obtain description of the given shape
|
||||
* \param theShape Shape to be described.
|
||||
|
@ -6,12 +6,17 @@
|
||||
</section>
|
||||
<section name="resources">
|
||||
<!-- Module resources -->
|
||||
<parameter name="GEOM" value="${GEOM_ROOT_DIR}/share/salome/resources"/>
|
||||
<parameter name="GEOM" value="${GEOM_ROOT_DIR}/share/salome/resources/geom"/>
|
||||
</section>
|
||||
<section name="Geometry" >
|
||||
<!-- Other module preferences -->
|
||||
<parameter name="SettingsGeomStep" value="10" />
|
||||
<parameter name="display_mode" value="0" />
|
||||
<parameter name="shading_color" value="255, 255, 0" />
|
||||
<parameter name="SettingsGeomStep" value="10" />
|
||||
<parameter name="display_mode" value="0" />
|
||||
<parameter name="shading_color" value="255, 255, 0" />
|
||||
<parameter name="wireframe_color" value="255, 255, 0" />
|
||||
<parameter name="free_bound_color" value="0, 255, 0" />
|
||||
<parameter name="line_color" value="255, 0, 0" />
|
||||
<parameter name="point_color" value="255, 255, 0" />
|
||||
<parameter name="isos_color" value="200, 200, 200" />
|
||||
</section>
|
||||
</document>
|
||||
|
BIN
resources/change_orientation.png
Executable file
After Width: | Height: | Size: 509 B |
BIN
resources/prism2.png
Normal file
After Width: | Height: | Size: 315 B |
@ -57,15 +57,6 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
//=======================================================================
|
||||
// function : GetBasicGUI()
|
||||
// purpose : Get the only BasicGUI object [ static ]
|
||||
//=======================================================================
|
||||
BasicGUI* BasicGUI::GetBasicGUI( GeometryGUI* parent )
|
||||
{
|
||||
return new BasicGUI( parent );
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : BasicGUI()
|
||||
// purpose : Constructor
|
||||
@ -146,38 +137,41 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin
|
||||
QDialog* aDlg = getGeometryGUI()->GetActiveDialogBox();
|
||||
|
||||
// Create Point dialog, OCC viewer
|
||||
if ( aDlg && aDlg->isA( "BasicGUI_PointDlg" ) && theViewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() && pe->state() != Qt::ControlButton )
|
||||
if ( aDlg && aDlg->isA( "BasicGUI_PointDlg" ) &&
|
||||
theViewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() &&
|
||||
pe->state() != Qt::ControlButton )
|
||||
{
|
||||
BasicGUI_PointDlg* aPntDlg = (BasicGUI_PointDlg*) aDlg;
|
||||
if ( aPntDlg->acceptMouseEvent() )
|
||||
{
|
||||
OCCViewer_Viewer* anOCCViewer =
|
||||
((OCCViewer_ViewManager*)(theViewWindow->getViewManager()))->getOCCViewer();
|
||||
Handle(AIS_InteractiveContext) ic = anOCCViewer->getAISContext();
|
||||
|
||||
gp_Pnt aPnt;
|
||||
|
||||
ic->InitSelected();
|
||||
if ( pe->state() == Qt::ShiftButton )
|
||||
ic->ShiftSelect(); // Append selection
|
||||
else
|
||||
ic->Select(); // New selection
|
||||
|
||||
ic->InitSelected();
|
||||
if ( ic->MoreSelected() )
|
||||
{
|
||||
OCCViewer_Viewer* anOCCViewer = ((OCCViewer_ViewManager*)(theViewWindow->getViewManager()))->getOCCViewer();
|
||||
Handle(AIS_InteractiveContext) ic = anOCCViewer->getAISContext();
|
||||
|
||||
gp_Pnt aPnt;
|
||||
TopoDS_Shape aShape = ic->SelectedShape();
|
||||
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
|
||||
aPnt = BRep_Tool::Pnt( TopoDS::Vertex( ic->SelectedShape() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
OCCViewer_ViewPort3d* vp = ((OCCViewer_ViewWindow*)theViewWindow)->getViewPort();
|
||||
aPnt = ConvertClickToPoint( pe->x(), pe->y(), vp->getView() );
|
||||
}
|
||||
|
||||
ic->InitSelected();
|
||||
if( pe->state() == Qt::ShiftButton )
|
||||
ic->ShiftSelect(); // Append selection
|
||||
else
|
||||
ic->Select(); // New selection
|
||||
|
||||
ic->InitSelected();
|
||||
if( ic->MoreSelected() )
|
||||
{
|
||||
TopoDS_Shape aShape = ic->SelectedShape();
|
||||
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
|
||||
aPnt = BRep_Tool::Pnt( TopoDS::Vertex( ic->SelectedShape() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
OCCViewer_ViewPort3d* vp = ((OCCViewer_ViewWindow*)theViewWindow)->getViewPort();
|
||||
aPnt = ConvertClickToPoint( pe->x(), pe->y(), vp->getView() );
|
||||
}
|
||||
|
||||
aPntDlg->OnPointSelected( aPnt ); // "feed" the point to point construction dialog
|
||||
} // acceptMouseEvent()
|
||||
}
|
||||
aPntDlg->OnPointSelected( aPnt ); // "feed" the point to point construction dialog
|
||||
} // acceptMouseEvent()
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -216,6 +210,6 @@ extern "C"
|
||||
GEOM_BASICGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return BasicGUI::GetBasicGUI( parent );
|
||||
return new BasicGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -40,15 +40,10 @@
|
||||
//=================================================================================
|
||||
class GEOM_BASICGUI_EXPORT BasicGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
BasicGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public:
|
||||
BasicGUI( GeometryGUI* parent );
|
||||
~BasicGUI();
|
||||
|
||||
// Get the only BasicGUI object
|
||||
static BasicGUI* GetBasicGUI( GeometryGUI* parent );
|
||||
|
||||
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
|
||||
bool OnMousePress(QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWindow* theViewWindow);
|
||||
|
||||
|
@ -125,7 +125,7 @@ void BasicGUI_CircleDlg::Init()
|
||||
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
|
||||
|
||||
/* min, max, step and decimals for spin boxes & initial values */
|
||||
GroupPntVecR->SpinBox_DX->RangeStepAndValidator(0.001, 999.999, aStep, 3);
|
||||
GroupPntVecR->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
|
||||
GroupPntVecR->SpinBox_DX->SetValue( 100 );
|
||||
|
||||
/* signals and slots connections */
|
||||
|
@ -40,7 +40,7 @@
|
||||
// class : BasicGUI_CircleDlg
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
class BasicGUI_CircleDlg : public GEOMBase_Skeleton
|
||||
class GEOM_BASICGUI_EXPORT BasicGUI_CircleDlg : public GEOMBase_Skeleton
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -114,8 +114,8 @@ void BasicGUI_EllipseDlg::Init()
|
||||
double aMajorR( 200. ), aMinorR( 100. );
|
||||
|
||||
/* min, max, step and decimals for spin boxes & initial values */
|
||||
GroupPoints->SpinBox_DX->RangeStepAndValidator( 0.001, 999.999, step, 3 );
|
||||
GroupPoints->SpinBox_DY->RangeStepAndValidator( 0.001, 999.999, step, 3 );
|
||||
GroupPoints->SpinBox_DX->RangeStepAndValidator( 0.001, COORD_MAX, step, 3 );
|
||||
GroupPoints->SpinBox_DY->RangeStepAndValidator( 0.001, COORD_MAX, step, 3 );
|
||||
GroupPoints->SpinBox_DX->SetValue( aMajorR );
|
||||
GroupPoints->SpinBox_DY->SetValue( aMinorR );
|
||||
|
||||
|
@ -1,23 +1,23 @@
|
||||
// GEOM GEOMGUI : GUI for Geometry component
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -37,21 +37,21 @@
|
||||
#include <qlabel.h>
|
||||
|
||||
#include "GEOMImpl_Types.hxx"
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
// OCCT Includes
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <Geom_Plane.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <Geom_Plane.hxx>
|
||||
#include <GProp_GProps.hxx>
|
||||
#include <BRepGProp.hxx>
|
||||
|
||||
//=================================================================================
|
||||
// class : BasicGUI_MarkerDlg()
|
||||
@ -114,13 +114,13 @@ BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* th
|
||||
myData[ DY2 ] = new DlgRef_SpinBox( anYAxisGrp );
|
||||
new QLabel( tr( "DZ" ), anYAxisGrp );
|
||||
myData[ DZ2 ] = new DlgRef_SpinBox( anYAxisGrp );
|
||||
|
||||
|
||||
Layout1->addWidget( aMainGrp, 2, 0 );
|
||||
Layout1->addWidget( Group1, 2, 0 );
|
||||
Layout1->addWidget( Group2, 2, 0 );
|
||||
|
||||
setHelpFileName("local_coordinate_system.htm");
|
||||
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
@ -147,7 +147,7 @@ void BasicGUI_MarkerDlg::Init()
|
||||
Group2->LineEdit1->setReadOnly( true );
|
||||
Group2->LineEdit2->setReadOnly( true );
|
||||
Group2->LineEdit3->setReadOnly( true );
|
||||
|
||||
|
||||
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
|
||||
connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||
connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||
@ -166,17 +166,17 @@ void BasicGUI_MarkerDlg::Init()
|
||||
connect( buttonOk, SIGNAL( clicked() ), this, SLOT( onOk() ) );
|
||||
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( onApply() ) );
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
|
||||
|
||||
initName( tr( "LCS_NAME" ) );
|
||||
|
||||
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
|
||||
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
|
||||
|
||||
|
||||
for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter )
|
||||
{
|
||||
anIter.data()->RangeStepAndValidator( -999.999, 999.999, step, 3 );
|
||||
anIter.data()->RangeStepAndValidator( COORD_MIN, COORD_MAX, step, 3 );
|
||||
connect( anIter.data(), SIGNAL( valueChanged( double ) ),
|
||||
this, SLOT( onValueChanged( double ) ) );
|
||||
}
|
||||
@ -243,7 +243,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
|
||||
{
|
||||
Group2->hide();
|
||||
aMainGrp->hide();
|
||||
resize(0, 0);
|
||||
//PAL6669: resize(0, 0);
|
||||
Group1->show();
|
||||
|
||||
globalSelection( GEOM_ALLGEOM );
|
||||
@ -255,7 +255,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
|
||||
{
|
||||
aMainGrp->hide();
|
||||
Group1->show();
|
||||
resize(0, 0);
|
||||
//PAL6669: resize(0, 0);
|
||||
Group2->show();
|
||||
|
||||
globalSelection( GEOM_POINT );
|
||||
@ -267,7 +267,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
|
||||
}
|
||||
}
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionDone()));
|
||||
onSelectionDone();
|
||||
}
|
||||
@ -302,7 +302,7 @@ bool BasicGUI_MarkerDlg::onApply()
|
||||
|
||||
initName();
|
||||
ConstructorsClicked( getConstructorId() );
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -314,16 +314,18 @@ void BasicGUI_MarkerDlg::onSelectionDone0()
|
||||
{
|
||||
if ( IObjectCount() == 1 )
|
||||
{
|
||||
|
||||
Standard_Boolean aRes = Standard_False;
|
||||
Handle(SALOME_InteractiveObject) anIO = firstIObject();
|
||||
GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
|
||||
|
||||
LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
|
||||
|
||||
if ( aRes && !aSelectedObj->_is_nil() )
|
||||
{
|
||||
TopoDS_Shape aShape;
|
||||
if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
|
||||
{
|
||||
// Existing LCS selected
|
||||
if ( aSelectedObj->GetType() == GEOM_MARKER && aShape.ShapeType() == TopAbs_FACE )
|
||||
{
|
||||
TopoDS_Face aFace = TopoDS::Face( aShape );
|
||||
@ -347,22 +349,21 @@ void BasicGUI_MarkerDlg::onSelectionDone0()
|
||||
myData[ DX2 ]->SetValue( aYDir.X() );
|
||||
myData[ DY2 ]->SetValue( aYDir.Y() );
|
||||
myData[ DZ2 ]->SetValue( aYDir.Z() );
|
||||
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->clearSelected();
|
||||
aSelMgr->clearSelected();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TColStd_IndexedMapOfInteger aMap;
|
||||
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( anIO, aMap );
|
||||
aSelMgr->GetIndexes( anIO, aMap );
|
||||
if ( aMap.Extent() == 1 )
|
||||
{
|
||||
int anIndex = aMap( 1 );
|
||||
TopTools_IndexedMapOfShape aShapes;
|
||||
TopExp::MapShapes( aShape, aShapes );
|
||||
aShape = aShapes.FindKey( anIndex );
|
||||
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->clearSelected();
|
||||
aSelMgr->clearSelected();
|
||||
}
|
||||
|
||||
|
||||
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
|
||||
{
|
||||
@ -386,12 +387,10 @@ void BasicGUI_MarkerDlg::onSelectionDone0()
|
||||
//=================================================================================
|
||||
void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
{
|
||||
if ( getConstructorId() == 0 )
|
||||
{
|
||||
if ( getConstructorId() == 0 ) {
|
||||
onSelectionDone0();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
myEditCurrentArgument->setText("");
|
||||
QString aName;
|
||||
@ -403,82 +402,60 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
|
||||
if ( !CORBA::is_nil( aSelectedObj ) && aRes ) {
|
||||
aName = GEOMBase::GetName( aSelectedObj );
|
||||
TopoDS_Shape aShape;
|
||||
if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) ) {
|
||||
GEOM::short_array anIndexes;
|
||||
|
||||
TColStd_IndexedMapOfInteger aMap;
|
||||
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( anIO, aMap );
|
||||
|
||||
if ( !aMap.IsEmpty() ) {
|
||||
int anIndex = aMap( 1 );
|
||||
TopTools_IndexedMapOfShape aShapes;
|
||||
TopExp::MapShapes( aShape, aShapes );
|
||||
aShape = aShapes.FindKey( anIndex );
|
||||
}
|
||||
if ( getConstructorId() == 1 ) { // by shape position
|
||||
// Get shape's position
|
||||
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz, Yx,Yy,Yz;
|
||||
Ox = Oy = Oz = Zx = Zy = Xy = Xz = Yx = Yz = 0;
|
||||
Zz = Xx = Yy = 1.;
|
||||
|
||||
if ( getConstructorId() == 1 ) {
|
||||
if ( !aShape.IsNull() ) {
|
||||
gp_Pnt aPnt;
|
||||
if (aShape.ShapeType() == TopAbs_VERTEX) {
|
||||
aPnt = BRep_Tool::Pnt(TopoDS::Vertex(aShape));
|
||||
}
|
||||
else {
|
||||
GProp_GProps aSystem;
|
||||
if (aShape.ShapeType() == TopAbs_EDGE || aShape.ShapeType() == TopAbs_WIRE)
|
||||
BRepGProp::LinearProperties(aShape, aSystem);
|
||||
else if (aShape.ShapeType() == TopAbs_FACE || aShape.ShapeType() == TopAbs_SHELL)
|
||||
BRepGProp::SurfaceProperties(aShape, aSystem);
|
||||
else
|
||||
BRepGProp::VolumeProperties(aShape, aSystem);
|
||||
|
||||
aPnt = aSystem.CentreOfMass();
|
||||
}
|
||||
|
||||
gp_Ax3 anAx3;
|
||||
anAx3.Transform(aShape.Location().Transformation());
|
||||
if(aShape.ShapeType() == TopAbs_FACE) {
|
||||
Handle(Geom_Surface) aGS = BRep_Tool::Surface( TopoDS::Face( aShape ) );
|
||||
if (!aGS.IsNull() && aGS->IsKind( STANDARD_TYPE( Geom_Plane ) ) ) {
|
||||
Handle(Geom_Plane) aGPlane = Handle(Geom_Plane)::DownCast( aGS );
|
||||
gp_Pln aPln = aGPlane->Pln();
|
||||
anAx3 = aPln.Position();
|
||||
}
|
||||
}
|
||||
|
||||
gp_Dir aDirX = anAx3.XDirection();
|
||||
gp_Dir aDirY = anAx3.YDirection();
|
||||
|
||||
myData[ X ]->SetValue( aPnt.X() );
|
||||
myData[ Y ]->SetValue( aPnt.Y() );
|
||||
myData[ Z ]->SetValue( aPnt.Z() );
|
||||
|
||||
myData[ DX1 ]->SetValue( aDirX.X() );
|
||||
myData[ DY1 ]->SetValue( aDirX.Y() );
|
||||
myData[ DZ1 ]->SetValue( aDirX.Z() );
|
||||
|
||||
myData[ DX2 ]->SetValue( aDirY.X() );
|
||||
myData[ DY2 ]->SetValue( aDirY.Y() );
|
||||
myData[ DZ2 ]->SetValue( aDirY.Z() );
|
||||
|
||||
myEditCurrentArgument->setText( aName );
|
||||
}
|
||||
else {
|
||||
myData[ X ]->SetValue( 0 );
|
||||
myData[ Y ]->SetValue( 0 );
|
||||
myData[ Z ]->SetValue( 0 );
|
||||
|
||||
myData[ DX1 ]->SetValue( 0 );
|
||||
myData[ DY1 ]->SetValue( 0 );
|
||||
myData[ DZ1 ]->SetValue( 0 );
|
||||
|
||||
myData[ DX2 ]->SetValue( 0 );
|
||||
myData[ DY2 ]->SetValue( 0 );
|
||||
myData[ DZ2 ]->SetValue( 0 );
|
||||
}
|
||||
}
|
||||
else if ( getConstructorId() == 2 ) {
|
||||
if (myEditCurrentArgument == Group2->LineEdit1) {
|
||||
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
|
||||
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
|
||||
aMeasureOp->GetPosition(aSelectedObj, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
|
||||
|
||||
// Calculate Y direction
|
||||
if (aMeasureOp->IsDone()) {
|
||||
gp_Pnt aPnt (Ox,Oy,Oz);
|
||||
gp_Dir aDirN (Zx,Zy,Zz);
|
||||
gp_Dir aDirX (Xx,Xy,Xz);
|
||||
gp_Ax3 anAx3 (aPnt, aDirN, aDirX);
|
||||
|
||||
gp_Dir aDirY = anAx3.YDirection();
|
||||
aDirY.Coord(Yx,Yy,Yz);
|
||||
}
|
||||
|
||||
// Set values
|
||||
myData[ X ]->SetValue( Ox );
|
||||
myData[ Y ]->SetValue( Oy );
|
||||
myData[ Z ]->SetValue( Oz );
|
||||
|
||||
myData[ DX1 ]->SetValue( Xx );
|
||||
myData[ DY1 ]->SetValue( Xy );
|
||||
myData[ DZ1 ]->SetValue( Xz );
|
||||
|
||||
myData[ DX2 ]->SetValue( Yx );
|
||||
myData[ DY2 ]->SetValue( Yy );
|
||||
myData[ DZ2 ]->SetValue( Yz );
|
||||
|
||||
myEditCurrentArgument->setText( aName );
|
||||
}
|
||||
else if ( getConstructorId() == 2 ) { // by point and two vectors
|
||||
TopoDS_Shape aShape;
|
||||
if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) ) {
|
||||
GEOM::short_array anIndexes;
|
||||
|
||||
TColStd_IndexedMapOfInteger aMap;
|
||||
LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
|
||||
aSelMgr->GetIndexes( anIO, aMap );
|
||||
|
||||
if ( !aMap.IsEmpty() ) {
|
||||
int anIndex = aMap( 1 );
|
||||
TopTools_IndexedMapOfShape aShapes;
|
||||
TopExp::MapShapes( aShape, aShapes );
|
||||
aShape = aShapes.FindKey( anIndex );
|
||||
}
|
||||
|
||||
if (myEditCurrentArgument == Group2->LineEdit1) {
|
||||
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) {
|
||||
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
|
||||
myData[ X ]->SetValue( aPnt.X() );
|
||||
@ -497,7 +474,7 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape)));
|
||||
gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape)));
|
||||
gp_Dir aDir(gp_Vec(aP1, aP2));
|
||||
|
||||
|
||||
myData[ DX1 ]->SetValue( aDir.X() );
|
||||
myData[ DY1 ]->SetValue( aDir.Y() );
|
||||
myData[ DZ1 ]->SetValue( aDir.Z() );
|
||||
@ -514,7 +491,7 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape)));
|
||||
gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape)));
|
||||
gp_Dir aDir(gp_Vec(aP1, aP2));
|
||||
|
||||
|
||||
myData[ DX2 ]->SetValue( aDir.X() );
|
||||
myData[ DY2 ]->SetValue( aDir.Y() );
|
||||
myData[ DZ2 ]->SetValue( aDir.Z() );
|
||||
@ -535,11 +512,11 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
myData[ X ]->SetValue( 0 );
|
||||
myData[ Y ]->SetValue( 0 );
|
||||
myData[ Z ]->SetValue( 0 );
|
||||
|
||||
|
||||
myData[ DX1 ]->SetValue( 0 );
|
||||
myData[ DY1 ]->SetValue( 0 );
|
||||
myData[ DZ1 ]->SetValue( 0 );
|
||||
|
||||
|
||||
myData[ DX2 ]->SetValue( 0 );
|
||||
myData[ DY2 ]->SetValue( 0 );
|
||||
myData[ DZ2 ]->SetValue( 0 );
|
||||
@ -560,9 +537,9 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
myData[ DY2 ]->SetValue( 0 );
|
||||
myData[ DZ2 ]->SetValue( 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
displayPreview();
|
||||
}
|
||||
|
||||
@ -573,7 +550,7 @@ void BasicGUI_MarkerDlg::onSelectionDone()
|
||||
void BasicGUI_MarkerDlg::SetEditCurrentArgument()
|
||||
{
|
||||
QPushButton* send = (QPushButton*)sender();
|
||||
|
||||
|
||||
if(send == Group1->PushButton1) {
|
||||
myEditCurrentArgument = Group1->LineEdit1;
|
||||
globalSelection( GEOM_ALLGEOM );
|
||||
@ -590,7 +567,7 @@ void BasicGUI_MarkerDlg::SetEditCurrentArgument()
|
||||
myEditCurrentArgument = Group2->LineEdit3;
|
||||
globalSelection( GEOM_LINE );
|
||||
}
|
||||
|
||||
|
||||
myEditCurrentArgument->setFocus();
|
||||
onSelectionDone();
|
||||
}
|
||||
@ -614,7 +591,7 @@ void BasicGUI_MarkerDlg::LineEditReturnPressed()
|
||||
void BasicGUI_MarkerDlg::onActivate()
|
||||
{
|
||||
GEOMBase_Skeleton::ActivateThisDialog();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
|
||||
|
||||
ConstructorsClicked( getConstructorId() );
|
||||
@ -634,7 +611,7 @@ void BasicGUI_MarkerDlg::onDeactivate()
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
void BasicGUI_MarkerDlg::enterEvent(QEvent* e)
|
||||
{
|
||||
{
|
||||
if ( !GroupConstructors->isEnabled() )
|
||||
onActivate();
|
||||
}
|
||||
@ -674,8 +651,8 @@ bool BasicGUI_MarkerDlg::isValid( QString& msg )
|
||||
case 1:
|
||||
return !Group1->LineEdit1->text().isEmpty() && isOk;
|
||||
case 2:
|
||||
return !Group2->LineEdit1->text().isEmpty() &&
|
||||
!Group2->LineEdit2->text().isEmpty() &&
|
||||
return !Group2->LineEdit1->text().isEmpty() &&
|
||||
!Group2->LineEdit2->text().isEmpty() &&
|
||||
!Group2->LineEdit3->text().isEmpty() && isOk;
|
||||
}
|
||||
return false;
|
||||
@ -734,17 +711,3 @@ void BasicGUI_MarkerDlg::displayPreview ( const bool activate,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,22 +1,22 @@
|
||||
// GEOM GEOMGUI : GUI for Geometry component
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//
|
||||
@ -33,6 +33,8 @@
|
||||
#include "SalomeApp_Application.h"
|
||||
#include "LightApp_SelectionMgr.h"
|
||||
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
|
||||
#include <qlabel.h>
|
||||
|
||||
#include "GEOMImpl_Types.hxx"
|
||||
@ -41,7 +43,7 @@ using namespace std;
|
||||
|
||||
//=================================================================================
|
||||
// class : BasicGUI_PlaneDlg()
|
||||
// purpose : Constructs a BasicGUI_PlaneDlg which is a child of 'parent', with the
|
||||
// purpose : Constructs a BasicGUI_PlaneDlg which is a child of 'parent', with the
|
||||
// name 'name' and widget flags set to 'f'.
|
||||
// The dialog will by default be modeless, unless you set 'modal' to
|
||||
// TRUE to construct a modal dialog.
|
||||
@ -89,20 +91,20 @@ BasicGUI_PlaneDlg::BasicGUI_PlaneDlg(GeometryGUI* theGeometryGUI, QWidget* paren
|
||||
Group3Pnts->LineEdit3->setReadOnly( true );
|
||||
|
||||
GroupFace = new DlgRef_1Sel1Spin(this, "GroupFace");
|
||||
GroupFace->GroupBox1->setTitle(tr("GEOM_FACE"));
|
||||
GroupFace->GroupBox1->setTitle(tr("GEOM_FACE_OR_LCS"));
|
||||
GroupFace->TextLabel1->setText(tr("GEOM_SELECTION"));
|
||||
GroupFace->TextLabel2->setText(tr("GEOM_PLANE_SIZE"));
|
||||
GroupFace->PushButton1->setPixmap(image3);
|
||||
|
||||
GroupFace->LineEdit1->setReadOnly( true );
|
||||
|
||||
|
||||
Layout1->addWidget(GroupPntDir, 2, 0);
|
||||
Layout1->addWidget(Group3Pnts, 2, 0);
|
||||
Layout1->addWidget(GroupFace, 2, 0);
|
||||
/***************************************************************/
|
||||
|
||||
setHelpFileName("plane.htm");
|
||||
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
@ -112,7 +114,7 @@ BasicGUI_PlaneDlg::BasicGUI_PlaneDlg(GeometryGUI* theGeometryGUI, QWidget* paren
|
||||
// purpose : Destroys the object and frees any allocated resources
|
||||
//=================================================================================
|
||||
BasicGUI_PlaneDlg::~BasicGUI_PlaneDlg()
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -132,15 +134,15 @@ void BasicGUI_PlaneDlg::Init()
|
||||
/* Get setting of step value from file configuration */
|
||||
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
|
||||
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
|
||||
|
||||
|
||||
double aTrimSize = 2000.0;
|
||||
|
||||
|
||||
/* min, max, step and decimals for spin boxes */
|
||||
GroupPntDir->SpinBox_DX->RangeStepAndValidator( 0.001, 10000000.0, aStep, 3 );
|
||||
GroupPntDir->SpinBox_DX->RangeStepAndValidator( 0.001, COORD_MAX, aStep, 3 );
|
||||
GroupPntDir->SpinBox_DX->SetValue( aTrimSize );
|
||||
Group3Pnts->SpinBox_DX->RangeStepAndValidator(0.001, 10000000.0, aStep, 3);
|
||||
Group3Pnts->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
|
||||
Group3Pnts->SpinBox_DX->SetValue( aTrimSize );
|
||||
GroupFace->SpinBox_DX->RangeStepAndValidator(0.001, 10000000.0, aStep, 3);
|
||||
GroupFace->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
|
||||
GroupFace->SpinBox_DX->SetValue( aTrimSize );
|
||||
|
||||
/* signals and slots connections */
|
||||
@ -196,7 +198,7 @@ void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId)
|
||||
switch ( constructorId )
|
||||
{
|
||||
case 0: /* plane from a point and a direction (vector, edge...) */
|
||||
{
|
||||
{
|
||||
Group3Pnts->hide();
|
||||
GroupFace->hide();
|
||||
resize(0, 0);
|
||||
@ -225,7 +227,7 @@ void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId)
|
||||
/* for the first argument */
|
||||
globalSelection( GEOM_POINT );
|
||||
break;
|
||||
}
|
||||
}
|
||||
case 2: /* plane from a planar face selection */
|
||||
{
|
||||
GroupPntDir->hide();
|
||||
@ -237,13 +239,17 @@ void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId)
|
||||
GroupFace->LineEdit1->setText(tr(""));
|
||||
|
||||
/* for the first argument */
|
||||
globalSelection( GEOM_PLANE );
|
||||
//globalSelection( GEOM_PLANE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_PLANE );
|
||||
aMap.Add( GEOM_MARKER );
|
||||
globalSelection( aMap );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
myEditCurrentArgument->setFocus();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
}
|
||||
|
||||
@ -289,8 +295,8 @@ void BasicGUI_PlaneDlg::ClickOnCancel()
|
||||
void BasicGUI_PlaneDlg::SelectionIntoArgument()
|
||||
{
|
||||
myEditCurrentArgument->setText("");
|
||||
|
||||
if ( IObjectCount() != 1 )
|
||||
|
||||
if ( IObjectCount() != 1 )
|
||||
{
|
||||
if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
|
||||
else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil();
|
||||
@ -305,7 +311,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
|
||||
Standard_Boolean aRes = Standard_False;
|
||||
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
|
||||
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
|
||||
{
|
||||
{
|
||||
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
|
||||
if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = aSelectedObject;
|
||||
else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = aSelectedObject;
|
||||
@ -325,7 +331,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
|
||||
//=================================================================================
|
||||
void BasicGUI_PlaneDlg::SetEditCurrentArgument()
|
||||
{
|
||||
QPushButton* send = (QPushButton*)sender();
|
||||
QPushButton* send = (QPushButton*)sender();
|
||||
|
||||
if ( send == GroupPntDir->PushButton1 ) myEditCurrentArgument = GroupPntDir->LineEdit1;
|
||||
else if ( send == GroupPntDir->PushButton2 ) myEditCurrentArgument = GroupPntDir->LineEdit2;
|
||||
@ -335,14 +341,19 @@ void BasicGUI_PlaneDlg::SetEditCurrentArgument()
|
||||
else if ( send == GroupFace->PushButton1 ) myEditCurrentArgument = GroupFace->LineEdit1;
|
||||
|
||||
myEditCurrentArgument->setFocus();
|
||||
|
||||
|
||||
if ( myEditCurrentArgument == GroupPntDir->LineEdit2 )
|
||||
globalSelection( GEOM_LINE );
|
||||
else if ( myEditCurrentArgument == GroupFace->LineEdit1 )
|
||||
globalSelection( GEOM_PLANE );
|
||||
else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) {
|
||||
//globalSelection( GEOM_PLANE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_PLANE );
|
||||
aMap.Add( GEOM_MARKER );
|
||||
globalSelection( aMap );
|
||||
}
|
||||
else
|
||||
globalSelection( GEOM_POINT );
|
||||
|
||||
globalSelection( GEOM_POINT );
|
||||
|
||||
SelectionIntoArgument();
|
||||
}
|
||||
|
||||
@ -374,7 +385,7 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed()
|
||||
void BasicGUI_PlaneDlg::ActivateThisDialog()
|
||||
{
|
||||
GEOMBase_Skeleton::ActivateThisDialog();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
// myGeomGUI->SetState( 0 );
|
||||
|
@ -157,16 +157,16 @@ void BasicGUI_PointDlg::Init()
|
||||
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
|
||||
|
||||
/* min, max, step and decimals for spin boxes */
|
||||
GroupXYZ->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupXYZ->SpinBox_DY->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupXYZ->SpinBox_DZ->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupXYZ->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupXYZ->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupXYZ->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupXYZ->SpinBox_DX->SetValue(0.0);
|
||||
GroupXYZ->SpinBox_DY->SetValue(0.0);
|
||||
GroupXYZ->SpinBox_DZ->SetValue(0.0);
|
||||
|
||||
GroupRefPoint->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupRefPoint->SpinBox_DY->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupRefPoint->SpinBox_DZ->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupRefPoint->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupRefPoint->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupRefPoint->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupRefPoint->SpinBox_DX->SetValue(0.0);
|
||||
GroupRefPoint->SpinBox_DY->SetValue(0.0);
|
||||
GroupRefPoint->SpinBox_DZ->SetValue(0.0);
|
||||
|
@ -118,9 +118,9 @@ void BasicGUI_VectorDlg::Init()
|
||||
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
|
||||
|
||||
/* min, max, step and decimals for spin boxes */
|
||||
GroupDimensions->SpinBox_DX->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupDimensions->SpinBox_DY->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupDimensions->SpinBox_DZ->RangeStepAndValidator(-999.999, 999.999, step, 3);
|
||||
GroupDimensions->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupDimensions->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
GroupDimensions->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
|
||||
double dx( 0. ), dy( 0. ), dz( 200. );
|
||||
GroupDimensions->SpinBox_DX->SetValue( dx );
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -34,24 +34,22 @@
|
||||
#include "SalomeApp_Application.h"
|
||||
#include "LightApp_SelectionMgr.h"
|
||||
|
||||
#include <Geom_Surface.hxx>
|
||||
#include <Geom_Plane.hxx>
|
||||
// OCCT Includes
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <V3d_View.hxx>
|
||||
|
||||
#include "GEOMImpl_Types.hxx"
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
|
||||
// QT Includes
|
||||
#include <qcheckbox.h>
|
||||
#include <qlabel.h>
|
||||
|
||||
#include "GEOMImpl_Types.hxx"
|
||||
|
||||
using namespace std;
|
||||
|
||||
//=================================================================================
|
||||
@ -158,7 +156,7 @@ void BasicGUI_WorkingPlaneDlg::Init()
|
||||
|
||||
connect(Group3->GroupBox1, SIGNAL(clicked(int)), this, SLOT(GroupClicked(int)));
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
initName( tr( "GEOM_WPLANE" ) );
|
||||
@ -171,14 +169,19 @@ void BasicGUI_WorkingPlaneDlg::Init()
|
||||
//=================================================================================
|
||||
void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
{
|
||||
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
|
||||
// myGeomGUI->SetState( 0 );
|
||||
LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
|
||||
|
||||
disconnect(aSelMgr, 0, this, 0);
|
||||
|
||||
switch (constructorId)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
globalSelection( GEOM_PLANE );
|
||||
//globalSelection( GEOM_PLANE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_PLANE );
|
||||
aMap.Add( GEOM_MARKER );
|
||||
globalSelection( aMap );
|
||||
|
||||
Group2->hide();
|
||||
Group3->hide();
|
||||
@ -189,8 +192,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
Group1->LineEdit1->setText("");
|
||||
myFace = GEOM::GEOM_Object::_nil();
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
@ -208,8 +210,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
myVectX = GEOM::GEOM_Object::_nil();
|
||||
myVectZ = GEOM::GEOM_Object::_nil();
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
@ -221,7 +222,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
|
||||
Group3->RadioButton1->setChecked(true);
|
||||
aOriginType = 1;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
displayPreview();
|
||||
@ -256,87 +257,98 @@ bool BasicGUI_WorkingPlaneDlg::ClickOnApply()
|
||||
myGeomGUI->application()->putInfo(tr(""));
|
||||
const int id = getConstructorId();
|
||||
|
||||
if (id == 0) {
|
||||
if ( !CORBA::is_nil( myFace ) ) {
|
||||
TopoDS_Face aPlaneShape;
|
||||
if ( GEOMBase::GetShape( myFace, aPlaneShape, TopAbs_FACE ) ) {
|
||||
Handle(Geom_Surface) aGS = BRep_Tool::Surface( TopoDS::Face( aPlaneShape ) );
|
||||
if ( !aGS.IsNull() && aGS->IsKind( STANDARD_TYPE( Geom_Plane ) ) ) {
|
||||
Handle(Geom_Plane) aGPlane = Handle(Geom_Plane)::DownCast( aGS );
|
||||
gp_Pln aPln = aGPlane->Pln();
|
||||
|
||||
myWPlane = aPln.Position();
|
||||
myGeomGUI->SetWorkingPlane(myWPlane);
|
||||
myGeomGUI->ActiveWorkingPlane();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (id == 0) { // by planar face selection
|
||||
if (CORBA::is_nil(myFace)) {
|
||||
showError( "Face has to be selected" );
|
||||
return false;
|
||||
}
|
||||
} else if (id == 1) {
|
||||
|
||||
// PAL12781: set center of WPL to face's center of mass
|
||||
// like it is done for LCS creation
|
||||
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz;
|
||||
Ox = Oy = Oz = Zx = Zy = Xy = Xz = 0.;
|
||||
Zz = Xx = 1.;
|
||||
|
||||
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
|
||||
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
|
||||
aMeasureOp->GetPosition(myFace, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
|
||||
|
||||
if (aMeasureOp->IsDone()) {
|
||||
gp_Pnt aPnt (Ox,Oy,Oz);
|
||||
gp_Dir aDirN (Zx,Zy,Zz);
|
||||
gp_Dir aDirX (Xx,Xy,Xz);
|
||||
myWPlane = gp_Ax3(aPnt, aDirN, aDirX);
|
||||
} else {
|
||||
showError( "Wrong shape selected (has to be a planar face)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
} else if (id == 1) { // by two vectors (Ox & Oz)
|
||||
if ( CORBA::is_nil( myVectX ) || CORBA::is_nil( myVectZ ) ) {
|
||||
showError( "Two vectors have to be selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopoDS_Edge aVectX, aVectZ;
|
||||
TopoDS_Vertex V1, V2;
|
||||
TopoDS_Vertex VX1, VX2, VZ1, VZ2;
|
||||
gp_Vec aVX, aVZ;
|
||||
if (GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) &&
|
||||
GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) {
|
||||
TopExp::Vertices(aVectZ, V1, V2, Standard_True);
|
||||
if (!V1.IsNull() && !V2.IsNull())
|
||||
aVZ = gp_Vec(BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2));
|
||||
else {
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopExp::Vertices(aVectX, V1, V2, Standard_True);
|
||||
if (!V1.IsNull() && !V2.IsNull())
|
||||
aVX = gp_Vec(BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2));
|
||||
else {
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z());
|
||||
gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z());
|
||||
|
||||
if (aDirX.IsParallel(aDirZ, Precision::Confusion())) {
|
||||
showError( "Parallel vectors selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
myWPlane = gp_Ax3(BRep_Tool::Pnt(V1), aDirZ, aDirX);
|
||||
|
||||
myGeomGUI->SetWorkingPlane(myWPlane);
|
||||
myGeomGUI->ActiveWorkingPlane();
|
||||
return true;
|
||||
}
|
||||
} else if (id == 2) {
|
||||
gp_Pnt P1 = gp_Pnt(0., 0., 0.);
|
||||
gp_Dir aDirZ, aDirX;
|
||||
|
||||
if (aOriginType == 1) {
|
||||
aDirZ = gp_Dir(0., 0., 1.);
|
||||
aDirX = gp_Dir(1., 0., 0.);
|
||||
}
|
||||
else if (aOriginType == 2) {
|
||||
aDirZ = gp_Dir(1., 0., 0.);
|
||||
aDirX = gp_Dir(0., 1., 0.);
|
||||
}
|
||||
else if (aOriginType == 0) {
|
||||
aDirZ = gp_Dir(0., 1., 0.);
|
||||
aDirX = gp_Dir(0., 0., 1.);
|
||||
if (!GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) ||
|
||||
!GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) {
|
||||
showError( "Wrong shape selected (two vectors(edges) have to be selected)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
myWPlane = gp_Ax3(P1, aDirZ, aDirX);
|
||||
TopExp::Vertices(aVectX, VX1, VX2, Standard_True);
|
||||
TopExp::Vertices(aVectZ, VZ1, VZ2, Standard_True);
|
||||
|
||||
myGeomGUI->SetWorkingPlane(myWPlane);
|
||||
myGeomGUI->ActiveWorkingPlane();
|
||||
return true;
|
||||
if (VX1.IsNull() || VX2.IsNull()) {
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (VZ1.IsNull() || VZ2.IsNull()) {
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
aVX = gp_Vec(BRep_Tool::Pnt(VX1), BRep_Tool::Pnt(VX2));
|
||||
aVZ = gp_Vec(BRep_Tool::Pnt(VZ1), BRep_Tool::Pnt(VZ2));
|
||||
|
||||
if (aVX.Magnitude() < Precision::Confusion()) {
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (aVZ.Magnitude() < Precision::Confusion()) {
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z());
|
||||
gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z());
|
||||
|
||||
if (aDirX.IsParallel(aDirZ, Precision::Angular())) {
|
||||
showError( "Parallel vectors selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
myWPlane = gp_Ax3(BRep_Tool::Pnt(VX1), aDirZ, aDirX);
|
||||
|
||||
} else if (id == 2) { // by selection from standard (OXY or OYZ, or OZX)
|
||||
gp_Ax2 anAx2;
|
||||
|
||||
if (aOriginType == 1) anAx2 = gp::XOY();
|
||||
else if (aOriginType == 2) anAx2 = gp::YOZ();
|
||||
else if (aOriginType == 0) anAx2 = gp::ZOX();
|
||||
|
||||
myWPlane = gp_Ax3(anAx2);
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
myGeomGUI->SetWorkingPlane(myWPlane);
|
||||
myGeomGUI->ActiveWorkingPlane();
|
||||
return true;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -425,7 +437,7 @@ void BasicGUI_WorkingPlaneDlg::LineEditReturnPressed()
|
||||
void BasicGUI_WorkingPlaneDlg::ActivateThisDialog( )
|
||||
{
|
||||
GEOMBase_Skeleton::ActivateThisDialog();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
ConstructorsClicked( getConstructorId() );
|
||||
|
@ -41,20 +41,6 @@
|
||||
|
||||
#include "SalomeApp_Application.h"
|
||||
|
||||
BlocksGUI* BlocksGUI::myGUIObject = 0;
|
||||
|
||||
//=======================================================================
|
||||
// function : GetBlocksGUI()
|
||||
// purpose : Get the only BlocksGUI object [ static ]
|
||||
//=======================================================================
|
||||
BlocksGUI* BlocksGUI::GetBlocksGUI( GeometryGUI* parent )
|
||||
{
|
||||
if ( myGUIObject == 0 )
|
||||
myGUIObject = new BlocksGUI( parent );
|
||||
|
||||
return myGUIObject;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : BlocksGUI()
|
||||
// purpose : Constructor
|
||||
@ -108,6 +94,6 @@ extern "C"
|
||||
GEOM_BLOCKSGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return BlocksGUI::GetBlocksGUI( parent );
|
||||
return new BlocksGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,6 @@
|
||||
// File : BuildGUI.h
|
||||
// Author : Julia DOROVSKIKH
|
||||
// Module : GEOM
|
||||
// $Header$
|
||||
|
||||
#ifndef BLOCKSGUI_H
|
||||
#define BLOCKSGUI_H
|
||||
@ -38,19 +37,11 @@
|
||||
//=================================================================================
|
||||
class GEOM_BLOCKSGUI_EXPORT BlocksGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
BlocksGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public:
|
||||
BlocksGUI( GeometryGUI* parent );
|
||||
~BlocksGUI();
|
||||
|
||||
// Get the only BuildGUI object
|
||||
static BlocksGUI* GetBlocksGUI( GeometryGUI* parent );
|
||||
|
||||
bool OnGUIEvent (int theCommandID, SUIT_Desktop* parent);
|
||||
|
||||
private:
|
||||
static BlocksGUI* myGUIObject; // the only BlocksGUI object
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -143,7 +143,8 @@ void BlocksGUI_TrsfDlg::Init()
|
||||
double SpecificStep = 1.0;
|
||||
QMap<int, DlgRef_SpinBox*>::iterator anIter;
|
||||
for (anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter) {
|
||||
anIter.data()->RangeStepAndValidator(1.0, 999.999, SpecificStep, 3);
|
||||
//anIter.data()->RangeStepAndValidator(1.0, 999.999, SpecificStep, 3);
|
||||
anIter.data()->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep, 3);
|
||||
}
|
||||
|
||||
// signals and slots connections
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -36,21 +36,6 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
BooleanGUI* BooleanGUI::myGUIObject = 0;
|
||||
|
||||
//=======================================================================
|
||||
// function : GetBooleanGUI()
|
||||
// purpose : Get the only BooleanGUI object [ static ]
|
||||
//=======================================================================
|
||||
BooleanGUI* BooleanGUI::GetBooleanGUI( GeometryGUI* parent )
|
||||
{
|
||||
if ( myGUIObject == 0 ) {
|
||||
// init BooleanGUI only once
|
||||
myGUIObject = new BooleanGUI( parent );
|
||||
}
|
||||
return myGUIObject;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : BooleanGUI()
|
||||
// purpose : Constructor
|
||||
@ -59,7 +44,6 @@ BooleanGUI::BooleanGUI( GeometryGUI* parent ) : GEOMGUI( parent )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
// function : ~BooleanGUI()
|
||||
// purpose : Destructor
|
||||
@ -91,7 +75,7 @@ bool BooleanGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
|
||||
QDialog* aDlg = new BooleanGUI_Dialog( anOperation, getGeometryGUI(), parent, "");
|
||||
aDlg->show();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -103,6 +87,6 @@ extern "C"
|
||||
GEOM_BOOLEANGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return BooleanGUI::GetBooleanGUI( parent );
|
||||
return new BooleanGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -17,14 +17,13 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : BooleanGUI.h
|
||||
// Author : Damien COQUERET
|
||||
// Module : GEOM
|
||||
// $Header$
|
||||
|
||||
#ifndef BOOLEANGUI_H
|
||||
#define BOOLEANGUI_H
|
||||
@ -55,21 +54,13 @@
|
||||
//=================================================================================
|
||||
class GEOM_BOOLEANGUI_EXPORT BooleanGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
BooleanGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public:
|
||||
enum BooleanOperation { COMMON = 1, CUT = 2, FUSE = 3, SECTION = 4 };
|
||||
|
||||
BooleanGUI( GeometryGUI* parent );
|
||||
~BooleanGUI();
|
||||
|
||||
// Get the only BooleanGUI object
|
||||
static BooleanGUI* GetBooleanGUI( GeometryGUI* parent );
|
||||
|
||||
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
|
||||
|
||||
private:
|
||||
static BooleanGUI* myGUIObject; // the only BooleanGUI object
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -31,6 +31,8 @@
|
||||
#include "SUIT_Desktop.h"
|
||||
#include "SUIT_Session.h"
|
||||
|
||||
#include "SalomeApp_Application.h"
|
||||
|
||||
#include "BuildGUI_EdgeDlg.h" // Method EDGE
|
||||
#include "BuildGUI_WireDlg.h" // Method WIRE
|
||||
#include "BuildGUI_FaceDlg.h" // Method FACE
|
||||
@ -40,20 +42,6 @@
|
||||
|
||||
#include "GeometryGUI.h"
|
||||
|
||||
BuildGUI* BuildGUI::myGUIObject = 0;
|
||||
|
||||
//=======================================================================
|
||||
// function : GetBuildGUI()
|
||||
// purpose : Get the only BuildGUI object [ static ]
|
||||
//=======================================================================
|
||||
BuildGUI* BuildGUI::GetBuildGUI( GeometryGUI* parent )
|
||||
{
|
||||
if ( myGUIObject == 0 )
|
||||
myGUIObject = new BuildGUI( parent );
|
||||
|
||||
return myGUIObject;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : BuildGUI()
|
||||
// purpose : Constructor
|
||||
@ -63,7 +51,6 @@ BuildGUI::BuildGUI( GeometryGUI* parent )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
// function : ~BuildGUI()
|
||||
// purpose : Destructor
|
||||
@ -80,7 +67,7 @@ BuildGUI::~BuildGUI()
|
||||
bool BuildGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
|
||||
{
|
||||
getGeometryGUI()->EmitSignalDeactivateDialog();
|
||||
|
||||
|
||||
QDialog* aDlg = NULL;
|
||||
|
||||
switch ( theCommandID )
|
||||
@ -91,15 +78,15 @@ bool BuildGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
|
||||
case 4084: aDlg = new BuildGUI_ShellDlg ( getGeometryGUI(), parent, "" ); break;
|
||||
case 4085: aDlg = new BuildGUI_SolidDlg ( getGeometryGUI(), parent, "" ); break;
|
||||
case 4086: aDlg = new BuildGUI_CompoundDlg( getGeometryGUI(), parent, "" ); break;
|
||||
|
||||
|
||||
default:
|
||||
SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
|
||||
getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if ( aDlg != NULL )
|
||||
aDlg->show();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -111,6 +98,6 @@ extern "C"
|
||||
GEOM_BUILDGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return BuildGUI::GetBuildGUI( parent );
|
||||
return new BuildGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -17,14 +17,13 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : BuildGUI.h
|
||||
// Author : Damien COQUERET
|
||||
// Module : GEOM
|
||||
// $Header$
|
||||
|
||||
#ifndef BUILDGUI_H
|
||||
#define BUILDGUI_H
|
||||
@ -39,19 +38,11 @@
|
||||
//=================================================================================
|
||||
class GEOM_BUILDGUI_EXPORT BuildGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
BuildGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public :
|
||||
BuildGUI( GeometryGUI* parent );
|
||||
~BuildGUI();
|
||||
|
||||
// Get the only BuildGUI object
|
||||
static BuildGUI* GetBuildGUI( GeometryGUI* parent );
|
||||
|
||||
bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent );
|
||||
|
||||
private:
|
||||
static BuildGUI* myGUIObject; // the only BuildGUI object
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -28,6 +28,7 @@
|
||||
|
||||
#include "BuildGUI_FaceDlg.h"
|
||||
#include "GEOMImpl_Types.hxx"
|
||||
#include "TColStd_MapOfInteger.hxx"
|
||||
|
||||
#include "SUIT_Session.h"
|
||||
#include "SalomeApp_Application.h"
|
||||
@ -64,7 +65,7 @@ BuildGUI_FaceDlg::BuildGUI_FaceDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
|
||||
|
||||
GroupWire = new DlgRef_1Sel1Check_QTD(this, "GroupWire");
|
||||
GroupWire->GroupBox1->setTitle(tr("GEOM_FACE_FFW"));
|
||||
GroupWire->TextLabel1->setText(tr("GEOM_WIRES"));
|
||||
GroupWire->TextLabel1->setText(tr("GEOM_OBJECTS"));
|
||||
GroupWire->CheckButton1->setText(tr("GEOM_FACE_OPT"));
|
||||
GroupWire->PushButton1->setPixmap(image1);
|
||||
|
||||
@ -100,7 +101,10 @@ void BuildGUI_FaceDlg::Init()
|
||||
|
||||
GroupWire->CheckButton1->setChecked(TRUE);
|
||||
|
||||
globalSelection( GEOM_WIRE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_EDGE );
|
||||
aMap.Add( GEOM_WIRE );
|
||||
globalSelection( aMap );
|
||||
|
||||
/* signals and slots connections */
|
||||
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
|
||||
@ -160,7 +164,7 @@ void BuildGUI_FaceDlg::SelectionIntoArgument()
|
||||
if (!myWires.length())
|
||||
return;
|
||||
if(aNbSel != 1)
|
||||
aName = tr("%1_wires").arg(aNbSel);
|
||||
aName = tr("%1_objects").arg(aNbSel);
|
||||
|
||||
myEditCurrentArgument->setText( aName );
|
||||
|
||||
@ -178,7 +182,11 @@ void BuildGUI_FaceDlg::SetEditCurrentArgument()
|
||||
if (send != GroupWire->PushButton1)
|
||||
return;
|
||||
|
||||
globalSelection( GEOM_WIRE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_EDGE );
|
||||
aMap.Add( GEOM_WIRE );
|
||||
globalSelection( aMap );
|
||||
|
||||
myEditCurrentArgument = GroupWire->LineEdit1;
|
||||
|
||||
myEditCurrentArgument->setFocus();
|
||||
@ -195,7 +203,10 @@ void BuildGUI_FaceDlg::ActivateThisDialog()
|
||||
GEOMBase_Skeleton::ActivateThisDialog();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
|
||||
globalSelection( GEOM_WIRE );
|
||||
TColStd_MapOfInteger aMap;
|
||||
aMap.Add( GEOM_EDGE );
|
||||
aMap.Add( GEOM_WIRE );
|
||||
globalSelection( aMap );
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -59,21 +59,6 @@
|
||||
#include <qmenubar.h>
|
||||
|
||||
|
||||
DisplayGUI* DisplayGUI::myGUIObject = 0;
|
||||
|
||||
//=======================================================================
|
||||
// function : DisplayGUI::GetDisplayGUI()
|
||||
// purpose : Get the only DisplayGUI object [ static ]
|
||||
//=======================================================================
|
||||
DisplayGUI* DisplayGUI::GetDisplayGUI( GeometryGUI* parent )
|
||||
{
|
||||
if ( myGUIObject == 0 ) {
|
||||
// init DisplayGUI only once
|
||||
myGUIObject = new DisplayGUI( parent );
|
||||
}
|
||||
return myGUIObject;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : DisplayGUI::DisplayGUI()
|
||||
// purpose : Constructor
|
||||
@ -82,7 +67,6 @@ DisplayGUI::DisplayGUI( GeometryGUI* parent ) : GEOMGUI( parent )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
// function : DisplayGUI::~DisplayGUI()
|
||||
// purpose : Destructor
|
||||
@ -98,63 +82,64 @@ DisplayGUI::~DisplayGUI()
|
||||
//=======================================================================
|
||||
bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
{
|
||||
DisplayGUI* myDisplayGUI = GetDisplayGUI( getGeometryGUI() );
|
||||
LightApp_SelectionMgr *Sel = getGeometryGUI()->getApp()->selectionMgr();
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if (!app) return false;
|
||||
|
||||
LightApp_SelectionMgr *Sel = app->selectionMgr();
|
||||
SALOME_ListIO selected;
|
||||
Sel->selectedObjects( selected );
|
||||
|
||||
switch (theCommandID) {
|
||||
case 211: // MENU VIEW - WIREFRAME/SHADING
|
||||
{
|
||||
myDisplayGUI->InvertDisplayMode();
|
||||
int newMode = myDisplayGUI->GetDisplayMode();
|
||||
getGeometryGUI()->action( 211 )->setMenuText( newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") );
|
||||
InvertDisplayMode();
|
||||
int newMode = GetDisplayMode();
|
||||
getGeometryGUI()->action( 211 )->setMenuText
|
||||
( newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") );
|
||||
getGeometryGUI()->menuMgr()->update();
|
||||
// SUIT_Session::session()->activeApplication()->desktop()->menuBar()->
|
||||
// changeItem( 211, newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") );
|
||||
break;
|
||||
}
|
||||
case 212: // MENU VIEW - DISPLAY ALL
|
||||
{
|
||||
getGeometryGUI()->EmitSignalDeactivateDialog();
|
||||
myDisplayGUI->DisplayAll();
|
||||
DisplayAll();
|
||||
break;
|
||||
}
|
||||
case 213: // MENU VIEW - DISPLAY ONLY
|
||||
{
|
||||
getGeometryGUI()->EmitSignalDeactivateDialog();
|
||||
myDisplayGUI->DisplayOnly();
|
||||
DisplayOnly();
|
||||
break;
|
||||
}
|
||||
case 214: // MENU VIEW - ERASE ALL
|
||||
{
|
||||
myDisplayGUI->EraseAll();
|
||||
EraseAll();
|
||||
break;
|
||||
}
|
||||
case 215: // MENU VIEW - ERASE
|
||||
{
|
||||
myDisplayGUI->Erase();
|
||||
Erase();
|
||||
break;
|
||||
}
|
||||
case 216: // MENU VIEW - DISPLAY
|
||||
{
|
||||
getGeometryGUI()->EmitSignalDeactivateDialog();
|
||||
myDisplayGUI->Display();
|
||||
Display();
|
||||
break;
|
||||
}
|
||||
case 80311: // POPUP VIEWER - WIREFRAME
|
||||
{
|
||||
myDisplayGUI->ChangeDisplayMode( 0 );
|
||||
ChangeDisplayMode( 0 );
|
||||
break;
|
||||
}
|
||||
case 80312: // POPUP VIEWER - SHADING
|
||||
{
|
||||
myDisplayGUI->ChangeDisplayMode( 1 );
|
||||
ChangeDisplayMode( 1 );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
SUIT_Session::session()->activeApplication()->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
||||
app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -168,7 +153,10 @@ bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
//=====================================================================================
|
||||
void DisplayGUI::DisplayAll()
|
||||
{
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
|
||||
if ( !appStudy ) return;
|
||||
_PTR(Study) aStudy = appStudy->studyDS();
|
||||
if ( !aStudy ) return;
|
||||
@ -186,7 +174,9 @@ void DisplayGUI::DisplayAll()
|
||||
_PTR(SObject) valSO ( anIter->Value() );
|
||||
_PTR(SObject) refSO;
|
||||
if ( !valSO->ReferencedObject( refSO ) ) {
|
||||
listIO.Append( new SALOME_InteractiveObject( valSO->GetID().c_str(), SC->ComponentDataType().c_str() ,valSO->GetName().c_str() ) );
|
||||
listIO.Append( new SALOME_InteractiveObject(valSO->GetID().c_str(),
|
||||
SC->ComponentDataType().c_str(),
|
||||
valSO->GetName().c_str()) );
|
||||
}
|
||||
anIter->Next();
|
||||
}
|
||||
@ -201,7 +191,7 @@ void DisplayGUI::EraseAll()
|
||||
{
|
||||
SUIT_OverrideCursor();
|
||||
|
||||
SUIT_Application* app = SUIT_Session::session()->activeApplication();
|
||||
SUIT_Application* app = getGeometryGUI()->getApp();
|
||||
if ( app ) {
|
||||
SUIT_ViewWindow* vw = app->desktop()->activeWindow();
|
||||
if ( vw ) {
|
||||
@ -232,28 +222,28 @@ void DisplayGUI::DisplayOnly()
|
||||
void DisplayGUI::Display()
|
||||
{
|
||||
SALOME_ListIO listIO;
|
||||
|
||||
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
|
||||
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
SalomeApp_Study* anActiveStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
|
||||
if ( !anActiveStudy ) return;
|
||||
|
||||
|
||||
//get SalomeApp selection manager
|
||||
LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
|
||||
if ( !aSelMgr ) return;
|
||||
|
||||
|
||||
SALOME_ListIO aList;
|
||||
aSelMgr->selectedObjects( aList );
|
||||
SALOME_ListIteratorOfListIO It( aList );
|
||||
|
||||
|
||||
SUIT_OverrideCursor();
|
||||
|
||||
for( ;It.More();It.Next() ) {
|
||||
Handle(SALOME_InteractiveObject) anIObject = It.Value();
|
||||
if ( anIObject->hasEntry() ) {
|
||||
_PTR(SObject) SO ( anActiveStudy->studyDS()->FindObjectID( anIObject->getEntry() ) );
|
||||
if ( SO && QString( SO->GetID().c_str() ) == QString( SO->GetFatherComponent()->GetID().c_str() ) ) {
|
||||
if ( SO && QString(SO->GetID().c_str()) == QString(SO->GetFatherComponent()->GetID().c_str()) ) {
|
||||
_PTR(SComponent) SC ( SO->GetFatherComponent() );
|
||||
// if component is selected
|
||||
listIO.Clear();
|
||||
@ -263,8 +253,10 @@ void DisplayGUI::Display()
|
||||
_PTR(SObject) valSO ( anIter->Value() );
|
||||
_PTR(SObject) refSO;
|
||||
if ( !valSO->ReferencedObject( refSO ) ) {
|
||||
listIO.Append( new SALOME_InteractiveObject( valSO->GetID().c_str(), SC->ComponentDataType().c_str() ,valSO->GetName().c_str() ) );
|
||||
}
|
||||
listIO.Append( new SALOME_InteractiveObject(valSO->GetID().c_str(),
|
||||
SC->ComponentDataType().c_str(),
|
||||
valSO->GetName().c_str()) );
|
||||
}
|
||||
anIter->Next();
|
||||
}
|
||||
break;
|
||||
@ -289,27 +281,27 @@ void DisplayGUI::Erase()
|
||||
{
|
||||
SALOME_ListIO listIO;
|
||||
|
||||
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
SalomeApp_Study* anActiveStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
|
||||
if ( !anActiveStudy ) return;
|
||||
|
||||
|
||||
//get SalomeApp selection manager
|
||||
LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
|
||||
if ( !aSelMgr ) return;
|
||||
|
||||
|
||||
SALOME_ListIO aList;
|
||||
aSelMgr->selectedObjects( aList );
|
||||
SALOME_ListIteratorOfListIO It( aList );
|
||||
|
||||
SUIT_OverrideCursor();
|
||||
|
||||
for( ;It.More();It.Next() ) {
|
||||
for( ; It.More(); It.Next() ) {
|
||||
Handle(SALOME_InteractiveObject) anIObject = It.Value();
|
||||
if ( anIObject->hasEntry() ) {
|
||||
_PTR(SObject) SO ( anActiveStudy->studyDS()->FindObjectID( anIObject->getEntry() ) );
|
||||
if ( SO && QString( SO->GetID().c_str() ) == QString( SO->GetFatherComponent()->GetID().c_str() ) ) {
|
||||
if ( SO && QString(SO->GetID().c_str()) == QString(SO->GetFatherComponent()->GetID().c_str()) ) {
|
||||
_PTR(SComponent) SC ( SO->GetFatherComponent() );
|
||||
// if component is selected
|
||||
listIO.Clear();
|
||||
@ -319,8 +311,10 @@ void DisplayGUI::Erase()
|
||||
_PTR(SObject) valSO ( anIter->Value() );
|
||||
_PTR(SObject) refSO;
|
||||
if ( !valSO->ReferencedObject( refSO ) ) {
|
||||
listIO.Append( new SALOME_InteractiveObject( valSO->GetID().c_str(), SC->ComponentDataType().c_str() ,valSO->GetName().c_str() ) );
|
||||
}
|
||||
listIO.Append( new SALOME_InteractiveObject(valSO->GetID().c_str(),
|
||||
SC->ComponentDataType().c_str(),
|
||||
valSO->GetName().c_str()) );
|
||||
}
|
||||
anIter->Next();
|
||||
}
|
||||
break;
|
||||
@ -334,7 +328,7 @@ void DisplayGUI::Erase()
|
||||
}
|
||||
}
|
||||
GEOM_Displayer(anActiveStudy).Erase( listIO, true );
|
||||
((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->clearSelected();
|
||||
getGeometryGUI()->getApp()->selectionMgr()->clearSelected();
|
||||
}
|
||||
|
||||
//=====================================================================================
|
||||
@ -346,7 +340,7 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
|
||||
SUIT_OverrideCursor();
|
||||
|
||||
if ( !viewWindow )
|
||||
viewWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
|
||||
viewWindow = getGeometryGUI()->getApp()->desktop()->activeWindow();
|
||||
if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
|
||||
SVTK_View* aView = ((SVTK_ViewWindow*)viewWindow)->getView();
|
||||
aView->SetDisplayMode( mode );
|
||||
@ -360,7 +354,7 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
|
||||
AIS_ListOfInteractive List1;
|
||||
ic->ObjectsInCollector( List1 );
|
||||
List.Append( List1 );
|
||||
|
||||
|
||||
AIS_ListIteratorOfListOfInteractive ite( List );
|
||||
while( ite.More() ) {
|
||||
if( ite.Value()->IsInstance( STANDARD_TYPE(GEOM_AISShape) ) ) {
|
||||
@ -369,7 +363,7 @@ void DisplayGUI::SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
|
||||
}
|
||||
ite.Next();
|
||||
}
|
||||
|
||||
|
||||
ic->SetDisplayMode( newmode, Standard_False );
|
||||
}
|
||||
}
|
||||
@ -382,7 +376,7 @@ int DisplayGUI::GetDisplayMode( SUIT_ViewWindow* viewWindow )
|
||||
{
|
||||
int dispMode = 0;
|
||||
if ( !viewWindow )
|
||||
viewWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
|
||||
viewWindow = getGeometryGUI()->getApp()->desktop()->activeWindow();
|
||||
if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
|
||||
SVTK_View* aView = ((SVTK_ViewWindow*)viewWindow)->getView();
|
||||
dispMode = aView->GetDisplayMode();
|
||||
@ -413,19 +407,19 @@ void DisplayGUI::InvertDisplayMode( SUIT_ViewWindow* viewWindow )
|
||||
//=====================================================================================
|
||||
void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow )
|
||||
{
|
||||
if ( !viewWindow )
|
||||
viewWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
|
||||
|
||||
SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
if ( !viewWindow )
|
||||
viewWindow = app->desktop()->activeWindow();
|
||||
|
||||
LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
|
||||
if ( !aSelMgr ) return;
|
||||
|
||||
|
||||
SUIT_OverrideCursor();
|
||||
|
||||
SALOME_ListIO aList;
|
||||
|
||||
|
||||
if ( viewWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) {
|
||||
SVTK_ViewWindow* vw = dynamic_cast<SVTK_ViewWindow*>( viewWindow );
|
||||
SVTK_View* aView = vw->getView();
|
||||
@ -435,7 +429,8 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow
|
||||
|
||||
for( ;It.More(); It.Next() ) {
|
||||
SVTK_Viewer* stvkViewer = dynamic_cast<SVTK_Viewer*>(vw->getViewManager()->getViewModel());
|
||||
SVTK_Prs* vtkPrs = stvkViewer ? dynamic_cast<SVTK_Prs*>( stvkViewer->CreatePrs( It.Value()->getEntry() ) ) : 0;
|
||||
SVTK_Prs* vtkPrs =
|
||||
stvkViewer ? dynamic_cast<SVTK_Prs*>( stvkViewer->CreatePrs( It.Value()->getEntry() ) ) : 0;
|
||||
if ( vtkPrs && !vtkPrs->IsNull() ) {
|
||||
if ( mode == 0 )
|
||||
aView->ChangeRepresentationToWireframe( vtkPrs->GetObjects() );
|
||||
@ -478,6 +473,6 @@ extern "C"
|
||||
GEOM_DISPLAYGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return DisplayGUI::GetDisplayGUI( parent );
|
||||
return new DisplayGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -17,14 +17,13 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : DisplayGUI.h
|
||||
// Author : Damien COQUERET
|
||||
// Module : GEOM
|
||||
// $Header$
|
||||
|
||||
#ifndef DISPLAYGUI_H
|
||||
#define DISPLAYGUI_H
|
||||
@ -33,22 +32,15 @@
|
||||
#include "GEOMBase.h"
|
||||
|
||||
#ifdef WNT
|
||||
#if defined DISPLAYGUI_EXPORTS
|
||||
#if defined WIN32
|
||||
#define GEOM_DISPLAYGUI_EXPORT __declspec( dllexport )
|
||||
#else
|
||||
#define GEOM_DISPLAYGUI_EXPORT
|
||||
#endif
|
||||
#else
|
||||
#if defined WIN32
|
||||
#define GEOM_DISPLAYGUI_EXPORT __declspec( dllimport )
|
||||
#else
|
||||
#define GEOM_DISPLAYGUI_EXPORT
|
||||
#endif
|
||||
#endif
|
||||
# if defined DISPLAYGUI_EXPORTS
|
||||
# define GEOM_DISPLAYGUI_EXPORT __declspec( dllexport )
|
||||
# else
|
||||
# define GEOM_DISPLAYGUI_EXPORT __declspec( dllimport )
|
||||
# endif
|
||||
#else
|
||||
#define GEOM_DISPLAYGUI_EXPORT
|
||||
# define GEOM_DISPLAYGUI_EXPORT
|
||||
#endif
|
||||
|
||||
//=================================================================================
|
||||
// class : GEOMBase_Display
|
||||
// purpose :
|
||||
@ -57,15 +49,10 @@
|
||||
class SUIT_ViewWindow;
|
||||
class GEOM_DISPLAYGUI_EXPORT DisplayGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
DisplayGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public :
|
||||
public:
|
||||
DisplayGUI( GeometryGUI* parent );
|
||||
~DisplayGUI();
|
||||
|
||||
// Get the only DisplayGUI object
|
||||
static DisplayGUI* GetDisplayGUI( GeometryGUI* parent );
|
||||
|
||||
// Dispatch menu command
|
||||
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
|
||||
|
||||
@ -92,9 +79,6 @@ public :
|
||||
// Set display mode for selected objects in the viewer given
|
||||
// (current viewer if <viewWindow> = 0 )
|
||||
void ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindo = 0 );
|
||||
|
||||
private:
|
||||
static DisplayGUI* myGUIObject; // the only DisplayGUI object
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -96,6 +96,8 @@ QString DlgRef_SpinBox::GetString()
|
||||
void DlgRef_SpinBox::RangeStepAndValidator(double min, double max,double step,
|
||||
unsigned short decimals)
|
||||
{
|
||||
setPrecision(-decimals); // PAL12789. Minus is for using 'g' double->string conversion specifier,
|
||||
// see QtxDblSpinBox::mapValueToText( double v )
|
||||
setRange(min, max);
|
||||
setLineStep(step);
|
||||
((QDoubleValidator*)validator())->setRange(min, max, decimals);
|
||||
|
@ -33,6 +33,10 @@
|
||||
|
||||
#include "QtxDblSpinBox.h"
|
||||
|
||||
#define COORD_MIN -1e+15
|
||||
#define COORD_MAX +1e+15
|
||||
#define MAX_NUMBER 100000
|
||||
|
||||
//=================================================================================
|
||||
// class : DlgRef_SpinBox
|
||||
// purpose : Derivated from QSpinBox class and modified to accept floats
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -37,6 +37,7 @@
|
||||
#include "OCCViewer_ViewManager.h"
|
||||
#include "SalomeApp_Study.h"
|
||||
#include "SalomeApp_Tools.h"
|
||||
#include "SalomeApp_Application.h"
|
||||
|
||||
#include <TopoDS_Compound.hxx>
|
||||
#include <BRep_Builder.hxx>
|
||||
@ -50,15 +51,6 @@
|
||||
using namespace boost;
|
||||
using namespace std;
|
||||
|
||||
//=======================================================================
|
||||
// function : GetEntityGUI()
|
||||
// purpose : Get the only EntityGUI object [ static ]
|
||||
//=======================================================================
|
||||
EntityGUI* EntityGUI::GetEntityGUI( GeometryGUI* parent )
|
||||
{
|
||||
return new EntityGUI( parent );
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// function : EntityGUI()
|
||||
// purpose : Constructor
|
||||
@ -84,6 +76,9 @@ EntityGUI::~EntityGUI()
|
||||
//=======================================================================
|
||||
bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
{
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return false;
|
||||
|
||||
getGeometryGUI()->EmitSignalDeactivateDialog();
|
||||
QDialog* aDlg = NULL;
|
||||
|
||||
@ -97,7 +92,7 @@ bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
aDlg = new EntityGUI_SubShapeDlg(getGeometryGUI(), parent, "");
|
||||
break;
|
||||
default:
|
||||
SUIT_Session::session()->activeApplication()->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
||||
app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
|
||||
break;
|
||||
}
|
||||
if ( aDlg )
|
||||
@ -113,8 +108,10 @@ bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
|
||||
//=====================================================================================
|
||||
void EntityGUI::DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shape& S2)
|
||||
{
|
||||
SUIT_ViewManager* aVM =
|
||||
SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager();
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
SUIT_ViewManager* aVM = app->desktop()->activeWindow()->getViewManager();
|
||||
if (aVM->getType() != OCCViewer_Viewer::Type())
|
||||
return;
|
||||
|
||||
@ -129,7 +126,7 @@ void EntityGUI::DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shap
|
||||
mySimulationShape1 = new AIS_Shape(TopoDS_Shape());
|
||||
mySimulationShape1->Set(S1);
|
||||
mySimulationShape1->SetColor(Quantity_NOC_RED);
|
||||
|
||||
|
||||
ic->Deactivate(mySimulationShape1);
|
||||
ic->Display(mySimulationShape1, Standard_False);
|
||||
mySimulationShape1->UnsetColor();
|
||||
@ -160,15 +157,18 @@ void EntityGUI::DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shap
|
||||
//==================================================================================
|
||||
void EntityGUI::EraseSimulationShape()
|
||||
{
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return;
|
||||
|
||||
// get all view windows at the desktop
|
||||
QPtrList<SUIT_ViewWindow> aWndLst = SUIT_Session::session()->activeApplication()->desktop()->windows();
|
||||
QPtrList<SUIT_ViewWindow> aWndLst = app->desktop()->windows();
|
||||
//get all view windows, which belong to the active study
|
||||
QPtrList<SUIT_ViewWindow> aWndLstAS;
|
||||
SUIT_ViewWindow* vw;
|
||||
for ( vw = aWndLst.first(); vw; vw = aWndLst.next() )
|
||||
if ( vw->getViewManager()->study() == SUIT_Session::session()->activeApplication()->activeStudy() )
|
||||
if ( vw->getViewManager()->study() == app->activeStudy() )
|
||||
aWndLstAS.append( vw );
|
||||
|
||||
|
||||
for ( vw = aWndLstAS.first(); vw; vw = aWndLstAS.next() ) {
|
||||
if ( vw->getViewManager()->getType() == OCCViewer_Viewer::Type() ) {
|
||||
OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(vw->getViewManager()))->getOCCViewer();
|
||||
@ -188,9 +188,11 @@ void EntityGUI::EraseSimulationShape()
|
||||
//=====================================================================================
|
||||
bool EntityGUI::SObjectExist(const _PTR(SObject)& theFatherObject, const char* IOR)
|
||||
{
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
|
||||
( SUIT_Session::session()->activeApplication()->activeStudy() );
|
||||
SalomeApp_Application* app = getGeometryGUI()->getApp();
|
||||
if ( !app ) return false;
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
|
||||
if ( !appStudy ) return false;
|
||||
|
||||
_PTR(Study) aStudy = appStudy->studyDS();
|
||||
_PTR(ChildIterator) it ( aStudy->NewChildIterator(theFatherObject) );
|
||||
_PTR(SObject) RefSO;
|
||||
@ -222,6 +224,6 @@ extern "C"
|
||||
GEOM_ENTITYGUI_EXPORT
|
||||
GEOMGUI* GetLibGUI( GeometryGUI* parent )
|
||||
{
|
||||
return EntityGUI::GetEntityGUI( parent );
|
||||
return new EntityGUI( parent );
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -43,15 +43,10 @@
|
||||
//=================================================================================
|
||||
class GEOM_ENTITYGUI_EXPORT EntityGUI : public GEOMGUI
|
||||
{
|
||||
protected:
|
||||
EntityGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
|
||||
public :
|
||||
EntityGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation
|
||||
~EntityGUI();
|
||||
|
||||
// Get the only EntityGUI object
|
||||
static EntityGUI* GetEntityGUI( GeometryGUI* parent );
|
||||
|
||||
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
|
||||
|
||||
void DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shape& S2);
|
||||
|
@ -1,30 +1,30 @@
|
||||
// GEOM GEOMGUI : GUI for Geometry component
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//
|
||||
//
|
||||
// File : EntityGUI_SketcherDlg.cxx
|
||||
// Author : Damien COQUERET
|
||||
// Module : GEOM
|
||||
// $Header:
|
||||
// $Header$
|
||||
|
||||
#include "EntityGUI_SketcherDlg.h"
|
||||
#include "Sketcher_Profile.hxx"
|
||||
@ -58,7 +58,7 @@ using namespace std;
|
||||
|
||||
//=================================================================================
|
||||
// class : EntityGUI_SketcherDlg()
|
||||
// purpose : Constructs a EntityGUI_SketcherDlg which is a child of 'parent', with the
|
||||
// purpose : Constructs a EntityGUI_SketcherDlg which is a child of 'parent', with the
|
||||
// name 'name' and widget flags set to 'f'.
|
||||
// The dialog will by default be modeless, unless you set 'modal' to
|
||||
// TRUE to construct a modal dialog.
|
||||
@ -80,7 +80,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent,
|
||||
buttonClose->setText(tr("GEOM_BUT_CLOSE_SKETCH"));
|
||||
buttonHelp->setText(tr("GEOM_BUT_HELP"));
|
||||
|
||||
GroupVal->close(TRUE);
|
||||
GroupVal->close(TRUE);
|
||||
GroupDest2->close(TRUE);
|
||||
GroupDest3->close(TRUE);
|
||||
|
||||
@ -132,24 +132,42 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent,
|
||||
Group1Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY"));
|
||||
Group1Spin->buttonUndo->setPixmap(image1);
|
||||
Group1Spin->buttonRedo->setPixmap(image2);
|
||||
QWidget::setTabOrder(Group1Spin->SpinBox_DX , Group1Spin->buttonApply);
|
||||
QWidget::setTabOrder(Group1Spin->buttonApply, Group1Spin->buttonUndo);
|
||||
QWidget::setTabOrder(Group1Spin->buttonUndo , Group1Spin->buttonRedo);
|
||||
|
||||
Group2Spin = new EntityGUI_2Spin(this, "Group2Spin");
|
||||
Group2Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES"));
|
||||
Group2Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY"));
|
||||
Group2Spin->buttonUndo->setPixmap(image1);
|
||||
Group2Spin->buttonRedo->setPixmap(image2);
|
||||
QWidget::setTabOrder(Group2Spin->SpinBox_DX , Group2Spin->SpinBox_DY);
|
||||
QWidget::setTabOrder(Group2Spin->SpinBox_DY , Group2Spin->buttonApply);
|
||||
QWidget::setTabOrder(Group2Spin->buttonApply, Group2Spin->buttonUndo);
|
||||
QWidget::setTabOrder(Group2Spin->buttonUndo , Group2Spin->buttonRedo);
|
||||
|
||||
Group3Spin = new EntityGUI_3Spin(this, "Group3Spin");
|
||||
Group3Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES"));
|
||||
Group3Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY"));
|
||||
Group3Spin->buttonUndo->setPixmap(image1);
|
||||
Group3Spin->buttonRedo->setPixmap(image2);
|
||||
QWidget::setTabOrder(Group3Spin->SpinBox_DX , Group3Spin->SpinBox_DY);
|
||||
QWidget::setTabOrder(Group3Spin->SpinBox_DY , Group3Spin->SpinBox_DZ);
|
||||
QWidget::setTabOrder(Group3Spin->SpinBox_DZ , Group3Spin->buttonApply);
|
||||
QWidget::setTabOrder(Group3Spin->buttonApply, Group3Spin->buttonUndo);
|
||||
QWidget::setTabOrder(Group3Spin->buttonUndo , Group3Spin->buttonRedo);
|
||||
|
||||
Group4Spin = new EntityGUI_4Spin(this, "Group4Spin");
|
||||
Group4Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES"));
|
||||
Group4Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY"));
|
||||
Group4Spin->buttonUndo->setPixmap(image1);
|
||||
Group4Spin->buttonRedo->setPixmap(image2);
|
||||
QWidget::setTabOrder(Group4Spin->SpinBox_DX , Group4Spin->SpinBox_DY);
|
||||
QWidget::setTabOrder(Group4Spin->SpinBox_DY , Group4Spin->SpinBox_DZ);
|
||||
QWidget::setTabOrder(Group4Spin->SpinBox_DZ , Group4Spin->SpinBox_DS);
|
||||
QWidget::setTabOrder(Group4Spin->SpinBox_DS , Group4Spin->buttonApply);
|
||||
QWidget::setTabOrder(Group4Spin->buttonApply, Group4Spin->buttonUndo);
|
||||
QWidget::setTabOrder(Group4Spin->buttonUndo , Group4Spin->buttonRedo);
|
||||
|
||||
Layout5->addMultiCellWidget(GroupPt, 1, 1, 0, 1);
|
||||
Layout5->addWidget(GroupD1, 1, 0);
|
||||
@ -217,7 +235,19 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent,
|
||||
|
||||
connect(myGeometryGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
|
||||
connect(myGeometryGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
|
||||
|
||||
|
||||
// install event filter on spin-boxes to provide Apply action on Return pressed
|
||||
Group1Spin->SpinBox_DX->installEventFilter(this);
|
||||
Group2Spin->SpinBox_DX->installEventFilter(this);
|
||||
Group2Spin->SpinBox_DY->installEventFilter(this);
|
||||
Group3Spin->SpinBox_DX->installEventFilter(this);
|
||||
Group3Spin->SpinBox_DY->installEventFilter(this);
|
||||
Group3Spin->SpinBox_DZ->installEventFilter(this);
|
||||
Group4Spin->SpinBox_DX->installEventFilter(this);
|
||||
Group4Spin->SpinBox_DY->installEventFilter(this);
|
||||
Group4Spin->SpinBox_DZ->installEventFilter(this);
|
||||
Group4Spin->SpinBox_DS->installEventFilter(this);
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
@ -228,7 +258,42 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent,
|
||||
//=================================================================================
|
||||
EntityGUI_SketcherDlg::~EntityGUI_SketcherDlg()
|
||||
{
|
||||
myGeometryGUI->SetActiveDialogBox( 0 );
|
||||
myGeometryGUI->SetActiveDialogBox( 0 );
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================
|
||||
// function : eventFilter()
|
||||
// purpose : event filter for spin-boxes to provide Apply action on Return pressed
|
||||
//=================================================================================
|
||||
bool EntityGUI_SketcherDlg::eventFilter (QObject* object, QEvent* event)
|
||||
{
|
||||
if (event->type() == QEvent::KeyPress) {
|
||||
QKeyEvent* ke = (QKeyEvent*)event;
|
||||
if (ke->key() == Key_Return) {
|
||||
if (object == Group1Spin->SpinBox_DX) {
|
||||
Group1Spin->buttonApply->animateClick();
|
||||
return true;
|
||||
} else if (object == Group2Spin->SpinBox_DX ||
|
||||
object == Group2Spin->SpinBox_DY) {
|
||||
Group2Spin->buttonApply->animateClick();
|
||||
return true;
|
||||
} else if (object == Group3Spin->SpinBox_DX ||
|
||||
object == Group3Spin->SpinBox_DY ||
|
||||
object == Group3Spin->SpinBox_DZ) {
|
||||
Group3Spin->buttonApply->animateClick();
|
||||
return true;
|
||||
} else if (object == Group4Spin->SpinBox_DX ||
|
||||
object == Group4Spin->SpinBox_DY ||
|
||||
object == Group4Spin->SpinBox_DZ ||
|
||||
object == Group4Spin->SpinBox_DS) {
|
||||
Group4Spin->buttonApply->animateClick();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return EntityGUI_Skeleton_QTD::eventFilter(object, event);
|
||||
}
|
||||
|
||||
|
||||
@ -257,16 +322,16 @@ void EntityGUI_SketcherDlg::Init()
|
||||
double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 );
|
||||
|
||||
/* min, max, step and decimals for spin boxes */
|
||||
Group1Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group4Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 0.1, 3);
|
||||
Group4Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 0.1, 3);
|
||||
Group4Spin->SpinBox_DZ->RangeStepAndValidator(-999999.999, 999999.999, step, 3);
|
||||
Group4Spin->SpinBox_DS->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group1Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group4Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, 3);
|
||||
Group4Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, 3);
|
||||
Group4Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group4Spin->SpinBox_DS->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
|
||||
/* displays Dialog */
|
||||
GroupConstructors->setEnabled(false);
|
||||
@ -289,7 +354,7 @@ void EntityGUI_SketcherDlg::Init()
|
||||
//=================================================================================
|
||||
void EntityGUI_SketcherDlg::InitClick()
|
||||
{
|
||||
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
|
||||
disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0);
|
||||
|
||||
Group1Sel->hide();
|
||||
Group1Spin->hide();
|
||||
@ -359,13 +424,16 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId)
|
||||
{
|
||||
InitClick();
|
||||
|
||||
// Get setting of step value from file configuration
|
||||
double step = SUIT_Session::session()->resourceMgr()->doubleValue("Geometry", "SettingsGeomStep", 100.0);
|
||||
|
||||
if ( myConstructorId == 0 )
|
||||
{ // SEGMENT
|
||||
if ( constructorId == 1 )
|
||||
{ // XY
|
||||
mySketchType = PT_ABS;
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_X2"));
|
||||
Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_Y2"));
|
||||
myX = 0.0;
|
||||
@ -380,8 +448,8 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId)
|
||||
else if ( constructorId == 0 )
|
||||
{ // DXDY
|
||||
mySketchType = PT_RELATIVE;
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_DX2"));
|
||||
Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_DY2"));
|
||||
myDX = 0.0;
|
||||
@ -397,8 +465,8 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId)
|
||||
{ // Selection
|
||||
mySketchType = PT_SEL;
|
||||
myEditCurrentArgument = Group1Sel->LineEdit1;
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
|
||||
connect(myGeometryGUI->getApp()->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
Group1Sel->show();
|
||||
Group1Sel->buttonApply->setFocus();
|
||||
SelectionIntoArgument();
|
||||
@ -428,6 +496,9 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
InitClick();
|
||||
myAngle = 0.0;
|
||||
|
||||
// Get setting of step value from file configuration
|
||||
double step = SUIT_Session::session()->resourceMgr()->doubleValue("Geometry", "SettingsGeomStep", 100.0);
|
||||
|
||||
if ( myConstructorId == 0 )
|
||||
{ // SEGMENT
|
||||
myX = 0.0;
|
||||
@ -435,8 +506,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
myLength = 100.0;
|
||||
if ( myConstructorDirId == 2 )
|
||||
{ // Angle
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_ANGLE2"));
|
||||
Group2Spin->SpinBox_DX->SetValue(myAngle);
|
||||
Group2Spin->buttonApply->setFocus();
|
||||
@ -460,7 +531,7 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_Y3"));
|
||||
Group2Spin->SpinBox_DY->SetValue(myY);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( myConstructorDirId == 0 )
|
||||
{ // Perpendicular
|
||||
Group1Spin->show();
|
||||
@ -511,9 +582,9 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
}
|
||||
else if ( myConstructorDirId == 3 )
|
||||
{ // DXDY
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 0.1, 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 0.1, 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group3Spin->TextLabel1->setText(tr("GEOM_SKETCHER_VX2"));
|
||||
Group3Spin->TextLabel2->setText(tr("GEOM_SKETCHER_VY2"));
|
||||
myDX = 0.0;
|
||||
@ -550,9 +621,9 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
if ( constructorId == 2 )
|
||||
{ // Length
|
||||
mySketchType = DIR_ANGLE_LENGTH;
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
Group3Spin->TextLabel1->setText(tr("GEOM_SKETCHER_ANGLE2"));
|
||||
Group3Spin->TextLabel2->setText(tr("GEOM_SKETCHER_RADIUS2"));
|
||||
Group3Spin->TextLabel3->setText(tr("GEOM_SKETCHER_ANGLE2"));
|
||||
@ -570,8 +641,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
if ( constructorId == 2 )
|
||||
{ // Length
|
||||
mySketchType = DIR_PER_LENGTH;
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_RADIUS2"));
|
||||
Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_ANGLE2"));
|
||||
myRadius = 100.0;
|
||||
@ -587,8 +658,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
if ( constructorId == 2 )
|
||||
{ // Length
|
||||
mySketchType = DIR_TAN_LENGTH;
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 100., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(-999999.999, 999999.999, 5., 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
|
||||
Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., 3);
|
||||
Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_RADIUS2"));
|
||||
Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_ANGLE2"));
|
||||
myRadius = 100.0;
|
||||
@ -651,7 +722,7 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
|
||||
tr( "GEOM_ERROR_STATUS" ), tr( "CANNOT_CLOSE" ), tr( "BUT_OK" ) );
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
QString Command = myCommand.join( "" ) + GetNewCommand();
|
||||
Sketcher_Profile aProfile (Command.ascii());
|
||||
|
||||
@ -660,11 +731,11 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
|
||||
TopoDS_Shape myShape;
|
||||
if ( aProfile.IsDone() )
|
||||
myShape = aProfile.GetShape();
|
||||
|
||||
|
||||
if(myShape.ShapeType() != TopAbs_VERTEX)
|
||||
myCommand.append( ":WW" );
|
||||
}
|
||||
else
|
||||
else
|
||||
myIsAllAdded = true;
|
||||
|
||||
if( myCommand.size() > 2 )
|
||||
@ -680,7 +751,7 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
|
||||
//=================================================================================
|
||||
bool EntityGUI_SketcherDlg::ClickOnApply()
|
||||
{
|
||||
((QPushButton*)sender())->setFocus();
|
||||
((QPushButton*)sender())->setFocus(); // to update value of currently edited spin-box (PAL11948)
|
||||
|
||||
myCommand.append( GetNewCommand() );
|
||||
mySketchState = NEXT_POINT;
|
||||
@ -695,6 +766,24 @@ bool EntityGUI_SketcherDlg::ClickOnApply()
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
|
||||
// Set focus to SpinBox_DX
|
||||
if (sender() == Group1Spin->buttonApply) {
|
||||
(Group1Spin->SpinBox_DX)->setFocus();
|
||||
(Group1Spin->SpinBox_DX)->selectAll();
|
||||
}
|
||||
else if (sender() == Group2Spin->buttonApply) {
|
||||
(Group2Spin->SpinBox_DX)->setFocus();
|
||||
(Group2Spin->SpinBox_DX)->selectAll();
|
||||
}
|
||||
else if (sender() == Group3Spin->buttonApply) {
|
||||
(Group3Spin->SpinBox_DX)->setFocus();
|
||||
(Group3Spin->SpinBox_DX)->selectAll();
|
||||
}
|
||||
else if (sender() == Group4Spin->buttonApply) {
|
||||
(Group4Spin->SpinBox_DX)->setFocus();
|
||||
(Group4Spin->SpinBox_DX)->selectAll();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -705,7 +794,7 @@ bool EntityGUI_SketcherDlg::ClickOnApply()
|
||||
void EntityGUI_SketcherDlg::ClickOnHelp()
|
||||
{
|
||||
LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
|
||||
if (app)
|
||||
if (app)
|
||||
app->onHelpContextModule(myGeometryGUI ? app->moduleName(myGeometryGUI->moduleName()) : QString(""), myHelpFileName);
|
||||
else {
|
||||
QString platform;
|
||||
@ -733,7 +822,7 @@ void EntityGUI_SketcherDlg::ClickOnUndo()
|
||||
|
||||
if(myCommand.count() == 1) {
|
||||
mySketchState = FIRST_POINT;
|
||||
|
||||
|
||||
RadioButton1->setChecked(true);
|
||||
TypeClicked(0);
|
||||
|
||||
@ -879,7 +968,7 @@ void EntityGUI_SketcherDlg::DeactivateActiveDialog()
|
||||
|
||||
setEnabled( false );
|
||||
globalSelection();
|
||||
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
|
||||
disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0);
|
||||
myGeometryGUI->SetActiveDialogBox(0);
|
||||
}
|
||||
|
||||
@ -894,8 +983,8 @@ void EntityGUI_SketcherDlg::ActivateThisDialog()
|
||||
setEnabled(true);
|
||||
myGeometryGUI->SetActiveDialogBox((QDialog*)this);
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
|
||||
connect(myGeometryGUI->getApp()->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
//myGeometryGUI->SetState( 0 );
|
||||
globalSelection( GEOM_POINT );
|
||||
@ -925,7 +1014,7 @@ void EntityGUI_SketcherDlg::enterEvent(QEvent* e)
|
||||
void EntityGUI_SketcherDlg::closeEvent(QCloseEvent* e)
|
||||
{
|
||||
//myGeometryGUI->SetState( -1 );
|
||||
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
|
||||
disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0);
|
||||
QDialog::closeEvent( e );
|
||||
}
|
||||
|
||||
@ -1272,28 +1361,29 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects )
|
||||
}
|
||||
|
||||
QString cmd;
|
||||
if( ( mySketchState != FIRST_POINT && myLastX1 == myLastX2 && myLastY1 == myLastY2 ) || myIsAllAdded ) {
|
||||
if( ( mySketchState != FIRST_POINT &&
|
||||
myLastX1 == myLastX2 && myLastY1 == myLastY2 ) || myIsAllAdded ) {
|
||||
cmd = myCommand.join( "" );
|
||||
|
||||
if ( Group1Sel->isVisible() ) {
|
||||
Group1Sel->buttonApply->setEnabled(false);
|
||||
Group1Sel->buttonApply->setFocus();
|
||||
//Group1Sel->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group1Spin->isVisible() ) {
|
||||
Group1Spin->buttonApply->setEnabled(false);
|
||||
Group1Spin->buttonApply->setFocus();
|
||||
//Group1Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group2Spin->isVisible() ) {
|
||||
Group2Spin->buttonApply->setEnabled(false);
|
||||
Group2Spin->buttonApply->setFocus();
|
||||
//Group2Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group3Spin->isVisible() ) {
|
||||
Group3Spin->buttonApply->setEnabled(false);
|
||||
Group3Spin->buttonApply->setFocus();
|
||||
//Group3Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group4Spin->isVisible() ) {
|
||||
Group4Spin->buttonApply->setEnabled(false);
|
||||
Group4Spin->buttonApply->setFocus();
|
||||
//Group4Spin->buttonApply->setFocus();
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -1301,26 +1391,26 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects )
|
||||
|
||||
if ( Group1Sel->isVisible() ) {
|
||||
Group1Sel->buttonApply->setEnabled(true);
|
||||
Group1Sel->buttonApply->setFocus();
|
||||
//Group1Sel->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group1Spin->isVisible() ) {
|
||||
Group1Spin->buttonApply->setEnabled(true);
|
||||
Group1Spin->buttonApply->setFocus();
|
||||
//Group1Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group2Spin->isVisible() ) {
|
||||
Group2Spin->buttonApply->setEnabled(true);
|
||||
Group2Spin->buttonApply->setFocus();
|
||||
//Group2Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group3Spin->isVisible() ) {
|
||||
Group3Spin->buttonApply->setEnabled(true);
|
||||
Group3Spin->buttonApply->setFocus();
|
||||
//Group3Spin->buttonApply->setFocus();
|
||||
}
|
||||
if ( Group4Spin->isVisible() ) {
|
||||
Group4Spin->buttonApply->setEnabled(true);
|
||||
Group4Spin->buttonApply->setFocus();
|
||||
//Group4Spin->buttonApply->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
gp_Ax3 myWPlane = myGeometryGUI->GetWorkingPlane();
|
||||
GEOM::ListOfDouble_var WPlane = new GEOM::ListOfDouble;
|
||||
WPlane->length(9);
|
||||
@ -1336,7 +1426,8 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects )
|
||||
WPlane[7] = myWPlane.XDirection().Y();
|
||||
WPlane[8] = myWPlane.XDirection().Z();
|
||||
|
||||
GEOM::GEOM_Object_var anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeSketcher( cmd.latin1(), WPlane );
|
||||
GEOM::GEOM_Object_var anObj =
|
||||
GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeSketcher( cmd.latin1(), WPlane );
|
||||
|
||||
if ( !anObj->_is_nil() )
|
||||
objects.push_back( anObj._retn() );
|
||||
@ -1433,9 +1524,19 @@ bool EntityGUI_SketcherDlg::createShapes( GEOM::GEOM_Object_ptr theObject,
|
||||
return true;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : keyPressEvent()
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
void EntityGUI_SketcherDlg::keyPressEvent( QKeyEvent* e )
|
||||
{
|
||||
QDialog::keyPressEvent( e );
|
||||
if ( e->isAccepted() )
|
||||
return;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if ( e->key() == Key_F1 )
|
||||
{
|
||||
e->accept();
|
||||
ClickOnHelp();
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +1,23 @@
|
||||
// GEOM GEOMGUI : GUI for Geometry component
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -68,6 +68,8 @@ public:
|
||||
const char* name = 0, bool modal = FALSE, WFlags fl = 0);
|
||||
~EntityGUI_SketcherDlg();
|
||||
|
||||
bool eventFilter (QObject* object, QEvent* event);
|
||||
|
||||
protected:
|
||||
// redefined from GEOMBase_Helper
|
||||
virtual GEOM::GEOM_IOperations_ptr createOperation();
|
||||
@ -75,6 +77,7 @@ protected:
|
||||
virtual bool execute( ObjectList& objects );
|
||||
|
||||
void closeEvent( QCloseEvent* e );
|
||||
void keyPressEvent( QKeyEvent* e );
|
||||
|
||||
private :
|
||||
void Init();
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||||
|
||||
static GEOM_Engine* TheEngine = NULL;
|
||||
@ -214,6 +215,9 @@ Handle(GEOM_Object) GEOM_Engine::AddSubShape(Handle(GEOM_Object) theMainShape,
|
||||
aSSI.SetIndices(theIndices);
|
||||
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
GEOM_Solver aSolver (GEOM_Engine::GetEngine());
|
||||
if (!aSolver.ComputeFunction(aFunction)) {
|
||||
MESSAGE("GEOM_Engine::AddSubShape Error: Can't build a sub shape");
|
||||
|
@ -54,6 +54,7 @@
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <TCollection_ExtendedString.hxx>
|
||||
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||||
|
||||
#define ARGUMENT_LABEL 1
|
||||
@ -165,7 +166,10 @@ TopoDS_Shape GEOM_Function::GetValue()
|
||||
if(anObject.IsNull()) return aShape;
|
||||
if(!anObject->IsMainShape()) {
|
||||
try {
|
||||
GEOM_Solver aSolver(GEOM_Engine::GetEngine());
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
GEOM_Solver aSolver(GEOM_Engine::GetEngine());
|
||||
if (!aSolver.ComputeFunction(this)) {
|
||||
MESSAGE("GEOM_Object::GetValue Error : Can't build a sub shape");
|
||||
return aShape;
|
||||
|
@ -104,9 +104,13 @@ namespace GEOM
|
||||
|
||||
TPythonDump& TPythonDump::operator<< (const Handle(GEOM_Object)& theObject)
|
||||
{
|
||||
TCollection_AsciiString anEntry;
|
||||
TDF_Tool::Entry(theObject->GetEntry(), anEntry);
|
||||
myStream << anEntry.ToCString();
|
||||
if (theObject.IsNull()) {
|
||||
myStream << "None";
|
||||
} else {
|
||||
TCollection_AsciiString anEntry;
|
||||
TDF_Tool::Entry(theObject->GetEntry(), anEntry);
|
||||
myStream << anEntry.ToCString();
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
@ -249,3 +249,20 @@ void GEOMBase_Skeleton::setHelpFileName(const QString& theName)
|
||||
{
|
||||
myHelpFileName = theName;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : keyPressEvent()
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
void GEOMBase_Skeleton::keyPressEvent( QKeyEvent* e )
|
||||
{
|
||||
QDialog::keyPressEvent( e );
|
||||
if ( e->isAccepted() )
|
||||
return;
|
||||
|
||||
if ( e->key() == Key_F1 )
|
||||
{
|
||||
e->accept();
|
||||
ClickOnHelp();
|
||||
}
|
||||
}
|
||||
|
@ -58,6 +58,7 @@ private:
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent* e);
|
||||
void keyPressEvent(QKeyEvent* e);
|
||||
|
||||
/*! initialize "Name" field with a string "thePrefix_X" (Vertex_3)
|
||||
*/
|
||||
|
@ -58,6 +58,7 @@ LIB_CLIENT_IDL = SALOME_Exception.idl \
|
||||
SALOMEDS.idl \
|
||||
SALOMEDS_Attributes.idl \
|
||||
SALOME_GenericObj.idl \
|
||||
SALOME_Component.idl \
|
||||
GEOM_Gen.idl
|
||||
|
||||
LIB_SERVER_IDL =
|
||||
|
@ -337,6 +337,10 @@ msgstr "supresshole.png"
|
||||
msgid "ICON_DLG_SUPRESS_HOLE_FACE_SHELL"
|
||||
msgstr "supressHolesOnFaceShell.png"
|
||||
|
||||
#ChangeOrientationDlg
|
||||
msgid "ICON_DLG_CHANGE_ORIENTATION"
|
||||
msgstr "change_orientation.png"
|
||||
|
||||
#MultiTranslationDlg
|
||||
msgid "ICON_DLG_MULTITRANSLATION_SIMPLE"
|
||||
msgstr "multitranslationsimple.png"
|
||||
|
@ -992,6 +992,10 @@ msgstr "Prism Construction"
|
||||
msgid "GEOM_PRISM_BSV"
|
||||
msgstr "Base Shape + Vector"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:83
|
||||
msgid "GEOM_PRISM_BSV_2P"
|
||||
msgstr "Base Shape + 2 Points"
|
||||
|
||||
#: GeometryGUI_PropertiesDlg.cxx:56
|
||||
msgid "GEOM_PROPERTIES_TITLE"
|
||||
msgstr "Basic Properties Informations"
|
||||
|
@ -994,6 +994,10 @@ msgstr "Extruder une Shape de base"
|
||||
msgid "GEOM_PRISM_BSV"
|
||||
msgstr "Shape de base + Vecteur"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:83
|
||||
msgid "GEOM_PRISM_BSV_2P"
|
||||
msgstr "Shape de base + 2 Points"
|
||||
|
||||
#: GeometryGUI_PropertiesDlg.cxx:56
|
||||
msgid "GEOM_PROPERTIES_TITLE"
|
||||
msgstr "Proprietes Basiques"
|
||||
|
@ -39,6 +39,9 @@
|
||||
#include <SelectMgr_IndexedMapOfOwner.hxx>
|
||||
#include <NCollection_DataMap.hxx>
|
||||
|
||||
#include <SUIT_Session.h>
|
||||
#include <SalomeApp_Study.h>
|
||||
|
||||
|
||||
//================================================================
|
||||
// Function : GEOMGUI_OCCSelector
|
||||
@ -209,7 +212,10 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
|
||||
const LightApp_DataOwner* owner = dynamic_cast<const LightApp_DataOwner*>( (*itr).operator->() );
|
||||
if ( owner )
|
||||
{
|
||||
globalSelMap[owner->entry()] = 1;
|
||||
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
|
||||
QString anEntry = appStudy->referencedToEntry( owner->entry() );
|
||||
|
||||
globalSelMap[anEntry] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -69,6 +69,7 @@
|
||||
// OCCT Includes
|
||||
#include <AIS_Drawer.hxx>
|
||||
#include <AIS_ListIteratorOfListOfInteractive.hxx>
|
||||
#include <Prs3d_IsoAspect.hxx>
|
||||
#include <Prs3d_PointAspect.hxx>
|
||||
#include <Graphic3d_AspectMarker3d.hxx>
|
||||
#include <StdSelect_TypeOfEdge.hxx>
|
||||
@ -520,6 +521,19 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
|
||||
AISShape->SetDisplayMode( myDisplayMode );
|
||||
AISShape->SetShadingColor( myShadingColor );
|
||||
|
||||
// Set color for iso lines
|
||||
SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
|
||||
QColor col = aResMgr->colorValue( "Geometry", "isos_color", QColor(int(0.5*255), int(0.5*255), int(0.5*255)) );
|
||||
Quantity_Color aColor = SalomeApp_Tools::color( col );
|
||||
|
||||
Handle(Prs3d_IsoAspect) anAspect = AISShape->Attributes()->UIsoAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetUIsoAspect( anAspect );
|
||||
|
||||
anAspect = AISShape->Attributes()->VIsoAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetVIsoAspect( anAspect );
|
||||
|
||||
if ( HasColor() )
|
||||
{
|
||||
AISShape->SetColor( (Quantity_NameOfColor)GetColor() );
|
||||
@ -530,6 +544,49 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
|
||||
AISShape->Attributes()->SetPointAspect( anAspect );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( myShape.ShapeType() == TopAbs_VERTEX )
|
||||
{
|
||||
col = aResMgr->colorValue( "Geometry", "point_color", QColor( 255, 255, 0 ) );
|
||||
aColor = SalomeApp_Tools::color( col );
|
||||
|
||||
Handle(Prs3d_PointAspect) anAspect = AISShape->Attributes()->PointAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetPointAspect( anAspect );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set line aspect
|
||||
col = aResMgr->colorValue( "Geometry", "wireframe_color", QColor( 255, 255, 0 ) );
|
||||
aColor = SalomeApp_Tools::color( col );
|
||||
|
||||
Handle(Prs3d_LineAspect) anAspect = AISShape->Attributes()->LineAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetLineAspect( anAspect );
|
||||
|
||||
// Set unfree boundaries aspect
|
||||
anAspect = AISShape->Attributes()->UnFreeBoundaryAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetUnFreeBoundaryAspect( anAspect );
|
||||
|
||||
// Set free boundaries aspect
|
||||
col = aResMgr->colorValue( "Geometry", "free_bound_color", QColor( 0, 255, 0 ) );
|
||||
aColor = SalomeApp_Tools::color( col );
|
||||
|
||||
anAspect = AISShape->Attributes()->FreeBoundaryAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetFreeBoundaryAspect( anAspect );
|
||||
|
||||
// Set wire aspect
|
||||
col = aResMgr->colorValue( "Geometry", "line_color", QColor( 255, 0, 0 ) );
|
||||
aColor = SalomeApp_Tools::color( col );
|
||||
|
||||
anAspect = AISShape->Attributes()->WireAspect();
|
||||
anAspect->SetColor( aColor );
|
||||
AISShape->Attributes()->SetWireAspect( anAspect );
|
||||
}
|
||||
}
|
||||
|
||||
if ( HasWidth() )
|
||||
AISShape->SetWidth( GetWidth() );
|
||||
|
@ -307,6 +307,10 @@ msgstr "pointonedge.png"
|
||||
msgid "ICON_DLG_SEWING"
|
||||
msgstr "sewing.png"
|
||||
|
||||
#ChangeOrientationDlg
|
||||
msgid "ICON_DLG_CHANGE_ORIENTATION"
|
||||
msgstr "change_orientation.png"
|
||||
|
||||
#PipeDlg
|
||||
msgid "ICON_DLG_PIPE"
|
||||
msgstr "pipe.png"
|
||||
@ -315,6 +319,9 @@ msgstr "pipe.png"
|
||||
msgid "ICON_DLG_PRISM"
|
||||
msgstr "prism.png"
|
||||
|
||||
msgid "ICON_DLG_PRISM_2P"
|
||||
msgstr "prism2.png"
|
||||
|
||||
#RevolutionDlg
|
||||
msgid "ICON_DLG_REVOL"
|
||||
msgstr "revol.png"
|
||||
@ -698,6 +705,9 @@ msgstr "free_bound.png"
|
||||
msgid "ICO_CHECK_FREE_FACES"
|
||||
msgstr "free_faces.png"
|
||||
|
||||
msgid "ICO_CHANGE_ORIENTATION"
|
||||
msgstr "change_orientation.png"
|
||||
|
||||
msgid "ICO_POINT_COORDS"
|
||||
msgstr "point_coord.png"
|
||||
|
||||
|
@ -522,8 +522,8 @@ msgid "GEOM_MIRROR"
|
||||
msgstr "Mirror"
|
||||
|
||||
#Prism
|
||||
msgid "GEOM_PRISM"
|
||||
msgstr "Prism"
|
||||
msgid "GEOM_EXTRUSION"
|
||||
msgstr "Extrusion"
|
||||
|
||||
#Sub Shapes
|
||||
msgid "GEOM_SUB_SHAPE"
|
||||
@ -651,6 +651,10 @@ msgstr "Face"
|
||||
msgid "GEOM_FACES"
|
||||
msgstr "Faces"
|
||||
|
||||
#Face or LCS
|
||||
msgid "GEOM_FACE_OR_LCS"
|
||||
msgstr "Face or LCS"
|
||||
|
||||
#Line
|
||||
msgid "GEOM_LINE"
|
||||
msgstr "Line"
|
||||
@ -899,7 +903,7 @@ msgstr "Create A Face"
|
||||
|
||||
#: GeometryGUI_FaceDlg.cxx:78
|
||||
msgid "GEOM_FACE_FFW"
|
||||
msgstr "Face from a wire"
|
||||
msgstr "Face from a closed wire and edge"
|
||||
|
||||
#: GeometryGUI_FaceDlg.cxx:103
|
||||
msgid "GEOM_FACE_OPT"
|
||||
@ -907,7 +911,7 @@ msgstr "Try to create a planar face"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:53
|
||||
msgid "GEOM_FILLING_TITLE"
|
||||
msgstr "Filling Surface With Curves"
|
||||
msgstr "Filling Surface With Edges"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:112
|
||||
msgid "GEOM_FILLING_ARG"
|
||||
@ -927,7 +931,7 @@ msgstr "Tol. 2D :"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:170
|
||||
msgid "GEOM_FILLING_COMPOUND"
|
||||
msgstr "Curves Comp."
|
||||
msgstr "Edges compound"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:184
|
||||
msgid "GEOM_FILLING_TOL_3D"
|
||||
@ -1052,13 +1056,16 @@ msgid "GEOM_PLANE_PV"
|
||||
msgstr "Point + Vector"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:54
|
||||
msgid "GEOM_PRISM_TITLE"
|
||||
msgstr "Prism Construction"
|
||||
msgid "GEOM_EXTRUSION_TITLE"
|
||||
msgstr "Construction by Extrusion"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:83
|
||||
msgid "GEOM_PRISM_BSV"
|
||||
msgid "GEOM_EXTRUSION_BSV"
|
||||
msgstr "Base Shape + Vector"
|
||||
|
||||
msgid "GEOM_EXTRUSION_BSV_2P"
|
||||
msgstr "Base Shape + 2 Points"
|
||||
|
||||
#: GeometryGUI_PropertiesDlg.cxx:56
|
||||
msgid "GEOM_PROPERTIES_TITLE"
|
||||
msgstr "Basic Properties Informations"
|
||||
@ -1226,7 +1233,7 @@ msgstr "Working Plane Selection"
|
||||
|
||||
#: GeometryGUI_WorkingPlaneDlg.cxx:107
|
||||
msgid "GEOM_WPLANE_FACE"
|
||||
msgstr "Plane Or Planar Face"
|
||||
msgstr "Plane, Planar Face or LCS"
|
||||
|
||||
#: GeometryGUI_WorkingPlaneDlg.cxx:107
|
||||
msgid "GEOM_WPLANE_VECTOR"
|
||||
@ -1639,6 +1646,12 @@ msgstr "Free boundaries"
|
||||
msgid "GEOM_FREE_FACES"
|
||||
msgstr "Free faces"
|
||||
|
||||
msgid "GEOM_CHANGE_ORIENTATION_TITLE"
|
||||
msgstr "Change orientation"
|
||||
|
||||
msgid "GEOM_CHANGE_ORIENTATION"
|
||||
msgstr "Objects to change orientation"
|
||||
|
||||
msgid "GEOM_BY_PARAMETER"
|
||||
msgstr "By parameter"
|
||||
|
||||
@ -1711,6 +1724,9 @@ msgstr "Point Coordinates"
|
||||
msgid "MeasureGUI_PointDlg::COORDINATES"
|
||||
msgstr "Point and its coordinates"
|
||||
|
||||
msgid "MeasureGUI_1Sel1TextView1Check_QTD::CHECK_SHAPE_GEOMETRY"
|
||||
msgstr "Check also geometry"
|
||||
|
||||
msgid "GroupGUI_GroupDlg::CREATE_GROUP_TITLE"
|
||||
msgstr "Create Group"
|
||||
|
||||
@ -1982,6 +1998,9 @@ msgstr "ProcessShape"
|
||||
msgid "SUPRESS_FACE_NEW_OBJ_NAME"
|
||||
msgstr "SupressFaces"
|
||||
|
||||
msgid "CHANGE_ORIENTATION_NEW_OBJ_NAME"
|
||||
msgstr "Invert"
|
||||
|
||||
msgid "NON_GEOM_OBJECTS_SELECTED"
|
||||
msgstr "There are objects selected which do not belong to %1 component."
|
||||
|
||||
@ -2200,13 +2219,13 @@ msgid "STB_FILLING"
|
||||
msgstr "Create a filling"
|
||||
|
||||
msgid "TOP_PIPE"
|
||||
msgstr "Create a pipe"
|
||||
msgstr "Extrusion along a path"
|
||||
|
||||
msgid "MEN_PIPE"
|
||||
msgstr "Pipe"
|
||||
msgstr "Extrusion along a path"
|
||||
|
||||
msgid "STB_PIPE"
|
||||
msgstr "Create a pipe"
|
||||
msgstr "Create a shape by Extrusion along a path"
|
||||
|
||||
msgid "MEN_GROUP"
|
||||
msgstr "Group"
|
||||
@ -2607,6 +2626,15 @@ msgstr "Check free faces"
|
||||
msgid "STB_CHECK_FREE_FACES"
|
||||
msgstr "Check free faces"
|
||||
|
||||
msgid "TOP_CHANGE_ORIENTATION"
|
||||
msgstr "Change orientation"
|
||||
|
||||
msgid "MEN_CHANGE_ORIENTATION"
|
||||
msgstr "Change orientation"
|
||||
|
||||
msgid "STB_CHANGE_ORIENTATION"
|
||||
msgstr "Change orientation"
|
||||
|
||||
msgid "MEN_MEASURES"
|
||||
msgstr "Measures"
|
||||
|
||||
@ -2907,6 +2935,21 @@ msgstr "General"
|
||||
msgid "PREF_SHADING_COLOR"
|
||||
msgstr "Default shading color"
|
||||
|
||||
msgid "PREF_WIREFRAME_COLOR"
|
||||
msgstr "Default wireframe color"
|
||||
|
||||
msgid "PREF_FREE_BOUND_COLOR"
|
||||
msgstr "Color of free boundaries"
|
||||
|
||||
msgid "PREF_LINE_COLOR"
|
||||
msgstr "Color of edges, vectors, wires"
|
||||
|
||||
msgid "PREF_POINT_COLOR"
|
||||
msgstr "Color of points"
|
||||
|
||||
msgid "PREF_ISOS_COLOR"
|
||||
msgstr "Color of isolines"
|
||||
|
||||
msgid "PREF_STEP_VALUE"
|
||||
msgstr "Step value for spin boxes"
|
||||
|
||||
@ -2915,3 +2958,9 @@ msgstr "Default display mode"
|
||||
|
||||
msgid "PREF_TAB_SETTINGS"
|
||||
msgstr "Settings"
|
||||
|
||||
msgid "ERROR_SHAPE_TYPE"
|
||||
msgstr "Object of incorrect type selected!\nPlease, select face, shell or solid and try again"
|
||||
|
||||
msgid "DEP_OBJECT"
|
||||
msgstr "Selected object has been used to create another one\n It can't be deleted "
|
||||
|
@ -481,7 +481,7 @@ msgstr "Distance"
|
||||
|
||||
#Filling
|
||||
msgid "GEOM_FILLING"
|
||||
msgstr "Surface Par Courbes"
|
||||
msgstr "Surface Par Edges"
|
||||
|
||||
#Fuse
|
||||
msgid "GEOM_FUSE"
|
||||
@ -512,7 +512,7 @@ msgid "GEOM_MIRROR"
|
||||
msgstr "Miroir"
|
||||
|
||||
#Prism
|
||||
msgid "GEOM_PRISM"
|
||||
msgid "GEOM_EXTRUSION"
|
||||
msgstr "Extrusion"
|
||||
|
||||
#Sub Shapes
|
||||
@ -891,7 +891,7 @@ msgstr "Création d'une Face plane"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:53
|
||||
msgid "GEOM_FILLING_TITLE"
|
||||
msgstr "Surface Par Courbes"
|
||||
msgstr "Surface Par Edges"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:112
|
||||
msgid "GEOM_FILLING_ARG"
|
||||
@ -911,7 +911,7 @@ msgstr "Tol. 2D"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:170
|
||||
msgid "GEOM_FILLING_COMPOUND"
|
||||
msgstr "Compound de Courbes"
|
||||
msgstr "Compound de Edges"
|
||||
|
||||
#: GeometryGUI_FillingDlg.cxx:184
|
||||
msgid "GEOM_FILLING_TOL_3D"
|
||||
@ -1036,13 +1036,16 @@ msgid "GEOM_PLANE_PV"
|
||||
msgstr "Point + Vecteur"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:54
|
||||
msgid "GEOM_PRISM_TITLE"
|
||||
msgid "GEOM_EXTRUSION_TITLE"
|
||||
msgstr "Extruder une Shape de base"
|
||||
|
||||
#: GeometryGUI_PrismDlg.cxx:83
|
||||
msgid "GEOM_PRISM_BSV"
|
||||
msgid "GEOM_EXTRUSION_BSV"
|
||||
msgstr "Shape de base + Vecteur"
|
||||
|
||||
msgid "GEOM_EXTRUSION_BSV_2P"
|
||||
msgstr "Shape de base + 2 Points"
|
||||
|
||||
#: GeometryGUI_PropertiesDlg.cxx:56
|
||||
msgid "GEOM_PROPERTIES_TITLE"
|
||||
msgstr "Proprietes Basiques"
|
||||
|
@ -17,7 +17,7 @@
|
||||
// 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
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -96,7 +96,7 @@ bool GeometryGUI::InitGeomGen()
|
||||
|
||||
//=======================================================================
|
||||
// function : ClientSObjectToObject
|
||||
// purpose :
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
CORBA::Object_var GeometryGUI::ClientSObjectToObject (_PTR(SObject) theSObject)
|
||||
{
|
||||
@ -116,7 +116,7 @@ CORBA::Object_var GeometryGUI::ClientSObjectToObject (_PTR(SObject) theSObject)
|
||||
|
||||
//=======================================================================
|
||||
// function : ClientStudyToStudy
|
||||
// purpose :
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
SALOMEDS::Study_var GeometryGUI::ClientStudyToStudy (_PTR(Study) theStudy)
|
||||
{
|
||||
@ -171,12 +171,12 @@ GeometryGUI::GeometryGUI() :
|
||||
SalomeApp_Module( "GEOM" )
|
||||
{
|
||||
if ( CORBA::is_nil( myComponentGeom ) )
|
||||
{
|
||||
{
|
||||
SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA( getApp()->namingService() );
|
||||
Engines::Component_var comp = ls->FindOrLoad_Component( "FactoryServer", "GEOM" );
|
||||
myComponentGeom = GEOM::GEOM_Gen::_narrow( comp );
|
||||
}
|
||||
|
||||
|
||||
myState = -1;
|
||||
myActiveDialogBox = 0;
|
||||
myFatherior = "";
|
||||
@ -350,7 +350,7 @@ void GeometryGUI::OnGUIEvent( int id )
|
||||
bool ViewVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() );
|
||||
// if current viewframe is not of OCC and not of VTK type - return immediately
|
||||
// fix for IPAL8958 - allow some commands to execute even when NO viewer is active (rename for example)
|
||||
bool NotViewerDependentCommand = ( id == 901 || id == 216 || id == 213 );
|
||||
bool NotViewerDependentCommand = ( id == 901 || id == 216 || id == 213 );
|
||||
if ( !ViewOCC && !ViewVTK && !NotViewerDependentCommand )
|
||||
return;
|
||||
|
||||
@ -486,7 +486,7 @@ void GeometryGUI::OnGUIEvent( int id )
|
||||
else if( id == 503 || // MENU OPERATION - PARTITION
|
||||
id == 504 || // MENU OPERATION - ARCHIMEDE
|
||||
id == 505 || // MENU OPERATION - FILLET
|
||||
id == 506 || // MENU OPERATION - CHAMFER
|
||||
id == 506 || // MENU OPERATION - CHAMFER
|
||||
id == 507 ) { // MENU OPERATION - CLIPPING RANGE
|
||||
#ifndef WNT
|
||||
library = getLibrary( "libOperationGUI.so" );
|
||||
@ -503,6 +503,7 @@ void GeometryGUI::OnGUIEvent( int id )
|
||||
id == 608 || // MENU REPAIR - ADD POINT ON EDGE
|
||||
id == 609 || // MENU REPAIR - FREE BOUNDARIES
|
||||
id == 610 || // MENU REPAIR - FREE FACES
|
||||
id == 611 || // MENU REPAIR - CHANGE ORIENTATION
|
||||
id == 602 ) { // MENU REPAIR - GLUE FACES
|
||||
#ifndef WNT
|
||||
library = getLibrary( "libRepairGUI.so" );
|
||||
@ -548,9 +549,9 @@ void GeometryGUI::OnGUIEvent( int id )
|
||||
}
|
||||
|
||||
// call method of corresponding GUI library
|
||||
if ( library )
|
||||
if ( library )
|
||||
library->OnGUIEvent( id, desk );
|
||||
else
|
||||
else
|
||||
SUIT_MessageBox::error1( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) );
|
||||
}
|
||||
|
||||
@ -577,7 +578,7 @@ void GeometryGUI::OnKeyPress( SUIT_ViewWindow* win, QKeyEvent* pe )
|
||||
// purpose : Manages mouse move events [static]
|
||||
//=================================================================================
|
||||
void GeometryGUI::OnMouseMove( SUIT_ViewWindow* win, QMouseEvent* pe )
|
||||
{
|
||||
{
|
||||
GUIMap::Iterator it;
|
||||
bool bOk = true;
|
||||
for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) {
|
||||
@ -636,7 +637,7 @@ bool GeometryGUI::SetSettings()
|
||||
{
|
||||
QMenuBar* Mb = parent->getMainMenuBar();
|
||||
SUIT_Study* ActiveStudy = application()->activeStudy();
|
||||
|
||||
|
||||
// Wireframe or Shading
|
||||
int DisplayMode = 0;
|
||||
SUIT_ViewWindow* window = application()->desktop()->activeWindow();
|
||||
@ -670,16 +671,16 @@ bool GeometryGUI::SetSettings()
|
||||
// if(!AddInStudy.isEmpty())
|
||||
// Settings_AddInStudy = AddInStudy.toInt();
|
||||
// else
|
||||
|
||||
|
||||
Settings_AddInStudy = 1;
|
||||
Mb->setItemChecked(411, Settings_AddInStudy);
|
||||
|
||||
// step value
|
||||
// step value
|
||||
QString S = QAD_CONFIG->getSetting("Geometry:SettingsGeomStep");
|
||||
if(S.isEmpty())
|
||||
QAD_CONFIG->addSetting("Geometry:SettingsGeomStep", "100");
|
||||
|
||||
// isos
|
||||
// isos
|
||||
int count = ActiveStudy->getStudyFramesCount();
|
||||
for(int i = 0; i < count; i++) {
|
||||
if(ActiveStudy->getStudyFrame(i)->getTypeView() == VIEW_OCC) {
|
||||
@ -703,22 +704,22 @@ bool GeometryGUI::SetSettings()
|
||||
GUIMap::Iterator it;
|
||||
for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it )
|
||||
bOk = bOk && it.data()->SetSettings( parent );
|
||||
|
||||
// MZN: Enable/disable "Clipping range" menu item(from GEOM_CLIPPING variable)
|
||||
|
||||
// MZN: Enable/disable "Clipping range" menu item(from GEOM_CLIPPING variable)
|
||||
if (getenv( "GEOM_CLIPPING" ) == NULL)
|
||||
{
|
||||
QMenuItem* mi = Mb->findItem(50);
|
||||
if (mi && mi->popup())
|
||||
mi->popup()->removeItem(507);
|
||||
}
|
||||
|
||||
mi->popup()->removeItem(507);
|
||||
}
|
||||
|
||||
return bOk;
|
||||
}
|
||||
*/
|
||||
|
||||
//=======================================================================
|
||||
// function : createGeomAction
|
||||
// purpose :
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
void GeometryGUI::createGeomAction( const int id, const QString& po_id, const QString& icon_id, const int key, const bool toggle )
|
||||
{
|
||||
@ -726,7 +727,7 @@ void GeometryGUI::createGeomAction( const int id, const QString& po_id, const QS
|
||||
QWidget* parent = application()->desktop();
|
||||
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
|
||||
QPixmap pix;
|
||||
if ( icon_id.length() )
|
||||
if ( icon_id.length() )
|
||||
pix = resMgr->loadPixmap( "GEOM", tr( icon_id ) );
|
||||
else
|
||||
pix = resMgr->loadPixmap( "GEOM", tr( QString( "ICO_" )+po_id ), false );
|
||||
@ -829,7 +830,8 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
createGeomAction( 608, "POINT_ON_EDGE" );
|
||||
createGeomAction( 609, "CHECK_FREE_BNDS" );
|
||||
createGeomAction( 610, "CHECK_FREE_FACES" );
|
||||
|
||||
createGeomAction( 611, "CHANGE_ORIENTATION" );
|
||||
|
||||
createGeomAction( 708, "POINT_COORDS" );
|
||||
createGeomAction( 701, "BASIC_PROPS" );
|
||||
createGeomAction( 702, "MASS_CENTER" );
|
||||
@ -843,7 +845,7 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
createGeomAction( 7072, "CHECK_COMPOUND" );
|
||||
|
||||
createGeomAction( 5103, "CHECK_GEOMETRY" );
|
||||
|
||||
|
||||
createGeomAction( 412, "SHADING_COLOR" );
|
||||
createGeomAction( 413, "ISOS" );
|
||||
createGeomAction( 414, "STEP_VALUE" );
|
||||
@ -894,124 +896,125 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
createMenu( 4020, basicId, -1 );
|
||||
|
||||
int primId = createMenu( tr( "MEN_PRIMITIVES" ), newEntId, -1 );
|
||||
createMenu( 4021, primId, -1 );
|
||||
createMenu( 4022, primId, -1 );
|
||||
createMenu( 4023, primId, -1 );
|
||||
createMenu( 4024, primId, -1 );
|
||||
createMenu( 4025, primId, -1 );
|
||||
createMenu( 4021, primId, -1 );
|
||||
createMenu( 4022, primId, -1 );
|
||||
createMenu( 4023, primId, -1 );
|
||||
createMenu( 4024, primId, -1 );
|
||||
createMenu( 4025, primId, -1 );
|
||||
|
||||
int genId = createMenu( tr( "MEN_GENERATION" ), newEntId, -1 );
|
||||
createMenu( 4031, genId, -1 );
|
||||
createMenu( 4032, genId, -1 );
|
||||
createMenu( 4033, genId, -1 );
|
||||
createMenu( 4034, genId, -1 );
|
||||
createMenu( 4031, genId, -1 );
|
||||
createMenu( 4032, genId, -1 );
|
||||
createMenu( 4033, genId, -1 );
|
||||
createMenu( 4034, genId, -1 );
|
||||
createMenu( separator(), newEntId, -1 );
|
||||
|
||||
int groupId = createMenu( tr( "MEN_GROUP" ), newEntId, -1 );
|
||||
createMenu( 800, groupId, -1 );
|
||||
createMenu( 801, groupId, -1 );
|
||||
createMenu( 800, groupId, -1 );
|
||||
createMenu( 801, groupId, -1 );
|
||||
createMenu( separator(), newEntId, -1 );
|
||||
|
||||
int blocksId = createMenu( tr( "MEN_BLOCKS" ), newEntId, -1 );
|
||||
createMenu( 9997, blocksId, -1 );
|
||||
createMenu( 9999, blocksId, -1 );
|
||||
createMenu( 9997, blocksId, -1 );
|
||||
createMenu( 9999, blocksId, -1 );
|
||||
|
||||
createMenu( separator(), newEntId, -1 );
|
||||
createMenu( 404, newEntId, -1 );
|
||||
createMenu( 404, newEntId, -1 );
|
||||
createMenu( separator(), newEntId, -1 );
|
||||
createMenu( 407, newEntId, -1 );
|
||||
createMenu( 407, newEntId, -1 );
|
||||
|
||||
int buildId = createMenu( tr( "MEN_BUILD" ), newEntId, -1 );
|
||||
createMenu( 4081, buildId, -1 );
|
||||
createMenu( 4082, buildId, -1 );
|
||||
createMenu( 4083, buildId, -1 );
|
||||
createMenu( 4084, buildId, -1 );
|
||||
createMenu( 4085, buildId, -1 );
|
||||
createMenu( 4086, buildId, -1 );
|
||||
createMenu( 4081, buildId, -1 );
|
||||
createMenu( 4082, buildId, -1 );
|
||||
createMenu( 4083, buildId, -1 );
|
||||
createMenu( 4084, buildId, -1 );
|
||||
createMenu( 4085, buildId, -1 );
|
||||
createMenu( 4086, buildId, -1 );
|
||||
|
||||
int operId = createMenu( tr( "MEN_OPERATIONS" ), -1, -1, 10 );
|
||||
|
||||
int boolId = createMenu( tr( "MEN_BOOLEAN" ), operId, -1 );
|
||||
createMenu( 5011, boolId, -1 );
|
||||
createMenu( 5012, boolId, -1 );
|
||||
createMenu( 5013, boolId, -1 );
|
||||
createMenu( 5014, boolId, -1 );
|
||||
createMenu( 5011, boolId, -1 );
|
||||
createMenu( 5012, boolId, -1 );
|
||||
createMenu( 5013, boolId, -1 );
|
||||
createMenu( 5014, boolId, -1 );
|
||||
|
||||
int transId = createMenu( tr( "MEN_TRANSFORMATION" ), operId, -1 );
|
||||
createMenu( 5021, transId, -1 );
|
||||
createMenu( 5022, transId, -1 );
|
||||
createMenu( 5023, transId, -1 );
|
||||
createMenu( 5024, transId, -1 );
|
||||
createMenu( 5025, transId, -1 );
|
||||
createMenu( 5026, transId, -1 );
|
||||
createMenu( 5021, transId, -1 );
|
||||
createMenu( 5022, transId, -1 );
|
||||
createMenu( 5023, transId, -1 );
|
||||
createMenu( 5024, transId, -1 );
|
||||
createMenu( 5025, transId, -1 );
|
||||
createMenu( 5026, transId, -1 );
|
||||
createMenu( separator(), transId, -1 );
|
||||
createMenu( 5027, transId, -1 );
|
||||
createMenu( 5028, transId, -1 );
|
||||
createMenu( 5027, transId, -1 );
|
||||
createMenu( 5028, transId, -1 );
|
||||
|
||||
createMenu( 503, operId, -1 );
|
||||
createMenu( 504, operId, -1 );
|
||||
createMenu( 503, operId, -1 );
|
||||
createMenu( 504, operId, -1 );
|
||||
createMenu( separator(), operId, -1 );
|
||||
createMenu( 505, transId, -1 );
|
||||
createMenu( 506, transId, -1 );
|
||||
//createMenu( 507, transId, -1 );
|
||||
createMenu( 505, transId, -1 );
|
||||
createMenu( 506, transId, -1 );
|
||||
//createMenu( 507, transId, -1 );
|
||||
|
||||
int blockId = createMenu( tr( "MEN_BLOCKS" ), operId, -1 );
|
||||
createMenu( 9998, blockId, -1 );
|
||||
createMenu( 9995, blockId, -1 );
|
||||
createMenu( 99991, blockId, -1 );
|
||||
createMenu( 9998, blockId, -1 );
|
||||
createMenu( 9995, blockId, -1 );
|
||||
createMenu( 99991, blockId, -1 );
|
||||
|
||||
int repairId = createMenu( tr( "MEN_REPAIR" ), -1, -1, 10 );
|
||||
createMenu( 605, repairId, -1 );
|
||||
createMenu( 603, repairId, -1 );
|
||||
createMenu( 606, repairId, -1 );
|
||||
createMenu( 607, repairId, -1 );
|
||||
createMenu( 604, repairId, -1 );
|
||||
createMenu( 601, repairId, -1 );
|
||||
createMenu( 602, repairId, -1 );
|
||||
createMenu( 608, repairId, -1 );
|
||||
createMenu( 609, repairId, -1 );
|
||||
createMenu( 610, repairId, -1 );
|
||||
createMenu( 605, repairId, -1 );
|
||||
createMenu( 603, repairId, -1 );
|
||||
createMenu( 606, repairId, -1 );
|
||||
createMenu( 607, repairId, -1 );
|
||||
createMenu( 604, repairId, -1 );
|
||||
createMenu( 601, repairId, -1 );
|
||||
createMenu( 602, repairId, -1 );
|
||||
createMenu( 608, repairId, -1 );
|
||||
createMenu( 609, repairId, -1 );
|
||||
createMenu( 610, repairId, -1 );
|
||||
createMenu( 611, repairId, -1 );
|
||||
|
||||
int measurId = createMenu( tr( "MEN_MEASURES" ), -1, -1, 10 );
|
||||
createMenu( 708, measurId, -1 );
|
||||
createMenu( 701, measurId, -1 );
|
||||
createMenu( 708, measurId, -1 );
|
||||
createMenu( 701, measurId, -1 );
|
||||
createMenu( separator(), measurId, -1 );
|
||||
createMenu( 702, measurId, -1 );
|
||||
createMenu( 703, measurId, -1 );
|
||||
createMenu( 702, measurId, -1 );
|
||||
createMenu( 703, measurId, -1 );
|
||||
createMenu( separator(), measurId, -1 );
|
||||
|
||||
int dimId = createMenu( tr( "MEN_DIMENSIONS" ), measurId, -1 );
|
||||
createMenu( 7041, dimId, -1 );
|
||||
createMenu( 7041, dimId, -1 );
|
||||
createMenu( 7042, dimId, -1 );
|
||||
createMenu( separator(), measurId, -1 );
|
||||
|
||||
createMenu( 705, measurId, -1 );
|
||||
|
||||
createMenu( 705, measurId, -1 );
|
||||
createMenu( separator(), measurId, -1 );
|
||||
createMenu( 706, measurId, -1 );
|
||||
createMenu( 707, measurId, -1 );
|
||||
createMenu( 7072, measurId, -1 );
|
||||
createMenu( 706, measurId, -1 );
|
||||
createMenu( 707, measurId, -1 );
|
||||
createMenu( 7072, measurId, -1 );
|
||||
|
||||
int toolsId = createMenu( tr( "MEN_TOOLS" ), -1, -1, 50 );
|
||||
createMenu( separator(), toolsId, -1 );
|
||||
createMenu( 5103, toolsId, -1 );
|
||||
|
||||
createMenu( 5103, toolsId, -1 );
|
||||
|
||||
//int prefId = createMenu( tr( "MEN_PREFERENCES" ), -1, -1, 50 );
|
||||
//createMenu( separator(), prefId, -1 );
|
||||
//int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 );
|
||||
//createMenu( 412, geomId, -1 );
|
||||
//createMenu( 413, geomId, -1 );
|
||||
//createMenu( 414, geomId, -1 );
|
||||
//createMenu( 412, geomId, -1 );
|
||||
//createMenu( 413, geomId, -1 );
|
||||
//createMenu( 414, geomId, -1 );
|
||||
//createMenu( separator(), prefId, -1 );
|
||||
|
||||
int viewId = createMenu( tr( "MEN_VIEW" ), -1, -1 );
|
||||
createMenu( separator(), viewId, -1 );
|
||||
|
||||
int dispmodeId = createMenu( tr( "MEN_DISPLAY_MODE" ), viewId, -1 );
|
||||
createMenu( 211, dispmodeId, -1 );
|
||||
|
||||
createMenu( 211, dispmodeId, -1 );
|
||||
|
||||
createMenu( separator(), viewId, -1 );
|
||||
createMenu( 212, viewId, -1 );
|
||||
createMenu( 214, viewId, -1 );
|
||||
createMenu( 212, viewId, -1 );
|
||||
createMenu( 214, viewId, -1 );
|
||||
createMenu( separator(), viewId, -1 );
|
||||
|
||||
/*
|
||||
@ -1019,8 +1022,8 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
because of these items are accessible through object browser and viewers
|
||||
we have removed they from main menu
|
||||
|
||||
createMenu( 216, viewId, -1 );
|
||||
createMenu( 213, viewId, -1 );
|
||||
createMenu( 216, viewId, -1 );
|
||||
createMenu( 213, viewId, -1 );
|
||||
createMenu( 215, viewId, -1 );
|
||||
*/
|
||||
|
||||
@ -1039,59 +1042,63 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
createTool( 4020, basicTbId );
|
||||
|
||||
int primTbId = createTool( tr( "TOOL_PRIMITIVES" ) );
|
||||
createTool( 4021, primTbId );
|
||||
createTool( 4022, primTbId );
|
||||
createTool( 4023, primTbId );
|
||||
createTool( 4024, primTbId );
|
||||
createTool( 4025, primTbId );
|
||||
createTool( 4021, primTbId );
|
||||
createTool( 4022, primTbId );
|
||||
createTool( 4023, primTbId );
|
||||
createTool( 4024, primTbId );
|
||||
createTool( 4025, primTbId );
|
||||
|
||||
int boolTbId = createTool( tr( "TOOL_BOOLEAN" ) );
|
||||
createTool( 5011, boolTbId );
|
||||
createTool( 5012, boolTbId );
|
||||
createTool( 5013, boolTbId );
|
||||
createTool( 5014, boolTbId );
|
||||
createTool( 5011, boolTbId );
|
||||
createTool( 5012, boolTbId );
|
||||
createTool( 5013, boolTbId );
|
||||
createTool( 5014, boolTbId );
|
||||
|
||||
int genTbId = createTool( tr( "TOOL_GENERATION" ) );
|
||||
createTool( 4031, genTbId );
|
||||
createTool( 4032, genTbId );
|
||||
createTool( 4033, genTbId );
|
||||
createTool( 4034, genTbId );
|
||||
createTool( 4031, genTbId );
|
||||
createTool( 4032, genTbId );
|
||||
createTool( 4033, genTbId );
|
||||
createTool( 4034, genTbId );
|
||||
|
||||
int transTbId = createTool( tr( "TOOL_TRANSFORMATION" ) );
|
||||
createTool( 5021, transTbId );
|
||||
createTool( 5022, transTbId );
|
||||
createTool( 5023, transTbId );
|
||||
createTool( 5024, transTbId );
|
||||
createTool( 5025, transTbId );
|
||||
createTool( 5026, transTbId );
|
||||
createTool( 5021, transTbId );
|
||||
createTool( 5022, transTbId );
|
||||
createTool( 5023, transTbId );
|
||||
createTool( 5024, transTbId );
|
||||
createTool( 5025, transTbId );
|
||||
createTool( 5026, transTbId );
|
||||
createTool( separator(), transTbId );
|
||||
createTool( 5027, transTbId );
|
||||
createTool( 5027, transTbId );
|
||||
createTool( 5028, transTbId );
|
||||
|
||||
// ---- create popup menus --------------------------
|
||||
|
||||
QString clientOCCorVTK = "(client='OCCViewer' or client='VTKViewer')";
|
||||
QString clientOCCorVTK_AndSomeVisible = clientOCCorVTK + " and selcount>0 and isVisible";
|
||||
|
||||
QtxPopupMgr* mgr = popupMgr();
|
||||
mgr->insert( action( 901 ), -1, -1 ); // rename
|
||||
mgr->insert( action( 901 ), -1, -1 ); // rename
|
||||
mgr->setRule( action( 901 ), "$type in {'Shape' 'Group'} and selcount=1", true );
|
||||
mgr->insert( action( 8001 ), -1, -1 ); // create group
|
||||
mgr->setRule( action( 8001 ), "client='ObjectBrowser' and type='Shape' and selcount=1 and isOCC=true", true );
|
||||
mgr->insert( action( 801 ), -1, -1 ); // edit group
|
||||
mgr->insert( action( 801 ), -1, -1 ); // edit group
|
||||
mgr->setRule( action( 801 ), "client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true", true );
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
dispmodeId = mgr->insert( tr( "MEN_DISPLAY_MODE" ), -1, -1 ); // display mode menu
|
||||
mgr->insert( action( 80311 ), dispmodeId, -1 ); // wireframe
|
||||
mgr->setRule( action( 80311 ), "(client='OCCViewer' or client='VTKViewer') and selcount>0 and isVisible", true );
|
||||
mgr->setRule( action( 80311 ), "(client='OCCViewer' or client='VTKViewer') and displaymode='Wireframe'", false );
|
||||
mgr->setRule( action( 80311 ), clientOCCorVTK_AndSomeVisible, true );
|
||||
mgr->setRule( action( 80311 ), clientOCCorVTK + " and displaymode='Wireframe'", false );
|
||||
mgr->insert( action( 80312 ), dispmodeId, -1 ); // shading
|
||||
mgr->setRule( action( 80312 ), "(client='OCCViewer' or client='VTKViewer') and selcount>0 and isVisible", true );
|
||||
mgr->setRule( action( 80312 ), "(client='OCCViewer' or client='VTKViewer') and displaymode='Shading'", false );
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
mgr->setRule( action( 80312 ), clientOCCorVTK_AndSomeVisible, true );
|
||||
mgr->setRule( action( 80312 ), clientOCCorVTK + " and displaymode='Shading'", false );
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
mgr->insert( action( 8032 ), -1, -1 ); // color
|
||||
mgr->setRule( action( 8032 ), "(client='OCCViewer' or client='VTKViewer') and selcount>0 and isVisible", true );
|
||||
mgr->setRule( action( 8032 ), clientOCCorVTK_AndSomeVisible + " and ($component={'GEOM'})", true );
|
||||
mgr->insert( action( 8033 ), -1, -1 ); // transparency
|
||||
mgr->setRule( action( 8033 ), "(client='OCCViewer' or client='VTKViewer') and selcount>0 and isVisible", true );
|
||||
mgr->setRule( action( 8033 ), clientOCCorVTK_AndSomeVisible, true );
|
||||
mgr->insert( action( 8034 ), -1, -1 ); // isos
|
||||
mgr->setRule( action( 8034 ), "client='OCCViewer' and selcount>0 and isVisible", true );
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
|
||||
mgr->insert( separator(), -1, -1 ); // -----------
|
||||
|
||||
|
||||
QString canDisplay = "($component={'GEOM'}) and (selcount>0) and ({true} in $canBeDisplayed) ",
|
||||
@ -1106,7 +1113,7 @@ void GeometryGUI::initialize( CAM_Application* app )
|
||||
mgr->setRule( action( 215 ), rule.arg( types ).arg( "isVisible" ), true );
|
||||
|
||||
mgr->insert( action( 214 ), -1, -1 ); // erase All
|
||||
mgr->setRule( action( 214 ), "client='OCCViewer' or client='VTKViewer'", true );
|
||||
mgr->setRule( action( 214 ), clientOCCorVTK, true );
|
||||
|
||||
mgr->insert( action( 213 ), -1, -1 ); // display only
|
||||
mgr->setRule( action( 213 ), rule.arg( types ).arg( "true" ), true );
|
||||
@ -1178,14 +1185,20 @@ bool GeometryGUI::deactivateModule( SUIT_Study* study )
|
||||
setMenuShown( false );
|
||||
setToolShown( false );
|
||||
|
||||
disconnect( application()->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ),
|
||||
disconnect( application()->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ),
|
||||
this, SLOT( onWindowActivated( SUIT_ViewWindow* ) ) );
|
||||
|
||||
EmitSignalCloseAllDialogs();
|
||||
|
||||
GUIMap::Iterator it;
|
||||
for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it )
|
||||
it.data()->deactivate();
|
||||
it.data()->deactivate();
|
||||
|
||||
// Unset actions accelerator keys
|
||||
//action(111)->setAccel(QKeySequence()); // Import
|
||||
//action(121)->setAccel(QKeySequence()); // Export
|
||||
action(111)->setEnabled(false); // Import
|
||||
action(121)->setEnabled(false); // Export
|
||||
|
||||
// Unset actions accelerator keys
|
||||
//action(111)->setAccel(QKeySequence()); // Import
|
||||
@ -1279,7 +1292,7 @@ bool GeometryGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QStr
|
||||
if( nbSel == 0 ) {
|
||||
////// NOTHING SELECTED
|
||||
popup->clear();
|
||||
}
|
||||
}
|
||||
else if ( nbSel == 1 ) {
|
||||
////// SINGLE OBJECT SELECTION
|
||||
if ( parentComponent != parent->getActiveComponent() ) {
|
||||
@ -1506,7 +1519,7 @@ bool GeometryGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QStr
|
||||
|
||||
//=======================================================================
|
||||
// function : GeometryGUI::BuildPresentation()
|
||||
// purpose :
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
void GeometryGUI::BuildPresentation( const Handle(SALOME_InteractiveObject)& io, SUIT_ViewWindow* win )
|
||||
{
|
||||
@ -1524,7 +1537,7 @@ void GeometryGUI::onWindowActivated( SUIT_ViewWindow* win )
|
||||
|
||||
const bool ViewOCC = ( win->getViewManager()->getType() == OCCViewer_Viewer::Type() );
|
||||
// const bool ViewVTK = ( win->getViewManager()->getType() == SVTK_Viewer::Type() );
|
||||
|
||||
|
||||
// disable non-OCC viewframe menu commands
|
||||
// action( 404 )->setEnabled( ViewOCC ); // SKETCHER
|
||||
action( 603 )->setEnabled( ViewOCC ); // SuppressFace
|
||||
@ -1645,34 +1658,60 @@ void GeometryGUI::createPreferences()
|
||||
int tabId = addPreference( tr( "PREF_TAB_SETTINGS" ) );
|
||||
|
||||
int genGroup = addPreference( tr( "PREF_GROUP_GENERAL" ), tabId );
|
||||
addPreference( tr( "PREF_SHADING_COLOR" ), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "shading_color" );
|
||||
int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
|
||||
LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
|
||||
setPreferenceProperty( genGroup, "columns", 1 );
|
||||
|
||||
int dispmode = addPreference( tr( "PREF_DISPLAY_MODE" ), genGroup,
|
||||
LightApp_Preferences::Selector, "Geometry", "display_mode" );
|
||||
|
||||
setPreferenceProperty( genGroup, "columns", 1 );
|
||||
addPreference( tr( "PREF_SHADING_COLOR" ), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "shading_color" );
|
||||
|
||||
setPreferenceProperty( step, "min", 0.001 );
|
||||
setPreferenceProperty( step, "max", 10000 );
|
||||
setPreferenceProperty( step, "precision", 3 );
|
||||
addPreference( tr( "PREF_WIREFRAME_COLOR" ), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "wireframe_color" );
|
||||
|
||||
addPreference( tr( "PREF_FREE_BOUND_COLOR" ), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "free_bound_color" );
|
||||
|
||||
addPreference( tr( "PREF_LINE_COLOR"), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "line_color" );
|
||||
|
||||
addPreference( tr( "PREF_POINT_COLOR"), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "point_color" );
|
||||
|
||||
addPreference( tr( "PREF_ISOS_COLOR" ), genGroup,
|
||||
LightApp_Preferences::Color, "Geometry", "isos_color" );
|
||||
|
||||
int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
|
||||
LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
|
||||
|
||||
// Set property for default display mode
|
||||
QStringList aModesList;
|
||||
aModesList.append( tr("MEN_WIREFRAME") );
|
||||
aModesList.append( tr("MEN_SHADING") );
|
||||
|
||||
|
||||
QValueList<QVariant> anIndexesList;
|
||||
anIndexesList.append(0);
|
||||
anIndexesList.append(1);
|
||||
|
||||
|
||||
setPreferenceProperty( dispmode, "strings", aModesList );
|
||||
setPreferenceProperty( dispmode, "indexes", anIndexesList );
|
||||
|
||||
// Set property for step value for spinboxes
|
||||
setPreferenceProperty( step, "min", 0.001 );
|
||||
setPreferenceProperty( step, "max", 10000 );
|
||||
setPreferenceProperty( step, "precision", 3 );
|
||||
|
||||
}
|
||||
|
||||
void GeometryGUI::preferencesChanged( const QString& section, const QString& param )
|
||||
{
|
||||
if (section == "Geometry") {
|
||||
SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr();
|
||||
if (param == QString("SettingsGeomStep")) {
|
||||
double spin_step = aResourceMgr->doubleValue(section, param, 100.);
|
||||
EmitSignalDefaultStepValueChanged(spin_step);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LightApp_Displayer* GeometryGUI::displayer()
|
||||
|
@ -110,14 +110,16 @@ GEOM_Swig::~GEOM_Swig()
|
||||
// MESSAGE("Destructeur");
|
||||
}
|
||||
|
||||
void GEOM_Swig::createAndDisplayGO (const char* Entry)
|
||||
void GEOM_Swig::createAndDisplayGO (const char* Entry, bool isUpdated)
|
||||
{
|
||||
class TEvent: public SALOME_Event
|
||||
{
|
||||
std::string myEntry;
|
||||
bool myUpdateViewer;
|
||||
public:
|
||||
TEvent(const char* theEntry):
|
||||
myEntry(theEntry)
|
||||
TEvent(const char* theEntry, bool toUpdateViewer):
|
||||
myEntry(theEntry),
|
||||
myUpdateViewer(toUpdateViewer)
|
||||
{}
|
||||
virtual void Execute()
|
||||
{
|
||||
@ -179,7 +181,7 @@ void GEOM_Swig::createAndDisplayGO (const char* Entry)
|
||||
"GEOM",
|
||||
const_cast<char*>( obj->GetID().c_str()));
|
||||
|
||||
GEOM_Displayer(ActiveStudy).Display(anIO, true);
|
||||
GEOM_Displayer(ActiveStudy).Display(anIO, myUpdateViewer);
|
||||
/*if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(app)) {
|
||||
SVTK_View* aView = aViewWindow->getView();
|
||||
int aMode = aView->GetDisplayMode();
|
||||
@ -217,7 +219,7 @@ void GEOM_Swig::createAndDisplayGO (const char* Entry)
|
||||
};
|
||||
|
||||
// MESSAGE("createAndDisplayGO");
|
||||
ProcessVoidEvent(new TEvent (Entry));
|
||||
ProcessVoidEvent(new TEvent (Entry, isUpdated));
|
||||
|
||||
class TEventUpdateBrowser: public SALOME_Event
|
||||
{
|
||||
@ -234,7 +236,8 @@ void GEOM_Swig::createAndDisplayGO (const char* Entry)
|
||||
}
|
||||
};
|
||||
|
||||
ProcessVoidEvent(new TEventUpdateBrowser ());
|
||||
if (isUpdated)
|
||||
ProcessVoidEvent(new TEventUpdateBrowser ());
|
||||
}
|
||||
|
||||
void GEOM_Swig::createAndDisplayFitAllGO (const char* Entry)
|
||||
@ -267,6 +270,25 @@ void GEOM_Swig::createAndDisplayFitAllGO (const char* Entry)
|
||||
ProcessVoidEvent(new TEventFitAll());
|
||||
}
|
||||
|
||||
void GEOM_Swig::UpdateViewer()
|
||||
{
|
||||
class TEventUpdateViewer: public SALOME_Event
|
||||
{
|
||||
public:
|
||||
TEventUpdateViewer() {}
|
||||
virtual void Execute() {
|
||||
SUIT_Application* app = SUIT_Session::session()->activeApplication();
|
||||
if (!app) return;
|
||||
SalomeApp_Study* ActiveStudy = dynamic_cast<SalomeApp_Study*>(app->activeStudy());
|
||||
if (!ActiveStudy) return;
|
||||
|
||||
GEOM_Displayer(ActiveStudy).UpdateViewer();
|
||||
}
|
||||
};
|
||||
|
||||
ProcessVoidEvent(new TEventUpdateViewer());
|
||||
}
|
||||
|
||||
int GEOM_Swig::getIndexTopology(const char* SubIOR, const char* IOR)
|
||||
{
|
||||
GEOM::GEOM_Gen_var aGeomGen = GeometryGUI::GetGeomGen();
|
||||
@ -345,14 +367,15 @@ const char* GEOM_Swig::getShapeTypeIcon(const char* IOR)
|
||||
return "None";
|
||||
}
|
||||
|
||||
void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode)
|
||||
void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode, bool isUpdated)
|
||||
{
|
||||
class TEvent: public SALOME_Event {
|
||||
std::string myEntry;
|
||||
int myMode;
|
||||
bool myUpdateViewer;
|
||||
public:
|
||||
TEvent(const char* theEntryArg, int theModeArg):
|
||||
myEntry(theEntryArg), myMode(theModeArg)
|
||||
TEvent(const char* theEntryArg, int theModeArg, bool theUpdated):
|
||||
myEntry(theEntryArg), myMode(theModeArg), myUpdateViewer(theUpdated)
|
||||
{}
|
||||
virtual void Execute() {
|
||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||
@ -364,29 +387,31 @@ void GEOM_Swig::setDisplayMode(const char* theEntry, int theMode)
|
||||
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
||||
SVTK_View* aView = aViewWindow->getView();
|
||||
aView->SetDisplayMode(anIO, myMode);
|
||||
aView->Repaint();
|
||||
if (myUpdateViewer)
|
||||
aView->Repaint();
|
||||
}
|
||||
else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
||||
if (soccViewer)
|
||||
soccViewer->switchRepresentation(anIO, myMode);
|
||||
soccViewer->switchRepresentation(anIO, myMode, myUpdateViewer);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ProcessVoidEvent(new TEvent (theEntry, theMode));
|
||||
ProcessVoidEvent(new TEvent (theEntry, theMode, isUpdated));
|
||||
}
|
||||
|
||||
void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
||||
void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue, bool isUpdated)
|
||||
{
|
||||
class TEvent: public SALOME_Event {
|
||||
std::string myEntry;
|
||||
int myRed;
|
||||
int myGreen;
|
||||
int myBlue;
|
||||
bool myUpdateViewer;
|
||||
public:
|
||||
TEvent(const char* theEntryArg, int theR, int theG, int theB):
|
||||
myEntry(theEntryArg), myRed(theR), myGreen(theG), myBlue(theB)
|
||||
TEvent(const char* theEntryArg, int theR, int theG, int theB, bool theUpdated):
|
||||
myEntry(theEntryArg), myRed(theR), myGreen(theG), myBlue(theB), myUpdateViewer(theUpdated)
|
||||
{}
|
||||
virtual void Execute() {
|
||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||
@ -399,7 +424,8 @@ void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
||||
SVTK_View* aView = aViewWindow->getView();
|
||||
QColor aColor (myRed, myGreen, myBlue);
|
||||
aView->SetColor(anIO, aColor);
|
||||
aView->Repaint();
|
||||
if (myUpdateViewer)
|
||||
aView->Repaint();
|
||||
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||
Handle(AIS_InteractiveContext) ic = occViewer->getAISContext();
|
||||
AIS_ListOfInteractive List;
|
||||
@ -414,25 +440,27 @@ void GEOM_Swig::setColor(const char* theEntry, int red, int green, int blue)
|
||||
ite.Value()->SetColor(CSFColor);
|
||||
if (ite.Value()->IsKind(STANDARD_TYPE(GEOM_AISShape)))
|
||||
Handle(GEOM_AISShape)::DownCast(ite.Value())->SetShadingColor(CSFColor);
|
||||
ite.Value()->Redisplay(Standard_True);
|
||||
occViewer->update();
|
||||
ic->Redisplay(ite.Value(), true, true);
|
||||
if (myUpdateViewer)
|
||||
occViewer->update();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
ProcessVoidEvent(new TEvent(theEntry, red, green, blue));
|
||||
ProcessVoidEvent(new TEvent(theEntry, red, green, blue, isUpdated));
|
||||
}
|
||||
|
||||
void GEOM_Swig::setTransparency(const char* theEntry, float transp)
|
||||
void GEOM_Swig::setTransparency(const char* theEntry, float transp, bool isUpdated)
|
||||
{
|
||||
class TEvent: public SALOME_Event {
|
||||
std::string myEntry;
|
||||
float myParam;
|
||||
bool myUpdateViewer;
|
||||
public:
|
||||
TEvent(const char* theEntryArg, float theParam):
|
||||
myEntry(theEntryArg), myParam(theParam)
|
||||
TEvent(const char* theEntryArg, float theParam, bool theUpdated):
|
||||
myEntry(theEntryArg), myParam(theParam), myUpdateViewer(theUpdated)
|
||||
{}
|
||||
virtual void Execute() {
|
||||
SUIT_Application* anApp = SUIT_Session::session()->activeApplication();
|
||||
@ -444,16 +472,17 @@ void GEOM_Swig::setTransparency(const char* theEntry, float transp)
|
||||
if (SVTK_ViewWindow* aViewWindow = GetSVTKViewWindow(anApp)) {
|
||||
SVTK_View* aView = aViewWindow->getView();
|
||||
aView->SetTransparency(anIO, myParam);
|
||||
aView->Repaint();
|
||||
if (myUpdateViewer)
|
||||
aView->Repaint();
|
||||
} else if (OCCViewer_Viewer* occViewer = GetOCCViewer(anApp)) {
|
||||
SOCC_Viewer* soccViewer = dynamic_cast<SOCC_Viewer*>(occViewer);
|
||||
if (soccViewer)
|
||||
soccViewer->setTransparency(anIO, myParam);
|
||||
soccViewer->setTransparency(anIO, myParam, myUpdateViewer);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ProcessVoidEvent(new TEvent (theEntry, transp));
|
||||
ProcessVoidEvent(new TEvent (theEntry, transp, isUpdated));
|
||||
}
|
||||
|
||||
|
||||
|
@ -45,12 +45,13 @@ public:
|
||||
GEOM_Swig();
|
||||
~GEOM_Swig();
|
||||
|
||||
void createAndDisplayGO(const char* Entry);
|
||||
void createAndDisplayGO(const char* Entry, bool isUpdated = true);
|
||||
void eraseGO(const char* Entry, bool allWindows);
|
||||
void createAndDisplayFitAllGO(const char* Entry);
|
||||
void setDisplayMode(const char* Entry, int mode);
|
||||
void setColor(const char* Entry, int red, int green, int blue);
|
||||
void setTransparency(const char* Entry, float transp);
|
||||
void UpdateViewer();
|
||||
void setDisplayMode(const char* Entry, int mode, bool isUpdated = true);
|
||||
void setColor(const char* Entry, int red, int green, int blue, bool isUpdated = true);
|
||||
void setTransparency(const char* Entry, float transp, bool isUpdated = true);
|
||||
void setDeflection(const char* Entry, float deflect);
|
||||
|
||||
int getIndexTopology(const char *SubEntry, const char *Entry);
|
||||
|
@ -1,23 +1,23 @@
|
||||
// GEOM GEOMGUI : GUI for Geometry component
|
||||
//
|
||||
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
//
|
||||
//
|
||||
@ -30,23 +30,44 @@
|
||||
#include "GeometryGUI_Swig.hxx"
|
||||
%}
|
||||
|
||||
/*
|
||||
managing C++ exception in the Python API
|
||||
*/
|
||||
%exception
|
||||
{
|
||||
class PyAllowThreadsGuard {
|
||||
public:
|
||||
// Py_BEGIN_ALLOW_THREADS
|
||||
PyAllowThreadsGuard() { _save = PyEval_SaveThread(); }
|
||||
// Py_END_ALLOW_THREADS
|
||||
~PyAllowThreadsGuard() { PyEval_RestoreThread(_save); }
|
||||
private:
|
||||
PyThreadState *_save;
|
||||
};
|
||||
|
||||
PyAllowThreadsGuard guard;
|
||||
|
||||
$action
|
||||
}
|
||||
|
||||
class GEOM_Swig
|
||||
{
|
||||
public:
|
||||
GEOM_Swig();
|
||||
~GEOM_Swig();
|
||||
|
||||
void createAndDisplayGO(const char* Entry);
|
||||
void createAndDisplayGO(const char* Entry, bool isUpdated =true);
|
||||
void eraseGO(const char* Entry, bool allWindows);
|
||||
void createAndDisplayFitAllGO(const char* Entry);
|
||||
void UpdateViewer();
|
||||
int getIndexTopology(const char *SubEntry, const char *Entry);
|
||||
const char* getShapeTypeString(const char *Entry);
|
||||
|
||||
void setDisplayMode(const char* Entry, int mode);
|
||||
void setColor(const char* Entry, int red, int green, int blue);
|
||||
void setTransparency(const char* Entry, float transp);
|
||||
void setDisplayMode(const char* Entry, int mode, bool isUpdated =true);
|
||||
void setColor(const char* Entry, int red, int green, int blue, bool isUpdated =true);
|
||||
void setTransparency(const char* Entry, float transp, bool isUpdated =true);
|
||||
void setDeflection(const char* Entry, float deflect);
|
||||
const char* getShapeTypeIcon(const char *Ior);
|
||||
|
||||
|
||||
bool initGeomGen();
|
||||
};
|
||||
|
@ -1,36 +1,42 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
//
|
||||
// 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
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// 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
|
||||
// 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
|
||||
//
|
||||
|
||||
#include <Standard_Stream.hxx>
|
||||
|
||||
#include <GEOMImpl_BooleanDriver.hxx>
|
||||
#include <GEOMImpl_IBoolean.hxx>
|
||||
#include <GEOMImpl_Types.hxx>
|
||||
#include <GEOMImpl_GlueDriver.hxx>
|
||||
#include <GEOM_Function.hxx>
|
||||
|
||||
#include <BRep_Builder.hxx>
|
||||
#include <BRepAlgo.hxx>
|
||||
#include <BRepAlgoAPI_Common.hxx>
|
||||
#include <BRepAlgoAPI_Cut.hxx>
|
||||
#include <BRepAlgoAPI_Fuse.hxx>
|
||||
#include <BRepAlgoAPI_Section.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Compound.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <TopTools_ListOfShape.hxx>
|
||||
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||
#include <Precision.hxx>
|
||||
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
@ -54,6 +60,30 @@ GEOMImpl_BooleanDriver::GEOMImpl_BooleanDriver()
|
||||
{
|
||||
}
|
||||
|
||||
void AddSimpleShapes(TopoDS_Shape theShape, TopTools_ListOfShape& theList)
|
||||
{
|
||||
if (theShape.ShapeType() != TopAbs_COMPOUND &&
|
||||
theShape.ShapeType() != TopAbs_COMPSOLID) {
|
||||
theList.Append(theShape);
|
||||
return;
|
||||
}
|
||||
|
||||
TopTools_MapOfShape mapShape;
|
||||
TopoDS_Iterator It (theShape, Standard_True, Standard_True);
|
||||
|
||||
for (; It.More(); It.Next()) {
|
||||
TopoDS_Shape aShape_i = It.Value();
|
||||
if (mapShape.Add(aShape_i)) {
|
||||
if (aShape_i.ShapeType() == TopAbs_COMPOUND ||
|
||||
aShape_i.ShapeType() == TopAbs_COMPSOLID) {
|
||||
AddSimpleShapes(aShape_i, theList);
|
||||
} else {
|
||||
theList.Append(aShape_i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Execute
|
||||
//purpose :
|
||||
@ -73,38 +103,200 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
|
||||
TopoDS_Shape aShape1 = aRefShape1->GetValue();
|
||||
TopoDS_Shape aShape2 = aRefShape2->GetValue();
|
||||
if (!aShape1.IsNull() && !aShape2.IsNull()) {
|
||||
|
||||
// perform COMMON operation
|
||||
if (aType == BOOLEAN_COMMON) {
|
||||
BRepAlgoAPI_Common BO (aShape1, aShape2);
|
||||
// BO.Build();
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Requested boolean operation can not be performed on the given shapes");
|
||||
BRep_Builder B;
|
||||
TopoDS_Compound C;
|
||||
B.MakeCompound(C);
|
||||
|
||||
TopTools_ListOfShape listShape1, listShape2;
|
||||
AddSimpleShapes(aShape1, listShape1);
|
||||
AddSimpleShapes(aShape2, listShape2);
|
||||
|
||||
Standard_Boolean isCompound =
|
||||
(listShape1.Extent() > 1 || listShape2.Extent() > 1);
|
||||
|
||||
TopTools_ListIteratorOfListOfShape itSub1 (listShape1);
|
||||
for (; itSub1.More(); itSub1.Next()) {
|
||||
TopoDS_Shape aValue1 = itSub1.Value();
|
||||
TopTools_ListIteratorOfListOfShape itSub2 (listShape2);
|
||||
for (; itSub2.More(); itSub2.Next()) {
|
||||
TopoDS_Shape aValue2 = itSub2.Value();
|
||||
BRepAlgoAPI_Common BO (aValue1, aValue2);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Common operation can not be performed on the given shapes");
|
||||
}
|
||||
if (isCompound) {
|
||||
TopoDS_Shape aStepResult = BO.Shape();
|
||||
|
||||
// check result of this step: if it is a compound (boolean operations
|
||||
// allways return a compound), we add all sub-shapes of it.
|
||||
// This allows to avoid adding empty compounds,
|
||||
// resulting from COMMON on two non-intersecting shapes.
|
||||
if (aStepResult.ShapeType() == TopAbs_COMPOUND) {
|
||||
TopoDS_Iterator aCompIter (aStepResult);
|
||||
for (; aCompIter.More(); aCompIter.Next()) {
|
||||
// add shape in a result
|
||||
B.Add(C, aCompIter.Value());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// add shape in a result
|
||||
B.Add(C, aStepResult);
|
||||
}
|
||||
}
|
||||
else
|
||||
aShape = BO.Shape();
|
||||
}
|
||||
}
|
||||
aShape = BO.Shape();
|
||||
} else if (aType == BOOLEAN_CUT) {
|
||||
BRepAlgoAPI_Cut BO (aShape1, aShape2);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Requested boolean operation can not be performed on the given shapes");
|
||||
|
||||
if (isCompound) {
|
||||
TopTools_ListOfShape listShapeC;
|
||||
AddSimpleShapes(C, listShapeC);
|
||||
TopTools_ListIteratorOfListOfShape itSubC (listShapeC);
|
||||
bool isOnlySolids = true;
|
||||
for (; itSubC.More(); itSubC.Next()) {
|
||||
TopoDS_Shape aValueC = itSubC.Value();
|
||||
if (aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false;
|
||||
}
|
||||
if (isOnlySolids)
|
||||
aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion());
|
||||
else
|
||||
aShape = C;
|
||||
}
|
||||
aShape = BO.Shape();
|
||||
} else if (aType == BOOLEAN_FUSE) {
|
||||
}
|
||||
|
||||
// perform CUT operation
|
||||
else if (aType == BOOLEAN_CUT) {
|
||||
BRep_Builder B;
|
||||
TopoDS_Compound C;
|
||||
B.MakeCompound(C);
|
||||
|
||||
TopTools_ListOfShape listShapes, listTools;
|
||||
AddSimpleShapes(aShape1, listShapes);
|
||||
AddSimpleShapes(aShape2, listTools);
|
||||
|
||||
Standard_Boolean isCompound = (listShapes.Extent() > 1);
|
||||
|
||||
TopTools_ListIteratorOfListOfShape itSub1 (listShapes);
|
||||
for (; itSub1.More(); itSub1.Next()) {
|
||||
TopoDS_Shape aCut = itSub1.Value();
|
||||
// tools
|
||||
TopTools_ListIteratorOfListOfShape itSub2 (listTools);
|
||||
for (; itSub2.More(); itSub2.Next()) {
|
||||
TopoDS_Shape aTool = itSub2.Value();
|
||||
BRepAlgoAPI_Cut BO (aCut, aTool);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Cut operation can not be performed on the given shapes");
|
||||
}
|
||||
aCut = BO.Shape();
|
||||
}
|
||||
if (isCompound) {
|
||||
// check result of this step: if it is a compound (boolean operations
|
||||
// allways return a compound), we add all sub-shapes of it.
|
||||
// This allows to avoid adding empty compounds,
|
||||
// resulting from CUT of parts
|
||||
if (aCut.ShapeType() == TopAbs_COMPOUND) {
|
||||
TopoDS_Iterator aCompIter (aCut);
|
||||
for (; aCompIter.More(); aCompIter.Next()) {
|
||||
// add shape in a result
|
||||
B.Add(C, aCompIter.Value());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// add shape in a result
|
||||
B.Add(C, aCut);
|
||||
}
|
||||
}
|
||||
else
|
||||
aShape = aCut;
|
||||
}
|
||||
|
||||
if (isCompound) {
|
||||
TopTools_ListOfShape listShapeC;
|
||||
AddSimpleShapes(C, listShapeC);
|
||||
TopTools_ListIteratorOfListOfShape itSubC (listShapeC);
|
||||
bool isOnlySolids = true;
|
||||
for (; itSubC.More(); itSubC.Next()) {
|
||||
TopoDS_Shape aValueC = itSubC.Value();
|
||||
if (aValueC.ShapeType() != TopAbs_SOLID) isOnlySolids = false;
|
||||
}
|
||||
if (isOnlySolids)
|
||||
aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion());
|
||||
else
|
||||
aShape = C;
|
||||
}
|
||||
}
|
||||
|
||||
// perform FUSE operation
|
||||
else if (aType == BOOLEAN_FUSE) {
|
||||
BRepAlgoAPI_Fuse BO (aShape1, aShape2);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Requested boolean operation can not be performed on the given shapes");
|
||||
StdFail_NotDone::Raise("Fuse operation can not be performed on the given shapes");
|
||||
}
|
||||
aShape = BO.Shape();
|
||||
} else if (aType == BOOLEAN_SECTION) {
|
||||
BRepAlgoAPI_Section BO (aShape1, aShape2);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Requested boolean operation can not be performed on the given shapes");
|
||||
}
|
||||
|
||||
// perform SECTION operation
|
||||
else if (aType == BOOLEAN_SECTION) {
|
||||
BRep_Builder B;
|
||||
TopoDS_Compound C;
|
||||
B.MakeCompound(C);
|
||||
|
||||
TopTools_ListOfShape listShape1, listShape2;
|
||||
AddSimpleShapes(aShape1, listShape1);
|
||||
AddSimpleShapes(aShape2, listShape2);
|
||||
|
||||
Standard_Boolean isCompound =
|
||||
(listShape1.Extent() > 1 || listShape2.Extent() > 1);
|
||||
|
||||
TopTools_ListIteratorOfListOfShape itSub1 (listShape1);
|
||||
for (; itSub1.More(); itSub1.Next()) {
|
||||
TopoDS_Shape aValue1 = itSub1.Value();
|
||||
TopTools_ListIteratorOfListOfShape itSub2 (listShape2);
|
||||
for (; itSub2.More(); itSub2.Next()) {
|
||||
TopoDS_Shape aValue2 = itSub2.Value();
|
||||
BRepAlgoAPI_Section BO (aValue1, aValue2);
|
||||
if (!BO.IsDone()) {
|
||||
StdFail_NotDone::Raise("Section operation can not be performed on the given shapes");
|
||||
}
|
||||
if (isCompound) {
|
||||
TopoDS_Shape aStepResult = BO.Shape();
|
||||
|
||||
// check result of this step: if it is a compound (boolean operations
|
||||
// allways return a compound), we add all sub-shapes of it.
|
||||
// This allows to avoid adding empty compounds,
|
||||
// resulting from SECTION on two non-intersecting shapes.
|
||||
if (aStepResult.ShapeType() == TopAbs_COMPOUND) {
|
||||
TopoDS_Iterator aCompIter (aStepResult);
|
||||
for (; aCompIter.More(); aCompIter.Next()) {
|
||||
// add shape in a result
|
||||
B.Add(C, aCompIter.Value());
|
||||
}
|
||||
}
|
||||
else {
|
||||
// add shape in a result
|
||||
B.Add(C, aStepResult);
|
||||
}
|
||||
}
|
||||
else
|
||||
aShape = BO.Shape();
|
||||
}
|
||||
}
|
||||
aShape = BO.Shape();
|
||||
} else {
|
||||
|
||||
if (isCompound)
|
||||
aShape = C;
|
||||
}
|
||||
|
||||
// UNKNOWN operation
|
||||
else {
|
||||
}
|
||||
}
|
||||
|
||||
if (aShape.IsNull()) return 0;
|
||||
if (!BRepAlgo::IsValid(aShape)) {
|
||||
Standard_ConstructionError::Raise("Boolean aborted : non valid shape result");
|
||||
Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result");
|
||||
}
|
||||
|
||||
aFunction->SetValue(aShape);
|
||||
|
@ -54,37 +54,6 @@ typedef int (*funcPoint)(const TopoDS_Shape&,
|
||||
const TCollection_AsciiString&,
|
||||
const TCollection_AsciiString&);
|
||||
|
||||
//This class is workaround of BUG OCC13051 ( SWP13103 )
|
||||
//It's stored all loaded libraries for export and unload that in destructor
|
||||
class DLL_Collector
|
||||
{
|
||||
typedef NCollection_DataMap<TCollection_AsciiString,LibHandle> DLL_Collector_Map;
|
||||
DLL_Collector_Map myMapOfDLL;
|
||||
public:
|
||||
DLL_Collector(){};
|
||||
~DLL_Collector()
|
||||
{
|
||||
DLL_Collector_Map::Iterator Iter( myMapOfDLL );
|
||||
for( ; Iter.More(); Iter.Next() )
|
||||
UnLoadLib( Iter.Value() );
|
||||
}
|
||||
|
||||
public:
|
||||
LibHandle LoadDLL( const TCollection_AsciiString& theLibName )
|
||||
{
|
||||
if ( myMapOfDLL.IsBound( theLibName ) )
|
||||
return myMapOfDLL( theLibName );
|
||||
|
||||
LibHandle res = LoadLib( theLibName.ToCString() );
|
||||
if ( res )
|
||||
myMapOfDLL.Bind( theLibName, res );
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
static DLL_Collector GlobalCollector;
|
||||
|
||||
//=======================================================================
|
||||
//function : GetID
|
||||
//purpose :
|
||||
@ -132,7 +101,7 @@ Standard_Integer GEOMImpl_ExportDriver::Execute(TFunction_Logbook& log) const
|
||||
return 0;
|
||||
|
||||
// load plugin library
|
||||
LibHandle anExportLib = GlobalCollector.LoadDLL( aLibName ); //This is workaround of BUG OCC13051
|
||||
LibHandle anExportLib = LoadLib( aLibName.ToCString() ); //This is workaround of BUG OCC13051
|
||||
funcPoint fp = 0;
|
||||
if ( anExportLib )
|
||||
fp = (funcPoint)GetProc( anExportLib, "Export" );
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <ShHealOper_FillHoles.hxx>
|
||||
#include <ShHealOper_Sewing.hxx>
|
||||
#include <ShHealOper_EdgeDivide.hxx>
|
||||
#include <ShHealOper_ChangeOrientation.hxx>
|
||||
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopExp.hxx>
|
||||
@ -115,6 +116,9 @@ Standard_Integer GEOMImpl_HealingDriver::Execute(TFunction_Logbook& log) const
|
||||
case DIVIDE_EDGE:
|
||||
AddPointOnEdge(&HI, anOriginalShape, aShape);
|
||||
break;
|
||||
case CHANGE_ORIENTATION:
|
||||
ChangeOrientation(&HI, anOriginalShape, aShape);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
@ -379,6 +383,27 @@ Standard_Boolean GEOMImpl_HealingDriver::AddPointOnEdge (GEOMImpl_IHealing* theH
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : ChangeOrientation
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean GEOMImpl_HealingDriver::ChangeOrientation (GEOMImpl_IHealing* theHI,
|
||||
const TopoDS_Shape& theOriginalShape,
|
||||
TopoDS_Shape& theOutShape) const
|
||||
{
|
||||
ShHealOper_ChangeOrientation aHealer (theOriginalShape);
|
||||
|
||||
Standard_Boolean aResult = aHealer.Perform();
|
||||
|
||||
if (aResult)
|
||||
theOutShape = aHealer.GetResultShape();
|
||||
else
|
||||
raiseNotDoneExeption( aHealer.GetErrorStatus() );
|
||||
|
||||
return aResult;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : GEOMImpl_HealingDriver_Type_
|
||||
//purpose :
|
||||
|
@ -163,7 +163,7 @@ Standard_Boolean RemoveIntWires( GEOMImpl_IHealing*, const TopoDS_Shape&, TopoDS
|
||||
Standard_Boolean RemoveHoles ( GEOMImpl_IHealing*, const TopoDS_Shape&, TopoDS_Shape& ) const;
|
||||
Standard_Boolean Sew ( GEOMImpl_IHealing*, const TopoDS_Shape&, TopoDS_Shape& ) const;
|
||||
Standard_Boolean AddPointOnEdge( GEOMImpl_IHealing*, const TopoDS_Shape&, TopoDS_Shape& ) const;
|
||||
|
||||
Standard_Boolean ChangeOrientation( GEOMImpl_IHealing*, const TopoDS_Shape&, TopoDS_Shape& ) const;
|
||||
|
||||
|
||||
};
|
||||
|
@ -60,6 +60,7 @@
|
||||
#include <GEOMImpl_IThruSections.hxx>
|
||||
#include <GEOMImpl_IPipeDiffSect.hxx>
|
||||
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
|
||||
|
||||
//=============================================================================
|
||||
@ -111,6 +112,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeBoxDXDYDZ (double theDX, dou
|
||||
|
||||
//Compute the box value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Box driver failed");
|
||||
return NULL;
|
||||
@ -165,6 +169,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeBoxTwoPnt (Handle(GEOM_Objec
|
||||
|
||||
//Compute the Box value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Box driver failed");
|
||||
return NULL;
|
||||
@ -211,6 +218,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeCylinderRH (double theR, dou
|
||||
|
||||
//Compute the Cylinder value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Cylinder driver failed");
|
||||
return NULL;
|
||||
@ -269,6 +279,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeCylinderPntVecRH (Handle(GEO
|
||||
|
||||
//Compute the Cylinder value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Cylinder driver failed");
|
||||
return NULL;
|
||||
@ -318,6 +331,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeConeR1R2H (double theR1, dou
|
||||
|
||||
//Compute the Cone value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Cone driver failed");
|
||||
return NULL;
|
||||
@ -378,6 +394,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeConePntVecR1R2H (Handle(GEOM
|
||||
|
||||
//Compute the Cone value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Cone driver failed");
|
||||
return NULL;
|
||||
@ -423,6 +442,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeSphereR (double theR)
|
||||
|
||||
//Compute the Sphere value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Sphere driver failed");
|
||||
return NULL;
|
||||
@ -475,6 +497,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeSpherePntR (Handle(GEOM_Obje
|
||||
|
||||
//Compute the Sphere value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Sphere driver failed");
|
||||
return NULL;
|
||||
@ -523,6 +548,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeTorusRR
|
||||
|
||||
//Compute the Torus value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Torus driver failed");
|
||||
return NULL;
|
||||
@ -580,6 +608,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeTorusPntVecRR
|
||||
|
||||
//Compute the Torus value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Torus driver failed");
|
||||
return NULL;
|
||||
@ -637,8 +668,12 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismVecH (Handle(GEOM_Objec
|
||||
|
||||
//Compute the Prism value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Prism driver failed");
|
||||
//SetErrorCode("Prism driver failed");
|
||||
SetErrorCode("Extrusion can not be created, check input data");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -694,8 +729,12 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismTwoPnt
|
||||
|
||||
//Compute the Prism value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Prism driver failed");
|
||||
//SetErrorCode("Prism driver failed");
|
||||
SetErrorCode("Extrusion can not be created, check input data");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -749,6 +788,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipe (Handle(GEOM_Object) th
|
||||
|
||||
//Compute the Pipe value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Pipe driver failed");
|
||||
return NULL;
|
||||
@ -806,6 +848,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeRevolutionAxisAngle (Handle(
|
||||
|
||||
//Compute the Revolution value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Revolution driver failed");
|
||||
return NULL;
|
||||
@ -858,6 +903,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeSolidShell (Handle(GEOM_Obje
|
||||
|
||||
//Compute the Solid value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Solid driver failed");
|
||||
return NULL;
|
||||
@ -914,6 +962,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFilling
|
||||
|
||||
//Compute the Solid value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Filling driver failed");
|
||||
return NULL;
|
||||
@ -1000,6 +1051,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeThruSections(
|
||||
|
||||
//Compute the ThruSections value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("ThruSections driver failed");
|
||||
return anObj;
|
||||
@ -1122,6 +1176,9 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeWithDifferentSections(
|
||||
|
||||
//Compute the Pipe value
|
||||
try {
|
||||
#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
|
||||
OCC_CATCH_SIGNALS;
|
||||
#endif
|
||||
if (!GetSolver()->ComputeFunction(aFunction)) {
|
||||
SetErrorCode("Pipe with defferent section driver failed");
|
||||
return anObj;
|
||||
|