Commit Graph

21854 Commits

Author SHA1 Message Date
Thomas Gimpel
28dcbc5185 Part: fix handling of attachment offset rotation changes in attachment editor 2020-07-04 07:50:58 +02:00
donovaly
d94394bfc2 [PD] disable keyboardTracking for dressup dialogs
- At the moment using e.g. the thickness dialog and change from the default "1.0" to e.g. "21.3" triggers 4 recomputes. This takes a lot of time and is unnecessary. Qt offers therefore to disable keyboardTracking (and we use it already in the TechDraw workbench).

- also change the default draft angle from 1.5° to more common 10° and the step to 1° so that one can quickly get usual angles for drafts
2020-07-04 07:00:00 +02:00
Thomas Gimpel
36cb126a85 Sketcher: fix crash, when cloning element having a non-driving distance, radius, diameter or angle constraint; fixes #4393 2020-07-03 20:38:06 +02:00
Przemo Firszt
0bb0946d05 [fedora.spec] Move to stage 3 of python bytecompilation
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2020-07-03 18:52:54 +02:00
Sudhanshu Dubey
a5a0b7b7a4 FEM: examples, add Gui to setup examples 2020-07-03 18:03:35 +02:00
Sudhanshu Dubey
27d35e57f2 FEM: examples, add method for retrieving informations 2020-07-03 18:03:27 +02:00
wmayer
bac752b012 Surface: replace std::mutex with a boolean to avoid extra overhead 2020-07-03 16:08:02 +02:00
wmayer
4722571a5a Surface: optimize Extend::onChanged 2020-07-03 16:08:02 +02:00
wmayer
1bfd5c81cd Surface: remove superfluous function call 2020-07-03 16:08:01 +02:00
wmayer
9dd57ddee9 Surface: in Extend::onChanged call the function of its direct parent class Part::Spline 2020-07-03 16:08:01 +02:00
wmayer
711d473a6d Surface: handle old project files using Extend feature 2020-07-03 16:08:01 +02:00
wmayer
dbce4dc5ee Surface: fix -Winconsistent-missing-override 2020-07-03 16:08:01 +02:00
MA-LAPTOP\apeltauer
4d24229e5c adding 4 spaces instead of 2 spaces 2020-07-03 16:08:01 +02:00
MA-LAPTOP\apeltauer
47d6a54da8 Add the possibility to set the uv values for all four sides indepented.
Extending the face symetric is the default behaviour.
2020-07-03 16:08:01 +02:00
Bernd Hahnebach
162133e74b FEM: calculix solver unit tests, add generic inp file writing method and make use of it 2020-07-03 15:27:08 +02:00
Bernd Hahnebach
5e94f41db7 FEM: objects unit tests, improve directory handling 2020-07-03 15:27:00 +02:00
Bernd Hahnebach
a38cf0b32d FEM: mesh unit tests, improve directory handling 2020-07-03 15:26:53 +02:00
Warren Falk
99f80fabe4 [CMake] Find old pyside2 uic and rcc when they are named pyuic5 and pyrcc5
Found that on ubuntu 20.04 where QT is still at 5.12, these are called pyuic5 and pyrcc5 now and cmake will not find these and then the build fails without this change
2020-07-03 14:41:11 +02:00
Zheng, Lei
047dd33214 Fem: fix ViewProviderFemPostPipeline::updateData() 2020-07-03 14:37:59 +02:00
Bernd Hahnebach
8133ee1e35 Arch: IFC, fix import break on a IfcAxis2Placement2D 2020-07-03 13:54:26 +02:00
Yorik van Havre
d7df7fad8c Simplified github/FUNDING.yml 2020-07-03 11:47:23 +02:00
Bernd Hahnebach
dc8af8e535 FEM: ccxtools unit tests, simplifictions 2020-07-03 09:56:59 +02:00
Abdullah Tahiri
4ed35140c0 Sketcher: Augment malformed constraint messages
===============================================

Enable a user recomputing an object/document to identify which sketch has the malformed constraints.
2020-07-02 19:54:15 +02:00
Bernd Hahnebach
1fa1d753b0 FEM: ccxtools unit tests, improve directory handling 2020-07-02 18:13:47 +02:00
Bernd Hahnebach
7809cb8de5 FEM: elmer unit tests, add ccx canti node load test 2020-07-02 14:25:56 +02:00
Bernd Hahnebach
b8dce01b94 FEM: unit tests, improve directory handling 2020-07-02 14:25:48 +02:00
Bernd Hahnebach
2e077f4181 FEM: solver elmer unit tests, add generic input file test method and make use of it 2020-07-02 14:25:39 +02:00
wmayer
611fd4088a fixes #0004318: Compilation fails with Qt 5.15 beta with QPainterPath errors [skip ci] 2020-07-02 13:19:43 +02:00
WandererFan
46453ef57d [TD]tweak CosmeticEdge point getters 2020-07-01 20:22:39 -04:00
Bernd Hahnebach
d8d53bcb60 FEM: examples, fix mat value in simple box example 2020-07-01 22:18:14 +02:00
Bernd Hahnebach
a29c488771 FEM: elmer unit tests, add ccx canti faceload 2020-07-01 22:18:07 +02:00
Bernd Hahnebach
8ed7201e06 FEM: elmer unit test, rename case file
rebaseSmart
2020-07-01 21:44:16 +02:00
Bernd Hahnebach
86c5799571 FEM: solver elmer unit test, small improvements 2020-07-01 21:44:09 +02:00
Bernd Hahnebach
a15adf2dee FEM: examples, nonlinear material, add forum link 2020-07-01 21:44:03 +02:00
wmayer
22daa5472d Sketcher: [skip ci] fixes -Wmaybe-uninitialized 2020-07-01 19:50:40 +02:00
Bernd Hahnebach
43cc0084eb FEM: unit tests, make own module for each frame work solver 2020-07-01 17:42:47 +02:00
Abdullah Tahiri
2a39c8e9fd Sketcher: Check invalid constraint indices in unmanaged operations
==================================================================

