Commit Graph

671 Commits

Author SHA1 Message Date
Abdullah Tahiri
3231a0c92a Sketcher: New Feature: External Geometry Linking improvement
============================================================

It lifts the need of clicking on the external geometry icon upon importing each external geometry element.

All the elements on which the user clicks are imported until the user right clicks with the mouse or presses ESC, like the Trim or Fillet tools.
2015-05-30 16:39:27 +02:00
Abdullah Tahiri
ba5a8fe87c Sketcher: New Feature: Continuous creation mode
===============================================

When creating a type of geometric element, the user can create as many elements of that type he wishes without having to click the button before each insertion.

The insertion of that type of elements ends by pressing ESC or clicking the right button of the mouse.

This mode is by default disabled and can be enabled in Preferences->Display->Sketch->Geometry Creation "Continue Mode".
2015-05-30 16:39:26 +02:00
Abdullah Tahiri
f7c9566f1e Sketcher bug fixes: Non-driving constraints editable on double click and color settings not working
===================================================================================================

This fixes a bug in the original implementation, that a non-driving constraint value could be
edited by double clicking on it in the 3D view.

It also includes minimal documentation on some functions.

It also includes:
- Color setting for non-driving constraints was not working.
- Settle UI terminology dispute:
  * Driving Constraint (normal red constraint)
  * Reference Constraint (non-driving constraint)
2015-05-30 16:39:26 +02:00
Abdullah Tahiri
ad180fb2c3 Sketcher New Feature: Non-driving constraints Icons by bejant
=============================================================

Nice icons to differentiate driving from non-driving constraints by bejant
2015-05-30 16:39:25 +02:00
Abdullah Tahiri
bc85670ce9 Sketcher new Feature: Non-driving constraints (aka Driven constraints or dimensions)
====================================================================================

It allows to enable and disable a constraint in the constraint list.

When disabled, the constraints current value is shown, but its value is not enforced (it is driven by the other constraints and user interaction).

A disabled constraint can be enabled (as far as it is enforceable, see non-driving constraints to external geometry below).

The sketcher functionality has been extended to support non-driving constraints to external geometry elements. This were previously excluded from
the possibility of creating a constraint on them (as their values depend on other sketches and would be redundant with the unchanged value or conflicting when value is changed).
Now these constraints are created as non-driving, but as they are not enforceable, the UI does not allow you to make them driving.

The constraint filter has been extended to include a Non-Driving constraints category.

Thanks again to Werner for his continuous support, and specially in this case to DeepSOIC, as he pointed towards a much better implementation solution than my original idea.
2015-05-30 16:39:25 +02:00
Abdullah Tahiri
5676c632f6 Bug fix: Sketcher Polygon autoconstraints
=========================================

The autoconstraints on creation of an hexagon were not working.

How to reproduce?
1. In a sketch make a couple of lines
2. Create an hexagon (or other polygon of your choice) with center in one end of a line and with side coincident with the end point of the other line

Result:
Neither the center nor the side autoconstraints are properly created.

Fix:
Straightforward. Just correct the indexes. Last is always the circle. Last but one is always a side.
2015-05-27 16:22:31 +02:00
Abdullah Tahiri
81bd2cf34a Bug fix: Sketcher: "Ask for value after creating distance constraint" setting not working
========================================================================================

How to replicate:
1. Go to Preferences->Display->Sketch and disable that checkbox.
2. Create a distance constraint (radius, distance, ...)

It will ask for the value regardless of whether the checkbox is clicked or not.

Why?
In SketcherSettings.ui the prefpath is "Mod/Sketcher"
The code refered to ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher/General");
2015-05-26 13:45:24 +02:00
wmayer
a2bdc366f0 + make sure that Sketch.clear() doesn't allow any arguments 2015-05-26 13:11:48 +02:00
Abdullah Tahiri
b5ff8cdc82 Sketcher Bug fix: Python function clear() contains wrong code
=============================================================

This function is like this from 2011 according to git blame.

The original code makes no sense. I assume that what is intended in this
function (in accordance with SketchPy.xml) is call the method clear in
Sketch.cpp.
2015-05-26 13:08:22 +02:00
wmayer
27863408c9 + remove references to SoFCSelection where not needed 2015-05-20 19:24:12 +02:00
wmayer
b35d28a941 + whitespace fixes, add curly braces to outer loop 2015-05-01 18:49:20 +02:00
DeepSOIC
24797fb65e Sketcher: allow mass selection for Point-on-object constraint 2015-05-01 18:31:18 +02:00
wmayer
dd2b39ddd6 + fixes #0002075: Analysis of FreeCAD by PVS-Studio static analyzer 2015-05-01 16:56:31 +02:00
wmayer
017e0f38d1 + fixes #0001998: For 32 px and 48 px the icons with a submenu in toolbars are not display at the good size 2015-04-17 23:16:28 +02:00
wmayer
bf7bc3532e Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-03-28 17:40:36 +01:00
DeepSOIC
89d0a7a176 Sketcher: bugfix: disallow opening when geometry types changed 2015-03-28 17:35:10 +01:00
DeepSOIC
3e6eb430fa Sketcher: small asserts cleanup 2015-03-28 17:35:10 +01:00
DeepSOIC
94c26629c0 Sketcher: add checks for null pointers
Made throws on null pointers.
2015-03-28 17:35:10 +01:00
DeepSOIC
5d9b7a4e03 Sketcher: fix repr string for symmetric constr. 2015-03-28 17:19:37 +01:00
Yorik van Havre
0009e58291 Merged crowdin translations 2015-03-07 15:17:58 -03:00
Yorik van Havre
8d8eba6dac Updated ts files from source 2015-02-27 18:56:51 -03:00
Yorik van Havre
8d98921dd7 Updated translations from crowdin 2015-02-27 18:46:03 -03:00
Sebastian Hoogen
ed80eb6c35 enter rubberband after moved by dragIgnoredDistance
issue #1149
2015-02-24 23:51:11 +01:00
wmayer
22b63a7653 + fix ambiguous shortcuts 2015-02-18 13:07:42 +01:00
DeepSOIC
aeabffeed8 Sketcher: bugfix in updating constraints after external geometry delete 2015-02-17 12:27:32 +01:00
DeepSOIC
13406a4daf Sketch:Validation: swap endpoints for reversed + constraint orientation locking controls
Added buttons to port sketches to CCW-emulation Sketcher.

