Commit Graph

38146 Commits

Author SHA1 Message Date
tritao
8ba573712c Tools: Introduce a Python-based API bindings template generator.
This extends the existing XML-based template generator to allow an
additional kind of Python-based input.

The Python code is read as source code to an AST to a typed model
equivalent to the existing XML model, and processed by the existing
code templates into compatible code.

This provides a few benefits, namely readability is much increased,
but more importantly, it allows associating the APIs with Python's new
typing information, which will allow to provide accurate type hinting
without additional downstream processing in the future.

Right now this is just a proof-of-concept but if the approach is
well received, then a more complete implementation can be done with
further conversion of existing binding files.

Here is an example of how it looks, though I still think the metadata
is too verbose and can be made to look nicer with some further work.

```python
from ..Base.Metadata import metadata
from ..Base.Persistence import PersistencePy
from typing import Any, Optional, List

@metadata(
    Father="PersistencePy",
    Name="DocumentPy",
    Twin="Document",
    TwinPointer="Document",
    Include="Gui/Document.h",
    Namespace="Gui",
    FatherInclude="Base/PersistencePy.h",
    FatherNamespace="Base"
)
class DocumentPy(PersistencePy):
    """
    This is a Document class.

    Author: Werner Mayer (wmayer@users.sourceforge.net)
    Licence: LGPL
    """

    def __init__(self, *args: Any, **kwargs: Any) -> None:
        """
        Constructor for DocumentPy.
        """
        super(DocumentPy, self).__init__(*args, **kwargs)
        pass

    def show(self, objName: str) -> None:
        """
        show(objName) -> None

        Show an object.

        Parameters:
            objName (str): Name of the `Gui.ViewProvider` to show.
        """
        pass
```
2025-02-21 16:32:13 +00:00
tritao
8bb8a36012 Tools: Add documentation for the Python-based bindings system. 2025-02-21 13:18:36 +00:00
tritao
55ec098719 CMake: Rename generate_from_py macro to generate_embed_from_py. 2025-02-21 13:18:36 +00:00
Alfredo Monclus
c4a4ce3ae0 style: simplify fx icon to be more legible at small sizes 2025-02-20 19:59:56 +01:00
xtemp09
e1512dc009 [Spreadsheet] Fix popup close issue (#19676)
* [Spreadsheet] Fix popup close issue
2025-02-19 15:49:11 -06:00
Roy-043
5087c1949f Draft: improve upgrade and downgrade
Fixes #16333.
Follow-up of #19487.

* The functions have been made nesting-aware. New objects are put in the same container (Group, Part) as the original objects. As a consequence for some operations the original objects must be in the same container as well.
* New objects receive the visual properties of the original objects. This is not always perfect. For example when upgrading to multiple wires there is currently no check to see which edge came from which orginal object. The fact that the `format_object` function is called from the Draft `make*` functions is problematic here. If construction mode is active `make_wire` puts new objects in the construction group and we don't always want that. This has been solved with a workaround (see 'cludge' in the code).
* The 'de-parametrize' downgrade option has also been enabled for features of PartDesign Bodies that have the `Profile` property.
* Before deleting objects there is a check to see if they are in use elsewhere (`InList` check). Base objects of arrays are not deleted if they are visible. If a PartDesign Body, or an object inside a Body is selected, the whole Body is deleted.
* The force options did not work for functions that take a single object.
* The `getShapeFromMesh` function in ArchCommands.py could return a solid that was not closed. A check for that has been added.
2025-02-19 18:06:12 +01:00
Yorik van Havre
463c7f72a1 BIM: Do not change important pref options without user's consent - fixes #19163 2025-02-19 12:27:32 -03:00
Benjamin Bræstrup Sayoc
dda05369c4 Base: remove unneeded includes 2025-02-18 11:07:57 -06:00
Furgo
e7763236bc Fix one last instance of NativeIFC 2025-02-18 13:22:23 +01:00
Furgo
6d48d6fe39 Use correct case 2025-02-18 13:22:23 +01:00
Furgo
aad16b2391 Improve legibility of NativeIFC in preferences 2025-02-18 13:22:23 +01:00
JULIEN MASNADA
065c5cff22 [BIM] SH3DImporter: miscellaneous improvments (#19335)
* Fix duplicated groups

* Fixed windows spaning several floors

* Fixing doorOrWindow positioning. Allowing to DEBUG_GEOMETRY

* Fixed default color for floor and ground

* Fixed some windows positioning issue

* Fixed invalid modification of wall array. Changed default window type to allow opening

* fixed some import failures. Added some new windows

* Fixed some more edge cases

* Use doc transaction. Fixed import of room based on self-intersecting polygon.

* Added default furniture color. Fixed wall reference face to fix slab creation

* Replace Debug setting by DebugGeometry

* Fixed corner cases when importing Door & Furniitures

* Fix emissive color and shininess

* Remove external package dependency

* Fixed furniture placement and transformation

* Make sure lights are properly imported

* Fixed duplicated camera and ground when merging
2025-02-18 11:45:40 +01:00
luzpaz
a4f2b2882d FEM: Misc. uniformity fix in CreateLabels.py 2025-02-18 07:59:17 +01:00
Benjamin Nauck
145af5cddc Make modulo require units to be same or dimensionless
Fixes #19517
2025-02-17 11:31:17 -06:00
ᴩʜᴏɴᴇᴅʀᴏɪᴅ
d546b9d219 [ Doxygen ] Improved Param Group Subgroup Methods (#19546) 2025-02-17 11:24:05 -06:00
Florian Foinant-Willig
e1e75082ed TechDraw: Add a format spec. to round a value 2025-02-17 12:18:26 -05:00
Benjamin Bræstrup Sayoc
e2446c4076 Remove magic number and hard type enums in DrawBrokenView.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Benjamin Bræstrup Sayoc
79fdfb2cad Remove magic number and hard type enums in CenterLine.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Benjamin Bræstrup Sayoc
f115ed4bb1 Remove magic numbers and hard type enums in DimensionFormatter.h.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Benjamin Bræstrup Sayoc
63d9806b86 Remove magic number and hard type enums in Geometry.h
- Remove currently present magic numbers
- Hard type enums, so magic numbers can no longer be introduced. We don't want people to introduce magic numbers.
2025-02-17 12:16:49 -05:00
Lawrence Woestman
b9c4bee4e3 CAM: Fixed F parameter handling for only rotary axes
with tests
      and the commit for converting the refactored*
      postprocessors to the new API
2025-02-17 11:10:40 -06:00
Chris Hennes
68e934ba18 Merge pull request #15690 from bgbsww/bgbsww-toponamingAddFeatureRefine
Toponaming add feature refine class
2025-02-17 10:28:32 -06:00
Chris Hennes
248aad0d4c Merge pull request #19591 from benj5378/qStringLiteral2
Use QStringLiteral 2
2025-02-17 10:25:31 -06:00
mac-the-bike
a84bf88e1d FEM: Animation of Results (#18496) 2025-02-17 10:24:09 -06:00
Chris Hennes
1cbd010427 Merge pull request #19524 from marioalexis84/fem-zrefine
Fem: Add Z-refinement support for Netgen
2025-02-17 10:19:26 -06:00
Furgo
2e07d3be95 Start: add optional custom folder view (#19473)
* Start: add optional additional folder view

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

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

* Added logic to migrate ShowCustomFolder parameter

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

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

* Rename Additional to Custom folder

* Change Start page text to sentence case for consistency

* Fix breakage created by pre-commit.ci

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

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

* Rearrange migration logic to make it more explicit

* Revert "Change Start page text to sentence case for consistency"

This reverts commit 8a31a1238c0380ddbe13e6e5838a3be6b13400a5.

* Make parameterGroup local

* Apply suggestions and linter improvements

* Adapted suggestion to simplify migration logic

* Start: Warning -> Message for rename of ShowCustomFolder

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-02-17 10:18:35 -06:00
tritao
cc21acb325 Part: Clean up XML bindings. 2025-02-17 10:18:01 -06:00
Chris Hennes
5d83f6dfdf Merge pull request #19627 from alfrix/featurehole_refactors
refactor(PD): Featurehole optimizations and cleanups
2025-02-17 10:16:37 -06:00
Alfredo Monclus
0bad3cc37b refactor: hole taskpanel tweak layout spacing 2025-02-17 10:16:06 -06:00
Chris Hennes
c50cb07974 Update src/Mod/PartDesign/App/FeatureRefine.h
Co-authored-by: Florian Foinant-Willig <FlachyJoe@users.noreply.github.com>
2025-02-16 13:56:54 -06:00
Benjamin Bræstrup Sayoc
5626a43ccd TechDraw: use QStringLiteral 2 2025-02-16 19:52:30 +01:00
Benjamin Bræstrup Sayoc
ed4a630a43 Gui: use QStringLiteral 2 2025-02-16 19:52:30 +01:00
Benjamin Bræstrup Sayoc
a4c3b4c06f Base: use QStringLiteral 2 2025-02-16 19:52:23 +01:00
Benjamin Bræstrup Sayoc
f68ec76277 Material: use QStringLiteral 2 2025-02-16 19:50:34 +01:00
Chris Hennes
a2cef23dbd PD: Combine onlyHaveRefined and onlyHasToRefine
Co-authored-by: Florian Foinant-Willig <FlachyJoe@users.noreply.github.com>
2025-02-16 11:25:45 -06:00
mosfet80
04d2bcbf45 Update CMakeLists.txt
cmake version is always greater than 3.8.
2025-02-16 10:22:31 -06:00
Joao Matos
27ebc68a11 CMake: Modernize build files using outdated Python variables. 2025-02-16 10:21:26 -06:00
Andrea
de9bd5e1ce change MIN_boost_version
ubuntu version 20.04 is no longer supported.
The minimum boost version used for freecad is now 1.74 (ubuntu 22.04) https://launchpad.net/ubuntu/jammy/+package/libboost-system-dev
2025-02-15 13:33:32 -06:00
Alfredo Monclus
f93396e566 refactor(PD): simplify setreadonly on type switch 2025-02-15 16:12:49 -03:00
Alfredo Monclus
dff79b6b08 refactor(PD): reduce the number of comparisons 2025-02-15 06:29:04 -03:00
marioalexis
c27cc09f27 Fem: Do not update mesh if process ends with errors 2025-02-14 18:13:52 -03:00
marioalexis
f5de900f8d Fem: Add Z-refinement support for Netgen 2025-02-14 18:13:52 -03:00
Ziad
eb886449c2 PartDesign: Allow Draft negative angles 2025-02-14 14:57:14 -06:00
Chris Hennes
7412fce041 Merge pull request #19468 from hyarion/AIRCAP_fixCompoundCuts
Part: OCCWrapper: Fix compound cuts
2025-02-14 14:16:17 -06:00
Benjamin Nauck
7ff8382ae7 Add [[nodiscard]] to Vector3 (#19544)
* Add nodiscard to vector3
2025-02-14 14:14:45 -06:00
tritao
9636068460 Base: Move zipios library to 3rdParty folder. 2025-02-14 13:08:28 -06:00
tritao
05bdb40c12 Gui: Clean up XML bindings. 2025-02-14 13:05:29 -06:00
Ulices
e16c462916 Core: Remove link from tooltip (#19120)
It's impossible to click on the link because the tooltip fades away

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-02-14 10:56:52 -06:00
Chris Hennes
4dc8b26e8d Merge pull request #18791 from CalligaroV/toponaming-ElementMapVersion-code-from-LS3
[Toponaming] Import code releted to _ElementMapVersion from LS3
2025-02-14 10:54:38 -06:00
Chris Hennes
2086d297c6 Part(toponaming): Remove support for OCCT 6.x 2025-02-14 10:54:13 -06:00