Commit Graph

864 Commits

Author SHA1 Message Date
bgbsww
92e8a391c6 Toponaming/Part: Clean and add tests 2024-04-11 11:30:04 -04:00
Zheng, Lei
5a0ac5cafd TopoShape/Part: Bring in FeatureDressup 2024-04-11 10:22:11 -04:00
André Althaus
6b721ac797 Ignore suppressed features in patterns
This will remove all suppressed features from the Originals list
before calculating the patterns.
2024-04-01 10:58:24 -05:00
wmayer
b908e46b26 PD: Mirror feature should be more permissive
If you have a mirror feature and set the mirror plane with the normal feature editing the recompute works. But if the mirror plane is set with the property editor then the recompute fails with the message that no mirror plane reference is set.

This is related to a an empty sub-name list of the link property instead of a single and empty sub-name element.

This PR allows to specify a sketch, plane or datum plane without a sub-name.

For more details see: https://forum.freecad.org/viewtopic.php?t=86568

This fixes #13238
2024-03-31 17:32:27 +02:00
wmayer
5adb384e20 PD: refactor Mirrored::getTransformations 2024-03-31 17:32:27 +02:00
Florian Foinant-Willig
4beeafbedd [PartDesign] Still a helix fix (#12977)
* [PartDesign] Still a helix fix

If we don't break the helix path at each turns we get a vaild path for
MakePipe (solid) even with an angle.

* Decrease helix tests requirements
2024-03-25 18:31:20 +01:00
Josh Coalson
fbd8767242 Part: Rename AttachExtension::Support property to AttachmentSupport, to avoid name conflict with base features. Fixes #7052 2024-03-04 18:22:43 +01:00
Florian Foinant-Willig
b5abde373d PD: Use SuppressibleExtension 2024-02-29 18:24:27 +01:00
Florian Foinant-Willig
cc5d4146cf PartDesign_Helix: use computed wires
use the wires of the computed face instead of the selected ones.
2024-02-26 17:41:21 +01:00
wmayer
64a91968a3 MSVC: fix compiler warnings 2024-02-25 00:12:34 +01:00
Florian Foinant-Willig
f9cebebd6b PD: handle null pointer in Feature::getBaseShape (#12385) 2024-02-13 17:41:25 -03:00
wmayer
5eabeff94e Mod: fix several compiler warnings:
* fix -Wsometimes-uninitialized
* fix -Wunused-parameter
* fix -Wunused-variable
* fix -Winconsistent-missing-override
* fix -Wsign-compare
* fix -Wreorder-ctor
* fix -Wtautological-overlap-compare
2024-02-12 11:39:32 -06:00
Florian Foinant-Willig
45e6e3561e Part & PartDesign Cone: allow equal radii (#12219)
* PartDesign_Cone: allow equal radii

* fix R2 < R1

* Part_Cone: allow equal radii
2024-02-12 14:21:53 -03:00
Florian Foinant-Willig
056b90cce3 Set Suppressed false if no shape 2024-02-12 17:55:51 +01:00
Florian Foinant-Willig
f4763109c3 [PD] Add a Suppressed property to disable a feature 2024-02-12 17:55:51 +01:00
Ulices
bf7adc51d1 PartDesign: Update Length/Offset when Occurrences changes (#12069)
* Add 'HACK:'/`NOTE:` tags to get special highlightning

* [PD] Bugfix: Update Length/Offset when Occurrences changes

Fix #12068
2024-01-21 18:52:34 -06:00
Syres916
51e4561fd7 [PartDesign] Hole, ignore duplicate circle/curve centers (#11773)
* [PartDesign] Hole, ignore duplicate circle/curve centers

* [PartDesign] Hole correct log output

* [PartDesign] Hole changes based on feedback
2024-01-08 13:55:16 -03:00
bgbsww
1415e67b23 Correct mistaken Helix patch; use MakePipe for frenet for speed; add tests (#11598)
* Cleanup and switch to using MakePipe

* Cleanup unused include

* Use Frenet mode in building pipe

* Restore original code, add a control property

* Hide property, and init on new objects

* Restore prior behavior for legacy objects

* Clean up git blame; add missing move to keep helix same with new makePipe call

* Remove debug include

* Use doxygen syntax for deprecation comment

* Add unit tests; restore code for angled helixes; optimize zero angle helixes

* Lower test precision to accept platform variations

* Loosen more

* Correct restoration

* Tweak test volumes to match restored helix creation

* Restore helix generation parameter

* Fix test; delint
2024-01-08 13:43:38 -03:00
André Caldas
89dbab9b0e Avoids using getNameInDocument() to test if DocumentObject is attached to a Document.
This patch substitutes by isAttachedToDocument() (almost) everywhere where
getNameInDocument() is used for this purpose.

The very few places not touched by this patch demand a (just a little) less trivial change.
When we change the returning type of getNameInDocument() to std::string,
those places will be easily found, because they shall generate a compiler error
(converting std::string to bool).

Rationale:
The fact that getNameInDocument() return nullptr to indicate
that the object is not attached to a document is responsible for lots of bugs
where the developer does not check for "nullptr".

The idea is to eliminate all those uses of getNameInDocument() and, in the near future,
make getNameInDocument() return always a valid std::string.
2023-12-11 17:37:58 +01:00
luzpaz
5c21351608 Fix various typos 2023-11-30 14:58:06 +01:00
bgbsww
a118289f5b PartDesign: Fix #9377 - issue with accuracy in AdditiveHelix (#11312)
* Correct precision issue in PartDesign::AdditiveHelix

* Simplify getting the end wires

* Remove extraneous loop per @FlachyJoe

* Switch to using mkPS.Shape per @FlachyJoe

* Incorporate guarded efficiency improvement
2023-11-29 21:26:00 -03:00
bgbsww
a9bf3e86f3 Correct PartDesign Helix feature negative angles (#11399)
* Correct PartDesign Helix feature negative angles

* Whitespace
2023-11-27 10:51:12 -06:00
bgbsww
e10a62ae82 Use placement only on new objects 2023-11-27 17:46:45 +01:00
bgbsww
156c506f19 Fix variable name, clean 2023-11-27 17:46:45 +01:00
bgbsww
2230850e3d Take Placement into account when applying boolean 2023-11-27 17:46:45 +01:00
Ajinkya Dahale
c7101d7ced [PD] Support two-angle/up-to-face groove
Elements copied from revolution and pocket feature.
2023-11-14 00:20:20 +05:30
Ajinkya Dahale
796727fcd3 [PD] Use enum class for revolution method 2023-11-14 00:20:20 +05:30
Ajinkya Dahale
7a6927ca78 [PD] Update revolution properties based on method 2023-11-14 00:20:20 +05:30
Ajinkya Dahale
43a8104926 [PD] Refactor FeatureRevolution further
New methods created to reduce size of `execute`.

Use BRepPrimAPI instead of BRepFeat whenever possible since otherwise there are
some limitations.
2023-11-14 00:20:19 +05:30
Ajinkya Dahale
149738af7f [PartDesign] Refactor mode support in revolution
Encodes support for "two angles".
Clarifies that up-to-first and up-to-last is not supported.
2023-11-14 00:20:19 +05:30
Ajinkya Dahale
82b5e16cd1 [PartDesign] Add some dummy options for revolution
These options correspond to "up to face" and "2 angles". They are expected to do
nothing right now. However there is also some experimental code for "up to face"
in this commit, whose behavior is not confirmed.
2023-11-14 00:20:19 +05:30
Florian Foinant-Willig
230d355e1d PartDesign_Pad: add an up to shape mode 2023-11-12 20:06:57 +01:00
Chris Hennes
37a8e348c6 Merge pull request #11231 from DeflateAwning/http-cleanup
Find and replace http://freecad to https://freecad
2023-11-06 11:16:13 -06:00
DeflateAwning
1e3179e9bc Find and replace http://freecad.org to https://freecad.org
Find and replace:
http:\/\/(.{0,10})freecad
https://$1freecad
Done in all remaining files (after doing it in SVGs in the last commit)
2023-10-29 22:39:22 -06:00
Florian Foinant-Willig
24934d7843 PartDesign: modernize type checking 2023-10-23 18:08:16 +02:00
wmayer
e7eb7d7b8d PD: wrong direction determined for linear pattern
A selected edge of a sketch is not in local coordinates and thus its corresponding axis mustn't be multiplied with the sketch placement as
this will lead to a wrong direction vector.

Forum: https://forum.freecad.org/viewtopic.php?t=82022
2023-10-23 10:53:29 -05:00
Chris Hennes
8595b07b76 Merge pull request #10844 from ppphp/remove_redundant_definition
[cmake] some definitions do not matter now
2023-10-02 14:20:49 -05:00
FEA-eng
499381a8ba Merge branch 'master' into patch-5 2023-10-02 18:14:44 +02:00
liukaiwen
329904a055 [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
liukaiwen
5048074542 fix: json is a 3rdparty library, move to 3rdparty 2023-08-30 16:59:25 +02:00
Kacper Donat
2d22c8f4af PD: Keep Length and Offset in sync for LinearPattern
As Length and Offset represents the same concept in different way it is
useful to keep them in sync when it is possible. Update to one of them
will update the other with approperiate value. This behaviour behaviour
works only if both properties are not coming from expression engine -
those will stay not touched.
2023-08-27 12:45:53 +02:00
Kacper Donat
148c497eba PD: Add offset / overall angle modes for PolarPatterns
This commit adds two separate modes for defining angular spacing between
elements in the PD's Polar Pattern:

1. Overall Angle - which behaves exactly like it behaved before,
2. Offset Angle - which allows user to specify separation angle between
   consecutive elements.

This change is analogue to that introduced for LinearPattern in previous
commits.
2023-08-27 12:45:53 +02:00
al
b7da44f57b PD: Add offset / overall length modes for LinearPattern
This commit adds support for two separate modes of defining distance
between elements in PD's Linear Pattern.

1. Overall Length - which works exactly like it works before,
2. Spacing - which allows user to explicitly define distance (offset) between
   features.
2023-08-27 12:45:53 +02:00
wmayer
3c6174e521 PD: modernize C++: use default member init 2023-08-23 00:55:03 +02:00
wmayer
622e46771e PD: modernize C++: use equals default 2023-08-22 13:31:17 +02:00
Florian Foinant-Willig
f35da87075 PartDesign: Fix uptolast ends too soon 2023-08-21 11:14:24 -05:00
wmayer
c8abd4a6d4 Part: modernize C++: return braced init list 2023-08-19 11:35:41 +02:00
wmayer
3e09b8ee2d PD: modernize C++: use range-based for loop 2023-08-16 21:54:56 -05:00
wmayer
948cbfccd9 modernize C++: avoid bind
In many cases std::bind() is kept because the code is much simpler
2023-08-08 21:10:16 +02:00
wmayer
52e1c7c33b modernize C++: move from boost::bind to std::bind 2023-08-08 17:36:13 +02:00