Bonus =) : Added constraint orientation lock/unlock buttons (affects
point-wise modes of tangent and perpendicular constraints so far)
2015-02-17 12:27:32 +01:00
DeepSOIC
0767cd35f8 Sketcher: fix reversed geometry and rotated arcs
Fixes a bug where an arc, ellipse, or arc-of-ellipse, being reversed in
XY plane, behaved badly in sketcher (see forum thread "Sketch: how to
handle reversed external arcs?"
http://forum.freecadweb.org/viewtopic.php?f=10&t=9130 ).
Also fixes a problem with rotated arcs (see forum thread "Rotating Arc
in Sketcher"
http://forum.freecadweb.org/viewtopic.php?f=22&t=9145#p74262 ).

This is done by adding an emulation flag to a few methods in
Part::GeomXXX, which makes the shape to pretend being non-reversed
(CCW). This causes endpoints of reversed arcs of circles lineked as
external geometry to swap, causing broken sketches sometimes.
2015-02-17 12:27:31 +01:00
Abdullah Tahiri
0b081876e5 Ellipse: External geometry rotated fix
This commit solves the problem that a ellipse appears rotated when added as external geometry, if the face having the
elliptical shape has a direction vector in the -z axis.

This solves the problem. However, the issue with CW and CCW shapes in the sketcher shall be further investigated in order
to arrive to a general acceptable solution.
2015-02-17 12:27:31 +01:00
Yorik van Havre
0bb651da4d Updated translation files 2015-02-14 12:16:39 -02:00
Yorik van Havre
f99b6cf534 Fixed typo 2015-02-12 13:46:13 +01:00
Yorik van Havre
d8146a0cf8 Updated ts files 2015-01-26 16:23:48 -02:00
wmayer
17099d0545 + fixes #0001916: Cannot cancel angle constraint dialogue in sketcher 2015-01-15 00:36:44 +01:00
Yorik van Havre
ae3fafea6c Updated base translation files for crowdin 2015-01-13 20:00:09 -02:00
wmayer
477099bbfe + remove useless stuff from Init files 2015-01-13 16:19:19 +01:00
wmayer
eb9b6acdd6 + re-enable reading/writing grid size 2015-01-12 16:29:31 +01:00
wmayer
e16305cb83 + fixes #0001791: Counterbores do not follow when hole is moved 2015-01-12 00:55:56 +01:00
wmayer
6a3437e28e + fixes #0000692: Sketcher: Add angle constraint for arcs 2015-01-10 15:15:18 +01:00
wmayer
d3bc389765 + exception handling if moving sketch fails 2015-01-04 13:02:11 +01:00
wmayer
08828e5dc0 + fixes #0001225: Allow User to Rotate Arc Radius Constraint Text and Leader 2015-01-02 21:26:03 +01:00
DeepSOIC
c4fb8fc8ae Sketcher: AngleViaPoint: revert from OCC angle precalculation
Returning back to the slow temporary-sketch-based
calculateAngleViaPoint, because OCC-based version was incompatible with
always-CCW sketcher geometry. More info in "Sketch: how to handle
reversed external arcs?" forum thread
http://forum.freecadweb.org/viewtopic.php?f=10&t=9130&sid=1b994fa1236db5ac2371eeb9a53de23f
2015-01-02 11:48:34 +01:00
DeepSOIC
93d00b2dab Sketcher: validateConstraint update
Refactor validateConstraint and add angle-via-point and snell's law
support there.
2015-01-02 11:48:33 +01:00
DeepSOIC
684036fae8 Sketcher Ellipse: code cleanup
deleting redundant overloaded functions involving arc-of-ellipse, a few
todo comments, not implemented methods, System(constraintlist)
constructor.
2015-01-02 11:48:33 +01:00
DeepSOIC
ab7d980de0 Sketcher: solver rebranding - renamed directory
Sketcher: solver rebranding - updated references

cleanup

Sketcher: GCS: remove unused NAN and INF
2015-01-02 11:48:32 +01:00
DeepSOIC
9cc2ff7944 Sketcher Constraints: small code refactor
Unifying first checks in grad().
2015-01-02 11:48:32 +01:00
DeepSOIC
8660d9a914 Sketcher Ellipse: porting to DeriVector2
Sketcher Ellipse: porting tangent-line to DeriVector2

Replacing a ton of unreadable, sage generated math code with
easy-to-manage C++ code.

Sketcher Ellipse: porting internal align-t to DeriVector2

Sketcher Ellipse: small math refactor; const members

Moving the repeating code computing deriv+value of major radius to a
method of GCS::Ellipse.
Marking several methods of DeriVector2 as const member functions.

Sketcher Ellipse: porting arc angle rules to DeriVector2

Just porting.
Probably a complete remake of the concept is worth... Angles can be
calculated explicitly, there's no need to load the solver. I see no
benefits whatsoever on using the solver to keep track of angle values.

Sketcher Ellipse: porting equality to DeriVector2
2015-01-02 11:48:31 +01:00
DeepSOIC
43e8b30846 OpticConstraints: Adding Snell's law
Fix AngleViaPoint to support new derivative calculation technique.

OpticConstraints: Adding Snell's law. Fix AngleViaPoint to support new derivative calculation technique.

Snell's law constraint added to GCS, but not yet exposed and cannot be
tested.
Since the way CalculateNormal() returns derivatives had changed,
AngleViaPoint constraint needed modifications. Nothing serious.

OpticConstraints: SnellsLaw progress

Addable through python. Fix math. Some quick-and-dirty visual stuff to
get rid of hangs and to see the constraint in action.

OpticConstraints: SnellsLaw: flipping logic fix

OpticConstraints: SnellsLaw progress

Added toolbar button. Allowed editing a datum by doubleclick. New error
message approach during constraint creation.

OpticConstraints: SnellsLaw

OpticConstraints: SnellsLaw: list label improvement

OpticConstraints: SnellsLaw: fix after rebase

OpticConstraints: SnellsLaw: expose helper constraints

Snell's law internally is made of three constraints: point-on-object,
coincident and the Snell's sin/sin. They were all buried under one UI
constraint. Exposing them allows to construct reflection and
birefringence on the point (attempting to do so used to result in
redundant constraints and was often not functional at all).
This commit breaks compatibility with older files.

OpticConstraints: SnellsLaw: small refactor of math

Placing the duplicated code of error and gradient calculation into a
private method.

OpticConstraints: SnellsLaw: fix datum edit unit

OpticConstraints: SnellsLaw: fix datum edit bug

After previous fix, the dimensionless value was not accepted (the
constraint's value did not change, the changes were ignored).
2015-01-02 11:48:31 +01:00
DeepSOIC
68ec9e44f8 OpticConstraints: SnellsLaw: icon 2015-01-02 11:48:30 +01:00
DeepSOIC
397e37ad1c GCS: fundamental changes to simplify derivatives
GCS::Vector2D was morphed into a DeriVector2, a derivative-aware vector.
A bunch of vector math methods were added that implicitly calculate
respective derivatives. Now, there is no need to calculate the partials
- most is done implicitly.
2015-01-02 11:48:30 +01:00
DeepSOIC
3838bddcdb AngleViaPoint Constraint
AngleViaPoint: fixes in UI routines + new messages

Goofed undo message in tangency via point is fixed.
Forgotten updateActive, clearSelection have been added.
New more informative error messages for tangent constraint.

AngleViaPoint: using it instead of via line tangency

* replaced the helper construction line for ellipse-to-ellipse and
similar tangency with a point. Using tangent-via-point there
* deleted tangency via line for point-to-point on
(cherry picked from commit 9e3fa8c8de0f49c0ef3c978e015eb905358dbdd9)

AngleViaPoint: internal/external tangency locking

*Added automatic tangency type lockdown for all new constraints (only
for point-wise tangency).
Tangency type is stored in the constraint datum field, as an angle value
shifted by Pi/2 (to be able to treat 0.0 as undefined type).
Added ability to switch the tangency by setting datum value from python
(can be abused by passing arbitrary angle).
Further simplified the tangency related code in Sketch.cpp.

AngleViaPoint: added license to Geo.cpp

AngleViaPoint: renames in Constraints.cpp/.h

Changed some names to increase self-explanatoryness:
bool "remapped" renamed to "pvecChangedFlag"
"ReconstructEverything()" renamed to "ReconstructGeomPointers()"

AngleViaPoint: renames in Constraints.cpp/.h

Changed some names to increase self-explanatoryness:
bool "remapped" renamed to "pvecChangedFlag"
"ReconstructEverything()" renamed to "ReconstructGeomPointers()"

AngleViaPoint: using for endpoint perpendicularity

+ direction lockdown, just as with tangency.
+ quite a lot of old code is gone because of that

AngleViaPoint: perp-ty UI routine made similar to tangent

(Git has made a very messy diff.)
The changes are:
* Perpendicularity-via-point (3-element selection) support added.
* Endpoint-to-curve and endpoint-to-endpoint supports all shape
combinations.
* a bit of code cleanup and clarifications.

AngleViaPoint: placement of perpendicular icon in 3d view

AngleViaPoint: fix: allow setDatum of perpendicular constraint

AngleViaPoint: fix: centers of ellipses are not endpoints

isSimpleVertex used to return false for centers of ellipses and arcs of
ellipses, which made them being accepted for point-to-point tangency.
Should be fixed forever, mo more changes are expected to be necessary
for new types of geometry.

AngleViaPoint: precalc with OCC (work in progress)

Work in progress (not yet working).
Using OCC's tangent to replace implementation of
SketchObject::calculateAngleViaPoint.

AngleViaPoint: fix math: normal now points inwards, where it was intended initially and goofed up.

AngleViaPoint: adding comments to the code

AngleViaPoint: using GeomCurve::closestParameterToBasicCurve for angle precalculation

AngleViaPoint: Py method: changeConstraintsLocking

changeConstraintsLocking(True) - locks/re-locks all lockable
tangency/perpendicularity constraints of the sketch (applicable to
existing sketches).
changeConstraintsLocking(False) - removes locking information from
lockable constraints

AngleViaPoint: final SketchObject::calculateAngleViaPoint

Now, finally, using OCC functionality (thanks Abdullah!), without
composing temporary Sketch object.
2015-01-02 11:48:29 +01:00
DeepSOIC
9f821e06b5 Sketcher: Responsivity tweaks and AngleViaPoint Constraint
Solver iteration limit independent of system size (reduces hangs when
solver fails to converge).
Repaint() instead of update() to force render for every movePoint.

Sketcher: New Constraint AngleViaPoint

* Adding generic CalculateNormal() method
* Reconfiguration of GCS geometry classes: adding a base class "Curve",
that has a pure virtual function CalculateNormal().
* Initial inplementation of the new function.
* adding Vector2D class (I wanted to reuse the existing, but got wierd
compile errors, so implemented a new one... TODO.)
* Adding redirection support into GCS shapes. Adding a Copy method to
GCS::Curve.
* Automatic point-on-object
* Angle precalculation: when AngleViaPoint is added, angle is properly calculated based on
existing geometry.
* Added tangency-via-point using one.
* Implemented placement of tangency-via-point icon in 3d view. Also
affected is the placement of point-on-object icon (since it is very
similar code, it is now shared with tangency-via-point)
* Placement and moving of angle datum
Functions: calculateAngleViaPoint, isPointOnCurve,
calculateConstraintError exposed to python
* Endpoint tangency: All endpoint-to-endpoint and endpoint-to-curve tangency now works
through AngleViaPoint constraint and obsolete code clean up (most procedures
addConstraintTangentXXX2YYY)
2015-01-02 11:48:28 +01:00
Abdullah Tahiri
ec03fb541f Part: Extension of Geometry::Curve
Part: Extension of Geometry::Curve to wrap more functions of OCC

Apart from:
    bool tangent(double u, gp_Dir&) const;
that was already implemented, now it also implements:
    Base::Vector3d pointAtParameter(double u) const;
    Base::Vector3d firstDerivativeAtParameter(double u) const;
    Base::Vector3d secondDerivativeAtParameter(double u) const;
    bool normal(double u, gp_Dir& dir) const;
    bool closestParameter(Base::Vector3d point, double &u);

i.e. apart from giving the tangent vector for a given curve at parameter value u,
it also gives:
   - The point cartesian coordinates of the curve point at parameter value u
   - The vector of the first derivative at parameter value u
   - The vector of the second derivative at parameter value u
   - The normal vector to the curve at parameter value u
   - The parameter value of a curve closest ot a given point

Code cleanup: Changing Trim functionality of Ellipse to use OCC calculations

Part Curve functions extension: closestParameterToBasicCurve

It provides the parameter of the curve closest to a given point. If the curve is a Trimmed curve, the parameter of the basic underlaying curve closest to the point is provided.
2015-01-02 11:48:28 +01:00
wmayer
ff09f0524d + fixes #0001656: Vertical/horizontal distance constraint confuses for a line or two points 2014-12-30 15:20:29 +01:00
wmayer
f51daa88e0 + fixes #0001819: Getter Methods for Data inside a sketch 2014-12-29 22:28:12 +01:00
wmayer
d83c02387c + fix constraint evaluation function 2014-12-29 15:17:04 +01:00
wmayer
6a1cb47e30 + fixes #0001616: crash when selecting 'Edit Sketch' 2014-12-29 01:13:03 +01:00
wmayer
7d8b1f30c3 + fixes #0001720: Freecad crash when handling invalid sketches 2014-12-28 17:10:54 +01:00
wmayer
6a211b9dbe + fixes #0001060: Editing sketch crashes FreeCAD 2014-12-27 22:47:21 +01:00
wmayer
7149cce90f + fixes #0000957: Sketch view problem when go to edit 2014-12-27 17:50:37 +01:00
wmayer
d060cdf400 + revert changes for issue 1873 2014-12-26 00:08:26 +01:00
wmayer
272cb566e9 + fix minor issue in toggle construction command 2014-12-25 23:13:01 +01:00
wmayer
29d50dbc01 + improve whitespace 2014-12-25 23:10:42 +01:00
wmayer
e8802adcbe + fixes #0001838: When In Sketcher Make It Difficult To Mistakenly Delete A Feature 2014-12-25 22:43:09 +01:00
wmayer
a6b8bd6815 + improve whitespace, fix warnings 2014-12-25 09:48:23 +01:00
wmayer
33bc596fd8 + fixes #0001873: Error working with getSelectionEx()[0].SubObjects 2014-12-23 22:04:34 +01:00
wmayer
3fa8a1ed2b + fixes #0001874: Scripted constraints not evaluated correctly 2014-12-23 15:32:03 +01:00
wmayer
6af1186d27 + remove Makefile.am, remove some leftovers, avoid including unneeded headers in GCS.cpp 2014-12-20 14:06:54 +01:00
wmayer
d486f3351d + fix pow() ambiguity 2014-12-20 14:01:23 +01:00
Abdullah Tahiri
501c40f0e6 Sketcher: Ellipse implementation enhancements
- ArcOfEllipse enhancement: Tangency ArcOfEllipse to ArcOfEllipse or ArcOfCircle by selecting end/starting points...
- Minor bug corrections (Thanks DeepSOIC)
- ExposeInternalGeometry python command
- DeleteUnusedInternalGeometry python command
- On deletion of an Ellipse/ArcOfEllipse all further unconstrained internal geometry is also deleted.
- This cleans up the code by eliminating code repetition in the creation methods.
- Major bug fix for autoconstraints for ellipse and arc of ellipse creation (for both creation methods)
- Major bug fix Start and Endpoint constraints of an arc of ellipse where not taking into account that Sketcher arcs are always CCW, so they have to be exchanged if we convert a CW arc into a CCW arc.

Sketcher: General bug fix: Tangency wrongly suggested

What?
=====
- On creation of a shape autoconstraints are suggested.
- Tangent autoconstraint was suggested even with lines perpendicular to the tangency direction

Reproduce
=========
- Make a circle on the origin and move the mouse along the X axis, it will suggest a tangency that is impossible
- Click on the axis and no circle will be created

Solution
========
- The SeekConstraint now can use the parameter dir to give a direction that is substantially perpendicular to the expected tangency, so that
if an object having a direction (a line) is hit, a tangency will not be suggested if within around 6 degrees of being parallel.
- Additionally, if such a line is an X,Y axis of the sketch, tangency will only be suggested if the direction is within 6 degrees of being perpendicular (i.e. it is almost tangent already while sketching).
- This difference is due to the fact that an X or Y axis can not "move" to meet the object under creation, whereas a line can.
2014-12-20 12:33:37 +01:00
Mark A. Taff
80120a6bac Ellipse implementation: Several bug fixes
I. Fix minor bug where wrong b was used to create ellipse internal geometry.

Tweak the internal geometry code a bit and reformat it so it isn't so wide.
Also begin debugging constraint conflicts on small circular ellipses.

There seem to be two issues currently in major/minor internal geometry lines:
  1) Sometimes minorLength > majorLength due to round-tripping doubles, and
  2) Constraint conflicts when majorLength > minorLength by an epsilon on the order of 1e-6

(cherry picked from commit 5c3e20af1a95c860112289dcdda54ea99778bc3a)

II. When testing for a valid ellipse, also ensure that the mangled major axis length > the mangled axis length.

This additional condition ensures that major and minor axis constraints don't conflict in the case of small
(nearly) circular ellipses.

The is still a potential bug in the solver when the major length is just slightly larger than the minor, but this fix
makes it nigh impossible to reproduce.
(cherry picked from commit 7e274bc32d9aa1a12ab52bfa33ed80353540b062)

III. Code clean up

Remove redundant 3d vectors.

(cherry picked from commit c656d5165c8bae8f101a2b46af6b12348d06cefe)
2014-12-20 12:33:37 +01:00
Abdullah Tahiri
c8d7f70dba Sketcher: Ellipse implementation: Art by Jim 2014-12-20 12:33:36 +01:00
DeepSOIC
fc7f1791d2 Fix intern. geom. placement for ellipse arc a<b
(cherry picked from commit 896372cbae2d5667f72f6ee9e628eea482846156)
2014-12-20 12:33:36 +01:00
Abdullah Tahiri
83edcf4c86 Sketcher: Ellipse : Integration of all conics under a single toolbar space 2014-12-20 12:33:35 +01:00
Abdullah Tahiri
ba2c2d36e0 Sketcher: Ellipse implementation Art by Jim
- Art for setting all conics under a single icon
- Art for ellipse for 3 points creation method
2014-12-20 12:33:35 +01:00
Mark A. Taff
bccb9466cc Implement two construction methods for ellipses:
--Center, major radius, minor radius
  --Periapsis, apoapsis, minor radius

Artist: We need an icon for periapsis, apoapsis, minor radius method.
(cherry picked from commit f0a4339621b0bf901754af14c3cd36c95ca55966)
2014-12-20 12:33:35 +01:00
Abdullah Tahiri
901bbbed57 Sketcher: Various Ellipse enhancements
- Autoconstraints for Ellipse
- Conversion of a Part.Arc of an Ellipse to Sketcher.
2014-12-20 12:33:34 +01:00
Abdullah Tahiri
f5df65c4c4 Sketcher: Ellipse enhancement: All internal geometry is shown on creation
Elements that have internal geometry are created with the internal geometry on creation.

It has been under discussion for a long time. Ulrich was in favour (asked for it several times).
DeepSOIC implemented the focus because he hated the poor dragging of the ellipse when empty.
2014-12-20 12:33:33 +01:00
DeepSOIC
9d135bdc4e Sketcher: Ellipse enhancement: Negative focus on creation to improve dragging
Focus2 is thrown in automatically for ellipse arcs

(cherry picked from commit 1ab814e6b07fd946dbb2910cc1bfb8588c61afb8)
2014-12-20 12:33:33 +01:00
Abdullah Tahiri
d0362fa4a2 Sketcher Ellipse and ArcOfEllipse: Extra features and bug fixes
- Visual representation of equality constraint: Separate circle and arcofcircle implementation from ellipse and arcofellipse implementation
- Fix for Alignment constraint: Now it allows to assign a second element, one by one
- Box selection for ArcOfEllipses
  Fixes the bug that vertex far away got selected due to lack of sync between the selection and draw loops.
2014-12-20 12:33:32 +01:00
DeepSOIC
f24b589d67 Sketcher Ellipse bug fix:
- Fix placement of equality symbols at ellipses and arcs of ellipses
2014-12-20 12:33:32 +01:00
Abdullah Tahiri
a067a7c25a Sketcher Ellipse and ArcOfEllipse: Extra features and bug fixes
- Minor changes to alignment constraint selection to avoid to create objects just for simple calculations
- Equality constraint of Ellipse, ArcOfEllipse and combinations of those elements
- Bugfix for internalalignment creation of major and minor of ellipse and extension to arcofellipse
- Trim support for ellipses
- Solver threshold for rank calculation set at 1e-13.
- Trim support for arc of ellipse
- Ellipses and ArcOfEllipses as external geometry
- Validate Sketch now supports arcs of ellipse
- Tangents of Ellipse or ArcOfEllipse to any of ArcOfcircle, circle and Ellipse (using construction elements)
- Perpendicularity constraint
- Bug fix: Show/hide internal geometry not working for external geometry
- Visualization of Internal alignment constraints when selecting in the constraint widget
- Equality for ellipses and arc of ellipses
2014-12-20 12:33:31 +01:00
DeepSOIC
21354e9a8b Sketcher Ellipse bug fixes:
- Fix of internal geometry creation
- Fix swapped negative and positive ends of major radius line on creation
- Removing the fudge factor (no longer needed)
- Fix to restore internal alignment - autodecide on constraint creation which point of the line is closer to the position
2014-12-20 12:33:30 +01:00
Abdullah Tahiri
fb0d830560 Sketcher Ellipse and ArcOfEllipse: Major bug fixes
- Change mode so that focus1 is not a point, but two doubles so that visual model and solver model match in number of points.
- Solver fix to deal with reduced constraint partials accuracy (threshold for matrix rank calculation tweak)
- Changes suggested by logari81
2014-12-20 12:33:30 +01:00
DeepSOIC
e423c308af Sketcher Ellipse bug fix: Jump back on mouseup when shrinked 2014-12-20 12:33:29 +01:00
Abdullah Tahiri
a458c3e6d2 Sketcher New Feature: Ellipse support
- Ellipse introduction button via (center,majaxis extreme, a point in edge), ellipse is always CCW so that Z axis goes in the positive direction of the sketch
- Backwards compatibility with files of previous versions of ellipse not defining a phi angle
- Art by Jim (all the icons you see and the XPMs shown on creation of an ellipse)
- Element Widget support for ellipses
- Box selection for ellipses
- Point on Ellipse constraint based on the gardener's method based on Ulrich's function proposal (radcan simplified, i.e. with simplify_radical sage function)
- Tangent: Ellipse to Line based on DeepSOIC's geometric formulation (radcan simplified)

Sketcher New Feature: Internal Alignment Constraint
- The element to which internal alignment is applied has to be selected last.
- All other elements are added in the order of priority, taking into account existing elements
- Art by Jim (beautiful icons).

Sketcher New Feature: Tool to show/hide/restore the internal geometry of an element
- New functionality for show/hide internal geometry:
  toggles between hiding all unused internal geometry elements and showing all internal geometry.
  The restore function is implicit to the showing all internal geometry

Sketcher New Feature: Arc of Ellipse support
- Part::Geometry + Python implementation
- ArcOfEllipse creation method
- Art by Jim (all the icons you see and the XPMs shown on creation of arc of ellipse elements)
- Sketcher Element widget for ArcOfEllipse.

Bug fix: Select elements associated to constraints works now for foci internal alignment constraints
2014-12-20 12:33:29 +01:00
Abdullah Tahiri
6eec2e9851 Ellipse implementation: Art by Jim
- it also includes a shell script equivalent to the UpdateResources.bat for those who use linux
2014-12-20 12:31:27 +01:00
wmayer
78f07f8731 + fixes #0001790: Crash on undo/redo with a selection 2014-12-14 00:06:08 +01:00
wmayer
ff7e33b95d + reimplement copyObject based on merge document 2014-12-13 21:43:20 +01:00
wmayer
7801fbef3a + fixes #0001849: Enable Spin Boxes support for Pad, Fillet and Chamfer 2014-12-11 18:25:30 +01:00
jriegel
38fc7ba604 Merge branch 'refs/heads/master' into review-CL-Bundler 2014-11-29 15:43:19 +01:00
wmayer
c04c513b41 + fix typo, consistent icon name 2014-11-26 14:36:11 +01:00
Abdullah Tahiri
fe3beb89fd Sketcher Enhancement: Merge sketches : Art by Jim 2014-11-26 14:23:46 +01:00
Abdullah Tahiri
0f72bc68ba Sketcher Enhancement: Merge sketches
- It copies the geometry and associated constraints of a plurality of sketches into a new sketch
- The functionality is accessible from outside sketch edit mode, directly from the menu Sketch
2014-11-26 14:23:14 +01:00
Sebastian Hoogen
debca91e98 remove support for automake 2014-11-26 10:26:30 +01:00
jriegel
1bc6df8eac Merge branch 'refs/heads/master' into review-CL-Bundler
Conflicts:
	src/3rdParty/salomesmesh/CMakeLists.txt
2014-11-22 13:51:04 +01:00
DeepSOIC
86a1757c20 Sketcher: Slot: proper tangent constraints
Endpoint-to-endpoint tangency is applied now instead of
tangency+coincident.
Fixes issue #0001828 ( http://freecadweb.org/tracker/view.php?id=0001828
)
2014-11-16 23:14:41 +01:00
wmayer
62de0655d7 + fix inconsistency problem after undo/redo 2014-11-16 19:13:06 +01:00
wmayer
2ead6f9bcf + whitespace improvement 2014-11-16 19:12:34 +01:00
wmayer
7a307cdab3 + fix crash when dragging a point adter undoing the deletion of a line 2014-11-16 19:11:31 +01:00
wmayer
fc903d93df + support adding circles as external geometry not lying on the sketch plane 2014-11-15 14:31:24 +01:00
jriegel
8c1b1aa86b Port to VC12 2014-11-15 14:07:02 +01:00
wmayer
d30eb39a1e + fixes #0001808: Double Clicking Sketcher PolyLine Causing Crash 2014-11-09 17:59:54 +01:00
wmayer
e753af2fd7 + fix possible scaling problem of datum label 2014-11-08 15:55:47 +01:00
wmayer
fa3a2a0d3a + fix various rendering problems 2014-11-04 18:56:05 +01:00
wmayer
a7157ce6a9 + add new render type to 3d viewer 2014-11-03 23:09:38 +01:00
wmayer
621aebdbef + change API of GLPainter 2014-10-22 14:48:38 +02:00
Abdullah Tahiri
ca1eba6107 Sketcher: Element Widget enhancement: Support for external geometry
Python naming used is "ExternalEdge" for consistency with the name appearing in the status bar when selecting that object.

