Commit Graph

194 Commits

Author SHA1 Message Date
Abdullah Tahiri
e928e418ec Sketcher: New Feature: Hyperbola/ArcOfHyperbola
===============================================

- ArcOfHyperbola creation method
- Solver representation (undefined moving)
- SketchObjectPyImp (here we still miss the Part->Partdesign conversion)
- Sketch validation for hyperbola
- Hyperbola creation method: shows the "proof of concept", but it is very buggy!!

Notes:
- Missing icons, probably missing geo normal curve implementation - rebasing -
- Fixes to adapt Hyperbola to Derivector implementation and make it compile
2016-11-27 18:45:33 +01:00
wmayer
2d8e70085e rename 2d tool classes to be consistent with 3d classes 2016-11-21 14:29:51 +01:00
wmayer
b1904dfd28 replace hard coded numbers with static constants 2016-10-23 13:44:26 +02:00
wmayer
c06b6f081f fix -Wextra in Sketcher 2016-09-22 18:34:35 +02:00
wmayer
e8554cc77a do not use doCommand without using format string, add overloaded method of runCommand 2016-09-15 18:53:37 +02:00
wmayer
8bd18797c4 Coverity: fix high impact issues 2016-08-17 15:33:04 +02:00
wmayer
d4368eb186 Coverity issues: check return value of dynamic_cast or replace it with static_cast 2016-08-17 10:43:58 +02:00
wmayer
c1febd98f1 fix disappearing constraint icons when using a symmetry constraint 2016-08-14 19:25:53 +02:00
wmayer
7872a9a6dc fix displacement of constraint icons in sketch edit mode 2016-08-14 18:02:22 +02:00
wmayer
5aefa4e67d make code more readable 2016-08-14 16:46:58 +02:00
DeepSOIC
fee109149b Sketcher: fix selectability of constraints when pickRadius is large
Constraints still do not respect pickRadius. I haven't found a way to
fix it.
2016-08-10 18:46:45 +02:00
wmayer
c294c8bdbd + rename methods in Vector3 class
+ add convenience methods Cross and Dot to Vector3 class
+ fix bug in DistanceToLineSegment in Vector3 class
2016-07-30 15:14:47 +02:00
DeepSOIC
3adbb9a5ba Sketcher: visibility automation
Added the following properties to Sketch ViewProvider:
* 4 bools to enable/disable parts of automation
* TempoVis property to hold instance of TempoVis python object, that helps with the automation
2016-06-20 01:19:06 +03:00
Eivind Kvedalen
00516cc409 Sketcher: Changed return type of Constraint::getPresentationValue() to Quantity, to be able to include unit. 2016-06-18 09:48:52 +02:00
Eivind Kvedalen
625a5b7945 Sketcher: Fixed radian/degree mix-up for Angle constraint. 2016-06-18 09:48:46 +02:00
Stefan Tröger
49489bfe62 Fix sketch positioning with part and body 2016-04-12 18:12:23 +02:00
Stefan Tröger
932f976dd9 Ensure correct sketch placement calculation
As bodies are movable now they need to be taken into account for calculating the sketch placement.
2016-04-12 18:12:21 +02:00
Stefan Tröger
0f8da717d9 fix sketch editing within transformed parts 2016-04-12 18:12:08 +02:00
jrheinlaender
dfedb85110 Two minor fixes 2016-04-12 18:11:53 +02:00
jrheinlaender
5ac8aeaf2c Moved some methods from PartDesign::Body to Part::BodyBase so the SketchObjects will be removed cleanly from the Body when deleted 2016-04-12 18:11:49 +02:00
jriegel
6949a23483 some adjustments on WB auto-switch 2016-04-12 18:11:45 +02:00
jriegel
b7d53d9d70 auto WB switching for editing Sketches and new TaskWatcher 2016-04-12 18:11:45 +02:00
DeepSOIC
acec16d5dc Sketcher: never ever hide constraint value sign, anymore 2016-03-12 21:28:22 +01:00
wmayer
e7df101273 + minor whitespace fix, fix warnings 2016-03-11 21:39:15 +01:00
wmayer
466a4e6d4d + issue #0001203: Allow User to Adjust Size of Constraint Points 2016-03-08 00:31:50 +01:00
Mateusz Skowroński
6942c23895 Qt4's qglobal.h defined TRUE and FALSE. Qt5 does not do it anymore. Replace it with true and false.
158f39ec78

