Commit Graph

39952 Commits

Author SHA1 Message Date
Chris Hennes
666ede9019 Sketcher: Refactor C++20 code 2025-01-20 20:57:34 -06:00
wmayer
034ad6582a Part: Fix wrong attachment of datum lines
Fixes #19113
2025-01-20 16:40:46 -06:00
Jacob Oursland
4dfab6e07d Fix call to setTemporaryVisibility() post API change. 2025-01-20 16:39:52 -06:00
PaddleStroke
a61db12828 PartDesign NewSketch: Add a parameter to use attachment dialog instead of feature pick 2025-01-20 12:27:04 -05:00
Roy-043
ddd86bd7b3 Draft: DXF export: add handling of text justification
Fixes #18964.
2025-01-20 18:24:30 +01:00
Roy-043
d587e6a91a Draft: make move, rotate and scale commands link-aware (#18795)
* Draft: make move, rotate and scale commands link-aware

Fixes #12836.
Fixes #15681.

These changes are presented as a single ('big') PR because the mentioned commands have several similarities. Working on them seperately would have made less sense.

The commands have been made 'link-aware' meaning they can now handle Links and objects in linked containers.

This required several changes in the following main files. For each command all options are handled by a single function now (the `move`, `rotate` and `scale` functions). This was the only reasonable solution to correctly handle nested placements. As a result there is no longer a need to build very complex 'cmd' strings in the gui_*.py files (which is a good thing IMO).

Main files:

* move.py
* rotate.py
* scale.py
* gui_move.py
* gui_rotate.py
* gui_scale.py
* gui_trackers.py

The following files have also been updated:

* Draft.py: Imports updated.
* DraftGui.py: If `CopyMode` is changed the ghosts have to be updated. The move and rotate commands now also show previews of movable children. But since those are not copied they should be removed from the ghosts if `CopyMode` is changed to `True`.
* utils.py: Some helper functions have been added. An existing helper function (only used internally) has been renamed.
* gui_utils.py: The `select` function has been updated to accept a list of tuples to allow the reselection of nested objects.
* clone.py: A new property `ForceCompound`, necessary for non-uniform scaling, has been added.
* join.py: The `join_wires` function now returns the resultant wire objects.
* task_scale.py: Updated to allow negative scale factors. Support for `SubelementMode` preference added.
* dimension.py: `transform` methods added.
* layer.py: `get_layer` function added.
* svg.py: Updated to use `get_layer`.
* view_text.py: Instead of two added `coin.SoTransform()` nodes the main transform node is used instead. This was done so that ghosts of Draft Texts can be handled properly without requiring dedicated code in gui_trackers.py.

Notes:

* Support for "App::Annotation" is limited. Only their `Position` is handled (by the move and rotate commands).
* Support for "Image::ImagePlane" has been removed from the scale command. The object has its own calibrate feature (see https://wiki.freecad.org/Std_Import).
* Copies and clones are always created in the global space.

* Fix several unit test issues.

* Reset value that was changed while testing

* Rebase and update test_modification.py

* Reintroduce scaling of image planes
2025-01-20 18:23:36 +01:00
wmayer
8d46ba6414 Import: Fix transparency issues when loading STEP files 2025-01-20 12:18:16 -05:00
Vincent Belpois
f3efb5a7e8 Fix missing constrain type in type2str 2025-01-20 12:17:25 -05:00
Joona Okkonen
17c3286e52 Sketcher: Fixed mapping error when attempting to create a sketch inside a group. (#18971)
* Sketcher mapping error fix

Fixed an issue in the Sketcher where attempting to create a sketch while a group is selected caused a mapping error. Now, when a sketch is created with a group selected, the sketch will be placed inside the group.

* Update to use new templated countObjectsOfType

This commit updates the code to use the new templated version of countObjectsOfType, aligning with recent changes in the main branch.

---------

Co-authored-by: Joona <jookkone@edu.lapinamk.fi>
2025-01-20 11:11:09 -06:00
mosfet80
f2c049bc34 Update sub_buildPixi.yml
Update checkout to version 4 -> default runtime to node20
2025-01-20 12:05:53 -05:00
Boots
14319a31f8 GDB/LLDB debugger pretty printers w/QString support and vscode launch config (#18960)
* GDB/LLDB debugger pretty printers w/QString support and vscode launch  config

* Python code now adheres to pep8.  Slight refactor to lldb printer for readability.

* Resolved a few missed trailing whitespace errors from pylint

* Added missing trailing newline I missed in my last commit

* Apply suggestions from code review

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-01-20 10:55:20 -06:00
Marcus Bannerman
5e3eab1b97 Update ubuntu.sh dependencies to include libyaml-cpp-dev
Building on ubuntu 24.04 requires the libyaml-cpp-dev library. This adds the library to the dependencies for ubuntu.
2025-01-20 11:44:19 -05:00
Syres916
32f7d08602 [Gui] Allow power users to set their own max toggle transparency 2025-01-20 11:43:18 -05:00
Kacper Donat
83807826cf Gui: Fix render order of datum planes 2025-01-20 11:38:57 -05:00
Kacper Donat
7a39746fa3 Gui: Fix crash on scrolling workbench tab bar in Qt 5.15.3 2025-01-20 11:34:17 -05:00
pre-commit-ci[bot]
b108a2a830 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/mirrors-clang-format: fed9a1f62c22af0bc846a260ebfeb0844368fd93 → 57e96cfddb3b0e0e11df353f5124cfd8e930a802](fed9a1f62c...57e96cfddb)
2025-01-20 11:33:17 -05:00
xtemp09
2fcbe6ee19 Fix the crash in the interface for managing preference packs (#18726)
* Fix the crash in the interface for managing preference packs

Closes #18725

* Modernize the code by removal of redundant void
2025-01-20 10:32:47 -06:00
Mark Ganson TheMarkster
49b304ae55 [Python console] add Execute in console context menu item (#18716)
* [Python console] add Execute in console context menu item

* Update src/Gui/PythonEditor.cpp

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

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-01-19 15:36:33 -06:00
Chris Hennes
f38127739b Merge pull request #18807 from marioalexis84/fem-netgen_object_constraint
Fem: Use property constraints on mesh netgen object
2025-01-19 16:03:10 -05:00
Chris Hennes
d1c860e735 Merge pull request #18809 from wwmayer/datum_fixes
Datum fixes
2025-01-19 16:01:18 -05:00
marioalexis
bf1ea8e223 Fem: Use new material editor in Reinforced material task panel - fixes #18692 2025-01-19 15:36:43 -05:00
Kacper Donat
738a044f3c Gui: Add Show Plane utility to 2D Objects 2025-01-19 15:27:15 -05:00
PaddleStroke
14f37f732d PartDesign: Fix context menu (#18919) 2025-01-19 13:41:55 -06:00
xtemp09
37c47ef972 Prevent selection of an item in TreeWidget when user presses an eye icon
Closes #18922
2025-01-19 14:35:32 -05:00
dzid26
7ece9241bf Fix conda docker path 2025-01-19 14:35:01 -05:00
Bas Ruigrok
fb85c92dd0 Gui: Fix camera position shift when starting rotation 2025-01-19 14:34:31 -05:00
João Matos
8a384a2b70 CMake: Improve Import dependency check for TechDraw module. (#19036)
* CMake: Fix missing Import dependency check for TechDraw module.

* CMake/TechDraw: Conditionally use Import library.

* CMake: Fix missing dependency check for Module and PartDesign measure in TechDraw.
2025-01-19 13:33:16 -06:00
Yorik van Havre
ead1c43de9 BIM: Make sure we have a default context when exporting to IFC 2025-01-19 14:32:03 -05:00
Chris Hennes
f639705762 Merge pull request #19052 from alfrix/hole_ui_hide
feat(PD): Hole UI Taskpanel: hide elements that are not applicable or useful
2025-01-19 11:31:03 -05:00
Kacper Donat
bf42236763 Contributing: Add information about breaking changes
This adds list item for the contribution requirements to ensure that each breaking change is handled properly and documented.
2025-01-19 10:34:28 -05:00
anselm-baur
e22b226866 Assembly: fix missing space
Co-authored-by: Anselm Baur <anselm-baur@live.de>
2025-01-18 14:45:50 -05:00
Chris Hennes
be2a45e767 Merge pull request #18783 from tritao/cmake-coin-target
CMake: Coin3D build fixes
2025-01-18 12:50:57 -05:00
PaddleStroke
4c25c96d75 PartDesign: replace part design datum commands by the core ones 2025-01-18 11:39:44 +01:00
tritao
08c1275ec4 Gui: Introduce Gui::Document::createView to Python. 2025-01-17 12:35:14 -06:00
tritao
1a5f620b7a Gui: Bind View3DInventorViewer::setOverrideMode to Python. 2025-01-17 12:33:47 -06:00
Joao Matos
318e6f7158 Gui: Avoid unnecessary exception in View3DSettings::OnChange.
This gets caught in the debugger at startup, in this case its easy to
avoid it.
2025-01-17 12:28:50 -06:00
David Carter
a977fade2d Macros: Save last used debugger (#18946)
* Macros: Save last used debugger

Typically users use the same debugger repeatedly. The current dialog
required users to change tabs each time the debugger is launched. This
change saves the last used debugger tab and sets that as the selected
tab when relaunching the debugger.

* Save VSCode address and port
2025-01-17 11:45:47 -05:00
Chris Hennes
49c77303c7 Merge pull request #18665 from AjinkyaDahale/sk-refactor-stage-2
[Sketcher] Round 2 of refactors
2025-01-17 10:41:52 -06:00
Roy-043
a66da9b3d2 Merge pull request #19089 from Roy-043/Draft-Clone-avoid-B-spline-faces-in-more-cases
Draft: Clone: avoid B-spline faces in more cases
2025-01-16 19:57:08 +01:00
Roy-043
caca0ac994 Merge pull request #19067 from Roy-043/Draft-Save-fillet-settings
Draft: Save fillet settings
2025-01-16 19:52:31 +01:00
Roy-043
b31ada686f Draft: Clone: avoid B-spline faces in more cases
B-spline faces can be avoided if the absolute values of the scaling factors are the same. The `transformShape` method can handle this if two additional arguments are provided.
2025-01-16 13:39:11 +01:00
Roy-043
3385ac8a74 Clean up
The recompute and the `try` structure are no longer required.
2025-01-16 11:53:55 +01:00
Roy-043
e7e41bb001 BIM: ArchWall use moveGeometry to move sketch point
The movePoint function is no longer available in V1.1.
2025-01-16 11:53:55 +01:00
Ajinkya Dahale
51cf34a596 [Sketcher] Refactor and fix an issue in transferConstraints 2025-01-16 15:56:22 +05:30
Ajinkya Dahale
73253bd2d4 [Sketcher] Fix issues in knot operations
For some reason this is not caught in the tests.
2025-01-16 15:56:22 +05:30
Ajinkya Dahale
b2e414c407 [Sketcher] Make replaceGeometries protected
This should be a `protected` or `private` operation since it doesn't handle
constraints. However, this is intended to be used by external classes that
modify a `SketchObject` (instead of these modifications like `split`, `trim`,
`join` etc. being methods of `SketchObject`). In that case, it may be best to
use the `friend` keyword.
2025-01-16 15:56:22 +05:30
Ajinkya Dahale
aa1122c774 [Sketcher] Fix "used" B-spline poles being deleted 2025-01-16 15:56:22 +05:30
Ajinkya Dahale
8f7a6628ca [Sketcher][test] Add new test for internal geometry deletion
...when some are "used"
2025-01-16 15:56:21 +05:30
Ajinkya Dahale
821bc2ecdf [Sketcher] Incorporate review of #18665 by kadet
1. Replace `find_if` with `any_of` when the iterator is not used.
2. Use PascalCase for templated class.
2025-01-16 15:56:19 +05:30
Ajinkya Dahale
c6f5739763 [Sketcher] Refactor SketchObject::split
1. Now uses `Part::Geometry::createArc`.
2. Removed type-specific codes. It can be generalized now.
2025-01-16 15:55:14 +05:30