Commit Graph

1358 Commits

Author SHA1 Message Date
wmayer
9fde41ff19 Allow user to define a custom minimum deviation for the tessellation 2018-11-09 13:42:38 +01:00
wmayer
7fbd1c6beb remove some more boost.signals leftover 2018-11-07 11:42:44 +01:00
wmayer
fbb8e86cbf remove trailing spaces 2018-11-05 11:55:14 +01:00
DeepSOIC
195c492993 Part: Attacher: fix blocking error message
fix #3662
for now, just allow accepting attachment even if attachment is faulty
2018-11-04 14:45:49 -03:00
Abdullah Tahiri
6f42f3dacc Part: Geometry tangent with Vector3d overload 2018-11-04 14:43:24 -03: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
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
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
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
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
b1858f2cf4 Part: Geometry Arcs inheriting from GeomTrimmedCurve 2018-10-28 18:32:15 +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
Abdullah Tahiri
9e349c33a8 Part: Geometry - improvements/bug fixes
=======================================

routine for closest parameter to point was failing on endpoints. The former version
used the parameter of the basis curve, which sometimes was giving parameter values
incoherent. This version uses distance to endpoints when a projection on the trimmed
curve can not be found.
2018-10-28 18:31:22 +01:00
Abdullah Tahiri
f301feec31 Part: New routines for curve intersection 2018-10-28 18:31:06 +01:00
wmayer
a53027342e rework error handling mechanism 2018-10-24 19:38:43 +02:00
wmayer
f84971fca2 avoid throwing exception in intersectCC 2018-10-05 22:17:20 +02:00
wmayer
a0916a9a66 avoid re-throwing an exception in case normal is not defined 2018-10-04 23:31:55 +02:00
wmayer
c3a8348861 fixes 0003571: Offset3D of volumes intersection is not solid 2018-09-30 22:40:32 +02:00
wmayer
64b9c78b92 fix GeometryPy::setConstruction 2018-09-29 21:36:07 +02:00
wmayer
57cc33c8ee fixes 0003427: Measurement tool measures wrongly 2018-09-26 16:37:00 +02:00
wmayer
ff0cacca0a fixes 0003469: FreeCAD crashes on edge selection during fillet edge operation on extruded geometry 2018-09-25 22:51:33 +02:00
wmayer
dfd3d86b22 fixes 0003333: Wrong behaviour of fuse operation 2018-09-25 17:53:37 +02:00
wmayer
24cf5d23b5 fix possible crash when aborting geometry checker 2018-09-19 13:50:44 +02:00
wmayer
f9ca7d62c2 fix compiler warning, fix build failure with older OCCT versions 2018-09-17 10:20:03 +02:00
tomate44
f6d9b692be add a check to BSplineCurve.segment() 2018-09-17 10:02:04 +02:00
wmayer
c6df59969b expose more methods of Geom_Curve to Python 2018-09-15 11:26:26 +02:00
DeepSOIC
38df1ae742 Part, PartDesign, Attacher: fix a few problems with infinite shapes
To throw an error instead of returning a semi-infinite result that kills rendering.
fixes #3439
2018-09-13 13:12:55 +02:00
DeepSOIC
eb8629d077 Part: Attacher: fix flip-sides for O-X-Y-like attachment modes
fixes #2519
2018-09-13 13:03:06 +02:00
wmayer
88babaf60a Ignore key events in dialogs and let parent task panel handle them
The affected dialogs are:
* Texture mapping
* Cross-sections
* Extrusion
* Revolution
2018-09-13 11:13:33 +02:00
wmayer
36bd5a0ec1 fix build failure for OCCT < 7.0 2018-09-05 10:56:56 +02:00
wmayer
d8c5581566 add optional parameters to copy method to copy topology and/or triangulation 2018-09-04 23:17:25 +02:00
Christophe Grellier
7d8e53aaab add Const to ancestorsOfType 2018-09-03 22:06:46 +02:00
Michal Ulianko
faf8834484 py3.7 fix
PyUnicode_AsUTF8() returns const char* in py3.7 instead of char*. Making
changes to reflect that which should also be safe in
other Python versions.
2018-09-01 22:44:39 +02:00
wmayer
67b5ee0931 now each module registers its unit tests itself 2018-08-28 13:14:16 +02:00
luz.paz
8740a3a568 Whitespace formatting 2018-08-26 17:30:44 +02:00
luz.paz
55e93745fa Misc. typo fixes
Found via `codespell`
2018-08-26 17:30:44 +02:00
wmayer
561be08211 Part sweep now accepts compounds of edges that build a wire 2018-08-26 17:02:01 +02:00
wmayer
b2cefc460d Part loft now accepts compounds of edges that build a wire 2018-08-26 16:49:48 +02:00
wmayer
73e27458da CMP0050: make Part module aware of cmake policy 2018-08-20 16:54:23 +02:00
wmayer
07eea2e3a6 remove ambiguous function setTolerance, use Tolerance attribute instead 2018-08-19 14:31:04 +02:00
wmayer
557fee3dc6 fix -Wignored-qualifiers 2018-08-19 12:38:57 +02:00
wmayer
0bc5699b59 fix -Wparentheses 2018-08-19 12:28:05 +02:00
wmayer
171e652047 fix -Wabsolute-value 2018-08-17 09:47:38 +02:00
wmayer
b04ea27042 do not show dialog of progress indicator for OCCT < 6.9.0 2018-08-17 08:10:16 +02:00