Commit Graph

1372 Commits

Author SHA1 Message Date
luz.paz
cfbfa9dc6b Misc. typo, grammar, and whitespace fixes
[skip ci]
2018-11-27 15:02:58 -03:00
wmayer
fa5b47df16 Fix scan coverity issues:
CID 184350:  Null pointer dereferences
2018-11-20 15:11:43 +01:00
Abdullah Tahiri
bf6f2b855d Property: dropping isorderrelevant boolean member in favour of bit in the status of the properties 2018-11-19 11:31:09 +01:00
Abdullah Tahiri
af7d75c43f SketchObject: Activate relevant propertylist order 2018-11-19 11:31:08 +01:00
wmayer
a0795e1236 improve whitespaces 2018-11-19 10:03:50 +01:00
Abdullah Tahiri
434ce91e8d Sketcher: Improving group constraint preselection
=================================================

the position obtained from the SoPath of the picked point when entering
the combined icon object is not the center of the icon, what leads to
wrong preselection or no preselection at all.

This commit uses the translation of the Constraint node, which is the same that
is used to locate the constraint icons on the screen in the first place.
2018-11-18 12:03:13 +01:00
Abdullah Tahiri
50af914311 Sketcher: Fillet increase debugging verbose and disable by default 2018-11-18 12:03:05 +01:00
wmayer
21d01fe6fc Replace Base::Exception with appropriate subclass 2018-11-14 19:27:52 +01:00
wmayer
66b889044b fixes 0003689: Snap to grid checkbox in edit control widget does not update 2018-11-14 12:40:39 +01:00
Abdullah Tahiri
380f36eff1 Sketcher: Trim support multiple intersections for circles
=========================================================

The problem with ellipses:
https://forum.freecadweb.org/viewtopic.php?f=3&t=31594&sid=37481b7a6c1ae2614c9840fc27a7773e&start=60#p267248

The problem with circles:
https://forum.freecadweb.org/viewtopic.php?f=3&t=31594&sid=37481b7a6c1ae2614c9840fc27a7773e&start=60#p267536
2018-11-09 22:30:04 +01:00
Abdullah Tahiri
605289585f Sketcher: Ellipse trim, handle multiple intersection 2018-11-09 22:30:04 +01:00
Abdullah Tahiri
200d9db0c2 Sketcher: Ellipse trimming with internal aligment geometry
==========================================================

Trimming was not considering a case where an ellipse is trimmed with respect to its own internal aligment geometry.

This resulted in Coincident Constraints with PointPos = Sketcher::none, which is invalid.
2018-11-09 22:30:03 +01:00
wmayer
172f0a0016 fix -Wabsolute-value 2018-11-09 12:46:36 +01:00
wmayer
135c67155d remove trailing spaces 2018-11-05 11:55:14 +01:00
wmayer
a67ee5648c remove trailing spaces 2018-11-05 10:53:01 +01:00
wmayer
0e9334aec2 remove leftover of boost.signals headers 2018-11-05 00:03:36 +01:00
Abdullah Tahiri
da890f2863 Sketcher: Allow driven constraints when autoredundancy removal and autorecomputes active
==========================================================================================

https://forum.freecadweb.org/viewtopic.php?f=3&t=31998#p266626
2018-11-04 14:46:37 -03:00
Abdullah Tahiri
eac4352b75 Sketcher: Trim bug
==================

Trim tool fails to generate coincidence upon trimming an arc of ellipse at the end of the arc.

https://forum.freecadweb.org/viewtopic.php?f=3&t=31594&start=50#p266765
2018-11-04 14:43:24 -03:00
Abdullah Tahiri
20faec46ec Sketcher: Fillet radius estimation improvement 2018-11-04 14:43:24 -03:00
Abdullah Tahiri
f202961a6c Sketcher: SketchObject Debug disabled by default 2018-11-04 14:43:24 -03:00
Abdullah Tahiri
c454e1c908 Sketcher: Add DEBUG macro to SketchObject 2018-11-04 14:43:24 -03:00
Abdullah Tahiri
01bac7854f Sketcher: Intercurve fillet Improvement and delete constraint on point fix
==========================================================================

Intercurve fillet uses endpoint constraints for improved accuracy, but before this
commit was only considering a coincident constraint. Now it also considers an endpoint
tangency or perpendicular.

delConstraintOnPoint with coincidentonly=false, was not checking endpoint perpendiculars and
would therefore fail to delete them.

https://forum.freecadweb.org/viewtopic.php?f=3&t=31594&start=30#p265731
2018-11-04 14:43:24 -03:00
Abdullah Tahiri
843f636d85 Sketcher: Expose mass datum commands to python 2018-11-04 14:41:20 -03:00
Abdullah Tahiri
7129b3ca0e Sketcher: Mass operations on dimensionals
=========================================

This commit introduces two functions to operate on all datum constraints exclusively:

- Make all datum constraints driving or not driving, depending on the argument.
- Move all datum constraints at the end of the constraint list.

The practical use an ongoing effort towards improving the block constraint behaviour, that will be defered to 0.19
2018-11-04 14:41:20 -03:00
Abdullah Tahiri
21f2e79021 Sketcher: Refactor code relating to dimensional constraint checks 2018-11-04 14:41:20 -03:00
Abdullah Tahiri
66bcaf5405 Sketcher: Made constraints aware of whether they are dimensionals or not
========================================================================

Centralise the knowledge on whether a constraint is dimensional or not within the constraint
2018-11-04 14:41:20 -03:00
wmayer
36271b4052 move from deprecated boost.signals to boost.signals2 library 2018-10-30 19:09:03 +01:00
Abdullah Tahiri
7abc5fec65 Sketcher: Fillet UI command Improved exception handling 2018-10-28 18:35:41 +01:00
Abdullah Tahiri
6c7684b2c7 Sketcher: Fillet extended CAD kernel information 2018-10-28 18:35:27 +01:00
Abdullah Tahiri
a93a5e9c93 Sketcher: Use transparent exception mechanism for fillets
=========================================================

This ensures that the exception back in the c++ that invoked python retains the type of exception and can be properly catched.
2018-10-28 18:34:50 +01:00
Abdullah Tahiri
af581dc689 Sketcher: GUI command updated to support filleting of bounded curves 2018-10-28 18:34:23 +01:00
Abdullah Tahiri
026459675c Sketcher: Support for filleting bounded curves
==============================================

Generally, bounded curves require that the curves are coincident at one point, the vertex to be filleted.

Trimmed curves, like combinations of line segments, arcs of conics, do not require it, as they are able to extend the trimmed
curve using the basis curve. However, they work fine when there is such a coincidence.
2018-10-28 18:34:12 +01:00
Abdullah Tahiri
cb5827b140 Sketcher: Inter-trimmed-curve filleting
=======================================

Algorithm changed to use offset curves, so as to avoid moving geometry in the sketcher.
2018-10-28 18:32:30 +01:00
Abdullah Tahiri
b3cf67dffe Sketcher: filleting arcofconic-arcofconic command 2018-10-28 18:32:02 +01:00
Abdullah Tahiri
187f5c9023 Sketcher: Fillet support inter-conics
==============================================

Specific support for filleting between conics.

It does not support B-Splines or line segments.
2018-10-28 18:31:48 +01:00
wmayer
d077c7333f fix crash in debug mode in sketcher in case the equation matrix has rank zero 2018-10-28 14:51:14 +01:00
wmayer
170913fbb4 make constraint validation consistent to evaluation 2018-10-16 23:21:40 +02:00
luz.paz
ce91b1f766 Misc. typo fix
Found via `codespell`
2018-10-11 16:21:28 -04:00
Abdullah Tahiri
d9015da662 Sketcher: Avoid transfering angle constraints
=============================================

Angle constraints are internally coded using the diverging points of the segments (PointPos != none) in normal 2 segment angle constraints.

This creates a problem with the mechanism to transfer enpoints on angle deletion.

fixes #3589
2018-10-08 15:16:27 +02:00
mwganson
dfdc05f5c5 sketcher: clear selection after failed addExternal geometry to prevent crash 2018-10-05 11:26:07 +02:00
wmayer
4fd9d1078d fix segfault in ExpressionDelegate in case constraint property is invalidated 2018-10-04 23:34:19 +02:00
wmayer
7c7f9c11d1 fix possible crashes in sketcher commands due to wrong casts 2018-10-04 19:45:20 +02:00
wmayer
7d681a2979 0003544: Crash on creation of vertical dimension with Shift + V 2018-10-04 18:37:33 +02:00
wmayer
2f500f4987 fix freeze when editing empty sketch 2018-10-04 00:34:06 +02:00
Abdullah Tahiri
5d2b512665 Sketcher: Grid visualization improvement
========================================

Now the Grid is calculated based on the maximum semiaxis length. Grid is recalculated on every redraw of the Sketcher.
2018-10-02 20:59:29 +02:00
Abdullah Tahiri
7078f9206e Sketcher: Axes visualization improvement
========================================

Axes size was bounded to the boundingbox of the underlaying 2D shape. However, this does not even get updated in no update mode and provides unreliable values.

The axes calculation now:
- is coded to be the same size and fully symmetric.
- is coded to be minimum 100 mm semiaxis, which gives a good impresion for empty sketches with default zoom.
- is coded to grow with the largest of the semiaxes.

fixes #3334
2018-10-02 20:59:10 +02:00
wmayer
7bf4c9d96f fixes 0003410: 0.17 Regression: recompute will make parts lose color and take a longer delay compared to FC0.16 2018-10-02 19:04:44 +02:00
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