Commit Graph

40434 Commits

Author SHA1 Message Date
Roy-043
cca8a27aa4 Draft: Fix error in #19738 (#19896)
My bad. Goes to show that even 'simple' PRs must be tested.
2025-02-27 14:06:01 +01:00
Gaël Écorchard
ea08ac2888 Fix error on missing attribute IfcProject.Declares (#19398)
* [BIM] Use relative imports

Also fix other issues with imports.

Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>

* [BIM] Avoid two bare except

Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>

* [BIM] Replace not ... in with ... not in

Also fix whitespace between functions.

Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>

* [BIM] Fix error with missing IFC2X3.IfcProject.Declares

Fix `entity instance of type 'IFC2X3.IfcProject' has no attribute 'Declares'`.

Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>

---------

Signed-off-by: Gaël Écorchard <gael@km-robotics.cz>
Co-authored-by: Gaël Écorchard <gael@km-robotics.cz>
2025-02-27 13:58:13 +01:00
Roy-043
000de1c8f3 BIM: fix ArchAxis index errors
Fixes #19577

Apparently the ViewObject can be updated before the Shape of the objects has been changed. To catch this the number of edges is checked in the `onChanged` method of the ViewObject.

There was an additional index error if the Limit property was not zero.
2025-02-27 11:15:26 +01:00
Roy-043
202f4cf3af Draft: Fix error in #19738
My bad. Goes to show that even 'simple' PRs must be tested.
2025-02-27 10:41:54 +01:00
Chris Hennes
493e940da3 Merge pull request #19886 from chennes/tdAddMissingPrecomp
TD: Adding missing PCH include
2025-02-27 03:58:52 +00:00
xtemp09
0f68c0403a [Spreadsheet] Remove prepended apostrophe if cell content is copied into clipboard (#19781)
* [Spreadsheet] Remove prepended apostrophe if cell content is copied into
clipboard

Closes #10058.
2025-02-26 21:27:55 -06:00
Chris Hennes
f5060aa2a5 Spacemouse: Add #include <chrono> 2025-02-26 21:21:58 -06:00
Chris Hennes
4b2ab71c13 TD: Adding missing PCH include 2025-02-26 17:41:27 -06:00
Chris Hennes
f2b43399ff Merge pull request #19875 from marioalexis84/cmake-find_pyside
CMake: Fix PySide search
2025-02-26 21:19:31 +00:00
marioalexis
50a4605232 CMake: Add FREECAD_USE_PYSIDE and FREECAD_USE_SHIBOKEN to final report 2025-02-26 14:25:40 -03:00
marioalexis
b0a3fe749d CMake: Fix PySide6 search 2025-02-26 14:25:40 -03:00
marioalexis
612d7b541c CMake: Fix PySide major version comparison 2025-02-26 14:25:40 -03:00
Furgo
c62913d2ee Do not decrease reference counting for string 2025-02-26 13:36:45 +00:00
Chris Hennes
6a63c6efbf Merge pull request #19860 from chennes/cmakeOpenGLLegacy
CMake: Force OpenGL to use legacy
2025-02-26 01:29:19 +00:00
Chris Hennes
19b0e0e279 CMake: Force OpenGL to use legacy 2025-02-25 13:26:02 -06:00
Chris Hennes
9356419f6c Merge pull request #19671 from kadet1090/placement-indicator
Gui: Add Show Placement helper
2025-02-25 17:40:58 +00:00
PaddleStroke
a7489fa69a FEM Update PreCompiled.h to fix build 2025-02-25 16:58:25 +00:00
Benjamin Bræstrup Sayoc
ee1c73cd04 Build: suppress warnings from 3rd party libraries
Warnings from 3rd parties are not relevant and are only polluting the warning output. Marking these libraries as SYSTEM suppresses warning.

https://gcc.gnu.org/onlinedocs/cpp/Invocation.html#index-I
https://gcc.gnu.org/onlinedocs/cpp/System-Headers.html
2025-02-25 14:39:05 +00:00
Chris Hennes
30af56d860 Sketcher Tests: add [[maybe_unused]] 2025-02-25 14:35:12 +00:00
Benjamin Bræstrup Sayoc
aae45a2b8a TechDraw: extract QGIDatumLabel 2025-02-25 14:25:31 +00:00
tritao
7b21ed43da Gui: Fix regression in SelectionObserverPython::removeObserver. 2025-02-25 14:21:48 +00:00
Max Wilfinger
28aa531a02 Remove hack around geometry visibility in active sketch.
Revert #14386 and #16378
2025-02-24 22:09:37 +00:00
Furgo
fb53f2eebd Add-On Manager: collapse up-level vendor_path reference for better legibility (#19828) 2025-02-24 12:10:26 -06:00
Adrian Insaurralde
f187b9cabe pixi: use cos7 packages on linux-64 2025-02-24 14:33:48 -03:00
mosfet80
1356338fba [Mod] clean Idf.py 2025-02-24 17:22:39 +00:00
Chris Hennes
9db06a5c87 Merge pull request #19719 from Rexbas/navicube-accumulative-animation
Gui: Accumulate orientation for NaviCube flat button animations
2025-02-24 17:15:45 +00:00
Roy-043
c0f0fa1d94 Draft: fix alignment of sketches in SVG and legacy DXF export
Fixes #5990
Supersedes #13652

This solution only works for sketches. The export of other planar objects remains the same.

This is similar to the way the C++ DXF exporter handles things. What is different here is that if multiple sketches are exported they are assumed to have the same normal, and their position relative to each other is preserved.
2025-02-24 17:13:51 +00:00
Roy-043
af20bf003f Draft: change 'Filled' to 'Make face' in UI
Fixes #19715.

The related parameter has been renamed as well and other references to 'fill mode' have been updated.
2025-02-24 17:10:13 +00:00
Roy-043
826ec0d104 Assembly: fix doCommand code in CommandExportASMT.py
See:
https://forum.freecad.org/viewtopic.php?t=94952
2025-02-24 17:06:28 +00:00
André Althaus
7409e99960 Always update the element map version if it's not valid or unknown
_Ver can contain "?" after loading and in some circumstances this is not
cleared (often by setValue()) before saving (MultiPattern children or empty Part::Feature).
When saved the same "?" is then written again to the file causing the
recomputing dialog to pop up again and again.

This not only checks for an empty _Ver but also explicitly for "?" and
then regenerating the version if necessary.
2025-02-24 17:00:18 +00:00
Andrew Shkolik
14521c6c31 Surface - Fill boundary curves not honor SplitCurve edge if it's part of BSpline 2025-02-24 16:59:31 +00:00
Benjamin Bræstrup Sayoc
9941b59e98 TechDraw: hard type enums, part 3 (#19418)
* Remove magic number and hard type enums in LineNameEnum.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.

* Remove magic number and hard type enums in QGIFace.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.

* Remove magic number and hard type enums in Enums.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.

* Remove magic number and hard type enums in QGVPage.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.

* Remove magic number and hard type enums in TaskSurfaceFinishSymbols.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.

* Remove magic number and hard type enums in QGTracker.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-24 11:58:05 -05:00
theepicviolin
cb24420fbb Add SolidWorks navigation style (#19568) 2025-02-24 10:57:00 -06:00
mosfet80
5ff3423e0e Update build-with-conda.sh
Fix freecad version
2025-02-24 16:54:43 +00:00
mosfet80
242ec4aee2 3rd party: Updated json lib (#19617)
Serialize empty tuple into '[]'
Optimize binary get_number implementation by reading multiple bytes at once
fix: integer parsed as float when EINTR set in errno
2025-02-24 10:53:47 -06:00
ᴩʜᴏɴᴇᴅʀᴏɪᴅ
ee00034ce9 [ Doxygen ] Improved Parameter Group - Copy & Insert (#19563) 2025-02-24 10:52:34 -06:00
Chris Hennes
b25ab1cac3 Merge pull request #19084 from tritao/gui-selection-viewproviderfeaturepy
Gui: Provide `ViewProviderFeaturePython` selection callbacks
2025-02-24 16:46:36 +00:00
Chris Hennes
1b32e287b2 Merge pull request #19426 from marioalexis84/fem-ccx_vtk
Fem: Add frd format converter to VTK
2025-02-24 16:43:07 +00:00
Chris Hennes
dce7627c33 Merge pull request #19516 from tritao/tools-python-bindings-gen
Tools: Introduce a new Python-based C++ bindings generator
2025-02-24 16:39:24 +00:00
Joao Matos
15076cb504 Core: Move PyCXX library to src/3rdParty. 2025-02-24 16:36:06 +00:00
sliptonic
d2a339f32c Merge pull request #19725 from chennes/cmakeUpdates2025
CMake: Clean up policies
2025-02-24 17:33:10 +01:00
Kacper Donat
569ddc345b Gui: Add Show Placement utility 2025-02-24 17:30:27 +01:00
Kacper Donat
076ab800ff Gui: SoFrameLabel text color from base color support
This adds support for obtaining text color from the state of the graph
(base color) to SoFrameLabel nodes.
2025-02-24 17:30:27 +01:00
Kacper Donat
0a0c5f828e Gui: Add SoFCPlacementIndicatorKit node
This adds SoFCPlacementIndicatorKit - a node that can be used to
show position of object to the user. It can be configured in various
ways so it should be a good base for future unification of features like
this across the application.
2025-02-24 17:30:27 +01:00
Kacper Donat
8fc78d8ff6 Base: Add Vector3*::Unit* axis constants
This is simple helper that can be used to replace hardcoded values of
base axis with properly labeled ones.
2025-02-24 17:30:27 +01:00
Kacper Donat
caf6156181 Gui: Fix empty sketch plane rendering 2025-02-24 17:30:27 +01:00
Kevin Martin
edb8e4c937 Address performance of existing unique-name generation (Part 2) (#18676)
As described in Issue 16849, the existing Tools::getUniqueName method
requires calling code to form a vector of existing names to be avoided.

This leads to poor performance both in the O(n) cost of building such a
vector and also getUniqueName's O(n) algorithm for actually generating
the unique name (where 'n' is the number of pre-existing names).

This has  particularly noticeable cost in documents with large numbers
of DocumentObjects because generating both Names and Labels for each new
object incurs this cost. During an operation such as importing this
results in an O(n^2) time spent generating names.

The other major cost is in the saving of the temporary backup file,
which uses name generation for the "files" embedded in the Zip file.
Documents can easily need several such "files" for each object in the
document.

This update includes the following changes to use the newly-added
UniqueNameManager as a replacement for the old Tools::getUniqueName
method and deletes the latter to remove any temptation to use it as
its usage model breeds inefficiency:

Eliminate Tools::getUniqueName, its local functions, and its unit tests.

Make DocumentObject naming use the new UniqueNameManager class.

Make DocumentObject Label naming use the new UniqueNameManager class.
This needs to monitor DocumentObject Labels for changes since this
property is not read-only. The special handling for the Label
property, which includes optionally forcing uniqueness and updating
links in referencing objects, has been mostly moved from
PropertyString to DocumentObject.

Add Document::containsObject(DocumentObject*) for a definitive
test of an object being in a Document. This is needed because
DocumentObjects can be in a sort of limbo (e.g. when they are in the
Undo/Redo lists) where they have a parent linkage to the Document but
should not participate in Label collision checks.

Rename Document.getStandardObjectName to getStandardObjectLabel
to better represent what it does.

Use new UniqueNameManager for Writer internal filenames within the zip
file.

Eliminate unneeded Reader::FileNames collection. The file names
already exist in the FileList collection elements. The only existing
use for the FileNames collection was to determine if there were any
files at all, and with FileList and FileNames being parallel
vectors, they both had the same length so FileList could be used
for this test..

Use UniqueNameManager for document names and labels. This uses ad hoc
UniqueNameManager objects created on the spot on the assumption that
document creation is relatively rare and there are few documents, so
although the cost is O(n), n itself is small.

Use an ad hoc UniqueNameManager to name new DymanicProperty entries.
This is only done if a property of the proposed name already exists,
since such a check is more-or-less O(log(n)), almost never finds a
collision, and avoids the O(n) building of the UniqueNameManager.
If there is a collision an ad-hoc UniqueNameManager is built
and discarded after use.
The property management classes have a bit of a mess of methods
including several to populate various collection types with all
existing properties. Rather than introducing yet another such
collection-specific method to fill a UniqueNameManager, a
visitProperties method was added which calls a passed function for
each property. The existing code (e.g. getPropertyMap) would be
simpler if they all used this but the cost of calling a lambda
for each property must be considered. It would clarify the semantics
of these methods, which have a bit of variance in which properties
populate the passed collection, e.g. when there are duplicate names..
Ideally the PropertyContainer class would keep a central directory of
all properties ("static", Dynamic, and exposed by ExtensionContainer and
other derivations) and a permanent UniqueNameManager. However the
Property management is a bit of a mess making such a change a project
unto itself.
2025-02-24 10:23:53 -06:00
Chris Hennes
bd3133a5f2 Merge pull request #19397 from kadet1090/three-point-lighting
Add three-point lighting
2025-02-24 16:22:34 +00:00
mosfet80
24fa7c0166 Clean StartupProcess.cpp (#19642)
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2025-02-24 10:21:26 -06:00
Andrew
5c7a65bdb9 fixes #19582 Sketcher - cannot project BSpline from another sketch (#19700)
Also fixes some other types of external geo

---------

Co-authored-by: Andrew Shkolik <andrew.shkolik@selerix.com>
Co-authored-by: realthunder <realthunder.dev@gmail.com>
2025-02-24 10:17:24 -06:00