It is possible to bypass SketchObject in modifying geometry and constraints. Like in here:
https://forum.freecadweb.org/viewtopic.php?f=3&t=41326&start=20#p408409

This leads to unexpected behaviour and even crashes.

With this commit the new mechanism of constraint indices check is leveraged in cases not involving SketchObject operations (aka managed operations).

Direct assignment of properties from Python (sketcher unmanaged operations), undergo this extra indices check.

When indices in constraints are outside the geometry range, the constraints are shown as empty and the error is shown in the report window.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
638a6b24bc Sketcher: PropertyConstraintList input data validation
======================================================

PropertyConstraintList is provided with the ability to check its constraints indices against
a minimum and a maximum, and set an invalidindex status.

In this status, the getValues returns an emptylist, as in the case with invalid geometry types.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
30d30a27b8 GCS: Prevent that reference constraints affect the result of a redundant solving
================================================================================

Solves the part of this described bug relating to reference constraints affecting the diagnosis of redundant constraints:
https://forum.freecadweb.org/viewtopic.php?p=410195#p410195
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
56db6f0e80 GCS: Add debug code to identify the popularity contest selected redundant that is removed 2020-07-01 14:04:25 +02:00
Abdullah Tahiri
088abe7353 Sketcher: Use move semantics wherever sensible
==============================================

Take advantage of PropertyGeometryList setValues() move overload in order to make code more readable and prevent
memory leaks (mostly by inadvertedly not deleting cloned geometry and constraints).

PropertyGeometryList and PropertyConstraintList are vectors of heap allocated pointers. Copying a vector
makes a shallow copy, not a deep copy (the pointers are the same in the copy).

For property management, setValues() function taking a const reference effectively make a deep copy of all
pointed objects. This means that heap allocated pointers of the client class passed to these functions must be
released by the client. While this sounds sensible, forgetting to is easy. In the cases where the developer
remembered to release these pointers, extra code is needed just for memory management.

This commit does not seek a substantial performance increase that would justify rewritting the code, although code
may be slightly faster sometimes.

Functions where setValues() is conditional are not changed to move semantics, as it makes no sense to make a deep copy to sometimes
perform a second deep copy later on. This code still uses const ref setValues().

CHECKS performed to refactored functions with this commit:

1) That the vector is NOT used after moving its content.

2) That whereever there is a clone(), there must be EITHER
    -a std::move if using rvalue setValues()
    OR
    - a delete to free the heap memory after setValues if using the const ref setValues()

3) That memory is released if an exception occurred.

N.B.: A couple of memory leaks are fixed in this commit too.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
e9b74aa934 PropertyConstraintList: refactor setValue 2020-07-01 14:04:25 +02:00
Abdullah Tahiri
7a3e26dc5a PropertyGeometryList: move setValue and refactor 2020-07-01 14:04:25 +02:00
Abdullah Tahiri
5119513488 Sketcher: ViewProviderSketch inhibit update if internal transaction is ongoing
==============================================================================

Inhibit ViewProviderSketch updateData with invalid data (internal transaction).

Trigger update internally for internal transactions in SketchObject via touched()
so as to trigger updateData.

This leads to a reduction of updateData calls.
2020-07-01 14:04:25 +02:00
Abdullah Tahiri
736aa11f6e Sketcher: Internal Transaction Support and ensure valid constraint geometry indices
===================================================================================

On changing the geometry property (for example from Python), the constraints geometry indices was not rebuild in order to avoid
redundant and unnecessary rebuilds. However, this might cause crashes, as the status of the sketch (or its properties) may be invalid.

It also refactors into OnChanged common functionality.

This commit does NOT solve that the user may be inserting invalid geometry indices to the First/Second/Third of Constraints (invalid input).
Only makes sure that geometry indices (geometry types) of PropertyConstraintList match the geometry.

Solution:

1. Force the rebuild of the constraint geometry indices upon assignment of new Geometry.
2. Force the rebuild of the constraint geometry indices upon assigment of constraints, if they result in invalid geometry indices.
3. Introduce the concept of internal transaction to avoid those rebuilds, checks and updates in case of an ongoing internal transaction,
thereby preventing them as it was done before introducing 1 and 2 (in the case of SketchObject internal transactions).
2020-07-01 14:04:25 +02:00
Bernd Hahnebach
3c4c3197c9 FEM: meshtools, better comment 2020-06-30 22:27:24 +02:00
Bernd Hahnebach
82ea30f752 FEM: imports, improvements 2020-06-30 22:27:16 +02:00
Bernd Hahnebach
0065d6b76e FEM: mesh tools, compact mesh, use one id for Edges, Faces and Volumes as SMESH does save it 2020-06-30 19:26:04 +02:00
wmayer
41c481cc9b Fem: [skip ci] handle exception in Fem Constraint in case referenced shape element doesn't exist 2020-06-30 11:34:07 +02:00
wmayer
d2fd870e44 Base: fix build failure for Py2 2020-06-30 10:27:53 +02:00