As discussed:
http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=bd9ad10357f8a7de146c4fbd2d53c23b&start=90
2014-10-14 18:33:21 +02:00
Sebastian Hoogen
a53a239f2f issue #1027 use unicode filepaths 2014-10-11 13:32:06 +02:00
Sebastian Hoogen
f1283cf24c fixes #1782 remove unused precsion parameters
from gp_Trsf::SetValues
2014-10-11 13:03:02 +02:00
wmayer
f02da38566 + fix Qt help problems 2014-10-01 17:16:43 +02:00
wmayer
ac010de9c9 + fix minor bug when adding coincidence constraint 2014-09-28 15:06:02 +02:00
wmayer
f0bf3cb6ab + Proper handling of sketch plane parallel to view direction 2014-09-27 15:53:21 +02:00
wmayer
032c893183 + fix warnings with clang 2014-09-24 17:46:04 +02:00
wmayer
003c2bf77d + fix warnings with clang 2014-09-24 15:55:36 +02:00
wmayer
3ff7d569c8 + fix build error 2014-09-23 12:51:31 +02:00
Stefan Tröger
72cab0c002 Adaption of FreeCAD to QuarterWidget
-removes all soqtviewer references
-create a quarter adaptor class which implements missing functionality
-adopts freecad code to make use of SoRenderManager and changed View3DInventorViewer  interface
2014-09-23 10:11:11 +02:00
Abdullah Tahiri
749abc5ed7 Sketcher fixes: Symmetry arrows properly scaled, fixed icon in constraint taskbar list contextual menu 2014-09-18 16:01:34 +02:00
Abdullah Tahiri
02cb12db52 Sketcher enhancement: Constraint icons visible over lines 2014-09-17 18:49:40 +02:00
Abdullah Tahiri
d562e1a389 Sketcher Art enhancement: New Symmetric constraint icon by Jim
There is more space in between the > < symbols now, so it is more clear as it overlaps less.

