Commit Graph

190 Commits

Author SHA1 Message Date
wmayer
67e963781b Part: in TopoShape::transformGeometry convert OCC exception into Base exception
The conversion is needed because TopoShape::transformGeometry reimplements ComplexGeoData::transformGeometry and is called in the core system
2022-04-29 15:37:44 +02:00
wmayer
a5d7987ad0 Part: handle exception of makeGTransform in _makeTransform 2022-04-29 15:15:51 +02:00
wmayer
2d5c2f0700 Part: adjust TopoShape::transformGShape() to reduce code duplication of TopoShape::makeGTransform
Revert changes of 4e7efd68d42a68 as otherwise there is no way to handle a failure in client code
2022-04-29 14:57:05 +02:00
wmayer
3e6c6974ca Part: handle OCC exception inside TopoShape::makeGTransform
For more details about the problems an unhandled exception will cause see: https://forum.freecadweb.org/viewtopic.php?f=3&t=61000
2022-04-27 18:39:55 +02:00
wmayer
59eabaf9bb Part: [skip ci] fix computing of face normals in TopoShape::getPoints 2022-04-13 12:51:08 +02:00
wmayer
10afc60497 Part: issue #6727: Missing B-Spline in STEP file after Part Offset2D 2022-04-11 14:16:29 +02:00
wmayer
ef5d7fa64e Part: fixes #6282: exportStep breaking model 2022-04-11 11:58:57 +02:00
Chris Hennes
2ecc125497 Part: PR6497 move return statement to new line 2022-03-29 12:37:00 -05:00
wmayer
6d2d45ceb7 Part: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
mwganson
fc617e1524 Part: 2doffset fix crash by chacking for null shape before adding with builder.Add() 2022-03-12 02:48:22 +01:00
wmayer
f1f68db55b App: Optimize includes to reduce compile time 2022-03-07 15:53:58 +01:00
wmayer
0c583fb7fa Part: fix typos in make* functions 2022-02-16 12:48:02 +01:00
wmayer
0208608b9e Base: fix Matrix4D::hasScale
* If all column vectors of the 3x3 sub-matrix are equal the function incorrectly claims that it's uniform scaling.
* Detect also non-uniform scaling and if was applied from the left or right side
* Replace the int with an enum and expose it to Python
* Add several new unit tests
2022-02-15 21:05:11 +01:00
wmayer
c9007693cf Part: in function to create a part handle meshes with defects 2022-01-18 15:20:55 +01:00
mwganson
1f6daebdbf TopoShape::analyze() SetRunParallel(true) to do the bopcheck in parallel mode 2022-01-16 16:30:08 +01:00
wmayer
a84262b2f0 Part: set explicit format version number for binary BRep files to support all OCC versions 2021-12-12 01:15:56 +01:00
wmayer
d80e83a517 Part: set explicit format version number for BRep files to support all OCC versions 2021-12-11 23:31:41 +01:00
luz paz
430aadb791 Fix various typos and grammatical refinements 2021-12-09 08:57:52 -06:00
wmayer
a7f9c2f1b9 OCCT: port FreeCAD sources to version 7.6
SMESH is not yet ported
Although FreeCAD code compiles with OCCT 7.6 it doesn't work at the moment
2021-10-09 13:49:02 +02:00
wmayer
5ddaa470da Part: in TopoShape::getDomains use functions of Tools class 2021-10-08 15:32:19 +02:00
wmayer
50d3abc182 Part: change TopoShape::exportFaceSet and TopoShape::exportLineSet to use the functions of the Tools class 2021-10-08 12:43:06 +02:00
wmayer
9eedb17b70 App: use consistent spelling of SubElement 2021-10-06 18:09:53 +02:00
wmayer
1c9378d2aa Part: move code to create shape from mesh to dialog ShapeFromMesh 2021-10-02 07:09:29 +02:00
wmayer
6ed0352a4d Part: for faster execution make sewing optional when creating shape from mesh 2021-10-01 19:29:49 +02:00
wmayer
62b20d6850 Part: [skip ci] make TopoShape::setFaces 30% faster 2021-10-01 15:23:46 +02:00
wmayer
614e247dff Part: support null shapes in boolean operations 2021-09-16 12:43:32 +02:00
wmayer
333859d618 Py: fix memory leak 2021-04-12 00:05:42 +02:00
tomate44
f5de466ae5 Part: fixes and check input values for spiral and helix primitives 2021-03-10 14:24:01 +01:00
tomate44
1ad246bdad Part primitives: use makeSpiralHelix in spiral and helix primitives 2021-03-10 14:22:04 +01:00
tomate44
8a7a5b583f TopoShape: add a common function to build spirals and helixes 2021-03-10 14:18:12 +01:00
David Osterberg
cb2da22e86 PartDesign: New features AdditiveHelix and SubtractiveHelix
These features, based on the code for the Pipe class, allow the user
to simply create a helical sweep within PartDesign workbench.

