Commit Graph

49 Commits

Author SHA1 Message Date
wmayer
1acafb240a Measure: Fix several crashes in Measurement
Measurement::getShape() used to call ShapeFinder::getLocatedShape()
that failed to return a valid shape in many cases. And the calling
instance didn't check for a valid shape either which caused
a segmentation fault.

Solution:
Replace ShapeFinder::getLocatedShape() with Part::Feature::getShape()
that works more reliably and where needed check for a valid shape
before accessing it.

This fixes issue 19452 and improves the fix for 19349
2025-08-25 09:21:33 +02:00
wmayer
2b2a82d901 Measure: Fix crash in Measurement::length() when selecting infinite edge (e.g. PD datum line) 2025-08-25 09:21:33 +02:00
theo-vt
79738eec38 Measure: give a hint to ::getShape so that compound shapes may be resolved 2025-08-11 00:24:56 +02:00
Chris Hennes
b307395c59 Measure: Remove redundant check for edges > 0 2025-06-20 22:49:34 +02:00
theo-vt
13e7952ccc PartDesign: Fix hole centered on point edge case (#21257)
* Light refactor of getTopoShape function

* Fix hole edge case

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Update src/Mod/Part/App/PartFeature.cpp

Co-authored-by: Kacper Donat <kadet1090@gmail.com>

* Refactor simplifyCompound()

* Use Base::Flags<GetShapeOption>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Shorten enum name and move it from class scope to namespace scope

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-05-29 22:37:54 +02:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
WandererFan
abb50a4daa [TD]Long and link dim refs (fix #13375) (#18641)
* [Meas]Changes for TD dimension refs for links

* [TD]App changes for dim refs to links

* [TD]Gui changes for dim refs to links

* [TD]fix 2 lint messages

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-23 17:36:22 -05:00
PaddleStroke
df3bf98ef7 Measure: Fix quickmeasure problem with Part::Line objects 2024-11-11 18:17:36 +01:00
pre-commit-ci[bot]
925335d5c1 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-10-22 22:37:01 -05:00
wmayer
9a66ad7302 Measure: Use Base::toDegrees to convert radian to degree 2024-10-22 22:37:01 -05:00
Eric Price
69676a0f9d Measurement: Avoid null shapes to be returned in all code branches (Fix #16820)
Returning a null shape would have triggered an exception in the bottom branch but not in the top one - which later leads to a segfault - solution - raise an exception. OOC doesn't like null shapes.
2024-09-25 12:29:48 -05:00
Eric Price
54c278c123 Measurement: Correctly handle unknown selections to avoid segfaults (Fix 16794)
The measurement code did not handle mixed selections of known and unknown types correctly. Although a unknown selected object would leave the type at Invalid, selecting both known and unknown objects would have the type determined by the known object type and treat the unknown as the same. This causes exceptions and - worst case a segmentation fault.

This fix introduces a new category "other" which - if present in a selection always forces type to Invalid. This should be forward compatible in case new types are introduced in the future.
2024-09-25 07:48:56 -05:00
PaddleStroke
0be29b11b7 Measure: Fix quickmeasure globalplacement. 2024-09-19 08:47:57 -05:00
mosfet80
3b60bf7194 clean Measurement.cpp
clean Measurement.cpp
2024-09-02 18:04:24 +02:00
pre-commit-ci[bot]
73cb5bafe0 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-08-26 23:55:17 +02:00
pre-commit-ci[bot]
0797cd2f00 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-08-25 11:42:43 +00:00
wmayer
859d47bac7 Measure: Fix exception handling
If a Base::Exception is thrown in Measurement::getShape() then it's handled by the catch(...) handler and
converted into a Base::RuntimeError. This behaviour hides the original Base::Exception.

Example:
Selecting a datum plane raises the error 'Measurement: Unknown error retrieving shape' because the
original Base::ValueError isn't forwarded.
2024-06-02 08:15:57 +02:00
PaddleStroke
e5780a5e3d Core / Measure: Introduce QuickMeasure 2024-05-06 18:12:14 +02:00
hlorus
36d16b2243 [Measure] Add features, viewproviders and preferences for unified measurement facility 2024-04-29 09:27:22 -04:00
wmayer
a3057e946b Mod: modernize C++: use equals default 2023-08-22 11:16:49 +02:00
luzpaz
729685316e Fix trailing whitespace, typos, headers
Fix trailing whitespace, typos, and header uniformity.
2023-01-23 00:34:37 +01:00
wandererfan
aeeb62d204 [Measure]fix angle returns supplementary value 2023-01-07 16:32:03 -05:00
wandererfan
ad2de02d0c [Meas]handle long subElement names in reference 2022-12-02 14:19:53 -05:00
luz paz
95d89622de Fix header uniformity for various workbenches/directories
Also includes some trailing whitespace fixes
2022-11-29 04:48:57 +01:00
Uwe
424cd1d319 [Measure] remove a unused include
- also some sorting
2022-11-23 03:50:45 +01:00
wandererfan
075cbb64f0 [Measurement]apply globalPlacement to geometry 2022-11-14 16:38:06 -05:00
wandererfan
92819be7fd [Measurement]support for 3 point angle 2022-11-04 08:28:13 -04:00
berniev
da9ebc572f Mod: redundant void 2 2022-08-08 10:27:50 +02:00
berniev
2d4c5a4cfb Mod: use emplace_back 2022-08-05 10:36:16 +02:00
Uwe
49f707e885 [Measure] Measurement.cpp: add missing include 2022-07-03 21:38:52 +02:00
Uwe
6fb7f614c7 [Part] Pa* to Pre*: remove unneeded includes
- also sort includes
2022-07-03 20:47:03 +02:00
Uwe
ccc5198815 [Measure] remove unused includes 2022-03-20 17:56:00 +01:00
Zheng, Lei
d26f772035 TechDraw: Link related changes
* Support link and group objects

* Support view sync by implementing view provider API getMDIView()

* Use handleChangedPropertyType() for object migration instead of
  reimplementing Restore() because of a lots of changes in
  PropertyContainer::Restore().

* Various other small fixes.
2019-08-17 15:15:46 +02:00
wmayer
c373a58746 fix warning 2019-05-03 18:20:36 +02:00
wandererfan
1af80236fc Fix Error handling Measurement module 2019-04-26 06:36:56 -04:00
wmayer
c5a5eb6a83 Replace Base::Exception with appropriate subclass 2018-11-14 17:36:00 +01:00
WandererFan
76373b2c6a LinkScope clean up 2017-12-31 14:54:05 +01:00
wmayer
949c86d364 Port to occ7.2:
+ Standard_Failure::Caught() is now marked as deprecated and should be replaced with standard C++ exception handling
2017-09-01 16:27:46 +02:00
Peter Lama
a75a98ef27 Use OCCT Handle macro for Handle_ classes
This is the result of running OCCT's upgrade script provided
with OCCT 7.0. See
https://www.opencascade.com/content/freecad-occt710-and-windows-rtti-data-missing#comment-form
and
https://www.forum.freecadweb.org/viewtopic.php?f=4&t=21405&start=120#p169019
for why this is necessary for OCCT >= 7.1
2017-04-20 12:27:34 +02:00
Kunda
0485edd560 source typo fixes pt2 (only on py3 merged code) 2017-02-28 17:01:11 +01:00
wmayer
17c8b2c813 performance improvements
+ use const-reference as argument to avoid tmp. copy
+ use prefix incremation operator instead of postfix increment operator
2016-11-08 13:51:22 +01:00
WandererFan
256c5ed198 Allow True dimensions to reference multiple Parts 2016-11-07 17:20:20 -05:00
wmayer
65bcaf4b6e fix -Wextra in Measure 2016-09-22 16:46:18 +02:00
wmayer
de7978434d fix Coverity issues 2016-08-19 22:51:33 +02:00
Wolfgang E. Sanyer
7f4a437cc2 This commit adds getShape and setShape to TopoShape 2016-08-06 23:42:55 +02:00
WandererFan
d73ffaa55b Preserve True/Projected state on save/restore 2016-07-11 15:32:16 +02:00
WandererFan
88ad069817 change Dimension.ProjectionType -> MeasureType 2016-07-11 15:32:16 +02:00
WandererFan
e40bbdad5b Mod/Measure warnings 2016-07-11 15:32:16 +02:00
WandererFan
96ba139f70 Add /Mod/Measure for TechDraw 2016-07-11 15:32:16 +02:00