mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 17:30:35 +05:00
Merge branch 'V7_dev'
This commit is contained in:
commit
a17b36970b
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -87,7 +87,8 @@ MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_SMESH_USE_CGNS SALOME_SMESH_USE_TBB)
|
|||||||
|
|
||||||
# Various
|
# Various
|
||||||
# Python
|
# Python
|
||||||
FIND_PACKAGE(SalomePython REQUIRED)
|
FIND_PACKAGE(SalomePythonInterp REQUIRED)
|
||||||
|
FIND_PACKAGE(SalomePythonLibs REQUIRED)
|
||||||
# PThread
|
# PThread
|
||||||
FIND_PACKAGE(SalomePThread REQUIRED)
|
FIND_PACKAGE(SalomePThread REQUIRED)
|
||||||
# SWIG
|
# SWIG
|
||||||
|
504
LICENCE
504
LICENCE
@ -1,504 +0,0 @@
|
|||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 2.1, February 1999
|
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
[This is the first released version of the Lesser GPL. It also counts
|
|
||||||
as the successor of the GNU Library Public License, version 2, hence
|
|
||||||
the version number 2.1.]
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
Licenses are intended to guarantee your freedom to share and change
|
|
||||||
free software--to make sure the software is free for all its users.
|
|
||||||
|
|
||||||
This license, the Lesser General Public License, applies to some
|
|
||||||
specially designated software packages--typically libraries--of the
|
|
||||||
Free Software Foundation and other authors who decide to use it. You
|
|
||||||
can use it too, but we suggest you first think carefully about whether
|
|
||||||
this license or the ordinary General Public License is the better
|
|
||||||
strategy to use in any particular case, based on the explanations below.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom of use,
|
|
||||||
not price. Our General Public Licenses are designed to make sure that
|
|
||||||
you have the freedom to distribute copies of free software (and charge
|
|
||||||
for this service if you wish); that you receive source code or can get
|
|
||||||
it if you want it; that you can change the software and use pieces of
|
|
||||||
it in new free programs; and that you are informed that you can do
|
|
||||||
these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
distributors to deny you these rights or to ask you to surrender these
|
|
||||||
rights. These restrictions translate to certain responsibilities for
|
|
||||||
you if you distribute copies of the library or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of the library, whether gratis
|
|
||||||
or for a fee, you must give the recipients all the rights that we gave
|
|
||||||
you. You must make sure that they, too, receive or can get the source
|
|
||||||
code. If you link other code with the library, you must provide
|
|
||||||
complete object files to the recipients, so that they can relink them
|
|
||||||
with the library after making changes to the library and recompiling
|
|
||||||
it. And you must show them these terms so they know their rights.
|
|
||||||
|
|
||||||
We protect your rights with a two-step method: (1) we copyright the
|
|
||||||
library, and (2) we offer you this license, which gives you legal
|
|
||||||
permission to copy, distribute and/or modify the library.
|
|
||||||
|
|
||||||
To protect each distributor, we want to make it very clear that
|
|
||||||
there is no warranty for the free library. Also, if the library is
|
|
||||||
modified by someone else and passed on, the recipients should know
|
|
||||||
that what they have is not the original version, so that the original
|
|
||||||
author's reputation will not be affected by problems that might be
|
|
||||||
introduced by others.
|
|
||||||
|
|
||||||
Finally, software patents pose a constant threat to the existence of
|
|
||||||
any free program. We wish to make sure that a company cannot
|
|
||||||
effectively restrict the users of a free program by obtaining a
|
|
||||||
restrictive license from a patent holder. Therefore, we insist that
|
|
||||||
any patent license obtained for a version of the library must be
|
|
||||||
consistent with the full freedom of use specified in this license.
|
|
||||||
|
|
||||||
Most GNU software, including some libraries, is covered by the
|
|
||||||
ordinary GNU General Public License. This license, the GNU Lesser
|
|
||||||
General Public License, applies to certain designated libraries, and
|
|
||||||
is quite different from the ordinary General Public License. We use
|
|
||||||
this license for certain libraries in order to permit linking those
|
|
||||||
libraries into non-free programs.
|
|
||||||
|
|
||||||
When a program is linked with a library, whether statically or using
|
|
||||||
a shared library, the combination of the two is legally speaking a
|
|
||||||
combined work, a derivative of the original library. The ordinary
|
|
||||||
General Public License therefore permits such linking only if the
|
|
||||||
entire combination fits its criteria of freedom. The Lesser General
|
|
||||||
Public License permits more lax criteria for linking other code with
|
|
||||||
the library.
|
|
||||||
|
|
||||||
We call this license the "Lesser" General Public License because it
|
|
||||||
does Less to protect the user's freedom than the ordinary General
|
|
||||||
Public License. It also provides other free software developers Less
|
|
||||||
of an advantage over competing non-free programs. These disadvantages
|
|
||||||
are the reason we use the ordinary General Public License for many
|
|
||||||
libraries. However, the Lesser license provides advantages in certain
|
|
||||||
special circumstances.
|
|
||||||
|
|
||||||
For example, on rare occasions, there may be a special need to
|
|
||||||
encourage the widest possible use of a certain library, so that it becomes
|
|
||||||
a de-facto standard. To achieve this, non-free programs must be
|
|
||||||
allowed to use the library. A more frequent case is that a free
|
|
||||||
library does the same job as widely used non-free libraries. In this
|
|
||||||
case, there is little to gain by limiting the free library to free
|
|
||||||
software only, so we use the Lesser General Public License.
|
|
||||||
|
|
||||||
In other cases, permission to use a particular library in non-free
|
|
||||||
programs enables a greater number of people to use a large body of
|
|
||||||
free software. For example, permission to use the GNU C Library in
|
|
||||||
non-free programs enables many more people to use the whole GNU
|
|
||||||
operating system, as well as its variant, the GNU/Linux operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
Although the Lesser General Public License is Less protective of the
|
|
||||||
users' freedom, it does ensure that the user of a program that is
|
|
||||||
linked with the Library has the freedom and the wherewithal to run
|
|
||||||
that program using a modified version of the Library.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow. Pay close attention to the difference between a
|
|
||||||
"work based on the library" and a "work that uses the library". The
|
|
||||||
former contains code derived from the library, whereas the latter must
|
|
||||||
be combined with the library in order to run.
|
|
||||||
|
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License Agreement applies to any software library or other
|
|
||||||
program which contains a notice placed by the copyright holder or
|
|
||||||
other authorized party saying it may be distributed under the terms of
|
|
||||||
this Lesser General Public License (also called "this License").
|
|
||||||
Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
A "library" means a collection of software functions and/or data
|
|
||||||
prepared so as to be conveniently linked with application programs
|
|
||||||
(which use some of those functions and data) to form executables.
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or work
|
|
||||||
which has been distributed under these terms. A "work based on the
|
|
||||||
Library" means either the Library or any derivative work under
|
|
||||||
copyright law: that is to say, a work containing the Library or a
|
|
||||||
portion of it, either verbatim or with modifications and/or translated
|
|
||||||
straightforwardly into another language. (Hereinafter, translation is
|
|
||||||
included without limitation in the term "modification".)
|
|
||||||
|
|
||||||
"Source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For a library, complete source code means
|
|
||||||
all the source code for all modules it contains, plus any associated
|
|
||||||
interface definition files, plus the scripts used to control compilation
|
|
||||||
and installation of the library.
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running a program using the Library is not restricted, and output from
|
|
||||||
such a program is covered only if its contents constitute a work based
|
|
||||||
on the Library (independent of the use of the Library in a tool for
|
|
||||||
writing it). Whether that is true depends on what the Library does
|
|
||||||
and what the program that uses the Library does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Library's
|
|
||||||
complete source code as you receive it, in any medium, provided that
|
|
||||||
you conspicuously and appropriately publish on each copy an
|
|
||||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
|
||||||
all the notices that refer to this License and to the absence of any
|
|
||||||
warranty; and distribute a copy of this License along with the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy,
|
|
||||||
and you may at your option offer warranty protection in exchange for a
|
|
||||||
fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Library or any portion
|
|
||||||
of it, thus forming a work based on the Library, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The modified work must itself be a software library.
|
|
||||||
|
|
||||||
b) You must cause the files modified to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
c) You must cause the whole of the work to be licensed at no
|
|
||||||
charge to all third parties under the terms of this License.
|
|
||||||
|
|
||||||
d) If a facility in the modified Library refers to a function or a
|
|
||||||
table of data to be supplied by an application program that uses
|
|
||||||
the facility, other than as an argument passed when the facility
|
|
||||||
is invoked, then you must make a good faith effort to ensure that,
|
|
||||||
in the event an application does not supply such function or
|
|
||||||
table, the facility still operates, and performs whatever part of
|
|
||||||
its purpose remains meaningful.
|
|
||||||
|
|
||||||
(For example, a function in a library to compute square roots has
|
|
||||||
a purpose that is entirely well-defined independent of the
|
|
||||||
application. Therefore, Subsection 2d requires that any
|
|
||||||
application-supplied function or table used by this function must
|
|
||||||
be optional: if the application does not supply it, the square
|
|
||||||
root function must still compute square roots.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Library,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Library, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote
|
|
||||||
it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Library.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Library
|
|
||||||
with the Library (or with a work based on the Library) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
|
||||||
License instead of this License to a given copy of the Library. To do
|
|
||||||
this, you must alter all the notices that refer to this License, so
|
|
||||||
that they refer to the ordinary GNU General Public License, version 2,
|
|
||||||
instead of to this License. (If a newer version than version 2 of the
|
|
||||||
ordinary GNU General Public License has appeared, then you can specify
|
|
||||||
that version instead if you wish.) Do not make any other change in
|
|
||||||
these notices.
|
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
|
||||||
that copy, so the ordinary GNU General Public License applies to all
|
|
||||||
subsequent copies and derivative works made from that copy.
|
|
||||||
|
|
||||||
This option is useful when you wish to copy part of the code of
|
|
||||||
the Library into a program that is not a library.
|
|
||||||
|
|
||||||
4. You may copy and distribute the Library (or a portion or
|
|
||||||
derivative of it, under Section 2) in object code or executable form
|
|
||||||
under the terms of Sections 1 and 2 above provided that you accompany
|
|
||||||
it with the complete corresponding machine-readable source code, which
|
|
||||||
must be distributed under the terms of Sections 1 and 2 above on a
|
|
||||||
medium customarily used for software interchange.
|
|
||||||
|
|
||||||
If distribution of object code is made by offering access to copy
|
|
||||||
from a designated place, then offering equivalent access to copy the
|
|
||||||
source code from the same place satisfies the requirement to
|
|
||||||
distribute the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
5. A program that contains no derivative of any portion of the
|
|
||||||
Library, but is designed to work with the Library by being compiled or
|
|
||||||
linked with it, is called a "work that uses the Library". Such a
|
|
||||||
work, in isolation, is not a derivative work of the Library, and
|
|
||||||
therefore falls outside the scope of this License.
|
|
||||||
|
|
||||||
However, linking a "work that uses the Library" with the Library
|
|
||||||
creates an executable that is a derivative of the Library (because it
|
|
||||||
contains portions of the Library), rather than a "work that uses the
|
|
||||||
library". The executable is therefore covered by this License.
|
|
||||||
Section 6 states terms for distribution of such executables.
|
|
||||||
|
|
||||||
When a "work that uses the Library" uses material from a header file
|
|
||||||
that is part of the Library, the object code for the work may be a
|
|
||||||
derivative work of the Library even though the source code is not.
|
|
||||||
Whether this is true is especially significant if the work can be
|
|
||||||
linked without the Library, or if the work is itself a library. The
|
|
||||||
threshold for this to be true is not precisely defined by law.
|
|
||||||
|
|
||||||
If such an object file uses only numerical parameters, data
|
|
||||||
structure layouts and accessors, and small macros and small inline
|
|
||||||
functions (ten lines or less in length), then the use of the object
|
|
||||||
file is unrestricted, regardless of whether it is legally a derivative
|
|
||||||
work. (Executables containing this object code plus portions of the
|
|
||||||
Library will still fall under Section 6.)
|
|
||||||
|
|
||||||
Otherwise, if the work is a derivative of the Library, you may
|
|
||||||
distribute the object code for the work under the terms of Section 6.
|
|
||||||
Any executables containing that work also fall under Section 6,
|
|
||||||
whether or not they are linked directly with the Library itself.
|
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also combine or
|
|
||||||
link a "work that uses the Library" with the Library to produce a
|
|
||||||
work containing portions of the Library, and distribute that work
|
|
||||||
under terms of your choice, provided that the terms permit
|
|
||||||
modification of the work for the customer's own use and reverse
|
|
||||||
engineering for debugging such modifications.
|
|
||||||
|
|
||||||
You must give prominent notice with each copy of the work that the
|
|
||||||
Library is used in it and that the Library and its use are covered by
|
|
||||||
this License. You must supply a copy of this License. If the work
|
|
||||||
during execution displays copyright notices, you must include the
|
|
||||||
copyright notice for the Library among them, as well as a reference
|
|
||||||
directing the user to the copy of this License. Also, you must do one
|
|
||||||
of these things:
|
|
||||||
|
|
||||||
a) Accompany the work with the complete corresponding
|
|
||||||
machine-readable source code for the Library including whatever
|
|
||||||
changes were used in the work (which must be distributed under
|
|
||||||
Sections 1 and 2 above); and, if the work is an executable linked
|
|
||||||
with the Library, with the complete machine-readable "work that
|
|
||||||
uses the Library", as object code and/or source code, so that the
|
|
||||||
user can modify the Library and then relink to produce a modified
|
|
||||||
executable containing the modified Library. (It is understood
|
|
||||||
that the user who changes the contents of definitions files in the
|
|
||||||
Library will not necessarily be able to recompile the application
|
|
||||||
to use the modified definitions.)
|
|
||||||
|
|
||||||
b) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (1) uses at run time a
|
|
||||||
copy of the library already present on the user's computer system,
|
|
||||||
rather than copying library functions into the executable, and (2)
|
|
||||||
will operate properly with a modified version of the library, if
|
|
||||||
the user installs one, as long as the modified version is
|
|
||||||
interface-compatible with the version that the work was made with.
|
|
||||||
|
|
||||||
c) Accompany the work with a written offer, valid for at
|
|
||||||
least three years, to give the same user the materials
|
|
||||||
specified in Subsection 6a, above, for a charge no more
|
|
||||||
than the cost of performing this distribution.
|
|
||||||
|
|
||||||
d) If distribution of the work is made by offering access to copy
|
|
||||||
from a designated place, offer equivalent access to copy the above
|
|
||||||
specified materials from the same place.
|
|
||||||
|
|
||||||
e) Verify that the user has already received a copy of these
|
|
||||||
materials or that you have already sent this user a copy.
|
|
||||||
|
|
||||||
For an executable, the required form of the "work that uses the
|
|
||||||
Library" must include any data and utility programs needed for
|
|
||||||
reproducing the executable from it. However, as a special exception,
|
|
||||||
the materials to be distributed need not include anything that is
|
|
||||||
normally distributed (in either source or binary form) with the major
|
|
||||||
components (compiler, kernel, and so on) of the operating system on
|
|
||||||
which the executable runs, unless that component itself accompanies
|
|
||||||
the executable.
|
|
||||||
|
|
||||||
It may happen that this requirement contradicts the license
|
|
||||||
restrictions of other proprietary libraries that do not normally
|
|
||||||
accompany the operating system. Such a contradiction means you cannot
|
|
||||||
use both them and the Library together in an executable that you
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
|
||||||
Library side-by-side in a single library together with other library
|
|
||||||
facilities not covered by this License, and distribute such a combined
|
|
||||||
library, provided that the separate distribution of the work based on
|
|
||||||
the Library and of the other library facilities is otherwise
|
|
||||||
permitted, and provided that you do these two things:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work
|
|
||||||
based on the Library, uncombined with any other library
|
|
||||||
facilities. This must be distributed under the terms of the
|
|
||||||
Sections above.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library of the fact
|
|
||||||
that part of it is a work based on the Library, and explaining
|
|
||||||
where to find the accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
8. You may not copy, modify, sublicense, link with, or distribute
|
|
||||||
the Library except as expressly provided under this License. Any
|
|
||||||
attempt otherwise to copy, modify, sublicense, link with, or
|
|
||||||
distribute the Library is void, and will automatically terminate your
|
|
||||||
rights under this License. However, parties who have received copies,
|
|
||||||
or rights, from you under this License will not have their licenses
|
|
||||||
terminated so long as such parties remain in full compliance.
|
|
||||||
|
|
||||||
9. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Library or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Library (or any work based on the
|
|
||||||
Library), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Library or works based on it.
|
|
||||||
|
|
||||||
10. Each time you redistribute the Library (or any work based on the
|
|
||||||
Library), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute, link with or modify the Library
|
|
||||||
subject to these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties with
|
|
||||||
this License.
|
|
||||||
|
|
||||||
11. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Library at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Library by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Library.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under any
|
|
||||||
particular circumstance, the balance of the section is intended to apply,
|
|
||||||
and the section as a whole is intended to apply in other circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
12. If the distribution and/or use of the Library is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Library under this License may add
|
|
||||||
an explicit geographical distribution limitation excluding those countries,
|
|
||||||
so that distribution is permitted only in or among countries not thus
|
|
||||||
excluded. In such case, this License incorporates the limitation as if
|
|
||||||
written in the body of this License.
|
|
||||||
|
|
||||||
13. The Free Software Foundation may publish revised and/or new
|
|
||||||
versions of the Lesser General Public License from time to time.
|
|
||||||
Such new versions will be similar in spirit to the present version,
|
|
||||||
but may differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Library
|
|
||||||
specifies a version number of this License which applies to it and
|
|
||||||
"any later version", you have the option of following the terms and
|
|
||||||
conditions either of that version or of any later version published by
|
|
||||||
the Free Software Foundation. If the Library does not specify a
|
|
||||||
license version number, you may choose any version ever published by
|
|
||||||
the Free Software Foundation.
|
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
|
||||||
programs whose distribution conditions are incompatible with these,
|
|
||||||
write to the author to ask for permission. For software which is
|
|
||||||
copyrighted by the Free Software Foundation, write to the Free
|
|
||||||
Software Foundation; we sometimes make exceptions for this. Our
|
|
||||||
decision will be guided by the two goals of preserving the free status
|
|
||||||
of all derivatives of our free software and of promoting the sharing
|
|
||||||
and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
|
||||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
||||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
|
||||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
|
||||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
|
||||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
|
||||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
|
||||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
|
||||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
|
||||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
|
||||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
|
||||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
|
||||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
||||||
DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Libraries
|
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
|
||||||
possible use to the public, we recommend making it free software that
|
|
||||||
everyone can redistribute and change. You can do so by permitting
|
|
||||||
redistribution under these terms (or, alternatively, under the terms of the
|
|
||||||
ordinary General Public License).
|
|
||||||
|
|
||||||
To apply these terms, attach the following notices to the library. It is
|
|
||||||
safest to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least the
|
|
||||||
"copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the library's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
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, or (at your option) any later version.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
That's all there is to it!
|
|
||||||
|
|
||||||
|
|
119
README
119
README
@ -0,0 +1,119 @@
|
|||||||
|
*****************
|
||||||
|
About SALOME Mesh
|
||||||
|
*****************
|
||||||
|
|
||||||
|
SALOME Mesh module implements the functionalities for:
|
||||||
|
- Creating meshes in different ways:
|
||||||
|
* By meshing geometrical models previously created or imported by the Geometry
|
||||||
|
component;
|
||||||
|
* Bottom-up, using mesh edition operations, especially extrusion and revolution;
|
||||||
|
* By generation of the 3D mesh from the 2D mesh (the latter can be either imported
|
||||||
|
or manually created).
|
||||||
|
- Importing and exporting meshes in various formats.
|
||||||
|
- Modifying meshes with a vast array of dedicated operations.
|
||||||
|
- Creating groups of mesh elements.
|
||||||
|
- Filtering mesh entities (nodes or elements) using Filters functionality for
|
||||||
|
creating groups and applying mesh modifications.
|
||||||
|
- Viewing meshes in the VTK viewer and getting info on mesh and its sub-objects.
|
||||||
|
- Applying to meshes Quality Controls, allowing to highlight important elements.
|
||||||
|
- Taking various measurements of the mesh objects.
|
||||||
|
|
||||||
|
For more information please visit the SALOME platform web site:
|
||||||
|
|
||||||
|
<http://www.salome-platform.org/>
|
||||||
|
|
||||||
|
=======
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
|
||||||
|
SALOME platform is distributed under the GNU Lesser General Public License.
|
||||||
|
See COPYING file for more details.
|
||||||
|
|
||||||
|
Also, additional information can be found at SALOME platform web site:
|
||||||
|
|
||||||
|
<http://www.salome-platform.org/downloads/license/>
|
||||||
|
|
||||||
|
============
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
--------------
|
||||||
|
Pre-requisites
|
||||||
|
--------------
|
||||||
|
|
||||||
|
SALOME platform relies on a set of third-party softwares; some of them are needed
|
||||||
|
at build time only, while other ones are needed in runtime also.
|
||||||
|
|
||||||
|
For more information about the pre-requisites please visit SALOME platform web
|
||||||
|
site:
|
||||||
|
|
||||||
|
* Check Release Notes and Software Requirements of the latest SALOME release at
|
||||||
|
|
||||||
|
<http://www.salome-platform.org/downloads/current-version/>
|
||||||
|
|
||||||
|
* Pre-requisites page at SALOME web site:
|
||||||
|
|
||||||
|
<http://www.salome-platform.org/downloads/license/>
|
||||||
|
|
||||||
|
Note: SALOME Mesh module needs SALOME KERNEL, SALOME GUI and SALOME Geometry as
|
||||||
|
pre-requisites.
|
||||||
|
|
||||||
|
------------------
|
||||||
|
Basic Installation
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The build procedure of the SALOME platform is implemented with CMake.
|
||||||
|
In order to build the module you have to do the following actions:
|
||||||
|
|
||||||
|
1. Set up environment for pre-requisites (see "Pre-requisites" section above).
|
||||||
|
|
||||||
|
2. Create a build directory:
|
||||||
|
|
||||||
|
% mkdir SMESH_BUILD
|
||||||
|
|
||||||
|
3. Configure the build procedure:
|
||||||
|
|
||||||
|
% cd SMESH_BUILD
|
||||||
|
% cmake -DCMAKE_BUILD_TYPE=<mode> -DCMAKE_INSTALL_PREFIX=<installation_directory> <path_to_src_dir>
|
||||||
|
|
||||||
|
where
|
||||||
|
- <mode> is either Release or Debug (default: Release);
|
||||||
|
- <installation_directory> is a destination folder to install SALOME Mesh
|
||||||
|
module (default: /usr);
|
||||||
|
- <path_to_src_dir> is a path to the SALOME Mesh sources directory.
|
||||||
|
|
||||||
|
Note: by default (if CMAKE_INSTALL_PREFIX option is not given), SALOME Mesh
|
||||||
|
module will be configured for installation to the /usr directory that requires
|
||||||
|
root permissions to complete the installation.
|
||||||
|
|
||||||
|
4. Build and install:
|
||||||
|
|
||||||
|
% make
|
||||||
|
% make install
|
||||||
|
|
||||||
|
This will install SALOME Mesh module to the <installation_directory>
|
||||||
|
specified to cmake command on the previous step.
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
Custom installation
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
SALOME Mesh module supports a set of advanced configuration options;
|
||||||
|
for more details learn CMakeLists.txt file in the root source directory.
|
||||||
|
|
||||||
|
You can also use other options of cmake command to customize your installation.
|
||||||
|
Learn more about available options by typing
|
||||||
|
|
||||||
|
% cmake --help
|
||||||
|
|
||||||
|
=============
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
|
||||||
|
The directory doc contains additional documentation file of SALOME Mesh module.
|
||||||
|
|
||||||
|
===============
|
||||||
|
Troubleshooting
|
||||||
|
===============
|
||||||
|
|
||||||
|
Please, send a mail to webmaster.salome@opencascade.com.
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
###############################################################
|
###############################################################
|
||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2013-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
dnl Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
dnl
|
dnl
|
||||||
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: iso-8859-1 -*-
|
# -*- coding: iso-8859-1 -*-
|
||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
35
cvs-tags
35
cvs-tags
@ -1,35 +0,0 @@
|
|||||||
Start-v1_1a: ?
|
|
||||||
?
|
|
||||||
|
|
||||||
V1_2_1: ?
|
|
||||||
?
|
|
||||||
|
|
||||||
V1_2_2: 2003-09-26 17:00
|
|
||||||
New data structure in SMDS.
|
|
||||||
|
|
||||||
nadir_1_2_2: 2003-10-06 12:50
|
|
||||||
Branch after V1_2_2. Developpement branch for user nadir
|
|
||||||
|
|
||||||
merge_1_2_c__1_2_2: 2003-10-17 14:35
|
|
||||||
Branch after V1_2_2. Branch to merge Salome 1.2c. Initiated by Paul Rascle.
|
|
||||||
|
|
||||||
MergeV1_2c-1: 2003-10-19 13:49
|
|
||||||
End of merge_1_2_c__1_2_2 branch. This branch is ready to be merge with the head.
|
|
||||||
|
|
||||||
V1_3_0b1: 2003-11-12
|
|
||||||
First pre-release of 1.3.0. Include the merge of 1.2c branch.
|
|
||||||
|
|
||||||
nadir_update_MED_v1_3_0: 2003-11-17 10:22
|
|
||||||
New branch for user nadir. Synchronization of API with MED 1.3.
|
|
||||||
|
|
||||||
V1_3_0b2: 2003-11-18
|
|
||||||
Second pre-release of 1.3.0. Synchronization of API with MED 1.3.
|
|
||||||
|
|
||||||
V1_3_0: 2003-11-25 08:52
|
|
||||||
Release 1.3.0.
|
|
||||||
|
|
||||||
V1_3_1: 2004-01-05 14:28
|
|
||||||
Release 1.3.1. Added Netgen.
|
|
||||||
|
|
||||||
merge_1_2_d: 2003-01-20 11:25
|
|
||||||
Branch to merge Release 1.2d of Salome Pro.
|
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -2,17 +2,16 @@
|
|||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
import GEOM
|
|
||||||
from salome.geom import geomBuilder
|
from salome.geom import geomBuilder
|
||||||
geompy = geomBuilder.New(salome.myStudy)
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
import SMESH, SALOMEDS
|
import SMESH
|
||||||
from salome.smesh import smeshBuilder
|
from salome.smesh import smeshBuilder
|
||||||
smesh = smeshBuilder.New(salome.myStudy)
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
###
|
###
|
||||||
# Geometry: an assembly of a box, a cylinder and a truncated cone
|
# Geometry: an assembly of a box, a cylinder and a truncated cone
|
||||||
# meshed with tetrahedral
|
# to be meshed with tetrahedra
|
||||||
###
|
###
|
||||||
|
|
||||||
# Define values
|
# Define values
|
||||||
@ -44,14 +43,14 @@ piece = geompy.MakeFuse(box_cyl, cone)
|
|||||||
geompy.addToStudy(piece, name)
|
geompy.addToStudy(piece, name)
|
||||||
|
|
||||||
# Create a group of faces
|
# Create a group of faces
|
||||||
group = geompy.CreateGroup(piece, geompy.ShapeType["FACE"])
|
faces_group = geompy.CreateGroup(piece, geompy.ShapeType["FACE"])
|
||||||
group_name = name + "_grp"
|
group_name = name + "_grp"
|
||||||
geompy.addToStudy(group, group_name)
|
geompy.addToStudy(faces_group, group_name)
|
||||||
group.SetName(group_name)
|
faces_group.SetName(group_name)
|
||||||
|
|
||||||
# Add faces to the group
|
# Add faces to the group
|
||||||
faces = geompy.SubShapeAllIDs(piece, geompy.ShapeType["FACE"])
|
faces = geompy.SubShapeAllIDs(piece, geompy.ShapeType["FACE"])
|
||||||
geompy.UnionIDs(group, faces)
|
geompy.UnionIDs(faces_group, faces)
|
||||||
|
|
||||||
###
|
###
|
||||||
# Create a mesh
|
# Create a mesh
|
||||||
@ -60,20 +59,20 @@ geompy.UnionIDs(group, faces)
|
|||||||
# Define a mesh on a geometry
|
# Define a mesh on a geometry
|
||||||
tetra = smesh.Mesh(piece, name)
|
tetra = smesh.Mesh(piece, name)
|
||||||
|
|
||||||
# Define 1D hypothesis
|
# Define 1D algorithm and hypothesis
|
||||||
algo1d = tetra.Segment()
|
algo1d = tetra.Segment()
|
||||||
algo1d.LocalLength(10)
|
algo1d.LocalLength(10)
|
||||||
|
|
||||||
# Define 2D hypothesis
|
# Define 2D algorithm and hypothesis
|
||||||
algo2d = tetra.Triangle()
|
algo2d = tetra.Triangle()
|
||||||
algo2d.LengthFromEdges()
|
algo2d.LengthFromEdges()
|
||||||
|
|
||||||
# Define 3D hypothesis
|
# Define 3D algorithm and hypothesis
|
||||||
algo3d = tetra.Tetrahedron()
|
algo3d = tetra.Tetrahedron()
|
||||||
algo3d.MaxElementVolume(100)
|
algo3d.MaxElementVolume(100)
|
||||||
|
|
||||||
# Compute the mesh
|
# Compute the mesh
|
||||||
tetra.Compute()
|
tetra.Compute()
|
||||||
|
|
||||||
# Create a groupe of faces
|
# Create a mesh group of all triangles generated on geom faces present in faces_group
|
||||||
tetra.Group(group)
|
group = tetra.Group(faces_group)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -95,6 +95,9 @@ SET(GOOD_TESTS
|
|||||||
filters_ex33.py
|
filters_ex33.py
|
||||||
filters_ex34.py
|
filters_ex34.py
|
||||||
filters_ex36.py
|
filters_ex36.py
|
||||||
|
filters_ex37.py
|
||||||
|
filters_ex38.py
|
||||||
|
filters_ex39.py
|
||||||
filters_belong2group.py
|
filters_belong2group.py
|
||||||
grouping_elements_ex01.py
|
grouping_elements_ex01.py
|
||||||
grouping_elements_ex02.py
|
grouping_elements_ex02.py
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2015 CEA/DEN, EDF R&D
|
# Copyright (C) 2015-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Construction of a Submesh
|
# Construction of a Sub-mesh
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
@ -20,27 +20,31 @@ EdgeX = geompy.GetEdgeNearPoint(box, p5)
|
|||||||
geompy.addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
|
geompy.addToStudyInFather(box, EdgeX, "Edge [0,0,0 - 10,0,0]")
|
||||||
|
|
||||||
# create a hexahedral mesh on the box
|
# create a hexahedral mesh on the box
|
||||||
quadra = smesh.Mesh(box, "Box : quadrangle 2D mesh")
|
mesh = smesh.Mesh(box, "Box : hexahedral 3D mesh")
|
||||||
|
|
||||||
# create a regular 1D algorithm for the faces
|
# create a Regular_1D algorithm for discretization of edges
|
||||||
algo1D = quadra.Segment()
|
algo1D = mesh.Segment()
|
||||||
|
|
||||||
# define "NumberOfSegments" hypothesis to cut
|
# define "NumberOfSegments" hypothesis to cut
|
||||||
# all the edges in a fixed number of segments
|
# all the edges in a fixed number of segments
|
||||||
algo1D.NumberOfSegments(4)
|
algo1D.NumberOfSegments(4)
|
||||||
|
|
||||||
# create a quadrangle 2D algorithm for the faces
|
# create a quadrangle 2D algorithm for the faces
|
||||||
quadra.Quadrangle()
|
mesh.Quadrangle()
|
||||||
|
|
||||||
# construct a submesh on the edge with a local hypothesis
|
# construct a sub-mesh on the edge with a local Regular_1D algorithm
|
||||||
algo_local = quadra.Segment(EdgeX)
|
algo_local = mesh.Segment(EdgeX)
|
||||||
|
|
||||||
# define "Arithmetic1D" hypothesis to cut the edge in several segments with increasing arithmetic length
|
# define "Arithmetic1D" hypothesis to cut EdgeX in several segments with length arithmetically
|
||||||
|
# increasing from 1.0 to 4.0
|
||||||
algo_local.Arithmetic1D(1, 4)
|
algo_local.Arithmetic1D(1, 4)
|
||||||
|
|
||||||
# define "Propagation" hypothesis that propagates all other hypotheses
|
# define "Propagation" hypothesis that propagates algo_local and "Arithmetic1D" hypothesis
|
||||||
# on all edges of the opposite side in case of quadrangular faces
|
# on all parallel edges of the box
|
||||||
algo_local.Propagation()
|
algo_local.Propagation()
|
||||||
|
|
||||||
|
# assign a hexahedral algorithm
|
||||||
|
mesh.Hexahedron()
|
||||||
|
|
||||||
# compute the mesh
|
# compute the mesh
|
||||||
quadra.Compute()
|
mesh.Compute()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Change priority of submeshes in Mesh
|
# Change priority of sub-meshes in Mesh
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
@ -16,47 +16,44 @@ Box_1 = geompy.MakeBoxDXDYDZ(200, 200, 200)
|
|||||||
# create Mesh object on Box shape
|
# create Mesh object on Box shape
|
||||||
Mesh_1 = smesh.Mesh(Box_1)
|
Mesh_1 = smesh.Mesh(Box_1)
|
||||||
|
|
||||||
# assign mesh algorithms
|
# assign mesh algorithms and hypotheses
|
||||||
Regular_1D = Mesh_1.Segment()
|
Regular_1D = Mesh_1.Segment()
|
||||||
Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
|
Nb_Segments_1 = Regular_1D.NumberOfSegments(20)
|
||||||
Nb_Segments_1.SetDistrType( 0 )
|
|
||||||
MEFISTO_2D = Mesh_1.Triangle()
|
MEFISTO_2D = Mesh_1.Triangle()
|
||||||
Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(1200)
|
Max_Element_Area_1 = MEFISTO_2D.MaxElementArea(1200)
|
||||||
Tetrahedron = Mesh_1.Tetrahedron()
|
Tetrahedron = Mesh_1.Tetrahedron()
|
||||||
Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
|
Max_Element_Volume_1 = Tetrahedron.MaxElementVolume(40000)
|
||||||
|
|
||||||
# create submesh and assign algorithms on Face_1
|
# create sub-mesh and assign algorithms on Face_1
|
||||||
Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
|
Regular_1D_1 = Mesh_1.Segment(geom=Face_1)
|
||||||
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
|
Nb_Segments_2 = Regular_1D_1.NumberOfSegments(4)
|
||||||
Nb_Segments_2.SetDistrType( 0 )
|
|
||||||
MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)
|
MEFISTO_2D_1 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_1)
|
||||||
Length_From_Edges_2D = MEFISTO_2D_1.LengthFromEdges()
|
|
||||||
SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
|
SubMesh_1 = MEFISTO_2D_1.GetSubMesh()
|
||||||
|
|
||||||
# create submesh and assign algorithms on Face_2
|
# create sub-mesh and assign algorithms on Face_2
|
||||||
Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
|
Regular_1D_2 = Mesh_1.Segment(geom=Face_2)
|
||||||
Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
|
Nb_Segments_3 = Regular_1D_2.NumberOfSegments(8)
|
||||||
Nb_Segments_3.SetDistrType( 0 )
|
|
||||||
MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_2)
|
MEFISTO_2D_2 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_2)
|
||||||
Length_From_Edges_2D_1 = MEFISTO_2D_2.LengthFromEdges()
|
|
||||||
SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
|
SubMesh_2 = MEFISTO_2D_2.GetSubMesh()
|
||||||
|
|
||||||
# create submesh and assign algorithms on Face_3
|
# create sub-mesh and assign algorithms on Face_3
|
||||||
Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
|
Regular_1D_3 = Mesh_1.Segment(geom=Face_3)
|
||||||
Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
|
Nb_Segments_4 = Regular_1D_3.NumberOfSegments(12)
|
||||||
Nb_Segments_4.SetDistrType( 0 )
|
|
||||||
MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_3)
|
MEFISTO_2D_3 = Mesh_1.Triangle(algo=smeshBuilder.MEFISTO,geom=Face_3)
|
||||||
Length_From_Edges_2D_2 = MEFISTO_2D_3.LengthFromEdges()
|
|
||||||
SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
|
SubMesh_3 = MEFISTO_2D_3.GetSubMesh()
|
||||||
|
|
||||||
# check exisiting submesh priority order
|
# check exisiting sub-mesh priority order
|
||||||
[ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
|
[ [ SubMesh_1, SubMesh_3, SubMesh_2 ] ] = Mesh_1.GetMeshOrder()
|
||||||
# set new submesh order
|
isDone = Mesh_1.Compute()
|
||||||
|
print "Nb elements at initial order of sub-meshes:", Mesh_1.NbElements()
|
||||||
|
|
||||||
|
# set new sub-mesh order
|
||||||
isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_1, SubMesh_2, SubMesh_3 ] ])
|
isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_1, SubMesh_2, SubMesh_3 ] ])
|
||||||
# compute mesh
|
# compute mesh
|
||||||
isDone = Mesh_1.Compute()
|
isDone = Mesh_1.Compute()
|
||||||
|
print "Nb elements at new order of sub-meshes:", Mesh_1.NbElements()
|
||||||
|
|
||||||
# clear mesh result and compute with other submesh order
|
# compute with other sub-mesh order
|
||||||
Mesh_1.Clear()
|
|
||||||
isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_2, SubMesh_1, SubMesh_3 ] ])
|
isDone = Mesh_1.SetMeshOrder( [ [ SubMesh_2, SubMesh_1, SubMesh_3 ] ])
|
||||||
isDone = Mesh_1.Compute()
|
isDone = Mesh_1.Compute()
|
||||||
|
print "Nb elements at another order of sub-meshes:", Mesh_1.NbElements()
|
||||||
|
@ -46,8 +46,7 @@ tria.Compute()
|
|||||||
PrintMeshInfo(tria)
|
PrintMeshInfo(tria)
|
||||||
|
|
||||||
# remove a local hypothesis
|
# remove a local hypothesis
|
||||||
mesh = tria.GetMesh()
|
tria.RemoveHypothesis(hyp4, edge)
|
||||||
mesh.RemoveHypothesis(edge, hyp4)
|
|
||||||
|
|
||||||
# compute the mesh
|
# compute the mesh
|
||||||
tria.Compute()
|
tria.Compute()
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
# Creating a hexahedral mesh on a cylinder.
|
# Creating a hexahedral mesh on a cylinder.
|
||||||
# Note: it is a copy of 'ex24_cylinder.py' from SMESH_SWIG
|
#
|
||||||
|
# This example uses Partition to divide the cylinder into blocks, which is
|
||||||
|
# a general approach. But for the case of cylinder there is a dedicated
|
||||||
|
# command creating a blocked cylinder: geompy.MakeDividedCylinder()
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
@ -59,8 +62,7 @@ def group(name, shape, type, base=None, direction=None):
|
|||||||
t = geompy.ShapeType[type]
|
t = geompy.ShapeType[type]
|
||||||
g = geompy.CreateGroup(shape, t)
|
g = geompy.CreateGroup(shape, t)
|
||||||
|
|
||||||
geompy.addToStudy(g, name)
|
geompy.addToStudyInFather(shape, g, name)
|
||||||
g.SetName(name)
|
|
||||||
|
|
||||||
if base!=None:
|
if base!=None:
|
||||||
l = geompy.GetShapesOnPlaneWithLocationIDs(shape, t, direction, base, GEOM.ST_ON)
|
l = geompy.GetShapesOnPlaneWithLocationIDs(shape, t, direction, base, GEOM.ST_ON)
|
||||||
@ -84,12 +86,12 @@ geompy.DifferenceList(group_1, [group_1_box])
|
|||||||
|
|
||||||
smesh.SetCurrentStudy(salome.myStudy)
|
smesh.SetCurrentStudy(salome.myStudy)
|
||||||
|
|
||||||
def discretize(x, y, z, n, s=blocks):
|
def discretize(x, y, z, nbSeg, shape=blocks):
|
||||||
p = geompy.MakeVertex(x, y, z)
|
vert = geompy.MakeVertex( x, y, z )
|
||||||
e = geompy.GetEdgeNearPoint(s, p)
|
edge = geompy.GetEdgeNearPoint( shape, vert )
|
||||||
a = hexa.Segment(e)
|
algo = hexa.Segment( edge )
|
||||||
a.NumberOfSegments(n)
|
algo.NumberOfSegments( nbSeg )
|
||||||
a.Propagation()
|
algo.Propagation()
|
||||||
|
|
||||||
hexa = smesh.Mesh(blocks)
|
hexa = smesh.Mesh(blocks)
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ smesh = smeshBuilder.New(salome.myStudy)
|
|||||||
box = geompy.MakeBoxDXDYDZ(100,100,100)
|
box = geompy.MakeBoxDXDYDZ(100,100,100)
|
||||||
face = geompy.SubShapeAllSorted(box, geompy.ShapeType["FACE"])[0]
|
face = geompy.SubShapeAllSorted(box, geompy.ShapeType["FACE"])[0]
|
||||||
|
|
||||||
# generate 3D mesh
|
# generate a prismatic 3D mesh
|
||||||
mesh = smesh.Mesh(box)
|
mesh = smesh.Mesh(box)
|
||||||
localAlgo = mesh.Triangle(face)
|
localAlgo = mesh.Triangle(face)
|
||||||
mesh.AutomaticHexahedralization()
|
mesh.AutomaticHexahedralization()
|
||||||
@ -44,4 +44,4 @@ nodeIds = nGroup.GetIDs()[-10:]
|
|||||||
newMesh = smesh.CopyMesh( mesh.GetIDSource( nodeIds, SMESH.NODE), "some nodes copy")
|
newMesh = smesh.CopyMesh( mesh.GetIDSource( nodeIds, SMESH.NODE), "some nodes copy")
|
||||||
|
|
||||||
# 6. copy a sub-mesh
|
# 6. copy a sub-mesh
|
||||||
newMesh = smesh.CopyMesh( subMesh, "submesh copy" )
|
newMesh = smesh.CopyMesh( subMesh, "sub-mesh copy" )
|
||||||
|
@ -37,7 +37,7 @@ algo.NumberOfSegments(20)
|
|||||||
# assign triangulation algorithm
|
# assign triangulation algorithm
|
||||||
algo = tria_mesh.Triangle()
|
algo = tria_mesh.Triangle()
|
||||||
|
|
||||||
# apply "Max Element Area" hypothesis to each triangle
|
# assign "Max Element Area" hypothesis
|
||||||
algo.MaxElementArea(100)
|
algo.MaxElementArea(100)
|
||||||
|
|
||||||
# compute the mesh
|
# compute the mesh
|
||||||
|
@ -24,12 +24,13 @@ tria = smesh.Mesh(face1, "Face : triangle 2D mesh")
|
|||||||
|
|
||||||
# Define 1D meshing
|
# Define 1D meshing
|
||||||
algo1D = tria.Segment()
|
algo1D = tria.Segment()
|
||||||
algo1D.NumberOfSegments(2)
|
algo1D.LocalLength(3.)
|
||||||
|
|
||||||
# create and assign the algorithm for 2D meshing with triangles
|
# create and assign the algorithm for 2D meshing with triangles
|
||||||
algo2D = tria.Triangle()
|
algo2D = tria.Triangle()
|
||||||
|
|
||||||
# create and assign "LengthFromEdges" hypothesis to build triangles based on the length of the edges taken from the wire
|
# create and assign "LengthFromEdges" hypothesis to build triangles with
|
||||||
|
# linear size close to the length of the segments generated on the face wires (3.)
|
||||||
algo2D.LengthFromEdges()
|
algo2D.LengthFromEdges()
|
||||||
|
|
||||||
# compute the mesh
|
# compute the mesh
|
||||||
|
@ -14,7 +14,7 @@ smesh = smeshBuilder.New(salome.myStudy)
|
|||||||
box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
|
box = geompy.MakeBoxDXDYDZ(10., 10., 10.)
|
||||||
geompy.addToStudy(box, "Box")
|
geompy.addToStudy(box, "Box")
|
||||||
|
|
||||||
# 1. Create a hexahedral mesh on the box
|
# Create a hexahedral mesh on the box
|
||||||
hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
|
hexa = smesh.Mesh(box, "Box : hexahedrical mesh")
|
||||||
|
|
||||||
# create a Regular 1D algorithm for edges
|
# create a Regular 1D algorithm for edges
|
||||||
|
@ -24,7 +24,7 @@ faces = geompy.SubShapeAll(box, geompy.ShapeType["FACE"])
|
|||||||
f1 = faces[2]
|
f1 = faces[2]
|
||||||
f2 = faces[0]
|
f2 = faces[0]
|
||||||
# face opposite to f2
|
# face opposite to f2
|
||||||
f2opp = faces[1]
|
f2opp = geompy.GetOppositeFace( box, f2 )
|
||||||
|
|
||||||
# Get vertices used to specify how to associate sides of faces at projection
|
# Get vertices used to specify how to associate sides of faces at projection
|
||||||
[v1F1, v2F1] = geompy.SubShapeAll(f1, geompy.ShapeType["VERTEX"])[:2]
|
[v1F1, v2F1] = geompy.SubShapeAll(f1, geompy.ShapeType["VERTEX"])[:2]
|
||||||
@ -48,7 +48,7 @@ src_mesh = smesh.Mesh(box, "Source mesh")
|
|||||||
src_mesh.Segment().NumberOfSegments(9,10)
|
src_mesh.Segment().NumberOfSegments(9,10)
|
||||||
src_mesh.Quadrangle()
|
src_mesh.Quadrangle()
|
||||||
src_mesh.Hexahedron()
|
src_mesh.Hexahedron()
|
||||||
src_mesh.Triangle(f1) # triangular sumbesh
|
src_mesh.Triangle(f1) # triangular sub-mesh
|
||||||
src_mesh.Compute()
|
src_mesh.Compute()
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,7 +27,8 @@ geompy.addToStudy( box, 'box' )
|
|||||||
geompy.addToStudyInFather( box, Face_1, 'Face_1' )
|
geompy.addToStudyInFather( box, Face_1, 'Face_1' )
|
||||||
geompy.addToStudyInFather( box, Face_2, 'Face_2' )
|
geompy.addToStudyInFather( box, Face_2, 'Face_2' )
|
||||||
|
|
||||||
# Make the source mesh with Netgem2D
|
|
||||||
|
# Make the source mesh triangulated by MEFISTO
|
||||||
src_mesh = smesh.Mesh(Face_1, "Source mesh")
|
src_mesh = smesh.Mesh(Face_1, "Source mesh")
|
||||||
src_mesh.Segment().NumberOfSegments(15)
|
src_mesh.Segment().NumberOfSegments(15)
|
||||||
src_mesh.Triangle()
|
src_mesh.Triangle()
|
||||||
|
@ -13,8 +13,7 @@ smesh = smeshBuilder.New(salome.myStudy)
|
|||||||
# Create face from the wire and add to study
|
# Create face from the wire and add to study
|
||||||
Face = geompy.MakeSketcher("Sketcher:F 0 0:TT 20 0:R 90:C 20 90:WF", [0, 0, 0, 1, 0, 0, 0, 0, 1])
|
Face = geompy.MakeSketcher("Sketcher:F 0 0:TT 20 0:R 90:C 20 90:WF", [0, 0, 0, 1, 0, 0, 0, 0, 1])
|
||||||
geompy.addToStudy(Face,"Face")
|
geompy.addToStudy(Face,"Face")
|
||||||
edges = geompy.SubShapeAllSorted(Face, geompy.ShapeType["EDGE"])
|
circle, radius1, radius2 = geompy.SubShapeAllSorted(Face, geompy.ShapeType["EDGE"])
|
||||||
circle, radius1, radius2 = edges
|
|
||||||
geompy.addToStudyInFather(Face, radius1,"radius1")
|
geompy.addToStudyInFather(Face, radius1,"radius1")
|
||||||
geompy.addToStudyInFather(Face, radius2,"radius2")
|
geompy.addToStudyInFather(Face, radius2,"radius2")
|
||||||
geompy.addToStudyInFather(Face, circle,"circle")
|
geompy.addToStudyInFather(Face, circle,"circle")
|
||||||
|
@ -2,15 +2,16 @@
|
|||||||
|
|
||||||
# create mesh
|
# create mesh
|
||||||
from SMESH_mechanic import *
|
from SMESH_mechanic import *
|
||||||
|
print
|
||||||
|
|
||||||
# create a group of all faces (quadrangles) generated on sub_face3
|
# create a group of all faces (quadrangles) generated on sub_face3
|
||||||
faces_on_face3 = mesh.MakeGroup("faces_on_face3", SMESH.FACE, SMESH.FT_BelongToGeom,'=',sub_face3)
|
quads_on_face3 = mesh.MakeGroup("quads_on_face3", SMESH.FACE, SMESH.FT_BelongToGeom,'=',sub_face3)
|
||||||
print "There are %s quadrangles generated on '%s' and included in the group '%s'" % ( faces_on_face3.Size(), sub_face3.GetName(), faces_on_face3.GetName() )
|
print "There are %s quadrangles generated on '%s' and included in the group '%s'" % ( quads_on_face3.Size(), sub_face3.GetName(), quads_on_face3.GetName() )
|
||||||
|
|
||||||
# create a group of all the rest quadrangles, generated on other faces by combining 2 criteria:
|
# create a group of all the rest quadrangles, generated on other faces by combining 2 criteria:
|
||||||
# - negated FT_BelongToMeshGroup to select elements not included in faces_on_face3
|
# - negated FT_BelongToMeshGroup to select elements not included in quads_on_face3
|
||||||
# - FT_ElemGeomType to select quadrangles
|
# - FT_ElemGeomType to select quadrangles
|
||||||
not_on_face3 = smesh.GetCriterion( SMESH.FACE, SMESH.FT_BelongToMeshGroup,'=',faces_on_face3, SMESH.FT_LogicalNOT )
|
not_on_face3 = smesh.GetCriterion( SMESH.FACE, SMESH.FT_BelongToMeshGroup,'=',quads_on_face3, SMESH.FT_LogicalNOT )
|
||||||
quadrangles = smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=',SMESH.Geom_QUADRANGLE )
|
quadrangles = smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=',SMESH.Geom_QUADRANGLE )
|
||||||
|
|
||||||
rest_quads = mesh.MakeGroupByCriteria("rest_quads", [ not_on_face3, quadrangles ])
|
rest_quads = mesh.MakeGroupByCriteria("rest_quads", [ not_on_face3, quadrangles ])
|
||||||
|
@ -1,16 +1,22 @@
|
|||||||
# Aspect ratio
|
# Aspect ratio
|
||||||
|
# This script demonstrates various usages of filters
|
||||||
|
|
||||||
# create mesh
|
# create mesh
|
||||||
from SMESH_mechanic import *
|
from SMESH_mechanic import *
|
||||||
|
|
||||||
# get faces with aspect ratio > 1.5
|
# get faces with aspect ratio > 2.5
|
||||||
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, SMESH.FT_MoreThan, 1.5)
|
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, SMESH.FT_MoreThan, 2.5)
|
||||||
ids = mesh.GetIdsFromFilter(filter)
|
ids = mesh.GetIdsFromFilter(filter)
|
||||||
|
print "Number of faces with aspect ratio > 2.5:", len(ids)
|
||||||
|
|
||||||
|
# get faces with aspect ratio > 1.5
|
||||||
|
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_AspectRatio, '>', 1.5, mesh=mesh)
|
||||||
|
ids = filter.GetIDs()
|
||||||
print "Number of faces with aspect ratio > 1.5:", len(ids)
|
print "Number of faces with aspect ratio > 1.5:", len(ids)
|
||||||
|
|
||||||
# copy the faces with aspect ratio > 1.5 to another mesh;
|
# copy the faces with aspect ratio > 1.5 to another mesh;
|
||||||
# this demostrates that a filter can be used where usually a group or sub-mesh is acceptable
|
# this demostrates that a filter can be used where usually a group or sub-mesh is acceptable
|
||||||
filter.SetMesh( mesh.GetMesh() )
|
filter.SetMesh( mesh.GetMesh() ) # - actually non necessary as mesh is set at filter creation
|
||||||
mesh2 = smesh.CopyMesh( filter, "AR > 1.5" )
|
mesh2 = smesh.CopyMesh( filter, "AR > 1.5" )
|
||||||
print "Number of copied faces with aspect ratio > 1.5:", mesh2.NbFaces()
|
print "Number of copied faces with aspect ratio > 1.5:", mesh2.NbFaces()
|
||||||
|
|
||||||
|
@ -1,23 +1,21 @@
|
|||||||
# Free borders
|
# Free borders
|
||||||
|
|
||||||
# create mesh
|
# initialize SALOME and modules
|
||||||
|
import salome, SMESH
|
||||||
import salome
|
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
import GEOM
|
|
||||||
from salome.geom import geomBuilder
|
from salome.geom import geomBuilder
|
||||||
geompy = geomBuilder.New(salome.myStudy)
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
import SMESH, SALOMEDS
|
|
||||||
from salome.smesh import smeshBuilder
|
from salome.smesh import smeshBuilder
|
||||||
smesh = smeshBuilder.New(salome.myStudy)
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
|
# create mesh
|
||||||
face = geompy.MakeFaceHW(100, 100, 1)
|
face = geompy.MakeFaceHW(100, 100, 1)
|
||||||
geompy.addToStudy( face, "quadrangle" )
|
geompy.addToStudy( face, "quadrangle" )
|
||||||
mesh = smesh.Mesh(face)
|
mesh = smesh.Mesh(face)
|
||||||
mesh.Segment().NumberOfSegments(10)
|
mesh.Segment().NumberOfSegments(10)
|
||||||
mesh.Triangle().MaxElementArea(25)
|
mesh.Triangle().MaxElementArea(25)
|
||||||
mesh.Compute()
|
mesh.Compute()
|
||||||
|
|
||||||
# get all free borders
|
# get all free borders
|
||||||
filter = smesh.GetFilter(SMESH.EDGE, SMESH.FT_FreeBorders)
|
filter = smesh.GetFilter(SMESH.EDGE, SMESH.FT_FreeBorders)
|
||||||
ids = mesh.GetIdsFromFilter(filter)
|
ids = mesh.GetIdsFromFilter(filter)
|
||||||
|
@ -1,23 +1,21 @@
|
|||||||
# Free edges
|
# Free edges
|
||||||
|
|
||||||
# create mesh
|
# initialize SALOME and modules
|
||||||
|
import salome, SMESH
|
||||||
import salome
|
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
import GEOM
|
|
||||||
from salome.geom import geomBuilder
|
from salome.geom import geomBuilder
|
||||||
geompy = geomBuilder.New(salome.myStudy)
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
import SMESH, SALOMEDS
|
|
||||||
from salome.smesh import smeshBuilder
|
from salome.smesh import smeshBuilder
|
||||||
smesh = smeshBuilder.New(salome.myStudy)
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
|
# create mesh
|
||||||
face = geompy.MakeFaceHW(100, 100, 1)
|
face = geompy.MakeFaceHW(100, 100, 1)
|
||||||
geompy.addToStudy( face, "quadrangle" )
|
geompy.addToStudy( face, "quadrangle" )
|
||||||
mesh = smesh.Mesh(face)
|
mesh = smesh.Mesh(face)
|
||||||
mesh.Segment().NumberOfSegments(10)
|
mesh.Segment().NumberOfSegments(10)
|
||||||
mesh.Triangle().MaxElementArea(25)
|
mesh.Triangle().MaxElementArea(25)
|
||||||
mesh.Compute()
|
mesh.Compute()
|
||||||
|
|
||||||
# get all faces with free edges
|
# get all faces with free edges
|
||||||
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_FreeEdges)
|
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_FreeEdges)
|
||||||
ids = mesh.GetIdsFromFilter(filter)
|
ids = mesh.GetIdsFromFilter(filter)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
from SMESH_mechanic import *
|
from SMESH_mechanic import *
|
||||||
# remove some faces to have faces with bare borders
|
# remove some faces to have faces with bare borders
|
||||||
mesh.RemoveElements( mesh.GetElementsByType(SMESH.FACE)[0:5] )
|
mesh.RemoveElements( mesh.GetElementsByType(SMESH.FACE)[0:5] )
|
||||||
# get all faces bare borders
|
# get all faces with bare borders
|
||||||
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_BareBorderFace)
|
filter = smesh.GetFilter(SMESH.FACE, SMESH.FT_BareBorderFace)
|
||||||
ids = mesh.GetIdsFromFilter(filter)
|
ids = mesh.GetIdsFromFilter(filter)
|
||||||
print "Faces with bare borders:", ids
|
print "Faces with bare borders:", ids
|
||||||
|
@ -1,16 +1,12 @@
|
|||||||
# Double nodes
|
# Double nodes
|
||||||
|
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
import GEOM
|
|
||||||
from salome.geom import geomBuilder
|
from salome.geom import geomBuilder
|
||||||
geompy = geomBuilder.New(salome.myStudy)
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
import SMESH
|
||||||
import SMESH, SALOMEDS
|
|
||||||
from salome.smesh import smeshBuilder
|
from salome.smesh import smeshBuilder
|
||||||
smesh = smeshBuilder.New(salome.myStudy)
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
import salome_notebook
|
|
||||||
|
|
||||||
# make a mesh on a box
|
# make a mesh on a box
|
||||||
box = geompy.MakeBoxDXDYDZ(100,100,100)
|
box = geompy.MakeBoxDXDYDZ(100,100,100)
|
||||||
@ -20,8 +16,8 @@ mesh.Quadrangle()
|
|||||||
mesh.Hexahedron()
|
mesh.Hexahedron()
|
||||||
mesh.Compute()
|
mesh.Compute()
|
||||||
# copy all elements with translation
|
# copy all elements with translation
|
||||||
mesh.TranslateObject( mesh, smesh.MakeDirStruct( 10,0,0), Copy=True )
|
mesh.TranslateObject( mesh, [10,0,0], Copy=True )
|
||||||
# create filters to find nodes equal within tolerance of 1e-5
|
# create a filter to find nodes equal within tolerance of 1e-5
|
||||||
filter = smesh.GetFilter(SMESH.NODE, SMESH.FT_EqualNodes, Tolerance=1e-5)
|
filter = smesh.GetFilter(SMESH.NODE, SMESH.FT_EqualNodes, Tolerance=1e-5)
|
||||||
# get equal nodes
|
# get equal nodes
|
||||||
print "Number of equal nodes:", len( mesh.GetIdsFromFilter( filter ))
|
print "Number of equal nodes:", len( mesh.GetIdsFromFilter( filter ))
|
||||||
|
@ -1,8 +1,25 @@
|
|||||||
# Borders at multi-connection
|
# Borders at multi-connection
|
||||||
|
|
||||||
# create mesh
|
import salome
|
||||||
from SMESH_mechanic import *
|
salome.salome_init()
|
||||||
# get border edges with number of connected faces = 5
|
from salome.geom import geomBuilder
|
||||||
filter = smesh.GetFilter(SMESH.EDGE, SMESH.FT_MultiConnection, 5)
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
import SMESH
|
||||||
|
from salome.smesh import smeshBuilder
|
||||||
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
|
# make a mesh on a box
|
||||||
|
box = geompy.MakeBoxDXDYDZ(100,100,100)
|
||||||
|
mesh = smesh.Mesh( box, "Box" )
|
||||||
|
mesh.Segment().NumberOfSegments(10)
|
||||||
|
mesh.Quadrangle()
|
||||||
|
mesh.Hexahedron()
|
||||||
|
mesh.Compute()
|
||||||
|
# copy all elements with translation and merge nodes
|
||||||
|
mesh.TranslateObject( mesh, [10,0,0], Copy=True )
|
||||||
|
mesh.MergeNodes( mesh.FindCoincidentNodes( 1e-5 ))
|
||||||
|
|
||||||
|
# get mesh edges with number of connected elements (faces and volumes) == 3
|
||||||
|
filter = smesh.GetFilter(SMESH.EDGE, SMESH.FT_MultiConnection, 3)
|
||||||
ids = mesh.GetIdsFromFilter(filter)
|
ids = mesh.GetIdsFromFilter(filter)
|
||||||
print "Number of border edges with 5 faces connected:", len(ids)
|
print "Number of border edges with 3 faces connected:", len(ids)
|
||||||
|
15
doc/salome/examples/filters_ex37.py
Normal file
15
doc/salome/examples/filters_ex37.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Entity type
|
||||||
|
|
||||||
|
# create a mesh
|
||||||
|
from SMESH_mechanic import *
|
||||||
|
|
||||||
|
# make the mesh quadratic
|
||||||
|
mesh.ConvertToQuadratic()
|
||||||
|
# make some elements bi-quadratic
|
||||||
|
for face in SubFaceL[: len(SubFaceL)/2]:
|
||||||
|
mesh.ConvertToQuadratic( theSubMesh=mesh.Group( face ), theToBiQuad=True )
|
||||||
|
|
||||||
|
# get triangles with 7 nodes
|
||||||
|
filter_tri = smesh.GetFilter(SMESH.FACE, SMESH.FT_EntityType,'=', SMESH.Entity_BiQuad_Triangle )
|
||||||
|
ids_tri = mesh.GetIdsFromFilter(filter_tri)
|
||||||
|
print "Number of bi-quadratic triangles:", len(ids_tri)
|
15
doc/salome/examples/filters_ex38.py
Normal file
15
doc/salome/examples/filters_ex38.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Ball diameter
|
||||||
|
|
||||||
|
# create a mesh
|
||||||
|
from SMESH_mechanic import *
|
||||||
|
|
||||||
|
# create several balls with increasing diameter
|
||||||
|
for i in range(1,10):
|
||||||
|
diameter = float( i )
|
||||||
|
mesh.AddBall( i, diameter )
|
||||||
|
pass
|
||||||
|
|
||||||
|
# get balls with diameter > 5.
|
||||||
|
diam_filter = smesh.GetFilter(SMESH.BALL, SMESH.FT_BallDiameter,'>', 5. )
|
||||||
|
ids = mesh.GetIdsFromFilter( diam_filter )
|
||||||
|
print "Number of balls with diameter > 5:", len(ids)
|
45
doc/salome/examples/filters_ex39.py
Normal file
45
doc/salome/examples/filters_ex39.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Elements of a domain
|
||||||
|
|
||||||
|
import salome, SMESH
|
||||||
|
salome.salome_init()
|
||||||
|
from salome.geom import geomBuilder
|
||||||
|
geompy = geomBuilder.New(salome.myStudy)
|
||||||
|
from salome.smesh import smeshBuilder
|
||||||
|
smesh = smeshBuilder.New(salome.myStudy)
|
||||||
|
|
||||||
|
# create two boxes to have two domains in the mesh
|
||||||
|
|
||||||
|
box1 = geompy.MakeBoxDXDYDZ( 100,100,100 )
|
||||||
|
box2 = geompy.MakeTranslation( box1, 200, 0, 0 )
|
||||||
|
boxes = geompy.MakeCompound( [box1, box2] )
|
||||||
|
box1, box2 = geompy.SubShapeAll( boxes, geompy.ShapeType["SHAPE"], "box")
|
||||||
|
|
||||||
|
vertex = geompy.SubShape( box1, geompy.ShapeType["VERTEX"], [1] )
|
||||||
|
|
||||||
|
# create a mesh
|
||||||
|
|
||||||
|
mesh = smesh.Mesh( boxes )
|
||||||
|
mesh.Segment(box1).NumberOfSegments( 5 ) # to have different nb of elements on the boxes
|
||||||
|
mesh.Segment(box2).NumberOfSegments( 10 )
|
||||||
|
mesh.Quadrangle()
|
||||||
|
mesh.Hexahedron()
|
||||||
|
mesh.Compute()
|
||||||
|
|
||||||
|
# Create filters with FT_ConnectedElements criterion by pointing a domain in different ways:
|
||||||
|
|
||||||
|
# using point coordinates in box_1
|
||||||
|
nodeFilter = smesh.GetFilter( SMESH.NODE, SMESH.FT_ConnectedElements, "=", "1.,2,10", mesh=mesh )
|
||||||
|
print "Nb. nodes in box_1:", len( nodeFilter.GetIDs())
|
||||||
|
|
||||||
|
# using point coordinates in box_2
|
||||||
|
edgeFilter = smesh.GetFilter( SMESH.EDGE, SMESH.FT_ConnectedElements, "=", [202,1,1 ], mesh=mesh )
|
||||||
|
print "Nb. segments in box_2:", len( edgeFilter.GetIDs())
|
||||||
|
|
||||||
|
# using a geom vertex of box_1
|
||||||
|
faceFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_ConnectedElements, "=", vertex, mesh=mesh )
|
||||||
|
print "Nb. faces in box_1:", len( edgeFilter.GetIDs())
|
||||||
|
|
||||||
|
# using node ID in box_2
|
||||||
|
voluFilter = smesh.GetFilter( SMESH.VOLUME, SMESH.FT_ConnectedElements, "=", 10, mesh=mesh )
|
||||||
|
print "Nb. volumes in box_2:", len( voluFilter.GetIDs())
|
||||||
|
|
@ -19,4 +19,62 @@ aGroup1 = mesh.MakeGroupByIds("Area > 100", SMESH.FACE, anIds)
|
|||||||
aGroup2 = mesh.CreateEmptyGroup(SMESH.NODE, "all nodes")
|
aGroup2 = mesh.CreateEmptyGroup(SMESH.NODE, "all nodes")
|
||||||
aGroup2.AddFrom(mesh.mesh)
|
aGroup2.AddFrom(mesh.mesh)
|
||||||
|
|
||||||
|
|
||||||
|
# ====================================
|
||||||
|
# Various methods of the Group object
|
||||||
|
# ====================================
|
||||||
|
|
||||||
|
aGroup = mesh.CreateEmptyGroup(SMESH.NODE, "aGroup")
|
||||||
|
|
||||||
|
# set/get group name
|
||||||
|
aGroup.SetName( "new name" )
|
||||||
|
print "name", aGroup.GetName()
|
||||||
|
|
||||||
|
# get group type (type of entities in the group, SMESH.NODE in our case)
|
||||||
|
print "type", aGroup.GetType()
|
||||||
|
|
||||||
|
# get number of entities (nodes in our case) in the group
|
||||||
|
print "size", aGroup.Size()
|
||||||
|
|
||||||
|
# check of emptiness
|
||||||
|
print "is empty", aGroup.IsEmpty()
|
||||||
|
|
||||||
|
# check of presence of an entity in the group
|
||||||
|
aGroup.Add([1,2]) # method specific to the standalone group
|
||||||
|
print "contains node 2", aGroup.Contains(2)
|
||||||
|
|
||||||
|
# get an entity by index
|
||||||
|
print "1st node", aGroup.GetID(1)
|
||||||
|
|
||||||
|
# get all entities
|
||||||
|
print "all", aGroup.GetIDs()
|
||||||
|
|
||||||
|
# get number of nodes (actual for groups of elements)
|
||||||
|
print "nb nodes", aGroup.GetNumberOfNodes()
|
||||||
|
|
||||||
|
# get underlying nodes (actual for groups of elements)
|
||||||
|
print "nodes", aGroup.GetNodeIDs()
|
||||||
|
|
||||||
|
# set/get color
|
||||||
|
import SALOMEDS
|
||||||
|
aGroup.SetColor( SALOMEDS.Color(1.,1.,0.));
|
||||||
|
print "color", aGroup.GetColor()
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# methods specific to the standalone group and not present in GroupOnGeometry
|
||||||
|
# and GroupOnFilter
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# clear the group's contents
|
||||||
|
aGroup.Clear()
|
||||||
|
|
||||||
|
# add contents of other object (group, sub-mesh, filter)
|
||||||
|
aGroup.AddFrom( aGroup2 )
|
||||||
|
|
||||||
|
# removes entities
|
||||||
|
aGroup.Remove( [2,3,4] )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
salome.sg.updateObjBrowser(1)
|
salome.sg.updateObjBrowser(1)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Use 3D extrusion meshing algorithm
|
# Usage of 3D Extrusion meshing algorithm
|
||||||
|
|
||||||
import salome
|
import salome
|
||||||
salome.salome_init()
|
salome.salome_init()
|
||||||
@ -58,7 +58,7 @@ mesh = smesh.Mesh( prisms )
|
|||||||
|
|
||||||
# assign Global hypotheses
|
# assign Global hypotheses
|
||||||
|
|
||||||
# 1D algorithm and hypothesis for vertical division
|
# 1D algorithm and hypothesis for division along the pipe
|
||||||
mesh.Segment().NumberOfSegments(15)
|
mesh.Segment().NumberOfSegments(15)
|
||||||
|
|
||||||
# Extrusion 3D algo
|
# Extrusion 3D algo
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
@ -30,7 +30,7 @@ SET(kernel_file "${KERNEL_ROOT_DIR}/bin/salome/prepare_generating_doc.py")
|
|||||||
|
|
||||||
SALOME_ACCUMULATE_ENVIRONMENT(SMESH_MeshersList NOCHECK ${DOC_SMESH_MeshersList})
|
SALOME_ACCUMULATE_ENVIRONMENT(SMESH_MeshersList NOCHECK ${DOC_SMESH_MeshersList})
|
||||||
|
|
||||||
SET(_cmd_options ${smesh_file} -d -o tmp1/smeshBuilder.py StdMeshers)
|
SET(_cmd_options ${smesh_file} -o tmp1/smeshBuilder.py StdMeshers)
|
||||||
SALOME_GENERATE_ENVIRONMENT_SCRIPT(_cmd env_script "${PYTHON_EXECUTABLE}" "${_cmd_options}")
|
SALOME_GENERATE_ENVIRONMENT_SCRIPT(_cmd env_script "${PYTHON_EXECUTABLE}" "${_cmd_options}")
|
||||||
|
|
||||||
ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp1
|
ADD_CUSTOM_TARGET(usr_docs ${CMAKE_COMMAND} -E make_directory tmp1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: iso-8859-1 -*-
|
# -*- coding: iso-8859-1 -*-
|
||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 33 KiB |
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
\b Filters allow picking only the mesh elements satisfying to a
|
\b Filters allow picking only the mesh elements satisfying to a
|
||||||
specific condition or a set of conditions. Filters can be used to create
|
specific condition or a set of conditions. Filters can be used to create
|
||||||
or edit mesh groups, remove elements from the mesh object, control
|
or edit mesh groups, remove elements from the mesh, control
|
||||||
mesh quality by different parameters, etc.
|
mesh quality by different parameters, etc.
|
||||||
|
|
||||||
Several criteria can be combined together by using logical operators \a
|
Several criteria can be combined together by using logical operators \a
|
||||||
AND and \a OR. In addition, applied filter criterion can be reverted
|
AND and \a OR. In addition, a filter criterion can be reverted
|
||||||
using logical operator \a NOT.
|
using logical operator \a NOT.
|
||||||
|
|
||||||
Some filtering criteria use the functionality of \ref quality_page "mesh quality controls"
|
Some filtering criteria use the functionality of \ref quality_page "mesh quality controls"
|
||||||
@ -27,6 +27,8 @@ about selection filters and their usage in GUI.
|
|||||||
entities (nodes or elements) for the operations, which require the
|
entities (nodes or elements) for the operations, which require the
|
||||||
list of entities as input parameter (create/modify group, remove
|
list of entities as input parameter (create/modify group, remove
|
||||||
nodes/elements, etc) and for the operations, which accept objects
|
nodes/elements, etc) and for the operations, which accept objects
|
||||||
as input parameter. The page \ref tui_filters_page provides
|
(groups, sub-meshes) as input parameter. The page \ref
|
||||||
examples of the filters usage in Python scripts.
|
tui_filters_page provides examples of the filters usage in Python
|
||||||
|
scripts.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -100,7 +100,8 @@ The mesh can include the following entities:
|
|||||||
Every mesh entity has an attribute associating it to a sub-shape it is
|
Every mesh entity has an attribute associating it to a sub-shape it is
|
||||||
generated on (if any). The node generated on the geometrical edge or
|
generated on (if any). The node generated on the geometrical edge or
|
||||||
surface in addition stores its position in parametric space of the
|
surface in addition stores its position in parametric space of the
|
||||||
associated geometrical entity.
|
associated geometrical entity. This attribute is set up by meshing
|
||||||
|
algorithms generating elements and nodes.
|
||||||
|
|
||||||
Mesh entities are identified by integer IDs starting from 1.
|
Mesh entities are identified by integer IDs starting from 1.
|
||||||
Nodes and elements are counted separately, i.e. there can be a node
|
Nodes and elements are counted separately, i.e. there can be a node
|
||||||
|
@ -13,10 +13,11 @@ There are three types of groups different by their internal
|
|||||||
organization:<ol>
|
organization:<ol>
|
||||||
<li><b>Standalone group</b> is a static set of mesh entities. Its
|
<li><b>Standalone group</b> is a static set of mesh entities. Its
|
||||||
contents can be explicitly controlled by the user. Upon removal of
|
contents can be explicitly controlled by the user. Upon removal of
|
||||||
the entities included into the group, the group becomes empty and
|
the entities included into the group, e.g. due to modification of
|
||||||
its content can be restored only manually. Hence it is
|
meshing parameter, the group becomes empty and its content can be
|
||||||
reasonable to create standalone groups when the mesh generation is
|
restored only manually. Hence it is reasonable to create standalone
|
||||||
finished and mesh quality is verified.
|
groups when the mesh generation is finished and mesh quality is
|
||||||
|
verified.
|
||||||
\warning Creation and edition of large standalone groups in
|
\warning Creation and edition of large standalone groups in
|
||||||
\ref creating_groups_page "Create group" dialog using manual edition
|
\ref creating_groups_page "Create group" dialog using manual edition
|
||||||
is problematic due to poor performance of the dialog.</li>
|
is problematic due to poor performance of the dialog.</li>
|
||||||
@ -27,11 +28,11 @@ organization:<ol>
|
|||||||
established at group construction and cannot be changed. The group
|
established at group construction and cannot be changed. The group
|
||||||
contents are always updated automatically, hence the
|
contents are always updated automatically, hence the
|
||||||
group can be created even before mesh elements generation.</li>
|
group can be created even before mesh elements generation.</li>
|
||||||
<li><b>Group on filter</b> encapsulates a filter, which is used to
|
<li><b>Group on filter</b> encapsulates a \ref filters_page "filter",
|
||||||
select mesh entities composing the group from the whole
|
which is used to select mesh entities composing the group from the
|
||||||
mesh. Criteria of the filter can be changed at any time. The
|
whole mesh. Criteria of the filter can be changed at any time. The
|
||||||
group contents are always updated automatically, hence
|
group contents are always updated automatically, hence the group can
|
||||||
the group can be created even before mesh elements generation.</li>
|
be created even before mesh elements generation.</li>
|
||||||
</ol>
|
</ol>
|
||||||
The group on geometry and group on filter can be converted to
|
The group on geometry and group on filter can be converted to
|
||||||
a standalone group.
|
a standalone group.
|
||||||
|
@ -41,7 +41,8 @@ The \b Global algorithms and hypotheses to be chosen at
|
|||||||
<li> 1D algorithm and hypothesis that will be applied for meshing
|
<li> 1D algorithm and hypothesis that will be applied for meshing
|
||||||
(logically) vertical edges of the prism (which connect the top and the
|
(logically) vertical edges of the prism (which connect the top and the
|
||||||
base faces of the prism). In the sample picture above these are
|
base faces of the prism). In the sample picture above these are
|
||||||
"Regular_1D" algorithm and "Nb. Segments_1" hypothesis.</li>
|
"Regular_1D" algorithm and "Nb. Segments" hypothesis named "Vertical
|
||||||
|
Nb. Segments".</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
The \b Local algorithms and hypotheses to be chosen at
|
The \b Local algorithms and hypotheses to be chosen at
|
||||||
@ -51,9 +52,9 @@ The \b Local algorithms and hypotheses to be chosen at
|
|||||||
meshing the top and the base prism faces. These faces can be meshed
|
meshing the top and the base prism faces. These faces can be meshed
|
||||||
with any type of 2D elements: quadrangles, triangles, polygons or
|
with any type of 2D elements: quadrangles, triangles, polygons or
|
||||||
their mix. It is enough to define a sub-mesh on either the top or the base
|
their mix. It is enough to define a sub-mesh on either the top or the base
|
||||||
face. In the sample picture above, "BLSURF" algorithm meshes
|
face. In the sample picture above, "NETGEN_1D2D" algorithm meshes
|
||||||
"Face_1" base surface with triangles. (1D algorithm is not
|
"bottom disk" face with triangles. (1D algorithm is not
|
||||||
assigned as "BLSURF" does not require divided edges to create a 2D mesh.)
|
assigned as "NETGEN_1D2D" does not require divided edges to create a 2D mesh.)
|
||||||
</li>
|
</li>
|
||||||
<li> Optionally you can define a 1D sub-mesh on some vertical edges
|
<li> Optionally you can define a 1D sub-mesh on some vertical edges
|
||||||
of stacked prisms, which will override the global 1D hypothesis mentioned
|
of stacked prisms, which will override the global 1D hypothesis mentioned
|
||||||
|
@ -20,7 +20,7 @@ The algorithm treats any face as quadrangle. If a face is bound by
|
|||||||
more than four edges, four most sharp vertices are considered as
|
more than four edges, four most sharp vertices are considered as
|
||||||
corners of the quadrangle and all edges between these vertices are
|
corners of the quadrangle and all edges between these vertices are
|
||||||
treated as quadrangle sides. In the case of three edges, the vertex
|
treated as quadrangle sides. In the case of three edges, the vertex
|
||||||
specified by the user is considered as a degenerated side of the
|
specified by the user is considered as a fourth degenerated side of the
|
||||||
quadrangle.
|
quadrangle.
|
||||||
|
|
||||||
\image html quad_meshes.png "Algorithm generates a structured mesh on complex faces provided that edges are properly discretized"
|
\image html quad_meshes.png "Algorithm generates a structured mesh on complex faces provided that edges are properly discretized"
|
||||||
|
@ -73,7 +73,9 @@ the filtering algorithm works faster because node-to-shape association
|
|||||||
is used instead of measuring distance between nodes and the shape, and
|
is used instead of measuring distance between nodes and the shape, and
|
||||||
\b Tolerance is not used. If the threshold shape is any other shape,
|
\b Tolerance is not used. If the threshold shape is any other shape,
|
||||||
the algorithm works slower because distance between nodes and the
|
the algorithm works slower because distance between nodes and the
|
||||||
shape is measured and is compared with \b Tolerance.
|
shape is measured and is compared with \b Tolerance. The latter
|
||||||
|
approach (distance measurement) is also used if an element is not
|
||||||
|
associated to any shape.
|
||||||
</li><li>
|
</li><li>
|
||||||
<b>Lying on Geom</b> selects entities whose at least one node
|
<b>Lying on Geom</b> selects entities whose at least one node
|
||||||
lies on the shape defined by the <b>Threshold Value</b>.
|
lies on the shape defined by the <b>Threshold Value</b>.
|
||||||
@ -82,7 +84,9 @@ the filtering algorithm works faster because node-to-shape association
|
|||||||
is used instead of measuring distance between nodes and the shape, and
|
is used instead of measuring distance between nodes and the shape, and
|
||||||
\b Tolerance is not used. If the threshold shape is any other shape,
|
\b Tolerance is not used. If the threshold shape is any other shape,
|
||||||
the algorithm works slower because distance between nodes and the
|
the algorithm works slower because distance between nodes and the
|
||||||
shape is measured and is compared with \b Tolerance.
|
shape is measured and is compared with \b Tolerance. The latter
|
||||||
|
approach (distance measurement) is also used if an element is not
|
||||||
|
associated to any shape.
|
||||||
</li><li>
|
</li><li>
|
||||||
<b>Belong to Mesh Group</b> selects entities included into the mesh group
|
<b>Belong to Mesh Group</b> selects entities included into the mesh group
|
||||||
defined by the <b>Threshold Value</b>.
|
defined by the <b>Threshold Value</b>.
|
||||||
|
@ -7,49 +7,66 @@ be used for easy mesh creation and edition.
|
|||||||
|
|
||||||
Documentation for SALOME %Mesh module Python API is available in two forms:
|
Documentation for SALOME %Mesh module Python API is available in two forms:
|
||||||
- <a href="smeshpy_doc/modules.html">Structured documentation</a>, where all methods and
|
- <a href="smeshpy_doc/modules.html">Structured documentation</a>, where all methods and
|
||||||
classes are grouped by their functionality, like it is done in the GUI documentation
|
classes are grouped by their functionality.
|
||||||
- <a href="smeshpy_doc/namespaces.html">Linear documentation</a> grouped only by classes, declared
|
- <a href="smeshpy_doc/namespaces.html">Linear documentation</a> grouped only by classes, declared
|
||||||
in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages.
|
in the \ref smeshBuilder and \ref StdMeshersBuilder Python packages.
|
||||||
|
|
||||||
\n With SALOME 7.2, the Python interface for %Mesh has been slightly modified to offer new functionality,
|
\n With SALOME 7.2, the Python interface for %Mesh has been slightly modified to offer new functionality.
|
||||||
\n You may have to modify your scripts generated with SALOME 6 or older versions.
|
\n You may have to modify your scripts generated with SALOME 6 or older versions.
|
||||||
\n Please see \ref smesh_migration_page
|
\n Please see \ref smesh_migration_page.
|
||||||
|
|
||||||
The SMESH python package contains helper functions to manipulate mesh elements and
|
|
||||||
interact with these elements.
|
|
||||||
|
|
||||||
Note that these functions either encapsulate the python programming interface of SMESH core
|
|
||||||
(the CORBA or SWIG interface for example) or extend existing utilities as the smesh.py module.
|
|
||||||
|
|
||||||
The functions are distributed in the python package \b salome.smesh.
|
|
||||||
|
|
||||||
\note
|
|
||||||
The main package \b salome contains other sub-packages that are distributed with the other
|
|
||||||
SALOME modules. For example, the KERNEL module provides the python package \b salome.kernel
|
|
||||||
and GEOM the package \b salome.geom.
|
|
||||||
|
|
||||||
Class \ref smeshBuilder.smeshBuilder "smeshBuilder" provides an interface to create and handle
|
Class \ref smeshBuilder.smeshBuilder "smeshBuilder" provides an interface to create and handle
|
||||||
meshes. It can be used to create an empty mesh or to import mesh from the data file.
|
meshes. It can be used to create an empty mesh or to import mesh from the data file.
|
||||||
|
|
||||||
Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study.
|
|
||||||
|
|
||||||
As soon as mesh is created, it is possible to manage it via its own
|
As soon as mesh is created, it is possible to manage it via its own
|
||||||
methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation.
|
methods, described in class \ref smeshBuilder.Mesh "Mesh" documentation.
|
||||||
|
|
||||||
Class \ref smeshBuilder.Mesh "Mesh" allows assigning algorithms to a mesh.
|
Class \ref smeshstudytools.SMeshStudyTools "SMeshStudyTools" provides several methods to manipulate mesh objects in Salome study.
|
||||||
Please note that some algorithms, included in the standard SALOME
|
|
||||||
distribution are always available. Python package \ref StdMeshersBuilder "StdMeshersBuilder"
|
|
||||||
provides an interface for standard meshing algorithms included into
|
|
||||||
the SALOME %Mesh module distribution, like:
|
|
||||||
- REGULAR (1D)
|
|
||||||
- COMPOSITE (1D)
|
|
||||||
- MEFISTO (2D)
|
|
||||||
- Quadrangle (2D)
|
|
||||||
- Hexa(3D)
|
|
||||||
- etc ...
|
|
||||||
|
|
||||||
To add meshing hypotheses, it is possible to use the functions provided by the
|
A usual workflow to generate a mesh on geometry is following:
|
||||||
algorithms interfaces.
|
<ol>
|
||||||
|
<li>Create an instance of \ref smeshBuilder.smeshBuilder "smeshBuilder":
|
||||||
|
<pre>
|
||||||
|
from salome.smesh import smeshBuilder
|
||||||
|
smesh = smeshBuilder.New( salome.myStudy )
|
||||||
|
</pre></li>
|
||||||
|
<li>Create a \ref smeshBuilder.Mesh "mesh" object:
|
||||||
|
<pre>
|
||||||
|
mesh = \ref smeshBuilder.smeshBuilder.Mesh "smesh.Mesh( geometry )"
|
||||||
|
</pre></li>
|
||||||
|
<li> Create and assign \ref basic_meshing_algos_page "algorithms" by
|
||||||
|
calling corresponding methods of the mesh. If a sub-shape is
|
||||||
|
provided as an argument, a \ref constructing_submeshes_page "sub-mesh"
|
||||||
|
is implicitly created on this sub-shape:
|
||||||
|
<pre>
|
||||||
|
regular1D = \ref smeshBuilder.Mesh.Segment "mesh.Segment"()
|
||||||
|
mefisto = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.MEFISTO )
|
||||||
|
# use other triangle algorithm on a face -- a sub-mesh appears in the mesh
|
||||||
|
netgen = \ref smeshBuilder.Mesh.Triangle "mesh.Triangle"( smeshBuilder.NETGEN_1D2D, face )
|
||||||
|
</pre></li>
|
||||||
|
<li> Create and assign \ref about_hypo_page "hypotheses" by calling
|
||||||
|
corresponding methods of algorithms:
|
||||||
|
<pre>
|
||||||
|
segLen10 = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "regular1D.LocalLength"( 10. )
|
||||||
|
maxArea = \ref StdMeshersBuilder.StdMeshersBuilder_Segment.LocalLength "mefisto.MaxElementArea"( 100. )
|
||||||
|
netgen.SetMaxSize( 20. )
|
||||||
|
netgen.SetFineness( smeshBuilder.VeryCoarse )
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
<li> \ref compute_anchor "Compute" the mesh (generate mesh nodes and elements):
|
||||||
|
<pre>
|
||||||
|
\ref Mesh.Compute "mesh.Compute"()
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
An easiest way to start with Python scripting is to do something in
|
||||||
|
GUI and then to get a corresponding Python script via
|
||||||
|
<b> File > Dump Study </b> menu item. Don't forget that you can get
|
||||||
|
all methods of any object in hand (e.g. a mesh group or a hypothesis)
|
||||||
|
by calling \a dir() Python built-in function.
|
||||||
|
|
||||||
|
All methods of the Mesh Group can be found in \ref tui_create_standalone_group sample script.
|
||||||
|
|
||||||
An example below demonstrates usage of the Python API for 3d mesh generation.
|
An example below demonstrates usage of the Python API for 3d mesh generation.
|
||||||
|
|
||||||
@ -61,19 +78,19 @@ Examples of Python scripts for Mesh operations are available by
|
|||||||
the following links:
|
the following links:
|
||||||
|
|
||||||
- \subpage tui_creating_meshes_page
|
- \subpage tui_creating_meshes_page
|
||||||
- \subpage tui_cartesian_algo
|
|
||||||
- \subpage tui_use_existing_faces
|
|
||||||
- \subpage tui_viewing_meshes_page
|
|
||||||
- \subpage tui_defining_hypotheses_page
|
- \subpage tui_defining_hypotheses_page
|
||||||
- \subpage tui_quality_controls_page
|
|
||||||
- \subpage tui_filters_page
|
|
||||||
- \subpage tui_grouping_elements_page
|
- \subpage tui_grouping_elements_page
|
||||||
|
- \subpage tui_filters_page
|
||||||
- \subpage tui_modifying_meshes_page
|
- \subpage tui_modifying_meshes_page
|
||||||
- \subpage tui_transforming_meshes_page
|
- \subpage tui_transforming_meshes_page
|
||||||
- \subpage tui_notebook_smesh_page
|
- \subpage tui_viewing_meshes_page
|
||||||
|
- \subpage tui_quality_controls_page
|
||||||
- \subpage tui_measurements_page
|
- \subpage tui_measurements_page
|
||||||
- \subpage tui_generate_flat_elements_page
|
|
||||||
- \subpage tui_work_on_objects_from_gui
|
- \subpage tui_work_on_objects_from_gui
|
||||||
|
- \subpage tui_notebook_smesh_page
|
||||||
|
- \subpage tui_cartesian_algo
|
||||||
|
- \subpage tui_use_existing_faces
|
||||||
- \subpage tui_prism_3d_algo
|
- \subpage tui_prism_3d_algo
|
||||||
|
- \subpage tui_generate_flat_elements_page
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -2,54 +2,50 @@
|
|||||||
|
|
||||||
\page tui_creating_meshes_page Creating Meshes
|
\page tui_creating_meshes_page Creating Meshes
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
\n First of all see \ref example_3d_mesh "Example of 3d mesh generation",
|
\n First of all see \ref example_3d_mesh "Example of 3d mesh generation",
|
||||||
which is an example of good python script style for Mesh module.
|
which is an example of good python script style for Mesh module.
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h2>Construction of a Mesh</h2>
|
\section construction_of_a_mesh Construction of a mesh
|
||||||
\tui_script{creating_meshes_ex01.py}
|
\tui_script{creating_meshes_ex01.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_construction_submesh
|
\section tui_construction_submesh Construction of a sub-mesh
|
||||||
<h2>Construction of a Submesh</h2>
|
|
||||||
\tui_script{creating_meshes_ex02.py}
|
\tui_script{creating_meshes_ex02.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h2>Change priority of submeshes in Mesh</h2>
|
\section change_priority_of_submeshes_in_mesh Change priority of sub-meshes in mesh
|
||||||
\tui_script{creating_meshes_ex03.py}
|
\tui_script{creating_meshes_ex03.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_editing_while_meshing
|
\section tui_editing_while_meshing Intermediate edition while meshing
|
||||||
<h2>Intermediate edition while meshing</h2>
|
|
||||||
\tui_script{a3DmeshOnModified2Dmesh.py}
|
\tui_script{a3DmeshOnModified2Dmesh.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_editing_mesh
|
\section tui_editing_mesh Editing a mesh
|
||||||
<h2>Editing a mesh</h2>
|
|
||||||
\tui_script{creating_meshes_ex04.py}
|
\tui_script{creating_meshes_ex04.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_export_mesh
|
\section tui_export_mesh Export of a Mesh
|
||||||
<h2>Export of a Mesh</h2>
|
|
||||||
\tui_script{creating_meshes_ex05.py}
|
\tui_script{creating_meshes_ex05.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<h2>How to mesh a cylinder with hexahedrons?</h2>
|
\section how_to_mesh_a_cylinder_with_hexahedrons How to mesh a cylinder with hexahedrons?
|
||||||
Here you can see an example of python script, creating a hexahedral
|
Here you can see an example of python script, creating a hexahedral
|
||||||
mesh on a cylinder. And a picture below the source code of the script,
|
mesh on a cylinder. A picture below the source code of the script
|
||||||
demonstrating the resulting mesh.
|
demonstrates the resulting mesh.
|
||||||
\tui_script{creating_meshes_ex06.py}
|
\tui_script{creating_meshes_ex06.py}
|
||||||
|
|
||||||
\image html mesh_cylinder_hexa.png
|
\image html mesh_cylinder_hexa.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_building_compound
|
\section tui_building_compound Building a compound of meshes
|
||||||
<h2>Building a compound of meshes</h2>
|
|
||||||
\tui_script{creating_meshes_ex07.py}
|
\tui_script{creating_meshes_ex07.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_copy_mesh
|
\section tui_copy_mesh Mesh Copying
|
||||||
<h2>Mesh Copying</h2>
|
|
||||||
\tui_script{creating_meshes_ex08.py}
|
\tui_script{creating_meshes_ex08.py}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Filters allow picking only the mesh elements satisfying to a
|
Filters allow picking only the mesh elements satisfying to a
|
||||||
specific condition or a set of conditions. Filters can be used to create
|
specific condition or a set of conditions. Filters can be used to create
|
||||||
or edit mesh groups, remove elements from the mesh object, control
|
or edit mesh groups, remove elements from the mesh, control
|
||||||
mesh quality by different parameters, etc.
|
mesh quality by different parameters, etc.
|
||||||
|
|
||||||
Several filtering criteria can be combined together by using logical
|
Several filtering criteria can be combined together by using logical
|
||||||
@ -24,7 +24,7 @@ Python scripts.
|
|||||||
|
|
||||||
\section filter_aspect_ratio Aspect ratio
|
\section filter_aspect_ratio Aspect ratio
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the aspect ratio value:
|
filters 2D mesh elements (faces) according to the aspect ratio value:
|
||||||
- element type should be \a SMESH.FACE
|
- element type should be \a SMESH.FACE
|
||||||
- functor type should be \a SMESH.FT_AspectRatio
|
- functor type should be \a SMESH.FT_AspectRatio
|
||||||
- threshold is floating point value (aspect ratio)
|
- threshold is floating point value (aspect ratio)
|
||||||
@ -35,7 +35,7 @@ Filter 2D mesh elements (faces) according to the aspect ratio value:
|
|||||||
|
|
||||||
\section filter_aspect_ratio_3d Aspect ratio 3D
|
\section filter_aspect_ratio_3d Aspect ratio 3D
|
||||||
|
|
||||||
Filter 3D mesh elements (volumes) according to the aspect ratio value:
|
filters 3D mesh elements (volumes) according to the aspect ratio value:
|
||||||
- element type is \a SMESH.VOLUME
|
- element type is \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_AspectRatio3D
|
- functor type is \a SMESH.FT_AspectRatio3D
|
||||||
- threshold is floating point value (aspect ratio)
|
- threshold is floating point value (aspect ratio)
|
||||||
@ -46,7 +46,7 @@ Filter 3D mesh elements (volumes) according to the aspect ratio value:
|
|||||||
|
|
||||||
\section filter_warping_angle Warping angle
|
\section filter_warping_angle Warping angle
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the warping angle value:
|
filters 2D mesh elements (faces) according to the warping angle value:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_Warping
|
- functor type is \a SMESH.FT_Warping
|
||||||
- threshold is floating point value (warping angle)
|
- threshold is floating point value (warping angle)
|
||||||
@ -57,7 +57,7 @@ Filter 2D mesh elements (faces) according to the warping angle value:
|
|||||||
|
|
||||||
\section filter_minimum_angle Minimum angle
|
\section filter_minimum_angle Minimum angle
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the minimum angle value:
|
filters 2D mesh elements (faces) according to the minimum angle value:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_MinimumAngle
|
- functor type is \a SMESH.FT_MinimumAngle
|
||||||
- threshold is floating point value (minimum angle)
|
- threshold is floating point value (minimum angle)
|
||||||
@ -68,7 +68,7 @@ Filter 2D mesh elements (faces) according to the minimum angle value:
|
|||||||
|
|
||||||
\section filter_taper Taper
|
\section filter_taper Taper
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the taper value:
|
filters 2D mesh elements (faces) according to the taper value:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_Taper
|
- functor type is \a SMESH.FT_Taper
|
||||||
- threshold is floating point value (taper)
|
- threshold is floating point value (taper)
|
||||||
@ -79,7 +79,7 @@ Filter 2D mesh elements (faces) according to the taper value:
|
|||||||
|
|
||||||
\section filter_skew Skew
|
\section filter_skew Skew
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the skew value:
|
filters 2D mesh elements (faces) according to the skew value:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_Skew
|
- functor type is \a SMESH.FT_Skew
|
||||||
- threshold is floating point value (skew)
|
- threshold is floating point value (skew)
|
||||||
@ -90,7 +90,7 @@ Filter 2D mesh elements (faces) according to the skew value:
|
|||||||
|
|
||||||
\section filter_area Area
|
\section filter_area Area
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) according to the area value:
|
filters 2D mesh elements (faces) according to the area value:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_Area
|
- functor type is \a SMESH.FT_Area
|
||||||
- threshold is floating point value (area)
|
- threshold is floating point value (area)
|
||||||
@ -101,7 +101,7 @@ Filter 2D mesh elements (faces) according to the area value:
|
|||||||
|
|
||||||
\section filter_volume Volume
|
\section filter_volume Volume
|
||||||
|
|
||||||
Filter 3D mesh elements (volumes) according to the volume value:
|
filters 3D mesh elements (volumes) according to the volume value:
|
||||||
- element type is \a SMESH.VOLUME
|
- element type is \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_Volume3D
|
- functor type is \a SMESH.FT_Volume3D
|
||||||
- threshold is floating point value (volume)
|
- threshold is floating point value (volume)
|
||||||
@ -112,7 +112,7 @@ Filter 3D mesh elements (volumes) according to the volume value:
|
|||||||
|
|
||||||
\section filter_free_borders Free borders
|
\section filter_free_borders Free borders
|
||||||
|
|
||||||
Filter 1D mesh elements (edges) which represent free borders of a mesh:
|
filters 1D mesh elements (edges) which represent free borders of a mesh:
|
||||||
- element type is \a SMESH.EDGE
|
- element type is \a SMESH.EDGE
|
||||||
- functor type is \a SMESH.FT_FreeBorders
|
- functor type is \a SMESH.FT_FreeBorders
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -123,8 +123,8 @@ Filter 1D mesh elements (edges) which represent free borders of a mesh:
|
|||||||
|
|
||||||
\section filter_free_edges Free edges
|
\section filter_free_edges Free edges
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) consisting of edges belonging to one
|
filters 2D mesh elements (faces) having edges (i.e. links between
|
||||||
element of mesh only:
|
nodes, not mesh segments) belonging to one face of mesh only:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_FreeEdges
|
- functor type is \a SMESH.FT_FreeEdges
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -135,7 +135,7 @@ element of mesh only:
|
|||||||
|
|
||||||
\section filter_free_nodes Free nodes
|
\section filter_free_nodes Free nodes
|
||||||
|
|
||||||
Filter free nodes:
|
filters free nodes:
|
||||||
- element type is \a SMESH.NODE
|
- element type is \a SMESH.NODE
|
||||||
- functor type is \a SMESH.FT_FreeNodes
|
- functor type is \a SMESH.FT_FreeNodes
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -146,7 +146,7 @@ Filter free nodes:
|
|||||||
|
|
||||||
\section filter_free_faces Free faces
|
\section filter_free_faces Free faces
|
||||||
|
|
||||||
Filter free faces:
|
filters free faces:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_FreeFaces
|
- functor type is \a SMESH.FT_FreeFaces
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -157,7 +157,7 @@ Filter free faces:
|
|||||||
|
|
||||||
\section filter_bare_border_faces Bare border faces
|
\section filter_bare_border_faces Bare border faces
|
||||||
|
|
||||||
Filter faces with bare borders:
|
filters faces with bare borders:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_BareBorderFace
|
- functor type is \a SMESH.FT_BareBorderFace
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -168,7 +168,7 @@ Filter faces with bare borders:
|
|||||||
|
|
||||||
\section filter_coplanar_faces Coplanar faces
|
\section filter_coplanar_faces Coplanar faces
|
||||||
|
|
||||||
Filter faces with bare borders:
|
filters coplanar faces:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_CoplanarFaces
|
- functor type is \a SMESH.FT_CoplanarFaces
|
||||||
- threshold value is the face ID
|
- threshold value is the face ID
|
||||||
@ -178,7 +178,7 @@ Filter faces with bare borders:
|
|||||||
|
|
||||||
\section filter_over_constrained_faces Over-constrained faces
|
\section filter_over_constrained_faces Over-constrained faces
|
||||||
|
|
||||||
Filter over-constrained faces:
|
filters over-constrained faces:
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_OverConstrainedFace
|
- functor type is \a SMESH.FT_OverConstrainedFace
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -189,7 +189,7 @@ Filter over-constrained faces:
|
|||||||
|
|
||||||
\section filter_double_elements Double edges, Double faces, Double volumes
|
\section filter_double_elements Double edges, Double faces, Double volumes
|
||||||
|
|
||||||
filter mesh elements basing on the same set of nodes:
|
filters mesh elements basing on the same set of nodes:
|
||||||
- element type is either \a SMESH.EGDE, \a SMESH.FACE or \a SMESH.VOLUME
|
- element type is either \a SMESH.EGDE, \a SMESH.FACE or \a SMESH.VOLUME
|
||||||
- functor type is either \a SMESH.FT_EqualEdges, \a
|
- functor type is either \a SMESH.FT_EqualEdges, \a
|
||||||
SMESH.FT_EqualFaces or \a SMESH.FT_EqualVolumes,
|
SMESH.FT_EqualFaces or \a SMESH.FT_EqualVolumes,
|
||||||
@ -211,8 +211,8 @@ filters mesh nodes which are coincident with other nodes (within a given toleran
|
|||||||
|
|
||||||
\section filter_borders_multiconnection Borders at multi-connection
|
\section filter_borders_multiconnection Borders at multi-connection
|
||||||
|
|
||||||
Filter border 1D mesh elements (edges) according to the specified number of
|
filters 1D mesh elements (segments) according to the specified number of
|
||||||
connections (faces belonging the border edges)
|
connections (faces and volumes on whose border the segment lies):
|
||||||
- element type is \a SMESH.EDGE
|
- element type is \a SMESH.EDGE
|
||||||
- functor type is \a SMESH.FT_MultiConnection
|
- functor type is \a SMESH.FT_MultiConnection
|
||||||
- threshold is integer value (number of connections)
|
- threshold is integer value (number of connections)
|
||||||
@ -223,8 +223,8 @@ connections (faces belonging the border edges)
|
|||||||
|
|
||||||
\section filter_borders_multiconnection_2d Borders at multi-connection 2D
|
\section filter_borders_multiconnection_2d Borders at multi-connection 2D
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) which consist of edges belonging
|
filters 2D mesh elements (faces) with the specified maximal number of
|
||||||
to the specified number of mesh elements
|
faces connected to a border (link between nodes, not mesh segment):
|
||||||
- element type is \a SMESH.FACE
|
- element type is \a SMESH.FACE
|
||||||
- functor type is \a SMESH.FT_MultiConnection2D
|
- functor type is \a SMESH.FT_MultiConnection2D
|
||||||
- threshold is integer value (number of connections)
|
- threshold is integer value (number of connections)
|
||||||
@ -235,7 +235,7 @@ to the specified number of mesh elements
|
|||||||
|
|
||||||
\section filter_length Length
|
\section filter_length Length
|
||||||
|
|
||||||
Filter 1D mesh elements (edges) according to the edge length value:
|
filters 1D mesh elements (edges) according to the edge length value:
|
||||||
- element type should be \a SMESH.EDGE
|
- element type should be \a SMESH.EDGE
|
||||||
- functor type should be \a SMESH.FT_Length
|
- functor type should be \a SMESH.FT_Length
|
||||||
- threshold is floating point value (length)
|
- threshold is floating point value (length)
|
||||||
@ -246,8 +246,8 @@ Filter 1D mesh elements (edges) according to the edge length value:
|
|||||||
|
|
||||||
\section filter_length_2d Length 2D
|
\section filter_length_2d Length 2D
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) corresponding to the maximum length.
|
filters 2D mesh elements (faces) according to the maximum length of its
|
||||||
value of its edges:
|
edges (links between nodes):
|
||||||
- element type should be \a SMESH.FACE
|
- element type should be \a SMESH.FACE
|
||||||
- functor type should be \a SMESH.FT_Length2D
|
- functor type should be \a SMESH.FT_Length2D
|
||||||
- threshold is floating point value (edge length)
|
- threshold is floating point value (edge length)
|
||||||
@ -258,11 +258,11 @@ value of its edges:
|
|||||||
|
|
||||||
\section filter_max_element_length_2d Element Diameter 2D
|
\section filter_max_element_length_2d Element Diameter 2D
|
||||||
|
|
||||||
Filter 2D mesh elements (faces) corresponding to the maximum length
|
filters 2D mesh elements (faces) according to the maximum length
|
||||||
value of its edges and diagonals:
|
of its edges and diagonals:
|
||||||
- element type should be \a SMESH.FACE
|
- element type should be \a SMESH.FACE
|
||||||
- functor type should be \a SMESH.FT_MaxElementLength2D
|
- functor type should be \a SMESH.FT_MaxElementLength2D
|
||||||
- threshold is floating point value (edge/diagonal length)
|
- threshold is floating point value (length)
|
||||||
|
|
||||||
\tui_script{filters_ex22.py}
|
\tui_script{filters_ex22.py}
|
||||||
|
|
||||||
@ -270,8 +270,8 @@ value of its edges and diagonals:
|
|||||||
|
|
||||||
\section filter_max_element_length_3d Element Diameter 3D
|
\section filter_max_element_length_3d Element Diameter 3D
|
||||||
|
|
||||||
Filter 3D mesh elements (volumes) corresponding to the maximum length
|
filters 3D mesh elements (volumes) according to the maximum length
|
||||||
value of its edges and diagonals:
|
of its edges and diagonals:
|
||||||
- element type should be \a SMESH.VOLUME
|
- element type should be \a SMESH.VOLUME
|
||||||
- functor type should be \a SMESH.FT_MaxElementLength3D
|
- functor type should be \a SMESH.FT_MaxElementLength3D
|
||||||
- threshold is floating point value (edge/diagonal length)
|
- threshold is floating point value (edge/diagonal length)
|
||||||
@ -282,7 +282,8 @@ value of its edges and diagonals:
|
|||||||
|
|
||||||
\section filter_bare_border_volumes Bare border volumes
|
\section filter_bare_border_volumes Bare border volumes
|
||||||
|
|
||||||
Filter 3D mesh elements with bare borders:
|
filters 3D mesh elements with bare borders, i.e. having a facet not
|
||||||
|
shared with other volumes and without a face on it:
|
||||||
- element type is \a SMESH.VOLUME
|
- element type is \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_BareBorderVolume
|
- functor type is \a SMESH.FT_BareBorderVolume
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -293,7 +294,7 @@ Filter 3D mesh elements with bare borders:
|
|||||||
|
|
||||||
\section filter_over_constrained_volumes Over-constrained volumes
|
\section filter_over_constrained_volumes Over-constrained volumes
|
||||||
|
|
||||||
Filter over-constrained volumes:
|
filters over-constrained volumes, whose all nodes are on the mesh boundary:
|
||||||
- element type is \a SMESH.VOLUME
|
- element type is \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_OverConstrainedVolume
|
- functor type is \a SMESH.FT_OverConstrainedVolume
|
||||||
- threshold value is not required
|
- threshold value is not required
|
||||||
@ -304,9 +305,9 @@ Filter over-constrained volumes:
|
|||||||
|
|
||||||
\section filter_belong_to_group Belong to Mesh Group
|
\section filter_belong_to_group Belong to Mesh Group
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) included in a mesh group
|
filters mesh entities (nodes or elements) included in a mesh group
|
||||||
defined by threshold value:
|
defined by threshold value:
|
||||||
- element type can be any entity type, from \a SMESH.NODE to \a SMESH.VOLUME
|
- element type can be any, from \a SMESH.NODE to \a SMESH.BALL
|
||||||
- functor type should be \a SMESH.FT_BelongToMeshGroup
|
- functor type should be \a SMESH.FT_BelongToMeshGroup
|
||||||
- threshold is mesh group object
|
- threshold is mesh group object
|
||||||
|
|
||||||
@ -314,29 +315,33 @@ defined by threshold value:
|
|||||||
|
|
||||||
\section filter_belong_to_geom Belong to Geom
|
\section filter_belong_to_geom Belong to Geom
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) which all nodes lie on the
|
filters mesh entities (nodes or elements) which all nodes lie on the
|
||||||
shape defined by threshold value:
|
shape defined by threshold value:
|
||||||
- element type can be any entity type, from \a SMESH.NODE to \a SMESH.VOLUME
|
- element type can be any, from \a SMESH.NODE to \a SMESH.BALL
|
||||||
- functor type should be \a SMESH.FT_BelongToGeom
|
- functor type should be \a SMESH.FT_BelongToGeom
|
||||||
- threshold is geometrical object
|
- threshold is geometrical object
|
||||||
|
- tolerance is a distance between a node and the geometrical object;
|
||||||
|
it is used if an node is not associated to any geometry.
|
||||||
|
|
||||||
\tui_script{filters_ex26.py}
|
\tui_script{filters_ex26.py}
|
||||||
|
|
||||||
\section filter_lying_on_geom Lying on Geom
|
\section filter_lying_on_geom Lying on Geom
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) at least one node of which lies on the
|
filters mesh entities (nodes or elements) at least one node of which lies on the
|
||||||
shape defined by threshold value:
|
shape defined by threshold value:
|
||||||
- element type can be any entity type, from \a SMESH.NODE to \a SMESH.VOLUME
|
- element type can be any, from \a SMESH.NODE to \a SMESH.BALL
|
||||||
- functor type should be \a SMESH.FT_LyingOnGeom
|
- functor type should be \a SMESH.FT_LyingOnGeom
|
||||||
- threshold is geometrical object
|
- threshold is geometrical object
|
||||||
|
- tolerance is a distance between a node and the geometrical object;
|
||||||
|
it is used if an node is not associated to any geometry.
|
||||||
|
|
||||||
\tui_script{filters_ex27.py}
|
\tui_script{filters_ex27.py}
|
||||||
|
|
||||||
\section filter_belong_to_plane Belong to Plane
|
\section filter_belong_to_plane Belong to Plane
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) which all nodes belong to the
|
filters mesh entities (nodes or elements) which all nodes belong to the
|
||||||
plane defined by threshold value with the given tolerance:
|
plane defined by threshold value with the given tolerance:
|
||||||
- element type can be: \a SMESH.NODE, \a SMESH.EDGE, \a SMESH.FACE
|
- element type can be any except \a SMESH.VOLUME
|
||||||
- functor type should be \a SMESH.FT_BelongToPlane
|
- functor type should be \a SMESH.FT_BelongToPlane
|
||||||
- threshold is geometrical object (plane)
|
- threshold is geometrical object (plane)
|
||||||
- default tolerance is 1.0e-7
|
- default tolerance is 1.0e-7
|
||||||
@ -345,9 +350,9 @@ plane defined by threshold value with the given tolerance:
|
|||||||
|
|
||||||
\section filter_belong_to_cylinder Belong to Cylinder
|
\section filter_belong_to_cylinder Belong to Cylinder
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) which all nodes belong to the
|
filters mesh entities (nodes or elements) which all nodes belong to the
|
||||||
cylindrical face defined by threshold value with the given tolerance:
|
cylindrical face defined by threshold value with the given tolerance:
|
||||||
- element type can be: \a , \a SMESH.EDGE, \a SMESH.FACE
|
- element type can be any except \a SMESH.VOLUME
|
||||||
- functor type should be \a SMESH.FT_BelongToCylinder
|
- functor type should be \a SMESH.FT_BelongToCylinder
|
||||||
- threshold is geometrical object (cylindrical face)
|
- threshold is geometrical object (cylindrical face)
|
||||||
- default tolerance is 1.0e-7
|
- default tolerance is 1.0e-7
|
||||||
@ -356,9 +361,9 @@ cylindrical face defined by threshold value with the given tolerance:
|
|||||||
|
|
||||||
\section filter_belong_to_surface Belong to Surface
|
\section filter_belong_to_surface Belong to Surface
|
||||||
|
|
||||||
Filter mesh entities (nodes or elements) which all nodes belong to the
|
filters mesh entities (nodes or elements) which all nodes belong to the
|
||||||
arbitrary surface defined by threshold value with the given tolerance:
|
arbitrary surface defined by threshold value with the given tolerance:
|
||||||
- element type can be: \a SMESH.NODE, \a SMESH.EDGE, \a SMESH.FACE
|
- element type can be any except \a SMESH.VOLUME
|
||||||
- functor type should be \a SMESH.FT_BelongToGenSurface
|
- functor type should be \a SMESH.FT_BelongToGenSurface
|
||||||
- threshold is geometrical object (arbitrary surface)
|
- threshold is geometrical object (arbitrary surface)
|
||||||
- default tolerance is 1.0e-7
|
- default tolerance is 1.0e-7
|
||||||
@ -367,9 +372,9 @@ arbitrary surface defined by threshold value with the given tolerance:
|
|||||||
|
|
||||||
\section filter_range_of_ids Range of IDs
|
\section filter_range_of_ids Range of IDs
|
||||||
|
|
||||||
Filter mesh entities elements (nodes or elements) according to the
|
filters mesh entities elements (nodes or elements) according to the
|
||||||
specified identifiers range:
|
specified identifiers range:
|
||||||
- element type can be any entity type, from \a SMESH.NODE to \a SMESH.VOLUME
|
- element type can be any, from \a SMESH.NODE to \a SMESH.BALL
|
||||||
- functor type is \a SMESH.FT_RangeOfIds
|
- functor type is \a SMESH.FT_RangeOfIds
|
||||||
- threshold is string listing required IDs and/or ranges of IDs, e.g."1,2,3,50-60,63,67,70-78"
|
- threshold is string listing required IDs and/or ranges of IDs, e.g."1,2,3,50-60,63,67,70-78"
|
||||||
|
|
||||||
@ -377,7 +382,7 @@ specified identifiers range:
|
|||||||
|
|
||||||
\section filter_bad_oriented_volume Badly oriented volume
|
\section filter_bad_oriented_volume Badly oriented volume
|
||||||
|
|
||||||
Filter 3D mesh elements (volumes), which are incorrectly oriented from
|
filters 3D mesh elements (volumes), which are incorrectly oriented from
|
||||||
the point of view of MED convention.
|
the point of view of MED convention.
|
||||||
- element type should be \a SMESH.VOLUME
|
- element type should be \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_BadOrientedVolume
|
- functor type is \a SMESH.FT_BadOrientedVolume
|
||||||
@ -387,8 +392,8 @@ the point of view of MED convention.
|
|||||||
|
|
||||||
\section filter_linear_or_quadratic Linear / quadratic
|
\section filter_linear_or_quadratic Linear / quadratic
|
||||||
|
|
||||||
Filter linear / quadratic mesh elements:
|
filters linear / quadratic mesh elements:
|
||||||
- element type should be any element type, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME
|
- element type should be either \a SMESH.EDGE, \a SMESH.FACE or \a SMESH.VOLUME
|
||||||
- functor type is \a SMESH.FT_LinearOrQuadratic
|
- functor type is \a SMESH.FT_LinearOrQuadratic
|
||||||
- threshold is not required
|
- threshold is not required
|
||||||
- if unary operator is set to SMESH.FT_LogicalNOT, the quadratic
|
- if unary operator is set to SMESH.FT_LogicalNOT, the quadratic
|
||||||
@ -398,8 +403,8 @@ elements are selected, otherwise (by default) linear elements are selected
|
|||||||
|
|
||||||
\section filter_group_color Group color
|
\section filter_group_color Group color
|
||||||
|
|
||||||
Filter mesh entities, belonging to the group with the color defined by the threshold value.
|
filters mesh entities, belonging to the group with the color defined by the threshold value.
|
||||||
- element type can be any entity type, from \a SMESH.NODE to \a SMESH.VOLUME
|
- element type can be any, from \a SMESH.NODE to \a SMESH.BALL
|
||||||
- functor type is \a SMESH.FT_GroupColor
|
- functor type is \a SMESH.FT_GroupColor
|
||||||
- threshold should be of SALOMEDS.Color type
|
- threshold should be of SALOMEDS.Color type
|
||||||
|
|
||||||
@ -407,15 +412,42 @@ Filter mesh entities, belonging to the group with the color defined by the thres
|
|||||||
|
|
||||||
\section filter_geom_type Geometry type
|
\section filter_geom_type Geometry type
|
||||||
|
|
||||||
Filter mesh elements by the geometric type defined with the threshold
|
filters mesh elements by the geometric type defined with the threshold
|
||||||
value. The list of available geometric types depends on the element
|
value. The list of available geometric types depends on the element
|
||||||
entity type.
|
entity type.
|
||||||
- element type should be any element type, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME
|
- element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
|
||||||
- functor type should be \a SMESH.FT_ElemGeomType
|
- functor type should be \a SMESH.FT_ElemGeomType
|
||||||
- threshold is of smesh.GeometryType value
|
- threshold is either of smesh.GeometryType values. Type \a SMESH.GeometryType._items in the Python Console to see all geometric types.
|
||||||
|
|
||||||
\tui_script{filters_ex35.py}
|
\tui_script{filters_ex35.py}
|
||||||
|
|
||||||
|
\section filter_entity_type Entity type
|
||||||
|
|
||||||
|
filters mesh elements by the geometric type and number of nodes.
|
||||||
|
- element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
|
||||||
|
- functor type should be \a SMESH.FT_EntityType
|
||||||
|
- threshold is either of SMESH.EntityType values. Type \a SMESH.EntityType._items in the Python Console to see all entity types.
|
||||||
|
|
||||||
|
\tui_script{filters_ex37.py}
|
||||||
|
|
||||||
|
\section filter_ball_diam Ball diameter
|
||||||
|
|
||||||
|
filters ball elements by diameter.
|
||||||
|
- element type should be \a SMESH.BALL
|
||||||
|
- functor type should be \a SMESH.FT_BallDiameter
|
||||||
|
- threshold is floating point value (ball diameter)
|
||||||
|
|
||||||
|
\tui_script{filters_ex38.py}
|
||||||
|
|
||||||
|
\section filter_domain Elements of a domain
|
||||||
|
|
||||||
|
filters elements of a specified domain.
|
||||||
|
- element type can be any, e.g.: \a SMESH.EDGE, \a SMESH.FACE, \a SMESH.VOLUME, etc.
|
||||||
|
- functor type should be \a SMESH.FT_ConnectedElements
|
||||||
|
- threshold is either (1) node ID or (2) geometrical vertex or (3) 3 coordinates of a point.
|
||||||
|
|
||||||
|
\tui_script{filters_ex39.py}
|
||||||
|
|
||||||
\section combining_filters How to combine several criteria into a filter?
|
\section combining_filters How to combine several criteria into a filter?
|
||||||
|
|
||||||
Several criteria can be combined into a filter.
|
Several criteria can be combined into a filter.
|
||||||
|
@ -2,27 +2,24 @@
|
|||||||
|
|
||||||
\page tui_grouping_elements_page Grouping Elements
|
\page tui_grouping_elements_page Grouping Elements
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_create_standalone_group
|
\section tui_create_standalone_group Create a Standalone Group
|
||||||
<h2>Create a Standalone Group</h2>
|
|
||||||
\tui_script{grouping_elements_ex01.py}
|
\tui_script{grouping_elements_ex01.py}
|
||||||
|
|
||||||
\image html create_group.png
|
\image html create_group.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_create_group_on_geometry
|
\section tui_create_group_on_geometry Create a Group on Geometry
|
||||||
<h2>Create a Group on Geometry</h2>
|
|
||||||
\tui_script{grouping_elements_ex02.py}
|
\tui_script{grouping_elements_ex02.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_create_group_on_filter
|
\section tui_create_group_on_filter Create a Group on Filter
|
||||||
|
|
||||||
<h2>Create a Group on Filter</h2>
|
|
||||||
\tui_script{grouping_elements_ex03.py}
|
\tui_script{grouping_elements_ex03.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_edit_group
|
\section tui_edit_group Edit a Group
|
||||||
<h2>Edit a Group</h2>
|
|
||||||
\tui_script{grouping_elements_ex04.py}
|
\tui_script{grouping_elements_ex04.py}
|
||||||
|
|
||||||
\image html editing_groups1.png
|
\image html editing_groups1.png
|
||||||
@ -30,8 +27,7 @@
|
|||||||
\image html editing_groups2.png
|
\image html editing_groups2.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_union_of_groups
|
\section tui_union_of_groups Union of groups
|
||||||
<h2>Union of groups</h2>
|
|
||||||
\tui_script{grouping_elements_ex05.py}
|
\tui_script{grouping_elements_ex05.py}
|
||||||
|
|
||||||
\image html union_groups1.png
|
\image html union_groups1.png
|
||||||
@ -41,8 +37,7 @@
|
|||||||
\image html union_groups3.png
|
\image html union_groups3.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_intersection_of_groups
|
\section tui_intersection_of_groups Intersection of groups
|
||||||
<h2>Intersection of groups</h2>
|
|
||||||
\tui_script{grouping_elements_ex06.py}
|
\tui_script{grouping_elements_ex06.py}
|
||||||
|
|
||||||
\image html intersect_groups1.png
|
\image html intersect_groups1.png
|
||||||
@ -52,8 +47,7 @@
|
|||||||
\image html intersect_groups3.png
|
\image html intersect_groups3.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_cut_of_groups
|
\section tui_cut_of_groups Cut of groups
|
||||||
<h2>Cut of groups</h2>
|
|
||||||
\tui_script{grouping_elements_ex07.py}
|
\tui_script{grouping_elements_ex07.py}
|
||||||
|
|
||||||
\image html cut_groups1.png
|
\image html cut_groups1.png
|
||||||
@ -63,8 +57,7 @@
|
|||||||
\image html cut_groups3.png
|
\image html cut_groups3.png
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_create_dim_group
|
\section tui_create_dim_group Creating groups of entities from existing groups of superior dimensions
|
||||||
<h2>Creating groups of entities from existing groups of superior dimensions</h2>
|
|
||||||
\tui_script{grouping_elements_ex08.py}
|
\tui_script{grouping_elements_ex08.py}
|
||||||
|
|
||||||
\image html dimgroup_tui1.png
|
\image html dimgroup_tui1.png
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
\page tui_modifying_meshes_page Modifying Meshes
|
\page tui_modifying_meshes_page Modifying Meshes
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_adding_nodes_and_elements
|
\section tui_adding_nodes_and_elements Adding Nodes and Elements
|
||||||
<h2>Adding Nodes and Elements</h2>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_add_node
|
\anchor tui_add_node
|
||||||
@ -57,8 +58,7 @@
|
|||||||
\tui_script{modifying_meshes_ex10.py}
|
\tui_script{modifying_meshes_ex10.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_removing_nodes_and_elements
|
\section tui_removing_nodes_and_elements Removing Nodes and Elements
|
||||||
<h2>Removing Nodes and Elements</h2>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_removing_nodes
|
\anchor tui_removing_nodes
|
||||||
@ -76,73 +76,59 @@
|
|||||||
\tui_script{modifying_meshes_ex13.py}
|
\tui_script{modifying_meshes_ex13.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_renumbering_nodes_and_elements
|
\section tui_renumbering_nodes_and_elements Renumbering Nodes and Elements
|
||||||
<h2>Renumbering Nodes and Elements</h2>
|
|
||||||
\tui_script{modifying_meshes_ex14.py}
|
\tui_script{modifying_meshes_ex14.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_moving_nodes
|
\section tui_moving_nodes Moving Nodes
|
||||||
<h2>Moving Nodes</h2>
|
|
||||||
\tui_script{modifying_meshes_ex15.py}
|
\tui_script{modifying_meshes_ex15.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_diagonal_inversion
|
\section tui_diagonal_inversion Diagonal Inversion
|
||||||
<h2>Diagonal Inversion</h2>
|
|
||||||
\tui_script{modifying_meshes_ex16.py}
|
\tui_script{modifying_meshes_ex16.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_uniting_two_triangles
|
\section tui_uniting_two_triangles Uniting two Triangles
|
||||||
<h2>Uniting two Triangles</h2>
|
|
||||||
\tui_script{modifying_meshes_ex17.py}
|
\tui_script{modifying_meshes_ex17.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_uniting_set_of_triangles
|
\section tui_uniting_set_of_triangles Uniting a Set of Triangles
|
||||||
<h2>Uniting a Set of Triangles</h2>
|
|
||||||
\tui_script{modifying_meshes_ex18.py}
|
\tui_script{modifying_meshes_ex18.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_orientation
|
\section tui_orientation Orientation
|
||||||
<h2>Orientation</h2>
|
|
||||||
\tui_script{modifying_meshes_ex19.py}
|
\tui_script{modifying_meshes_ex19.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_cutting_quadrangles
|
\section tui_cutting_quadrangles Cutting Quadrangles
|
||||||
<h2>Cutting Quadrangles</h2>
|
|
||||||
\tui_script{modifying_meshes_ex20.py}
|
\tui_script{modifying_meshes_ex20.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_smoothing
|
\section tui_smoothing Smoothing
|
||||||
<h2>Smoothing</h2>
|
|
||||||
\tui_script{modifying_meshes_ex21.py}
|
\tui_script{modifying_meshes_ex21.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_extrusion
|
\section tui_extrusion Extrusion
|
||||||
<h2>Extrusion</h2>
|
|
||||||
\tui_script{modifying_meshes_ex22.py}
|
\tui_script{modifying_meshes_ex22.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_extrusion_along_path
|
\section tui_extrusion_along_path Extrusion along a Path
|
||||||
<h2>Extrusion along a Path</h2>
|
|
||||||
\tui_script{modifying_meshes_ex23.py}
|
\tui_script{modifying_meshes_ex23.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_revolution
|
\section tui_revolution Revolution
|
||||||
<h2>Revolution</h2>
|
|
||||||
\tui_script{modifying_meshes_ex24.py}
|
\tui_script{modifying_meshes_ex24.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_pattern_mapping
|
\section tui_pattern_mapping Pattern Mapping
|
||||||
<h2>Pattern Mapping</h2>
|
|
||||||
\tui_script{modifying_meshes_ex25.py}
|
\tui_script{modifying_meshes_ex25.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_quadratic
|
\section tui_quadratic Convert mesh to/from quadratic
|
||||||
<h2>Convert mesh to/from quadratic</h2>
|
|
||||||
\tui_script{modifying_meshes_ex26.py}
|
\tui_script{modifying_meshes_ex26.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_split_biquad
|
\section tui_split_biquad Split bi-quadratic into linear
|
||||||
<h2>Split bi-quadratic into linear</h2>
|
|
||||||
\tui_script{split_biquad.py}
|
\tui_script{split_biquad.py}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
\page tui_quality_controls_page Quality Controls
|
\page tui_quality_controls_page Quality Controls
|
||||||
|
|
||||||
|
\tableofcontents
|
||||||
|
|
||||||
\section tui_free_borders Free Borders
|
\section tui_free_borders Free Borders
|
||||||
\tui_script{quality_controls_ex01.py}
|
\tui_script{quality_controls_ex01.py}
|
||||||
|
|
||||||
|
@ -2,73 +2,58 @@
|
|||||||
|
|
||||||
\page tui_transforming_meshes_page Transforming Meshes
|
\page tui_transforming_meshes_page Transforming Meshes
|
||||||
|
|
||||||
<br><h2>Transforming Meshes</h2>
|
\tableofcontents
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_translation
|
\section tui_translation Translation
|
||||||
<h3>Translation</h3>
|
|
||||||
\tui_script{transforming_meshes_ex01.py}
|
\tui_script{transforming_meshes_ex01.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_rotation
|
\section tui_rotation Rotation
|
||||||
<h3>Rotation</h3>
|
|
||||||
\tui_script{transforming_meshes_ex02.py}
|
\tui_script{transforming_meshes_ex02.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_scale
|
\section tui_scale Scale
|
||||||
<h3>Scale</h3>
|
|
||||||
\tui_script{transforming_meshes_ex03.py}
|
\tui_script{transforming_meshes_ex03.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_symmetry
|
\section tui_symmetry Symmetry
|
||||||
<h3>Symmetry</h3>
|
|
||||||
\tui_script{transforming_meshes_ex04.py}
|
\tui_script{transforming_meshes_ex04.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_merging_nodes
|
\section tui_merging_nodes Merging Nodes
|
||||||
<h3>Merging Nodes</h3>
|
|
||||||
\tui_script{transforming_meshes_ex05.py}
|
\tui_script{transforming_meshes_ex05.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_merging_elements
|
\section tui_merging_elements Merging Elements
|
||||||
<h3>Merging Elements</h3>
|
|
||||||
\tui_script{transforming_meshes_ex06.py}
|
\tui_script{transforming_meshes_ex06.py}
|
||||||
|
|
||||||
<br><h2>Sewing Meshes</h2>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_sew_meshes_border_to_side
|
\section tui_sew_meshes_border_to_side Sew Meshes Border to Side
|
||||||
<h3>Sew Meshes Border to Side</h3>
|
|
||||||
\tui_script{transforming_meshes_ex07.py}
|
\tui_script{transforming_meshes_ex07.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_sew_conform_free_borders
|
\section tui_sew_conform_free_borders Sew Conform Free Borders
|
||||||
<h3>Sew Conform Free Borders</h3>
|
|
||||||
\tui_script{transforming_meshes_ex08.py}
|
\tui_script{transforming_meshes_ex08.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_sew_free_borders
|
\section tui_sew_free_borders Sew Free Borders
|
||||||
<h3>Sew Free Borders</h3>
|
|
||||||
\tui_script{transforming_meshes_ex09.py}
|
\tui_script{transforming_meshes_ex09.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_sew_side_elements
|
\section tui_sew_side_elements Sew Side Elements
|
||||||
<h3>Sew Side Elements</h3>
|
|
||||||
\tui_script{transforming_meshes_ex10.py}
|
\tui_script{transforming_meshes_ex10.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_duplicate_nodes
|
\section tui_duplicate_nodes Duplicate nodes or/and elements
|
||||||
<h3>Duplicate nodes or/and elements</h3>
|
|
||||||
\tui_script{transforming_meshes_ex11.py}
|
\tui_script{transforming_meshes_ex11.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_make_2dmesh_from_3d
|
\section tui_make_2dmesh_from_3d Create boundary elements
|
||||||
<h3>Create boundary elements</h3>
|
|
||||||
\tui_script{transforming_meshes_ex12.py}
|
\tui_script{transforming_meshes_ex12.py}
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
\anchor tui_reorient_faces
|
\section tui_reorient_faces Reorient faces
|
||||||
<h3>Reorient faces</h3>
|
|
||||||
\tui_script{transforming_meshes_ex13.py}
|
\tui_script{transforming_meshes_ex13.py}
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
@ -6,7 +6,7 @@ It is sometimes useful to work alternatively in the GUI of SALOME and in the Pyt
|
|||||||
|
|
||||||
\code
|
\code
|
||||||
myMesh_ref = salome.IDToObject("ID")
|
myMesh_ref = salome.IDToObject("ID")
|
||||||
// were ID is the number that appears in the object browser in the Entry column
|
// were ID is the string looking like "0:1:2:3" that appears in the object browser in the Entry column
|
||||||
// ( If hidden show it by right clicking and checking the checkbox Entry)
|
// ( If hidden show it by right clicking and checking the checkbox Entry)
|
||||||
myMesh = smesh.Mesh(myMesh_ref)
|
myMesh = smesh.Mesh(myMesh_ref)
|
||||||
\endcode
|
\endcode
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
$navpath
|
$navpath
|
||||||
<li class="footer">
|
<li class="footer">
|
||||||
Copyright © 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE<br>
|
Copyright © 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE<br>
|
||||||
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS<br>
|
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS<br>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
$navpath
|
$navpath
|
||||||
<li class="footer">
|
<li class="footer">
|
||||||
Copyright © 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE<br>
|
Copyright © 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE<br>
|
||||||
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS<br>
|
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS<br>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
@ -74,7 +74,7 @@ module SMESH
|
|||||||
boolean Contains( in long elem_id );
|
boolean Contains( in long elem_id );
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Returns ID of an element at position <elem_index>
|
* Returns ID of an element at position <elem_index> counted from 1
|
||||||
*/
|
*/
|
||||||
long GetID( in long elem_index );
|
long GetID( in long elem_index );
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
//
|
//
|
||||||
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version='1.0' encoding='us-ascii' ?>
|
<?xml version='1.0' encoding='us-ascii' ?>
|
||||||
<!--
|
<!--
|
||||||
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
|
||||||
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
|
||||||
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
@ -122,6 +122,7 @@
|
|||||||
<parameter name="Plug-ins/MGCleaner plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MGCleaner/index.html"/>
|
<parameter name="Plug-ins/MGCleaner plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MGCleaner/index.html"/>
|
||||||
<parameter name="Plug-ins/Z-cracks plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/zcracks/index.html"/>
|
<parameter name="Plug-ins/Z-cracks plugin User's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/zcracks/index.html"/>
|
||||||
<parameter name="Plug-ins/MacMesh plugin" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MacMesh/index.html"/>
|
<parameter name="Plug-ins/MacMesh plugin" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/MacMesh/index.html"/>
|
||||||
|
<parameter name="Plug-ins/plugin blocFissure" value="%SMESH_ROOT_DIR%/share/doc/salome/gui/SMESH/blocFissure/index.html"/>
|
||||||
<parameter name="Developer's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/tui/SMESH/index.html"/>
|
<parameter name="Developer's Guide" value="%SMESH_ROOT_DIR%/share/doc/salome/tui/SMESH/index.html"/>
|
||||||
</section>
|
</section>
|
||||||
<section name="resources">
|
<section name="resources">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version='1.0' encoding='us-ascii'?>
|
<?xml version='1.0' encoding='us-ascii'?>
|
||||||
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
|
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
|
||||||
<!--
|
<!--
|
||||||
Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
|
|
||||||
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||||
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE
|
# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE
|
||||||
#
|
#
|
||||||
# This library is free software; you can redistribute it and/or
|
# This library is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
# modify it under the terms of the GNU Lesser General Public
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user