Thanks Jim!
2014-09-17 18:49:16 +02:00
Abdullah Tahiri
0adfa0a7ed Sketcher Bug fix: Arrows for symmetry constraint are back
The arrows were there in the code, but at a certain point, code was written to set the this->imgHeight value programatically, based on
whether it had text or not. As symmetry constraint does not have text the variable failed to initialize. Being zero, it did not pass
the ASSERT in the render function, so it was not rendered.

This includes Werner's fix for improver cast of a SoRayPickAction to SoGLRenderAction:
SbVec2s vp_size = static_cast<SoGLRenderAction*>(action)->getViewportRegion().getWindowSize();
to
SbVec2s vp_size = SoViewportRegionElement::get(state).getWindowSize();

At least sometimes tt is a SoRayPickAction because:

When you move with the mouse over the sketcher (when in edit mode) you enter the method ViewProviderSketch::mouseMove.
Inside there the method getPointOnRay is called to get a picked point underneath the cursor. Inside the latter method
an instance of SoRayPickAction is created to traverse the scene graph. After a long cascade of function calls you
finally enter SoDatumLabel::generatePrimitives(SoAction*).
2014-09-17 18:48:54 +02:00
Abdullah Tahiri
fdb7de1dda Sketcher visualization enhancement: Do not group sketcher symmetry icons.
Do not add a symmetry constraint icon to a group of icons, so that it lies on the line or point providing the symmetry (symmetry axis/point),
as it is more clear to the user which line this is.
2014-09-17 18:48:36 +02:00
Abdullah Tahiri
95c512d9a1 Sketcher feature enhancement: Symmetry constraint perpendicular to axis of symmetry
Solves Mantis ticket: http://www.freecadweb.org/tracker/view.php?id=1623
Unrelated minor fix: remove unused variable
2014-09-17 18:48:15 +02:00
Abdullah Tahiri
da2df00eea Sketcher visualization: Increase readability of redundant constraint solver message
Color changed to "OrangeRed" to improve readability.
2014-09-17 16:43:51 +02:00
Abdullah Tahiri
5f2670dbcf Sketcher Redundant/Conflicting art by Jim 2014-09-17 16:43:51 +02:00
Abdullah Tahiri
34cc7c3136 Sketcher new feature: Select Conflict and Redundant Constraints
Based (and solves) Mantis ticket:
http://www.freecadweb.org/tracker/view.php?id=1643

