Commit Graph

870 Commits

Author SHA1 Message Date
bgbsww
3d1f6199c4 TopoNaming/PartDesign: Implement shapebinders 2024-04-14 17:13:14 -05:00
Chris Hennes
f94a045598 Merge pull request #13387 from bgbsww/bgbsww-toponamingPD5FeaturePad
Toponaming/Part Transfer more python ElementMapVersion and add feature pad testing
2024-04-14 16:06:40 -05:00
wmayer
e05e17c954 PD: Fixes #13446: Crash with hole in additive loft 2024-04-14 21:24:06 +02:00
bgbsww
a88e7baff5 TopoShape/Part: Bug fixes; pass Hasher parms, OCCT 7.8 compatibility, ElementMaps correct item count 2024-04-14 13:56:07 -04:00
Zheng, Lei
6c6dce236d Bring in missing code 2024-04-11 18:20:26 -04:00
bgbsww
bd307d7cac Toponaming/Part: Fix review items 2024-04-10 12:14:01 -04:00
bgbsww
c9d8bdf13d Toponaming/Part: Add deprecation comments, clean up code 2024-04-09 21:17:08 -04:00
Zheng, Lei
82c3e107d7 TopoShape/Part: Bring in PartDesign dependencies 2024-04-09 21:17:08 -04:00
André Althaus
79f9da420c 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
7d10f5ed73 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
ede1ccc191 PD: refactor Mirrored::getTransformations 2024-03-31 17:32:27 +02:00
Florian Foinant-Willig
c7d85ff9d9 [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
a8ae56e06a 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
677cadee5e PD: Use SuppressibleExtension 2024-02-29 18:24:27 +01:00
Florian Foinant-Willig
d7a95b4e90 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
53b512da1c MSVC: fix compiler warnings 2024-02-25 00:12:34 +01:00
Florian Foinant-Willig
74c52c9063 PD: handle null pointer in Feature::getBaseShape (#12385) 2024-02-13 17:41:25 -03:00
wmayer
df7e783513 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
1eb0444bd5 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
86e75037d9 Set Suppressed false if no shape 2024-02-12 17:55:51 +01:00
Florian Foinant-Willig
4d929d3301 [PD] Add a Suppressed property to disable a feature 2024-02-12 17:55:51 +01:00
Ulices
fa0702956c 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
8cadc2294d [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
bf3ccbc5b6 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
560898907b 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
faef0c6f27 Fix various typos 2023-11-30 14:58:06 +01:00
bgbsww
94ca51b779 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
d472927bba Correct PartDesign Helix feature negative angles (#11399)
* Correct PartDesign Helix feature negative angles

* Whitespace
2023-11-27 10:51:12 -06:00
bgbsww
185e58a219 Use placement only on new objects 2023-11-27 17:46:45 +01:00
bgbsww
18e117b184 Fix variable name, clean 2023-11-27 17:46:45 +01:00
bgbsww
2643fd3334 Take Placement into account when applying boolean 2023-11-27 17:46:45 +01:00
Ajinkya Dahale
2ae3c82606 [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
4c80e567c6 [PD] Use enum class for revolution method 2023-11-14 00:20:20 +05:30
Ajinkya Dahale
0829c96549 [PD] Update revolution properties based on method 2023-11-14 00:20:20 +05:30
Ajinkya Dahale
7e09589942 [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
6b1a1e1508 [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
b41e592441 [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
2010268187 PartDesign_Pad: add an up to shape mode 2023-11-12 20:06:57 +01:00
Chris Hennes
aaa0db3867 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
8de6db3e97 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
6adc675a12 PartDesign: modernize type checking 2023-10-23 18:08:16 +02:00
wmayer
4c509c03ef 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
6d37ef6609 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
ec4d1a95d6 Merge branch 'master' into patch-5 2023-10-02 18:14:44 +02:00
liukaiwen
4f8fe8fd4a [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
liukaiwen
aef990d440 fix: json is a 3rdparty library, move to 3rdparty 2023-08-30 16:59:25 +02:00
Kacper Donat
1c70983c60 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
6d7fea506c 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
2b1108439f 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
5686149cd3 PD: modernize C++: use default member init 2023-08-23 00:55:03 +02:00