Commit Graph

9918 Commits

Author SHA1 Message Date
Abdullah Tahiri
c7b137fe85 Sketcher: Change nomenclature relating to Block constraint 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
a4c29ba521 Sketcher: Constraint widget adapted to Block constraint 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
c27d5a26b2 Sketcher: UI Block constraint creation sanity checks
====================================================

Avoid creation of constraints if they would lead to undesirable conflicting situations.
2018-01-22 22:52:56 +01:00
Abdullah Tahiri
9634da6811 Sketcher: Block constraint - Prevent from adding constraint if the solver has redundant/conflicting constraints 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
34f533b0e1 Sketcher: Block Constraint - Advanced redundant/conflict redundant handling
===========================================================================

Block constraint is naturally redundant/conflicting with almost any other constraint applied to an edge (certainly with constraints operating only on that element).

As such, a block constraint will have very little applicability in absence of a way to handle this redundancy/conflicting. For example, in the case of a BSpline all its
internal geometry (construction circles on poles and its constraints) would have to be removed before locking. This would mean that it is not possible to define the BSpline shape
and then block it, as when removing the internal geometry the shape would be lost. In other cases, like temporally blocking to avoid that a part of the sketch moves while performing some
operation with the idea of afterwards unblocking it, it would mean removing all constraints, to add the block constraint, then perform the action, then remove the block constraint and manually
constraint it again.

Handling this situation in a user expected way means ignoring certain constraints (those causing the redundancy/conflicting), so that the solver is not aware of them and does not complain. However,
generally ignoring those constraints has a negative effect, in that constraints applied by the user on already blocked geometry, or constraints that otherwise lead to a conflicting or redundant
situation as a consequence of actions (further constraining) after the Block constrain is applied are ignored, thereby not properly informing the user of this situation, which is undesirable.

This new mechanism takes account on the position of the constraints relative to the involved blocked constraint(s). As such, redundant/conflicting constraints that were added before the Block
constraint are ignored, whereas those constraints that lead to a redundant/conflicting situation and added AFTER the block constraint was already in place, those are not ignored and are reported
accordingly.
2018-01-22 22:52:56 +01:00
Abdullah Tahiri
9b7d1d6042 Sketcher: Blocked constraint viewprovider rendering 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
d2e89b98d4 Sketcher Blocked Constraint icons 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
1932a2f152 Sketcher: Blocked Constraint toolbar commands 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
7495fe1c31 Sketcher: Blocked Constraint Python 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
48fc503364 Sketcher: Blocked Constraint solver level 2018-01-22 22:52:56 +01:00
Abdullah Tahiri
f64760b8a3 PartDesign: OnDelete basefeature fixing and visualization
=========================================================

fixes #3084
fixes #3061 (at least what it is understood in the analysis as being a bug, the visualization left).

Basically when deleting a feature, if it is the base feature (feature with which it will merge or cutout), the dependent objects'
base feature is made to be the base feature of the object being deleted. This code pre-existed at body level, but was not being called (see below).

Additionally, if the visible object is not the one being deleted, we leave that one visible. If the visible object is the one
being deleted, we make the previous object visible.

Deletion from the tree of a feature is handled by Document.removeObject, which has no clue about what a body is. Therefore, Bodies, although an
'activable' container, know nothing about what happens at Document level with the features they contain.

The Deletion command StdCmdDelete::activated, however does notify the viewprovider corresponding to the feature (not body) of the imminent deletion
(before actually doing it). Consequently, the only way of notifying a body of the imminent deletion of one of its features so as to do the clean up
required (moving basefeature references, tip management) is from the viewprovider of the feature being deleted.
2018-01-22 22:03:18 +01:00
wmayer
4d36757636 improve whitespaces 2018-01-22 20:06:12 +01:00
Abdullah Tahiri
01e6cde7aa PartDesign: Fix bug of mirror transformation of multiple features
fixes #3317

This code ensures that an individual transformation or a multi-transformation have a proper
base feature and next feature.
2018-01-22 19:56:58 +01:00
Markus Lampert
23f88c5d85 Fixed 2885, dogbone maintaining F parameter. 2018-01-22 19:40:50 +01:00
Markus Lampert
8a39ddf884 Fixed recursion problem 2018-01-22 19:40:50 +01:00
Markus Lampert
e4e5d4e5f5 Fixed path unit test setup for new PathDressup 2018-01-22 19:40:50 +01:00
Markus Lampert
55268a06f4 Changed lead-in-out dressup to use PathDressup.baseOp() instead of relying that it is dressing up an op directly. 2018-01-22 19:40:50 +01:00
Markus Lampert
c3f03d3696 Removed ToolController from all dressups and replaced with recursive search for the base op's ToolController. 2018-01-22 19:40:50 +01:00
Markus Lampert
69c1acd391 Prevent adding an entry method dressup to an op that's already has one. 2018-01-22 19:40:50 +01:00
Markus Lampert
8511597a4c Made dogbone resilient to all dressups and profiles. 2018-01-22 19:40:50 +01:00
Markus Lampert
4b0d6c6889 Fixed import of PathGeom - might want to refactor that one day. 2018-01-22 19:40:50 +01:00
Markus Lampert
a4fe22062d Fixed template-export menu activation. 2018-01-22 19:40:50 +01:00
TeroK
434bf4d3f3 TechDraw: Add option to use polygonal HLR algorithm
Now on property panel there is option 'Coarse View' which allows to set
selected drawing view's Hidden Line Removal to utilize polygonal algorithm.
This should be faster on same cases (complex models).

