Commit Graph

15127 Commits

Author SHA1 Message Date
Abdullah Tahiri
abc7101118 Sketcher: Add DEBUG macro to SketchObject 2018-11-04 14:43:24 -03:00
Abdullah Tahiri
69d62787eb 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
fe78c1a037 Sketcher: Expose mass datum commands to python 2018-11-04 14:41:20 -03:00
Abdullah Tahiri
2c41e70c91 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
6a1aed66e2 Sketcher: Refactor code relating to dimensional constraint checks 2018-11-04 14:41:20 -03:00
Abdullah Tahiri
8e2e5d7b6a 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
marvellouschandan
071bc89cf1 Indentation error solved 2018-11-04 14:38:45 -03:00
marvellouschandan
2765ed4792 Resolved issue: Exporting rectangular section to ifc 2018-11-04 14:38:45 -03:00
Yorik van Havre
90a1f4ad1c Draft: Fixed py3 bug in getSVG 2018-11-04 15:36:07 -02:00
wmayer
c3014fc65f fix blocking of SelectionObserver 2018-11-04 11:54:40 +01:00
luz.paz
4c2f2cd210 Misc. typos and whitespace
Found via `codespell -q 3 --skip="*.po,*.ts,./.git,./src/3rdParty,./src/CXX,./src/zipios++,./src/Mod/Assembly/App/opendcm,./ChangeLog.txt" -I ../fc-word-whitelist.txt` and `grep`. Excess whitespace auto-removed by Atom editor.
2018-11-03 16:13:06 -03:00
wmayer
5ff383b46c fix gcc8 build failure 2018-11-02 18:57:43 +01:00
Yorik van Havre
684b4ab03a Draft: Fixed wrong Placement of Draft Wire - fixes #3558 2018-11-01 14:42:52 -03:00
Przemo Firszt
e4b1cfc430 Fix COPR build and remove fedora specific xdg files
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2018-11-01 10:50:07 -03:00
wmayer
e86f7caea8 Improve TaskAttacher dialog:
+ correct handling of active document
+ properly handle case if the view provider or document is deleted while the dialog is still open
2018-10-31 14:29:42 +01:00
wmayer
347f99364d add/extend helper classes to safely access documents, document objects or view providers 2018-10-31 14:27:28 +01:00
wmayer
40cec5f72a add/extend helper classes to savely access document, document objects or view providers 2018-10-31 11:24:45 +01:00
wmayer
0c8da1c38a add an assert to several Command methods to be notified in debug mode if no active document exists 2018-10-31 11:21:33 +01:00
wmayer
f898eafd64 move from deprecated boost.signals to boost.signals2 library 2018-10-30 19:09:03 +01:00
wmayer
3858b179c3 improve whitespaces 2018-10-30 13:48:00 +01:00
Abdullah Tahiri
e10068a648 Sketcher: Trimming support bug
==============================

OCCT Geom2dAPI_InterCurveCurve based intersector does not detect intersection with the endpoint of a tangent line:
https://tracker.dev.opencascade.org/view.php?id=30217

This is a work-around that introduces endpoints of secondary curves as intersections, and uses projection to reject
projections further away than precision::confusion().

fixes #2463
2018-10-30 13:41:40 +01:00
wandererfan
408c31634f Fix BSpline/Circle conversion 2018-10-30 13:25:33 +01:00
wandererfan
f0420d6cbd Add formatter for gp_Pnt 2018-10-30 13:25:33 +01:00
wmayer
2f4b61dacb fixes -Winconsistent-missing-override 2018-10-30 13:21:59 +01:00
kreso-t
cd34f3d127 Path: Adaptive - set as standard feature
- i.e. removed from experimental features
2018-10-29 23:29:08 +01:00
kreso-t
976e804e2c Path: Adaptive - fix for path cleaning
- fix for side-effect introduced by last change
(completely collinear paths were filtered out)
2018-10-29 23:29:08 +01:00
Clemens Weissbacher
6e7beb1a0b py3: OpenSCAD: fix type cast 2018-10-29 17:18:13 +01:00
Clemens Weissbacher
1be9f18b52 py3: OpenSCAD: use io.open more explicit 2018-10-29 17:17:53 +01:00
wmayer
1538a14eca leave license field and url of a Part container empty to avoid possible confusion with imported 3rd-party STEP/IGES models 2018-10-29 15:24:12 +01:00
wandererfan
2b84be64cc Fix spurious error message
-  in FeatureGroove, the check for multiple
   solids in result was checking the wrong
   variable.