The ticket refers only to redundant, and ask for deletion.

Two commands are created, one for redundant constraints and other for conflicting constraints.

As usually removing one constraint of the "at least one" is sufficient, the implementation selects the constraints (but does not delete them).

The user therefore easily identify the constraints involved and decide to delete them.

This implementation takes into account the edit->Actsketch that ViewProvidedSketch creates for solving, as it is this instance the one that generates the messages in the Sketcher Taskbar.

No buttons in the toolbar by default (can be added by the user), but an hyperlink in the solver messages which triggers the selection of the appropriate command (conflicting or redundant).
2014-09-17 16:43:50 +02:00
Abdullah Tahiri
bdbf5140f9 Sketcher new feature: Selects the elements associated with the selected constraint(s)
Ex 1: User selects constraints from the list => right click => select "select elements" from the contextual menu => The elements (edges,vertex) involved in the constraint(s) are selected.

Ex 2: User selects (a) constraint(s) => Clicks button in toolbar (if included by the user) => The elements (edges,vertex) involved in the constraint(s) are selected.

Intended as visual aid to see which elements are being affected by a constraint.

Requested by Jim on thread:
http://forum.freecadweb.org/viewtopic.php?f=19&t=6875&start=10

Solving another Mantis ticket I can not find now.
2014-09-17 16:43:49 +02:00
Sebastian Hoogen
57db95a1c3 issue #1701 removed further except: statements 2014-09-17 11:57:32 +02:00
Sebastian Hoogen
ed66ada1cf issue #1700 replace PyExc_Exception 2014-09-17 11:15:57 +02:00
Abdullah Tahiri
4aa71db3c8 Sketcher Element Widget enhancement: Auto-switch to Edge (first valid type)
Feature requested by nahshon.
- In auto-switch to edge mode, actually switch to first valid type, which is always
edge, except for a point. It reduces the amount of clicks when dealing with points.
- Correction of a typo.
2014-09-16 10:12:53 +02:00
wmayer
d1fb7fa839 + do not add units to translation 2014-09-10 10:35:49 +02:00
wmayer
ce528d1c4a + fixes #0001719: Show current shortcuts (S) in menus and hover text. 2014-08-31 14:28:33 +02:00
jriegel
c1f0f70b88 Merge remote-tracking branch 'refs/remotes/origin/jriegel/NewWinBuild' into jriegel/review-NewLibPack
Conflicts:
	src/3rdParty/salomesmesh/CMakeLists.txt
2014-08-27 15:39:00 +02:00
wmayer
346e5c6a77 + fix more compiler warnings 2014-08-27 13:26:44 +02:00
wmayer
cc775f9254 + fix -Wnull-conversion, -Woverloaded-virtual, -Wlogical-not-parentheses, -Wsometimes-uninitialized 2014-08-26 19:14:13 +02:00
wmayer
d974d6897b + fixes #0001713: Allow Part.Arc to be used as Sketcher geometry 2014-08-26 13:09:37 +02:00
Itai Nahshon
e9ea1e2727 Fix automatic creation of tangent constriants.
a. Use scale to calculate max distance
b. Consider only circle/arc that actually touch the newly created line
c. Use of arc angles correctly
d. Find nearest touch point (not nearest center)
e. some optimization
2014-08-24 19:07:31 +02:00
Itai Nahshon
6eeaae57b8 Sketcher: Ignore small mouse moves after selection.
Switch to drag mode only after cursor moved 3 pixels.
2014-08-24 19:07:16 +02:00
wmayer
3c8a00dfec + fixes #0001703: Spreadsheet PropertyController 2014-08-23 14:38:30 +02:00
wmayer
1f2cd53bf7 + fix localization problems in PropertyConstraintListItem, + improve whitespaces 2014-08-22 21:32:19 +02:00
jriegel
d65a4e4ed7 some type clearification 2014-08-21 17:59:33 +02:00
Abdullah Tahiri
7cc5167623 Sketcher properties feature enhancement: Separated sublist for unnamed datum constraints 2014-08-21 14:11:51 +02:00
wmayer
e9100c7ddb + fix build failure on Windows, remove unused headers, whitespace improvements 2014-08-19 14:02:16 +02:00
Abdullah Tahiri
a9fef8412f New feature: Edit Sketch datum constraints from data Property view
This feature shows in the data properties associated to a TreeView element,
the datum constraints, i.e. those with an associated value.
2014-08-19 13:23:15 +02:00
wmayer
967566acf1 + improve OCC version macro, fix build failure with MinGW, fix build failure with Coin2 2014-08-18 11:34:02 +02:00
wmayer
8808b82371 + fixes #0001690: sketch.getPoint crashes FreeCAD if the point does not exist 2014-08-16 14:41:30 +02:00
Ian Rees
3a96bb60fe Sketcher: Don't change preselection during box selection 2014-08-09 07:34:04 +02:00
Abdullah Tahiri
37d5012647 Sketcher Elements widget - New feature -
- Remembers how the user left the "Auto switch to Edge" and the "Extended Name" checkboxes
and restores the values on next use of the Sketcher WB.
2014-08-08 18:32:54 +02:00
wmayer
28490532f5 + fix dir2qrc script to keep alphabetical order of file names, update Sketcher.qrc 2014-08-07 20:29:31 +02:00
Abdullah Tahiri
e2db94facd updated icons for sketcher
- Selection icons added.
- Art by Jim
- Clean up sketcher xpm small icons: Only constraint icons seem to be necessary
2014-08-07 19:49:51 +02:00
Abdullah Tahiri
b5002dc6fe changes in sketcher
- Varios minor bug fixes.
- Added the other commands to the toolbar.
- Bug fix: missing AbortCommand().
- Mode Auto-switch to edge (Sponssi mode) has selection combo disabled to avoid interferring with this mode.
However, if auto-switch checkbox is unchecked (Jim-Abdullah mode), the combo is enabled and selection of
element type can be effected via the combo with the mouse.