This change is Qt4/Qt5 neutral.
2016-01-05 16:43:33 +01:00
Mateusz Skowroński
c275b35d48 QString::fromAscii() is obsolete in Qt5. Replace it with fromLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:07:25 +01:00
Mateusz Skowroński
0695552cff QString::toAscii() is obsolete in Qt5. Replace it with toLatin1().
This change is Qt4/Qt5 neutral.
2016-01-05 16:06:48 +01:00
wmayer
bc4f4de54b + fix compiler warnings 2015-12-30 10:58:14 +01:00
wmayer
60d59b608a + fixes #0001956: FreeCAD 0.14.370x hangs when attempting to edit sketch containing ellipse 2015-12-27 11:44:47 +01:00
wmayer
a403140364 + double check that internal data is valid when leaving edit mode of sketcher view provider 2015-11-02 12:42:18 +01:00
Abdullah Tahiri
682c79840f Sketcher: Solver information: Bug fix
=====================================

When the solver converged (but did not succeed) or when the solver succeded but the solution is not OCC-valid, no error message was shown in the solver messages dialog.
2015-10-22 23:48:04 +02:00
wmayer
787d36e638 + fixes #0002291: Invalid sketch warning should allow to directly open sketch validation tool 2015-10-17 15:34:14 +02:00
wmayer
2a5311c462 + use correct context for translatable strings in ViewProviderSketch 2015-10-17 15:21:37 +02:00
wmayer
de41dc46ec + Prefer prefix ++/-- operators for non-primitive types 2015-10-07 13:38:17 +02:00
Eivind Kvedalen
208ba9eb9d Sketcher: Fixed keeping sign of constraints. 2015-10-06 21:26:22 +02:00
Abdullah Tahiri
72199f6296 Bug fix: deletion of groups of external geometry
================================================

Issue reported inter alia here:
http://forum.freecadweb.org/viewtopic.php?f=10&t=12380#p99456

How to reproduce:
1. Make an external geometry hexagon (make a hexagon, pad it, make a sketch on a hexagonal face and make all the lines external geometry)
2. Box select the external lines and press "del"

On the first pressing of "del" 3 lines were deleted and 3 remained, select again, on the second press 1 remains, select again, on the last press all are deleted.

Why?
Internal and External geometry were handled together in a single set. Group deletion of geometry is effected starting from the highest index,
so that upon deleting an element, the index of the remaining elements does not change. Handling both groups together caused that the external geometry
was actually deleted on the inversed order (as they are (decreasing) negative values for representation, but increasing positive indexes in the external geometry array).

Solution:
Internal and External geometries are handled separatedly
2015-09-28 11:14:30 +02:00
Eivind Kvedalen
cacf7bdaf1 Sketcher: Added support for expressions. 2015-09-21 14:51:10 +02:00
wmayer
dffaebd346 + check returned mdi view to be of the requested type 2015-09-16 16:15:19 +02:00
wmayer
a2d8a5b0aa + add convenience method to get editing view of a view provider 2015-09-15 22:09:28 +02:00
wmayer
d9aa9e4bf1 + fixes #0000870: Center sketch to a constraint that has been double clicked in the constraint list. 2015-09-15 17:24:23 +02:00
wmayer
f0c9368f71 + minor changes 2015-09-13 23:24:12 +02:00
wmayer
c86b051323 + improve code style 2015-09-11 22:00:25 +02:00
Abdullah Tahiri
3e5b0bd2f7 Sketcher: Bug fixes: inability to create links to external geometry
=================================================================

First bug: Inability to create links to external geometry as described here:
http://forum.freecadweb.org/download/file.php?id=16668