2018-10-29 10:29:23 -03:00
kreso-t
c2f2db8b56 Path: Adaptive - finishing path improvements
- fixed bug in path cleaning (artifacts on the finish path)
- increased path discretization resolution
2018-10-29 10:28:54 -03:00
wmayer
1e7aa1becf fix crash with Py3 when releasing memory buffer 2018-10-29 11:59:34 +01:00
wmayer
42c5b2e9ca fixes 0003657: automatic rotation disabled by default 2018-10-28 20:45:02 +01:00
wmayer
53ba33a805 fix -Wunused-private-field 2018-10-28 18:58:38 +01:00
Abdullah Tahiri
1d86a83b30 Sketcher: Fillet UI command Improved exception handling 2018-10-28 18:35:41 +01:00
Abdullah Tahiri
957c22a61a Sketcher: Fillet extended CAD kernel information 2018-10-28 18:35:27 +01:00
Abdullah Tahiri
044e0f6c20 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
7effa68eeb Part: Geometry use CADKernelError exception for OCCT
====================================================

Part of the geometry was using CADKernelError and part was using RunTimeError exceptions, so unify criteria.

Runtime is very generic and does not need to stem from OCCT.

- Also rename of a typo basic to basis, to be coherent with OCCT terminology
2018-10-28 18:34:36 +01:00
Abdullah Tahiri
4b9d90321a Sketcher: GUI command updated to support filleting of bounded curves 2018-10-28 18:34:23 +01:00
Abdullah Tahiri
f1a98c3101 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
649d115afb Part: Geometry New Bounded-Trimmed-curve inheritance
====================================================

The new hierarchy is as this:
GeomArcOfConic:GeomTrimmedCurve:GeomBoundedCurve:GeomCurve

A bounded curve is one having a start and endpoint, like an arc, a line segment, or a b-spline

A trimmed curve is one arising from trimming a basis curve, line an arc or a line segment, but NOT a b-spline.

An arc of Conic is one arising from a conic section, line an arc, but neither a line segment, nor a b-spline.

This new hierarchy enables a more consistent handling of geometry and it is closer to the OCCT hierarchy.
2018-10-28 18:33:58 +01:00
Abdullah Tahiri
0ed7b1d691 Part: Geometry - refactoring of intersection code 2018-10-28 18:33:45 +01:00
Abdullah Tahiri
c946de8fb4 Part: Geometry - intersection - checkendpoints
===============================================

Extrema algorithms sometimes fails when coincident endpoints

I am not sure if it is a bug in OCCT or it is just not intended.

This commits adds an extra check to add endpoints if within tolerance.
https://forum.freecadweb.org/viewtopic.php?f=10&t=31700
2018-10-28 18:33:32 +01:00
Abdullah Tahiri
4d1e981138 Part: Geometry GeomTrim Geomline segment type
=============================================

Make line segment inherit from GeomTrim. This allows seamless management of trimmed curves.
2018-10-28 18:33:19 +01:00
Abdullah Tahiri
396998467b Part: Geometry intersect routines throw when OCCT throws 2018-10-28 18:32:42 +01:00
Abdullah Tahiri
7c1a218847 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
b1858f2cf4 Part: Geometry Arcs inheriting from GeomTrimmedCurve 2018-10-28 18:32:15 +01:00
Abdullah Tahiri
0aa3da513a Sketcher: filleting arcofconic-arcofconic command 2018-10-28 18:32:02 +01:00
Abdullah Tahiri
44c5f1a67e 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
Abdullah Tahiri
8b97a31372 Part: Geometry refactoring
==========================

python c+ wrapper to use twin class c++ function instead of duplicating the code
2018-10-28 18:31:35 +01:00