In any case "z" shortcut iterates round robin the "valid types" of the preselected (hovered) element.
2014-08-07 19:49:51 +02:00
wmayer
be3299a46d code review: move transaction to outside from loop, fix several bugs, fix whitespaces 2014-08-05 00:35:03 +02:00
wmayer
1011dd4175 Squashed commit of the following:
commit 695becbbfff961b13e3edb5a4e1e4487bc53b4bb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Aug 4 15:24:33 2014 +0200

    - Making combo disable state.
    - Updating Art (Thanks Jim!)

commit d5391d40ace450fa2e65fe2b4ab8029ad37cacf8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Fri Aug 1 00:40:15 2014 +0200

    - Adaptation of code to Workbench's new Template structure.
    - Minor adaptation of new ViewProvideSketch code to new constraint code (only in code extensions needed for element Widget)

commit ecdec20afa33c9a950e6054e80e4aa9c72aad8b6
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 15:31:38 2014 +0200

    Fix so that when applying a coincident constraint to a plurality of points,
    if one constraint on a couple of points exists, no new coincident constraint is
    added to this couple.

    Fixes: http://forum.freecadweb.org/viewtopic.php?f=3&t=6890

commit 32ef59d76e6c63356f5d36598ca11eb47c2e52af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jul 31 14:13:58 2014 +0200

    Add some placeholder art for icons to avoid having a cross icon and annoying icon not found messages.

commit ccb60a3a7e71a0eb8ad5d896542314a98ef314a8
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 20:15:29 2014 +0200

    - Fixed Length Constraint accelerator (D) to SHIFT+D to avoid colision with other higher level FreeCAD accelerator assignment.
    - Selection Accelerators now toggle on shortcut execution, and act when no other element is selected (fixed bug)

    TODO: Art+Toolbar

commit 791358d046e8eeb03fa00272f5627c75254c48eb
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 15:12:07 2014 +0200

    Fixing shortcut system:
    - Take shortcuts automatically from CommandManager.
    - Fixed two shortcuts in CommandConstraints (Point on Object - O and
    Parallel Constraint - P to SHIFT+O and SHIFT+P to avoid collision with other constraints)
    - Fixed shortcuts in CommandConstraintAccel to non-already-existing combinations
    - Fixed Sketcher Menu to show accelerators

commit 12d366406a45038ce1a4f725a98e4f570475084b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:53:37 2014 +0200

    Implemented SHIFT multiple selection functionality in listwidget.

commit 0606ea7dfe38fdf8924f65f14382f1b327145c80
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jul 28 11:02:02 2014 +0200

    Added Sketcher Accelerators for:
    - Selection of H Axis
    - V Axis
    - Origin

    Main TODO: Shortcuts and Shift in list widget implementation

commit 297464807fc56fbcf31efadff9625fc05bb20c41
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 11:37:21 2014 +0200

    Implementation of:
    - Switch on 'Z' instead of 'Shift'
    - Checkbox to select whether element internal name (e.g. Edge10) should be presented on list or not (Sponssi requested)
    - Checkbox to force going back to "Edge" type on change from one element to the next (Sponssi requested)

commit c8764b116acdcfdc7ef7658dc6009fb8db807906
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jul 23 07:57:11 2014 +0200

    TaskSketcher Elements:
    - Store Vertex within elements for optimization (reduce loops searching for vertex in every function call)
    - Added the accelerators described below + Toggle Construction as context menu commands
    - Fixed bug (Thanks sponssi!): After some element has been preselected from the list and the cursor moved to the drawing area,
    the preselection doesn't seem to be resetted in the widget or whereever it is handled.
    Tapping shift still swaps the preselection between the points of the previously selected element.
    The left mouse button has to be clicked in the draw area to get rid of this.
    http://forum.freecadweb.org/viewtopic.php?f=10&t=6861&sid=7eea4adc7ecf4cebd561b357601866a2&start=20
    - Extended naming of elements, to facilitate writing python code (as requested by sponssi).
    - Minor modifications (creation of utility fuctions, code readibility, ...)

    Sketcher Workbench:
    - First effort to add a toolbar with the accelerators.

    Sketcher Accelerators: (Perform actions on existing elements, as opposed to Geometry Creation, not restricted to applying constraints)
    - Close Shape : of selected edges (i.e. lines and arcs)
    - Connect : selected edges (connect endpoint edge with starting point of next edge according to selection order)
    - Select Constraints : associated with currently selected edges

commit 1dc18204a4e2e38f71d729a7692383f50a7d4654
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Sat Jul 12 16:06:48 2014 +0200

    New alternative implementation of the Sketch Element List.

    This version comprises:
    - Identification via icon of type of geometric element (Point, Arc, Line, Circle) and
      Type of selection (Edge, Starting Point, End Point, Center Point)
    - Corrected a bug where upon selection from the combobox, the icons were not updated (Thanks Jim!)
    - Implementation of jump to next valid type of last preselected element (aka fast-forward) for all the types.

commit 4d472ef796362405c3982355f86489fa92cbfe6d
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 17:15:51 2014 +0200

    Feature request by jmaustpc
    - When an object does not have an element, lets put a different icon.
    - Currently the constraint lock icon is used until availability of a new one.

commit 6d15478f6533ff3805520a8ca36d1c41908cb0af
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:54:23 2014 +0200

    Bug fix (preselection not disappearing on changing element without the element Type).

commit e33043e17781fcf6399257696f115f68ab4580ec
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:39:20 2014 +0200

    New nicer icons by jmaustpc. They look much nicer :-)

commit 2ce2d6ff1ad2d81b0b1e30ffcbe9f2cc445f2e5b
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Thu Jun 26 14:37:21 2014 +0200

    Fast-Forward functionality:
    - If an element not having "midpoint" is preselected, then on pressing SHIFT the
    Type will jump from EndPoint to Line skipping midpoint.
    - This is intended as a productivity feature, as most sketch elements usually are lines

commit 1865d06d06582a49da10ddc123133807a4593060
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 25 15:47:22 2014 +0200

    Bug fix (thanks jmaustpc)
    - Preselection is maintained even though the geometric element does not have the "Type".
    - Fix involves calling for remove preselection in TaskSketcherElement
    - Implementing the response to the message RmvPreselection in ViewProviderSketch

commit 14e21da4b4ed0e9a2b3e846a4e51f6745d5e0ab7
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Mon Jun 23 14:25:35 2014 +0200

    Fix Bug with null pointer (thanks jmaustpc!)
    Clean up code