Second bug: FC crashes on changing the support after having imported external geometry as described here:
http://forum.freecadweb.org/viewtopic.php?f=10&t=12380

and solving this ticket:
http://www.freecadweb.org/tracker/view.php?id=2225

Solution to first bug:

If for some reason a sketch ends up having a list of external geometries (property) that can not be recreated (rebuilt),
they remain latent, do not show the external elements in the elements widget or in the screen and prevent adding the
elements again.

In cases where the saved file contains invalid external geometry links (which will give raise to a handled exception that would prevent external geometry creation),
this condition gets detected during restore and the invalid links are deleted before external geometry creation, so as to allow the rest of external links to be recreated.

Solution to second bug:

It is also related to invalid external links (the link was existing, but upon change on the support, it is possible that an external edge is no longer valid, reduction of edges in support).
This situation is detected upon entering into edit mode, and the invalid ones are deleted.

Note that there is still the possibility for the user to remap an invalid sketch BEFORE editing, if the remapping is successful, it may not be necessary to delete links (all depends on the
specific case).
2015-09-11 21:25:58 +02:00
wmayer
7a6d4eac8f + fix build failure in debug build type 2015-09-01 19:39:34 +02:00
wmayer
756a9c8130 + fix various warnings with gcc 2015-09-01 19:29:39 +02:00
Abdullah Tahiri
5958749b7a Sketcher: Bug fix: Wrong solver information upon failed solve
=============================================================

http://forum.freecadweb.org/viewtopic.php?f=10&t=11341&start=80#p92820

...I already have a minor bug, if you insert a conflicting dimensional constraint,
the solver information is not updated, the work-around is to hit "Manual Update".
2015-08-30 12:08:39 +02:00
Abdullah Tahiri
112fbb52df Sketch: Bug Fix: Maintain the Elements and Constraint Widget synchronized
=========================================================================

What?
Sometimes this widgets where out of sync

Why?
Under the update only when it is redrawn policy, sometimes only one of them, i.e. the one associated with the property
triggering the updateData was updated.

Solution:
Both are updated after every redraw.

It also complements the previous bug fix related to crash on deleting, by updating the widgets to account for the deleted geometry.
2015-06-25 14:33:27 +02:00
Abdullah Tahiri
4294e54fa3 Sketch: Bug fix: On delete crash with unsuccesful solving
==========================================================

Fixes the one reported by JMG here (Thanks!!):
http://forum.freecadweb.org/viewtopic.php?f=3&t=11508#p92693

Why?
- The newly introduced redrawing policy requires that the solver geometry matches in number the sketchobject geometry.
- Most (all) problems with updateColor or getGeometry returning a null pointer are related to an out of sync between UI geometry and SketchObject geometry.

General solution:
- In other bugs, a missing "solve()" is the problem, once the solver and sketchobject geometries have the same number, an SketchObject::OnChanged triggers
a VPSketch::draw (via VPSketch::updateData) which updates the UI geometry to match SketchObject geometry and then the problem does not arise.

Particular solution:
- In this bug, the problem is not a missing solve, but the fact that the solving was not succesful and did not synchronize the geometries, however triggering a
draw() on unsuccessful solving, syncronizes the UI geometry with the SketchObject geometry and the crash is gone.
2015-06-25 14:33:22 +02:00
Abdullah Tahiri
1e516db567 Sketcher: Bug fix: Unexpected crashes during certain operations
===============================================================

The sketcher crashed for example during effecting a fillet operation.

Cause:
The ElementsWidget/ConstraintWidget was being updated as a consequence of adding/removing geometry/constraints, and it was effecting
a selection after the update, in cases where the geometry in the screen was not being redraw (because the sketchobject was still unsolved), therefore
trying to select an element that according to ViewProvider did not exist (as it is created during redraw).

Solution:
Widgets update when their properties changes, provided that a redraw is effected (which actually also saves some (negligible) time, as they are only updated when they should).
2015-06-24 17:56:57 +02:00