Commit Graph

186 Commits

Author SHA1 Message Date
wmayer
17f49bab18 Part: [skip ci] fix computing of face normals in TopoShape::getPoints 2022-04-13 12:51:08 +02:00
wmayer
a13e251ad4 Part: issue #6727: Missing B-Spline in STEP file after Part Offset2D 2022-04-11 14:16:29 +02:00
wmayer
c8c4686543 Part: fixes #6282: exportStep breaking model 2022-04-11 11:58:57 +02:00
Chris Hennes
0a65575c2c Part: PR6497 move return statement to new line 2022-03-29 12:37:00 -05:00
wmayer
068c0e5a98 Part: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
mwganson
72e06ae529 Part: 2doffset fix crash by chacking for null shape before adding with builder.Add() 2022-03-12 02:48:22 +01:00
wmayer
4977e55e51 App: Optimize includes to reduce compile time 2022-03-07 15:53:58 +01:00
wmayer
95f583a677 Part: fix typos in make* functions 2022-02-16 12:48:02 +01:00
wmayer
a5e561b31d 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
113a587ae5 Part: in function to create a part handle meshes with defects 2022-01-18 15:20:55 +01:00
mwganson
c0c4ae40a5 TopoShape::analyze() SetRunParallel(true) to do the bopcheck in parallel mode 2022-01-16 16:30:08 +01:00
wmayer
651a4d7626 Part: set explicit format version number for binary BRep files to support all OCC versions 2021-12-12 01:15:56 +01:00
wmayer
f212a8ef76 Part: set explicit format version number for BRep files to support all OCC versions 2021-12-11 23:31:41 +01:00
luz paz
b6f9f39ffc Fix various typos and grammatical refinements 2021-12-09 08:57:52 -06:00
wmayer
74639da997 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
442c8d52a1 Part: in TopoShape::getDomains use functions of Tools class 2021-10-08 15:32:19 +02:00
wmayer
8e6dab209e Part: change TopoShape::exportFaceSet and TopoShape::exportLineSet to use the functions of the Tools class 2021-10-08 12:43:06 +02:00
wmayer
7b45d63bf2 App: use consistent spelling of SubElement 2021-10-06 18:09:53 +02:00
wmayer
14ff475192 Part: move code to create shape from mesh to dialog ShapeFromMesh 2021-10-02 07:09:29 +02:00
wmayer
745f8e044d Part: for faster execution make sewing optional when creating shape from mesh 2021-10-01 19:29:49 +02:00
wmayer
b4f77d3c62 Part: [skip ci] make TopoShape::setFaces 30% faster 2021-10-01 15:23:46 +02:00
wmayer
666f67f8d9 Part: support null shapes in boolean operations 2021-09-16 12:43:32 +02:00
wmayer
6f1455700e Py: fix memory leak 2021-04-12 00:05:42 +02:00
tomate44
839b96385c Part: fixes and check input values for spiral and helix primitives 2021-03-10 14:24:01 +01:00
tomate44
6f9856bd46 Part primitives: use makeSpiralHelix in spiral and helix primitives 2021-03-10 14:22:04 +01:00
tomate44
18f36c10da TopoShape: add a common function to build spirals and helixes 2021-03-10 14:18:12 +01:00
David Osterberg
59ec3cb141 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
3ebd7d119b Part: [skip ci] rename methods in TopoShape that override non-virtual functions of base class 2021-02-03 16:10:38 +01:00
wmayer
5d9db07ddd 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
5dca59d824 Fix GCC warnings: type qualifiers ignored on cast result type [-Wignored-qualifiers] 2020-12-28 23:17:26 +01:00
wmayer
6c956bb80f Sketcher: support vertexes in sketch used e.g. for hole features 2020-12-22 07:10:48 +01:00
wmayer
c276139f19 Part: [skip ci] add TopoShape::isInfinite 2020-12-19 16:07:00 +01:00
Zheng, Lei
0a35cb5b01 Part: improve TopoShape::findPlane()
Make the returned plane normal consistent with the underlying face
geometry.
2020-12-14 16:04:40 +01:00
wmayer
78c6cc1362 Import: [skip ci] fixes #0004477: Can't import .STEP files with cyrillic symbols 2020-12-07 17:54:17 +01:00
wmayer
c578f9747a Part: [skip ci] add method TopoShape::makeTorus 2020-12-03 14:50:20 +01:00
wmayer
b33a120935 Part: [skip ci] implement getPyObject/setPyObject of TopoShape class 2020-10-16 13:46:44 +02:00
wmayer
d76124b61e Part: [skip ci] fix crash when trying to convert null shape to nurbs 2020-10-09 18:54:57 +02:00
wmayer
fd9cdb9de9 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
3b0eeb63e8 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
487215d2f5 [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
7822daf1f2 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
b7a9d2dc37 Part: fix crash in TopoShape::makEFace() 2020-03-01 14:53:49 +01:00
wmayer
43e6be9020 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
474d874955 Part: add TopoShape::getSub(Topo)Shapes() 2019-12-30 17:17:14 +01:00
luz.paz
53bb216b57 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
83ecb8a5ec set default deflection of 0.01 when exporting shape as STL 2019-11-29 13:46:30 +01:00
asapelkin
e951094af9 use emplace_back instead of push_back where justified 2019-11-21 14:48:09 +01:00
howetuft
fb64a860e6 Fix -Wredundant-move warnings, 2nd try
std::move is redundant when it is used to return a local object from a function (eg return std::move(local)): indeed, returning a local object from a function implicitly moves it. Moreover using std::move this way
See https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rf-return-move-local
However, in order to avoid -Wreturn-std-move as well, a Base object is move-constructed
from Derived when required.
2019-11-18 13:44:40 +01:00
Zheng, Lei
7c76d2f3c3 Part: fix TopoShape::getElementTypes()
This also fixes Std_BoxElementSelection in Gui/CommandView.cpp, which
relies on this API through Data::ComplexGeoData::getElementTypes().
2019-10-08 10:22:00 +02:00
wmayer
a247b7e6a5 force strict ISO C++ (-Wpedantic)
for Drawing, Image, Inspection, Mesh, MeshPart, Part, Path, Points, Raytracing, ReverseEngineering, Spreadsheet, Start, Surface, Web

TODO: fix several -Woverflow in area
2019-09-18 11:32:42 +02:00