Commit Graph

1325 Commits

Author SHA1 Message Date
Abdullah Tahiri
bb7e038a5a Sketcher: Correct checking of compatible equality geometry
=========================================================

Before this commit equality line to circle is allowed although the solver can not process it.

Similar happens for several combinations of incompatible edges.
2018-09-29 18:18:42 +02:00
Abdullah Tahiri
54a20d5ff9 Sketcher: No equality to be applied to external axes
fixes #3532
2018-09-29 18:18:02 +02:00
luz.paz
360e581672 Misc. typo and whitespace fixes
ref: https://forum.freecadweb.org/viewtopic.php?f=3&t=30988#p256964
along with other misc. fixes
2018-09-19 17:26:03 +02:00
Markus Lampert
9109272d9e Set focus to sketcher window when a new handler is activated to ensure proper handling of keys, espcially Escape. 2018-09-11 07:30:43 +02:00
wmayer
1d11f742ca now each module registers its unit tests itself 2018-08-28 13:14:16 +02:00
Abdullah Tahiri
2a3c0031a4 Sketcher: UI option to enable/disable the automatic redundant removal mechanism 2018-08-26 20:54:02 +02:00
Abdullah Tahiri
779b4f641d Sketcher: Automatic redundant removal mechanism
===============================================

It is a long felt need that redundant constraints are not generated while autoconstraining.

The solver sketcher in v0.17 is überpicky with redundants due to the new popularity contest algorithm. The former behaviour is exhacerbated.

This new mode enables automatic redundant constraint removal.

In UI operations IN EDIT MODE, upon detection of redundancy by the solver, the Sketcher will remove all redundant constraints detected by that solve.

This makes the sketcher much less annoying.

How to test this?

The easiest example is to create a vertical line. Then make the endpoints symmetric with respect to the horizontal axis. Without this mode,
the vertical constraint and the symmetry constraint are redundant. With this mode, the vertical constraint gets automatically removed by the Sketcher.
2018-08-26 20:54:01 +02:00
Abdullah Tahiri
716d53b86e Sketcher: Move autoremoveredundants method from SketchAnalyser to SketchObject 2018-08-26 20:54:01 +02:00
Abdullah Tahiri
c1d6ccb0d8 GCS: Bug fixes
==============

- Zero initialization of the jacobian matrix
- Correct notification of redundant/conflicting in presence of non-driving constraints.

fixes #3529
2018-08-26 20:54:01 +02:00
wmayer
e02f5fae7c handle case if a B-spline is straight and thus maximum curvature is zero 2018-08-26 19:17:16 +02:00
wmayer
448408c28a Improve usability of expression dialog:
+ add signal showFormulaDialog to QuantitySpinBox in order to indicate whether the formula dialog opens or closes
+ when formula dialog opens then hide the button box in the parent dialog, show it again when the formula dialog closes
2018-08-23 12:22:57 +02:00
wmayer
83dbba99c7 CMP0050: make Sketcher module aware of cmake policy 2018-08-20 18:04:58 +02:00
luz.paz
9c2e9884e2 More typos 2018-08-18 21:48:43 +02:00
luz.paz
fab9cad50f Misc. typos
Found via `codespell`
Trivial typos