commit 0d99eb633f1bca45d4e7bb22c57bd4892767a390
Author: Abdullah Tahiri <abdullah.tahiri.yo@gmail.com>
Date:   Wed Jun 11 16:32:48 2014 +0200

    New widget for the Taskbar of the Sketcher WB.

    The objectives of this widget are:
    1. Allow editing of sketches when they have (partially) overlapping lines of any type
       (construction/external/normal).
    2. Allow the construction of sketches using the keyboard (less mouse intensive)

    The widget works as follows:
    1. A QListWidget presents a list of elements, element is here a geometric element
    formed Types edges, starting points, end points and midpoints (e.g. circles, arcs)
    2. On hovering/Entering one item in the list, it is preselected for easy identification.
    3. The selection can be switched from one type to another using the SHIFT key
    (press and release) in a round-robin fashion (or you can select it using the droplist)
    4. Selection of different types is possible (e.g. two points and a line).
    5. The contextual menu accessible by right click allow to apply a constraint to the
    selection.
    6. The constraints in the contextual menu have shortcuts, so you can actually use the
    shortcut directly from the QListWidget.

    Additional features introduced to other parts during development...
    - New color introduced for Types that are selected and preselected at the same time
    - Edges is a SoLineSet. You can not apply many So modifiers (width,offset) to parts of a SoLineSet.
    An edge part of a SoLineSet that is drawn after another one, covers it unless it is closer to the
    camera. The system of manual offsets already in place for points has been extended to properly
    handle (i.e. show) overlapping lines part of a SoLineSet.
2014-08-05 00:35:02 +02:00
jriegel
ec2198107b move build specifier in own cMake group 2014-08-03 20:53:19 +02:00
wmayer
578fbbefa4 + fix bug when releasing button after dragging point or curve 2014-08-02 17:52:12 +02:00
Ian Rees
c836dab53d Removed some debugging stuff that was accidentally pushed earlier 2014-08-02 20:04:56 +12:00
wmayer
a252471625 + fix author notes, fix memory leak, fix build failure under Windows 2014-07-30 10:05:13 +02:00
wmayer
6ca580456b Squashed commit of the following:
commit 8853bf442b6e1a98699fa90fca5eb30b3f6d3a5e
Author: Ian Rees <ian.rees@gmail.com>
Date:   Tue Jul 29 15:46:59 2014 +1200

    Refactoring and small fix in constraint icon bounding boxes

commit c03e4c13d8fd657e18e3c78d16bbdef209f8c779
Author: Ian Rees <ian.rees@gmail.com>
Date:   Mon Jul 28 15:41:15 2014 +1200

    Implemented picking of individual constraints from combined icons

commit 254aaab450fe6646bee7542c532c454af91b6597
Author: Ian Rees <ian.rees@gmail.com>
Date:   Mon Jul 28 13:04:18 2014 +1200

    Added bounding boxes for combined constraint icons

commit 4f0738ec30220fbf1abdea14dd121d0a134e5dfd
Author: Ian Rees <ian.rees@gmail.com>
Date:   Sat Jul 26 18:53:33 2014 +1200

    Added screenCoordsOfPath() to View3DInventorViewer

commit 14e2dc7b4aa79db97cbacd2c848728a66276d644
Author: Ian Rees <ian.rees@gmail.com>
Date:   Sun Jul 20 14:24:27 2014 +1200

    Bit of code to make constraint icon text rendering nicer.

    This won't be useful unless the font changes, but wanted to add it while
    I was thinking about it.

commit 8020d2d62214d71875cbae101d5ac5e96d998201
Author: Ian Rees <ian.rees@gmail.com>
Date:   Sun Jul 20 13:54:51 2014 +1200

    Fixed an off-by-one in ViewProviderSketch::combineConstratintIcons

    Bug resulted in icons occasionally not being combined into groups,
    when they should've been.

commit 20d92a3ccc1f795be1cb86f6f92045518dc8eb81
Author: Ian Rees <ian.rees@gmail.com>
Date:   Tue Jul 15 19:38:20 2014 +1200

    Fixed a bug that was introduced two commits ago.

commit 69e1ea848e3bc3c8c372c539f30a7b4d2a563aa2
Author: Ian Rees <ian.rees@gmail.com>
Date:   Tue Jul 15 15:33:30 2014 +1200

    Fixed dumb copy-and-paste error

commit a998b75a905cc31e1f4f49869e81ecaef5858b69
Author: Ian Rees <ian.rees@gmail.com>
Date:   Sun Jul 13 18:39:22 2014 +1200

    Fixed crash reported by sponssi

    More info at http://forum.freecadweb.org/viewtopic.php?f=10&t=6965&p=56590

commit 27b7b804790dda5164c7ef0b9418f6c160228859
Author: Ian Rees <ian.rees@gmail.com>
Date:   Thu Jul 10 13:32:16 2014 +1200

    Cleaning up my git repo for FreeCAD.

    This branch now has just the Sketcher icon fixes, plus a few random comment edits.
2014-07-30 10:05:12 +02:00
wmayer
65c974ed2d Squashed commit of the following:
commit 6e78052d325eadcb212a6d50c6cd09cc29ac7870
Author: Johan K <johankristensen@gmail.com>
Date:   Tue Jul 29 14:52:08 2014 +0200

    Adding missing file RegularPolygon.py

commit 416396283032a31a1ea307df23d33ecfccf37935
Author: Johan K <johankristensen@gmail.com>
Date:   Mon Jul 28 22:51:28 2014 +0200

    Replaced sketcher implementation of RegularPolygons with a Python script version.
