Commit Graph

1096 Commits

Author SHA1 Message Date
captain0xff
6e896b1248 PartDesign: add interactive gizmos 2025-08-30 17:02:52 +02:00
wwmayer
e55e7f75d2 PD: Fix creation of pad from base feature
In versions prior to 1.0 there was never the requirement that the shape of a FeatureBase must contain a solid. This has changed with 7a4bc95d47 for no obvious reason. This requirement should be dropped again.

In versions prior to 1.0 the method Feature::getBaseShape() was used within the Pad feature to check if the base feature has a solid. This method throws an exception if the shape doesn't have a solid.
Since version 1.0 the new method Feature::getBaseTopoShape() is used. As parameter a boolean is passed to either throw an exception or silently return a null shape. The implementation of this function is inconsistent:
If the parameter is false it throws an exception if the base feature's shape has no solid but if the parameter is true it doesn't check if the shape has a solid and returns it as is.

This leads to incorrect behaviour in the calling instance where the shape of the base feature is tried to be fused with the padded shape. This operation will fail if the shape of the base feature has no solid.

This fixes https://github.com/FreeCAD/FreeCAD/issues/23348
2025-08-29 16:28:38 +02:00
PaddleStroke
7d3dd2605f PartDesign: Fix symmetric regression & LengthAlongSketchNormal (#23418)
* PartDesign: Fix symmetric regression

* to squash

* Fix LengthAlongSketchNormal not working

* to squash

* Fix checkbox not initially visible
2025-08-29 10:03:16 +02:00
Max Wilfinger
9cae60a70f Update UI strings from Crowdin reports for consistency 2025-08-28 11:45:38 -05:00
Kacper Donat
27d2178008 Merge pull request #22389 from PaddleStroke/pd_transform
PartDesign: Transform tools
2025-08-27 15:22:26 +02:00
FEA-eng
0bf22ffca8 PartDesign: Update missed error message about multiple solids (#23392)
* PartDesign: Update FeatureLoft.cpp

* PartDesign: Update FeatureExtrude.cpp

* PartDesign: Update FeaturePipe.cpp

* PartDesign: Remove empty lines added by GitHub editor

* PartDesign: Remove empty lines added by GitHub editor
2025-08-27 09:37:53 +00:00
paddle
8b7290e91a PartDesign: Patterns: Tooltips. 2025-08-26 09:13:17 +02:00
PaddleStroke
5d2037c820 PartDesign: Transform rework 2025-08-26 08:46:51 +02:00
PaddleStroke
a346c266e7 PartDesign: Extrude 2 sides (#21794)
* PartDesign: extrude 2 sides

* Part: OpCodes XOR

* PartDesign: Remove deprecated generatePrism functions

* PartDesign: Extrude : Update Sides combobox strings

* Change "Sides" to "Mode"

* Use OpCodes::Extrude instead of Prism.
2025-08-25 17:17:23 +00:00
paddle
9d12c0c7c6 PartDesign: Remove unnecessary warning. 2025-08-25 18:39:06 +02:00
paddle
9535371265 PartDesign: Rename Transformed::Mode enum 2025-08-25 18:38:34 +02:00
Max Wilfinger
04e9baf533 Fix UI strings reported on Crowdin (#23297)
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-08-25 06:10:53 +00:00
Max Wilfinger
9fc40b33de Fix source string mistakes reported on Crowdin (#23157)
* Fix source string mistakes reported on Crowdin

* Update src/Mod/Draft/Resources/ui/TaskPanel_CircularArray.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/Resources/ui/TaskPanel_CircularArray.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftfunctions/upgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftfunctions/upgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/draftguitools/gui_downgrade.py

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

* Update src/Mod/Draft/Resources/ui/TaskPanel_SetStyle.ui

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>

---------

Co-authored-by: Roy-043 <70520633+Roy-043@users.noreply.github.com>
2025-08-24 20:51:32 -05:00
Kacper Donat
be3b9edd33 PartDesign: Do not copy visuals from ShapeBinder 2025-08-23 16:38:53 -05:00
FEA-eng
dc489914d2 PartDesign: Fix small typo in multiple solids error (#23299)
* PartDesign: Update FeatureChamfer.cpp

* Update src/Mod/PartDesign/App/FeatureChamfer.cpp

---------

Co-authored-by: Max Wilfinger <6246609+maxwxyz@users.noreply.github.com>
2025-08-22 20:47:04 +00:00
FEA-eng
b7c233b94e PartDesign: Update error message about multiple solids (#23286) 2025-08-22 18:29:50 +00:00
marioalexis
f176172faa PartDesign: Remove use of user parameters from Body constructor 2025-08-20 15:08:47 +02:00
Max Wilfinger
84afc15c91 PartDesign: Enable compounds for PD bodies 2025-08-18 01:09:07 +02:00
Benjamin Nauck
51f4ad7432 PartDesign: Use sketch as neutral plane for Draft (continuation of 20135) (#21901)
* Enabled Draft to accept sketch as neutral plane

* Resolving the last review

* Fix: tested the Feature with test file

* Fix: error with sketch pointer

* PartDesign: Simplify selection implementation

---------

Co-authored-by: Ziad <ziad.ashraf.cs@gmail.com>
2025-08-17 14:55:53 -05:00
theo-vt
af83b6883e PartDesign: Hole: fallback to getProfileNormal when a non-cylindrical surface is used 2025-08-15 10:09:23 -05:00
Kacper Donat
bdba939f9f PartDesign: Implement preview for Draft 2025-08-12 11:34:26 -05:00
Kacper Donat
802af4c464 PartDesign: Add preview TaskBox to all feature task dialogs 2025-08-07 00:37:46 +02:00
Kacper Donat
6caceacb95 PartDesign: Add support for preview for transforms 2025-08-07 00:37:23 +02:00
Kacper Donat
7f87d87f61 PartDesign: Add transparent previews 2025-08-07 00:37:21 +02:00
Max Wilfinger
bee89d0447 PartDesign: Update UI strings for consistency and correct for new fuctions and typos
Closes: #22128
2025-08-04 20:15:04 +02:00
Florian Foinant-Willig
39c902c616 Try to auto-fix any invalid generated helix 2025-08-04 17:52:06 +02:00
Ladislav Michl
9a5d934eab PD: Fix loft between curved faces
Fixes issue 19183 also reported in the forum:
https://forum.freecad.org/viewtopic.php?p=806495
https://forum.freecad.org/viewtopic.php?t=88234

The actual reason for the failure is that the new code uses
FaceMakerBullseye method which expects coplanar wires.
The code was using FaceMakerCheese previously which changed
in LinkStage with their commit 93ce3edfe7ff
("PD: use FaceMakerBullseye for feature Loft")
and was imported here with TNP mitigations.

As changing it back would cause different regressions, lets
try different facemakers until one succeeds.

Fixes: fa8f29aed4 ("Toponaming/Part: Fix all getBaseTopoShape calls...")
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
Co-authored-by: Werner Mayer <wmayer@freecad.org>
2025-08-03 19:14:09 +02:00
theo-vt
7481a5d8dd PartDesign: Hole: get direction from cylindrical surface rather than normal (#22393)
* PartDesign: Hole: Find direction of cylindrical face in Hole::execute instead of FeatureSketchBased::getProfileNormal

* PartDesign: Minor cleanups in guessNormalDirection

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-07-28 02:06:50 +00:00
Pieter Hijma
ca9ecfb517 PartDesign: Add migration tag 2025-07-22 09:03:27 +02:00
wmayer
48785dfd0e PD: Fix crash in Loft::getSectionShape
The passed DocumentObject pointer can be null which is nowhere checked.
This fixes issue 19545

Fixes: 256ad7a01a ("PartDesign: Loft Intelligence - Select the whole sketch if the selected shape is ...")
2025-07-18 09:57:29 -05:00
theo-vt
e38fe196d5 Allow open wires in Part::getProfileNormal 2025-07-14 17:38:51 +02:00
Andrea
c9294d3c78 Remove unused deprecated functions
Remove unused deprecated functions
2025-06-30 10:40:10 -05:00
wmayer
23d93e45ff PD: Correctly handle single solid rule for loft with and without base 2025-06-25 00:14:15 +02:00
wmayer
4ac7f57ac4 PD: Use isSingleSolidRuleSatisfied() for pipe feature
This fixes issue 18977

Fixes: 935bdf9a0f ("PartDesign: Refactor single-solid rule enforcement")
2025-06-25 00:13:54 +02:00
wmayer
eb52dd4a9a PD: Fix regression about single-solid check
For several PD features the single-solid check fails. The regression
is caused by PR 13960 and reported as issue 19002. The reason for the
failure is that the first solid of the output shape is retrieved and
then checked for a single solid. This test will always pass, of course.

The single-solid is fixed for these features:
* Pad
* Pocket (never worked there)
* Fillet
* Chamfer
* Groove (never worked there)
* Revolution (never worked there)
* Loft

Fixes: 935bdf9a0f ("PartDesign: Refactor single-solid rule enforcement")
2025-06-25 00:09:33 +02:00
David Tanana
e17a83fa1f PartDesign: Added 1 3/16 16 threaded drill hole diameter (#22000)
* Adding UNf 1 3/16  16 to this list
* Updating type and test params
2025-06-17 08:59:00 -05:00
Kacper Donat
c6130552ca Merge pull request #21427 from tritao/async-occt-progress
Part: Introduce `OCCTProgressIndicator` and port operations to support it.
2025-06-02 18:04:38 +02:00
Alfredo Monclus
551c15b48f feat(PD): ISO tyre valve threads 2025-06-02 10:50:10 -05:00
James Stanley
eadd0bc191 PartDesign: Add OCCT progress support to FeatureTransformed.
Include `<Base/ProgressIndicator.h>` and bail out when
`Base::ProgressIndicator::getInstance().UserBreak()` returns true during
transformation loops and composite operations in
`FeatureTransformed.cpp`.
2025-05-30 18:25:32 +01: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
Alfredo Monclus
3aabb826aa PD: hole safeguard countersink depth calculation against possible math issues 2025-05-24 02:05:06 -06:00
Alfredo Monclus
07e7918baf PD: hole calculate counterbore and countersink if no standards are available 2025-05-23 20:51:35 -06:00
Alfredo Monclus
ff17eb611a PD: hole: calculate depth of countersink and adjust other parameters accordingly when changed 2025-05-23 17:36:26 -06:00
Chris Hennes
f5806841b6 Merge pull request #19907 from benj5378/getAttribute
Base: make getAttribute template
2025-05-12 10:39:55 -05:00
Benjamin Bræstrup Sayoc
492b8312b3 Base: make getAttribute template 2025-05-09 15:54:57 +02:00
theo-vt
e56979e76e PartDesign: Fix no longer possible to make a hole from one selected circle in a sketch (#21030)
* Search for profile shape subelements without simplifying compounds for hole center detection

* Simpler solution
2025-05-08 16:47:26 +00:00
Beep6581
601c0f9b09 PartDesign: Merge pull request #21015 from Beep6581/fix-thread-pitch
Fixes hole thread pitch
2025-05-07 21:53:09 +02:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Ladislav Michl
c293d74566 Base: rename Exception's PascalCase methods to camelCase 2025-05-05 23:50:01 +02:00
theo-vt
774ec2cc93 PartDesign: Center holes on sketch points as well as circles and arcs (#20583)
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-04-21 23:30:57 +02:00