Sample application is threads, springs, coils, augers, etc.

Also, remove needless requirement for positive cone angle on helixes.

Thanks to @bitacovir for helping with the icons
Thanks to @chennes for review
Thanks to @vosk for review
Thanks to @wwmayer for review

Enforce that links stay within scope for ProfileBased features
This also ensures that the Body itself is not used for creating features within
the body, causing a "Graph not a DAG" error.
2021-02-04 13:01:12 +01:00
wmayer
d65937d338 Part: [skip ci] rename methods in TopoShape that override non-virtual functions of base class 2021-02-03 16:10:38 +01:00
wmayer
f636dfc623 Part: [skip ci] in TopoShape::getMemSize() handle edges or faces with no attached geometry 2021-01-06 15:39:25 +01:00
Mateusz Skowroński
b8c26c0273 Fix GCC warnings: type qualifiers ignored on cast result type [-Wignored-qualifiers] 2020-12-28 23:17:26 +01:00
wmayer
eee49a8f1f Sketcher: support vertexes in sketch used e.g. for hole features 2020-12-22 07:10:48 +01:00
wmayer
51245f3851 Part: [skip ci] add TopoShape::isInfinite 2020-12-19 16:07:00 +01:00
Zheng, Lei
6d1518f7e0 Part: improve TopoShape::findPlane()
Make the returned plane normal consistent with the underlying face
geometry.
2020-12-14 16:04:40 +01:00
wmayer
751f48a54f Import: [skip ci] fixes #0004477: Can't import .STEP files with cyrillic symbols 2020-12-07 17:54:17 +01:00
wmayer
40145c06bf Part: [skip ci] add method TopoShape::makeTorus 2020-12-03 14:50:20 +01:00
wmayer
8dfce38041 Part: [skip ci] implement getPyObject/setPyObject of TopoShape class 2020-10-16 13:46:44 +02:00
wmayer
424eacd5f0 Part: [skip ci] fix crash when trying to convert null shape to nurbs 2020-10-09 18:54:57 +02:00
wmayer
c35dba8e34 Part/Import: [skip ci] disable use of Message_ProgressIndicator for OCC >= 7.5 due to major API changes 2020-10-08 14:48:35 +02:00
wmayer
9367e73e92 LGTM: [skip ci] fix: Inconsistent definition of copy constructor and assignment ('Rule of Two')
Remove user-defined copy constructor of Exception classes without assignment operator
2020-07-27 13:47:41 +02:00
Gabriel Wicke
fb0aa86b6e [part] More robust tessellation angular deflection default
OCC currently does not reliably enforce linear deflection on curved
surfaces, especially curved lofts over nurbs splines. To avoid surprises
when tight tolerances are needed, replace the static default angular
deflection of 0.5 radians (~28 degrees), with a more sensible angular
deflection derived from the provided linear deflection tolerance.

By adding the default heuristic to TopoShape, we can keep typical
tessellate() and STL export functionality users simple, and also avoid
the need to implement similar heuristics in many places. If more
explicit control over angular deflection is needed for some use cases,
then we could still choose to expose the option to override the derived
default explicitly.

The hope is that OCC's linear deflection enforcement will be more
reliable at some point, at which point this heuristic will no longer be
needed.
2020-06-23 12:17:51 +02:00
Gabriel Wicke
7fd276c384 Part: Parallelize tessellations in TopoShape
Update parameters for all BRepMesh_IncrementalMesh instances to allow
parallel meshing. This matches what is already done for view
tessellations.

Other positional parameters are filled with their defaults in
BRepMesh_IncrementalMesh, so there should be no behavior change outside
of allowing parallelism.
2020-05-28 22:05:12 +02:00
Zheng, Lei
c09988069b Part: fix crash in TopoShape::makEFace() 2020-03-01 14:53:49 +01:00
wmayer
039f35651a Part: [skip ci] the number of domains returned by TopoShape::getDomains must match with number of faces
If a face cannot be meshed then an empty domain is added
2020-02-26 00:55:07 +01:00
Zheng, Lei
a0b14f2dcd Part: add TopoShape::getSub(Topo)Shapes() 2019-12-30 17:17:14 +01:00
luz.paz
17ada69518 Part: [skip ci] fix header uniformity
This PR fixes header uniformity across all Part WB files
2019-12-22 00:59:47 +01:00
wmayer
df8e09196d set default deflection of 0.01 when exporting shape as STL 2019-11-29 13:46:30 +01:00