Found via `codespell`
2018-08-18 21:48:42 +02:00
wmayer
a7f261dc13 fix warnings 2018-08-08 18:02:59 +02:00
Markus Lampert
e13c09235f Changed all catch types to references for polymorphic exceptions. 2018-08-08 15:45:30 +02:00
wmayer
80cd28bec9 comment out unused icons (to fix C2603 MSVC error) 2018-07-30 09:52:41 +02:00
Abdullah Tahiri
182811ae47 Sketcher: Fix typos 2018-07-30 00:47:26 +02:00
Abdullah Tahiri
6a5d26ca76 Sketcher: Fix Radius/Diameter shortcut 2018-07-30 00:47:26 +02:00
Abdullah Tahiri
e2d6ca5ca6 Sketcher: Add diameter constraint to the menu and the toolbar
fixes #1632
2018-07-30 00:47:25 +02:00
Abdullah Tahiri
db3834a598 Sketcher: Geometry Element Widget Support for Diameter Constraint shortcuts 2018-07-30 00:47:25 +02:00
Abdullah Tahiri
12025a02ed Sketcher: Constraint Widget support for the diameter constraint 2018-07-30 00:47:25 +02:00
Abdullah Tahiri
1e2b7e4051 Sketcher: Support for editing datum dialog 2018-07-30 00:47:24 +02:00
Abdullah Tahiri
a7870959d3 Sketcher: Diameter Constraint Property representation 2018-07-30 00:47:24 +02:00
Abdullah Tahiri
f6a9c353cb Sketcher: New command to add a Diameter Constraint 2018-07-30 00:47:24 +02:00
Abdullah Tahiri
ac00f6bba2 Sketcher: Diameter constraint art 2018-07-30 00:47:23 +02:00
Abdullah Tahiri
3d000b2615 Sketcher: ViewProvider representation of the Diameter Constraint 2018-07-30 00:47:23 +02:00
Abdullah Tahiri
174c96dca8 Sketcher: Double arrow label for Diameter Constraint 2018-07-30 00:47:20 +02:00
Abdullah Tahiri
49a71e9399 Sketcher: Python SketchObject support 2018-07-30 00:47:20 +02:00
Abdullah Tahiri
76993592ab Sketcher: Diameter support for Sketch Object 2018-07-30 00:47:20 +02:00
Abdullah Tahiri
b320f15909 Solver: Support for Diameter constraint 2018-07-30 00:47:20 +02:00
Abdullah Tahiri
e54c33d585 GCS: Diameter constraint emulation through ConstraintEqual 2018-07-30 00:47:19 +02:00
Abdullah Tahiri
7270446ff9 GCS: Extension of ConstraintEqual to allow for a proportionality factor 2018-07-30 00:47:19 +02:00
Abdullah Tahiri
831e455e50 Sketcher: Diameter Constraint Python support 2018-07-30 00:47:18 +02:00
Abdullah Tahiri
5b9a794228 Sketcher: New Sketcher Constraint Diameter 2018-07-30 00:47:18 +02:00
wmayer
bc5a84cb09 add missing export macro 2018-07-29 15:53:56 +02:00
Abdullah Tahiri
f7c827cd23 Sketcher: Add command to delete all constraints to menu 2018-07-29 13:44:09 +02:00
Abdullah Tahiri
d78b5874da Sketcher: UI command to delete all the constraints at once 2018-07-29 13:44:09 +02:00
Abdullah Tahiri
9f969e558c Sketcher: Python command to delete all the constraints at once 2018-07-29 13:44:07 +02:00
Abdullah Tahiri
6e865aa3e5 Sketcher: Python SketchObject implementation
Exposure of all the functionality in the previous commits to Python
2018-07-29 13:44:07 +02:00
Abdullah Tahiri
d91f338a1a Sketcher: SketchObject adaptation to Sketch Analysis
Apart for the inclusion of the Analysis functionality, SketchObject has been improved to provide:

- A fast painless deleteAllConstraints() function

- A fast painless constraint group deletion, delConstraints(std::vector<int> ConstrIds, bool updategeometry)
2018-07-29 13:44:07 +02:00
Abdullah Tahiri
e8e1f13e57 Sketcher: Make use of Sketch Analysis for Sketch Validation - refactoring 2018-07-29 13:44:06 +02:00
Abdullah Tahiri
8431385b44 Sketcher: Sketch Analysis tool and autoconstraining algorithms
A series of algorithms to detect missing constraints and create them.

Each of the algorithms is divided in different steps for maximum flexibility:

    /// There is a first type of routines, simple routines, which work in the following order:
    /// Detect - (Analyse) - [Get] - [Set] - Make
    ///
    /// The Detect step just identifies possible missing constraints.
    ///
    /// The Analyse, which is not available for all the routines, operates in detected constraints of the same routine, to
    /// look for alternatives. For example, a general pointonpoint detection leads to a search for coincident constraints, which
    /// can be later run via Analyse if it is intended to convert endpoint coincidence to endpoint perpendicular and tangent constraints.
    ///
    /// The Get retrieves the result of the analysis as a vector of ConstraintIds, indicating the suggested constraints. This step is intended
    /// for enabling the user to check the result of the analysis, rather than applying it. If only applying is intended, this step is not necessary
    /// as the Make will operate on the result of the Detect - Analyse directly.
    ///
    /// The Set changes the detected result. It modifies the SketchAnalysis object. It only modifies the SketchObject as far as the SketchAnalysis is changed.
    /// It does not apply any changes to the sketch. It is intended so as to enable the user to change the result that will be applied.
    ///
    /// Neither the Detect, nor the Analyse, nor the Get steps modify the Sketch geometry.
    ///
    /// Make applies the constraints stored internally in the SketchAnalysis object.

It includes an automatic constraining algorithm for coincidences, horizontals/verticals and equality:

    /// A second type of routines, complex routines, are thought for running fully automatic and they Detect, Analyse and Make.
    /// They may also apply a variaty of types of Constraints.

It also includes some helper functions, like autoRemoveRedundants
2018-07-29 13:44:06 +02:00
luz.paz
9bd704d320 Misc. code comment typo fixes
Found via `codespell -q 3 -I ../fc-word-whitelist.txt --skip="*.ts,*.po,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./.git,./src/zipios++"`
2018-07-27 10:39:43 -03:00
hokieengr
faf9278500 Fixed default HideUnits option to FALSE 2018-07-23 12:44:26 -03:00
hokieengr
9066b354c5 Added code to strip units from display string 2018-07-23 12:44:26 -03:00
hokieengr
315a64db90 Updated hide units GUI option with more text 2018-07-23 12:44:26 -03:00
hokieengr
0fb8306380 WIP. Moving to other machine. 2018-07-23 12:43:46 -03:00
hokieengr
504e75d441 WIP. Added logic to not hide non-base units. 2018-07-23 12:43:46 -03:00
hokieengr
8662d1af1b WIP. Moved code to hide units to seperate function 2018-07-23 12:43:46 -03:00