2014-07-29 17:26:28 +02:00
Johan K
7fadaa0a55 Added more regular polygons to the sketcher gui 2014-07-27 00:25:40 +02:00
Johan K
4528b31d6e Added more regular polygons to the sketcher gui 2014-07-27 00:08:49 +02:00
wmayer
6b1e6a66ad + Make destructor virtual for classes with virtual methods (based on DevJohan's patch) 2014-07-26 19:17:12 +02:00
wmayer
f0eb27f710 + let user decide to use equality constraint or independent radii 2014-07-24 19:09:41 +02:00
wmayer
996af8d808 + fixes #0001633: Allow adding radius constraints to several circles at once. 2014-07-24 13:32:47 +02:00
wmayer
0fda229597 + add missing files to install target of Sketcher module 2014-07-17 12:26:52 +02:00
wmayer
d7fafdb2b6 + split create/edit sketch command into two commands 2014-07-13 10:17:50 +02:00
wmayer
4ae29bc2e3 + implement solve() in Python API of SketchObject 2014-07-12 17:13:05 +02:00
wmayer
39bda90514 + change comment 2014-06-07 10:56:45 +02:00
Abdullah Tahiri
63ab2d7f12 Fixed Datum Filter showing Named non-datum variables 2014-06-07 10:50:14 +02:00
wmayer
2fcce866a7 + change order of tangent and coincident constraints of slot 2014-06-06 00:33:56 +02:00
wmayer
dfda6704d7 + abort slot creation in error case 2014-06-06 00:08:26 +02:00
wmayer
c07358073a + whitespace improvements 2014-06-05 23:24:59 +02:00
wmayer
409285d53f + optimize creation of hexagonal sketch profile, add icon 2014-06-04 12:05:41 +02:00
wmayer
5917d21395 + implement hexagon sketch 2014-06-03 14:54:27 +02:00
wmayer
c05801d6ed + fixes for sketcher 2014-06-03 11:24:49 +02:00
Yorik van Havre
940f7e69ba Updated translations 2014-05-24 17:35:20 -03:00
wmayer
17b7003ea7 + fixes #0001549: crash with Draft move tool while sketch is in edit mode 2014-05-20 15:25:03 +02:00
wmayer
81bfcc8717 + fix issues with angle constraints 2014-05-17 18:27:56 +02:00
Johannes Reinhardt
641a2a75bf fix typos in Sketcher 2014-05-16 19:27:13 +02:00
wmayer
624537e5b6 + do not accept objects with no sub-elements selected if this is required 2014-05-16 19:09:15 +02:00
wmayer
007bcbdc7f + fix crash in CmdSketcherMapSketch 2014-05-16 15:34:26 +02:00
Stefan Tröger
8106f8437c fix sketcher arrow size and make them independend from window size 2014-05-14 22:43:31 +02:00
Stefan Tröger
e451efd9c4 fix inverted sketcher font-size issue and make font size undependend of window size 2014-05-13 18:20:38 +02:00
Johannes Reinhardt
2b28d41134 fixed a few small typos 2014-05-12 14:32:27 +02:00
Yorik van Havre
ec442507e1 Updated ts files 2014-05-11 14:49:24 -03:00
wmayer
6b89c03181 Add initial support for different libdir (jobermayr) 2014-05-10 12:57:38 +02:00
wmayer
a5efc53bfc + fix transparency issue, disable sample buffers when using front buffer 2014-05-09 19:20:30 +02:00
wmayer
6d17bbb7f6 + fixes #0001535: Remove conflict between min/max macros and std::min/max 2014-05-08 17:30:23 +02:00
wmayer
3b5cdda879 + fix flaws found with code analyzer tool 2014-05-07 13:09:44 +02:00
wmayer
3b6d07833d + compile with clang 2014-05-05 16:24:01 +02:00
wmayer
cb720fae50 + fixes #0001517: Problem with constraint menu not displaying properly if moved (overwrites the background) 2014-05-03 23:39:04 +02:00
mdinger
337f05d56e Move python module prefix and suffix properties into macro to be set together 2014-05-03 16:00:30 +02:00
wmayer
07f3f8257b + Remove external geometry when changing support face 2014-05-02 12:03:52 +02:00
wmayer
ec7573da42 Reorient sketch loses constraints (fix from chrisf) 2014-05-01 18:04:33 +02:00
wmayer
a17116f465 + Add action to modify current item in constraint view 2014-05-01 16:12:03 +02:00
wmayer
3f9640908b + Add context-menu to constraint view for renaming and deleting items, fix edit mode 2014-05-01 15:36:52 +02:00
wmayer
1a7cea9b59 + Fix prefix of Python extensions built with MinGW 2014-04-30 18:22:52 +02:00
mdinger
a17cce3559 Remove unnecessary quotes. 2014-04-30 13:41:16 +02:00
mdinger
1942bb7906 Apply SET_BIN_DIR macro to Mod 2014-04-30 13:41:13 +02:00
wmayer
5370e20ce8 + fixes #0001514: Padding a sketch inside a group fails with error message 2014-04-25 17:28:32 +02:00
jriegel
55d0ad5c5c Some fixes for ProfileLib 2014-04-17 06:33:58 +02:00
jriegel
faf406fa2b fix wrong cursor icon in Slot 2014-04-17 06:33:57 +02:00
jriegel
39f7353663 Implement Constraint creation on Slot 2014-04-17 06:33:57 +02:00
jriegel
9c07f81240 Start profile lib in sketcher 2014-04-16 07:49:09 +02:00
jriegel
1f0d427ed3 further implementing slot 2014-04-16 07:49:09 +02:00
jriegel
87bed7d5c4 start slot draw handler for Sketcher 2014-04-15 07:00:17 +02:00
jriegel
ca642bb546 InputField for Grid-Size in Sketcher 2014-04-15 07:00:16 +02:00
wmayer
95bda08764 + fix crash when closing sketch while external geometry handler is still active 2014-04-08 12:07:03 +02:00
wmayer
f255948f1e + fixes: #0001475: Implement a 3 point arc similar to solidworks in sketcher (mdinger) 2014-03-29 12:20:32 +01:00
wmayer
ce7a3ecaa2 + fixes #0001490: Implement a perimeter circle (3 point circle) similar to solidworks in sketcher (mdinger) 2014-03-29 12:03:17 +01:00
wmayer
ca6d372025 + fixes #0001479: 'Escape' key dismissing dialog cancels Sketch editing 2014-03-18 14:18:55 +01:00
wmayer
498032f958 + fixes #0001480: Crash when editing sketch with Pad hidden 2014-03-18 13:14:04 +01:00
wmayer
13cdc1cd39 + issue #0001475: Implement a 3 point arc similar to solidworks in sketcher 2014-03-17 09:41:51 +01:00
wmayer
a7aca65e77 + issue #0001475: Implement a 3 point arc similar to solidworks in sketcher 2014-03-17 09:37:56 +01:00
wmayer
d1341f36f7 + issue #0001475: Implement a 3 point arc similar to solidworks in sketcher 2014-03-16 16:03:32 +01:00
wmayer
35b10d68aa + issue #0001475: Implement a 3 point arc similar to solidworks in sketcher 2014-03-16 13:29:44 +01:00
wmayer
3ea41ff0c9 + fixes #0000844: Cannot use edge hidden by sketch axis as external geometry 2014-03-15 19:53:14 +01:00
wmayer
e6bd7e8de3 + fixes #0001188: Change the word 'datum' as the label for the entry field for arcs and circles. 2014-03-15 17:11:44 +01:00
wmayer
7bc6e74115 + ignore v/h axes and grid of sketcher on view fit 2014-03-15 16:08:24 +01:00
wmayer
ea4abcb57a + issue #0001475: Implement a 3 point arc similar to solidworks in sketcher 2014-03-15 12:50:24 +01:00
wmayer
b7cb49c3e3 + issue #0001474: crash selecting constraint 2014-03-15 11:32:03 +01:00
wmayer
06239e9a57 + fixes #0001049: Sketcher preferences in preferences editor 2014-03-14 19:39:11 +01:00
wmayer
bea4c44240 + sketcher settings 2014-03-14 15:29:00 +01:00
Yorik van Havre
3a8d83bed9 Updated ts files from source 2014-03-10 20:36:59 -03:00
wmayer
b9f284cb42 + fixes #0001131: Crash when trying to edit sketch 2014-03-10 17:16:47 +01:00
wmayer
e7b44d2866 + fixes #0001339: Crash when giving sketch with external geometry a new support (face) after the original support was deleted 2014-03-10 13:35:41 +01:00
wmayer
0513cf06d3 + issue #0001049: Sketcher preferences in preferences editor 2014-03-09 21:44:37 +01:00
wmayer
b68bb653c8 + fixes #0001393: Allow the user to set desired font size in pixels (used by sketcher constraints) in preferences 2014-03-09 18:29:26 +01:00
wmayer
2aaa63c5eb + move sketcher related settings into own page 2014-03-09 18:07:46 +01:00
wmayer
53816ba779 + fix typo, fixes #0001310: Amend tooltip for Sketcher symmetry constraint 2014-03-09 11:17:33 +01:00
wmayer
947a030e37 + fixes #0001112: Changing sketch size that contains arcs after padding will create an artifact on bottom side 2014-03-09 11:02:33 +01:00
wmayer
8e711fc391 + fixes #0001423: Crash on draw on face 2014-03-06 09:33:35 +01:00
wmayer
c50c30c320 + fixes #0001330: Cannot link edge to external geometry 2014-03-03 18:50:43 +01:00
wmayer
874f61e165 + fixes #0001356: Error message displays value in Radians (adding reduntant/conflicting angle constraint) 2014-03-03 17:19:33 +01:00
logari81
4d918d1f8f Sketcher: fix polyline closing when coincident points are involved 2014-02-12 22:23:43 +01:00
wmayer
d81803de05 + fixes #0001380: Allow to set user-defined names for constraints 2014-02-10 15:36:58 +01:00
logari81
fa33bcae4a + fixes #0000928: Change selection numbering base in the Sketcher from 0 to 1 2014-02-08 23:51:15 +01:00
wmayer
ca00665421 + fixes #0001380: Allow to set user-defined names for constraints 2014-02-04 18:32:05 +01:00
wmayer
1441021541 + fixes #0001380: Allow to set user-defined names for constraints 2014-02-03 14:45:41 +01:00
wmayer
6c6340312c + Resort edit nodes of sketch view provider 2014-01-19 18:34:47 +01:00
wmayer
7eeebbed53 fixes #0001191: Cannot manipulate length if moved away from between the 'red lines' 2014-01-14 11:48:34 +01:00
wmayer
847b6b79e0 + Replace math.h with cmath 2014-01-05 11:25:40 +01:00
wmayer
e91e3b241f + Patched applied to fix flipped arcs when adding as external geometry 2014-01-04 12:59:07 +01:00
jriegel
152ecf2df9 More choices in Sketcher grid and later switching to um 2013-12-21 19:15:28 +01:00
jriegel
253910ec36 small fix 2013-12-18 18:19:25 +01:00
jriegel
9c1c94c64e fix radius bug and add new imperial sketch grid cascading... 2013-12-18 18:18:39 +01:00
wmayer
32134f64f0 + Fix build failure with gcc 2013-12-17 10:58:04 +01:00
jriegel
53f74153ea Imperial Sketcher grid in Dialog 2013-12-16 15:09:43 +01:00
jriegel
d5d9ea9c30 Add unti support to Sketcher 2013-12-15 22:47:47 +01:00
jriegel
401cb13035 Switching Quantity parser to UTF8 2013-12-09 23:50:52 +01:00
wmayer
5e628aedf1 + fixes #0001327: Crash in System::initSolution() 2013-12-09 13:41:38 +01:00
wmayer
b6025019df + Allow also int when a float is expected in sketcher constraints 2013-12-08 14:18:50 +01:00