When this option is set for a view there is known limitation with dimensions not
working on this experimental mode. At least currently this is best utilized on
view with no dimensions.

Also the vertices' 'black dots' are not drawn on this mode view to avoid
cluttering.  Face hilite is avoided, to gain speed. All curves are represented
by short linesegments in this mode.

Previously TechDraw always used OCC's exact HLR algorithm to generate views,
which produces good quality and continous shape lines but is sometimes
slower to generate than with polygonal approach.

Additionally now there is bool 'CoarseView' Parameter Editor setting, if anyone
wants to set this as their default.
2018-01-22 19:31:30 +01:00
Yorik van Havre
e697f2ef50 Arch: Fixed wrong orientation and shape of window louvres 2018-01-21 20:57:35 -02:00
Yorik van Havre
ff467dcb4f Path: Fixed possible bug in last commit 2018-01-21 17:48:16 -02:00
Sammel Lothar LTS
6bddaf6eb2 BUGFix PATH Dressup Sim FreeCADBreakdown 2018-01-21 17:43:27 -02:00
wmayer
e6e4710ae3 remove SetMinTolerance as suggested by PR 1240 2018-01-21 18:17:45 +01:00
tomate44
6e5b1dfb9a typo 2018-01-21 17:29:17 +01:00
tomate44
50e1866c49 indentation fix 2018-01-21 12:30:29 +01:00
tomate44
33f334049f tolerance fix in TopoFace.validate() 2018-01-21 12:25:14 +01:00
tomate44
8461df7ea6 fix some TopoShape documentation 2018-01-21 12:03:53 +01:00
Yorik van Havre
acb3a34d99 AddonManager: Download biggest code block from macro pages in case there is more than one code block 2018-01-20 22:34:53 -02:00
Abdullah Tahiri
a0ccdb5218 Sketcher: Correction of B spline normals
========================================

When writting solver implementations it has to be taken into account that the normal is not to be provided in the sense of the curvature, but to
the left when walking a curve from start to end.

https://forum.freecadweb.org/viewtopic.php?f=10&t=26312#p209486

This commit has impact on all the previous files using bspline and endpoint to endpoint tangency.

A work-around is to delete the tangency and do it again.
2018-01-20 17:21:26 +01:00
Abdullah Tahiri
663e4ee369 PartDesign: Extension of Pocket Feature to have two dimensions
fixes #2915
2018-01-20 16:15:38 +01:00
sliptonic
f6825a2686 Path: changed --output-doubles to --axis-modal and reversed the default behavior
Explicit gcode is better than implicit so it is the default.  additional flags compress the size of the output and make it less explicity
2018-01-20 14:09:58 +01:00
sliptonic
9b43affd80 Path: typo in command name 2018-01-20 14:09:58 +01:00
sliptonic
b965a829c8 rename command and PEP8 2018-01-20 14:09:58 +01:00
sliptonic
15cbbcd241 Path New Dressup LeadInOut to perform Tool Roll towards shape including G41-42 2018-01-20 14:09:58 +01:00
sliptonic
4fb676e4b0 path: cleanup linuxcnc post and fix vertical feed problem 2018-01-20 14:09:58 +01:00
WandererFan
a3684424ae Remove NewViewMulti from toolbars/menu 2018-01-20 14:07:31 +01:00
WandererFan
4b9f43b467 Allow GroupExtension as Source for Views
- DrawViewPart had special case logic for App::Part.
  It now handles DocumentObjectGroup and any other
  GroupExtensions as Source.
2018-01-20 14:07:31 +01:00
luz.paz
3ee51d5766 FEM: crowdin fix
ref: https://crowdin.com/translate/freecad/559/en-eu#6503606
[skip ci]
2018-01-20 14:02:22 +01:00
DeepSOIC
478611371b Part: add Refine property to BOPs
followup to PartDesign
2018-01-20 13:58:39 +01:00
DeepSOIC
27701ae852 PartDesign: #2683 add Refine property
resolves #2683

Adds Refine property to sketch-based and transformation features. The
property is initialized according to preferences, and can be altered in
property editor on per-feature basis.
2018-01-20 13:58:39 +01:00
wmayer
80e3bfb69c avoid division by zero when discretizing a shape 2018-01-20 00:02:08 +01:00
sliptonic
4be81c280c Merge branch 'master' into master 2018-01-17 13:28:35 -06:00
Yorik van Havre
6051a6e9cd Draft: Fixed wrong wire point position - closes #3063 2018-01-17 10:49:24 -02:00
sliptonic
d7f5d7fbc3 Merge pull request #7 from luzpaz/path-source-typo
Path: source typo fix
2018-01-16 00:35:28 -06:00
sliptonic
ae2a4e647d Path: rename Set_StartPoint to conform to command name standard
PEP8
2018-01-16 00:32:35 -06:00
sliptonic
12e6533df4 Path: rename dressup commands to conform to standard
PEP8 cleanup
2018-01-16 00:32:35 -06:00