Commit Graph

41431 Commits

Author SHA1 Message Date
Kacper Donat
4bd2cdeb2a Mesh: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Kacper Donat
ff99df4c4d Assembly: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Kacper Donat
0e2fd36551 Points: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Kacper Donat
ad3420e126 App: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Kacper Donat
929f926846 Surface: Add missing SurfaceExport in Surface classes 2025-04-26 14:23:25 +02:00
Kacper Donat
cc50b2ede4 Part: Add missing PartExports in Part Features 2025-04-26 14:23:25 +02:00
Kacper Donat
6f262b1ee6 Merge pull request #20732 from furgo16/bom-properties
Assembly: enable BOM columns to be autopopulated with given properties
2025-04-25 23:22:49 +02:00
Syres916
073e87bc38 [Gui] Fix bottomRight index by correcting last row count 2025-04-25 17:50:11 +02:00
aprospero
f3fe554af7 importSVG - Path generation Overhaul (#20749)
* add precision Parameter for importSVG to preferences

* rewrite svgpath import

reorganize the existing svg interpretation code snippets by dividing the responsibilities for data provision and actual shape generation.
That bears the opportunity to optimize the resulting construction data regarding consistency and precision.

* create cuts from inner paths

organize paths in a tree structure where completely contained paths are children of their sorrounding paths

In a second step the even depth paths are cut with their respective (uneven depth) children.

* move svg path import logic into its own module

* Restructure how the import result is controlled by preferences.

* reintroduce alternative transform function

Using transformGeometry() on shapes results in degenerations like lines mutating to bsplines of 1st order. For non-orthogonal Transformations this can't be avoided. But for orthogonal transformations (the majority) we can apply those transformations without degeneration.

The necessary function including fallback to transformGeometry() is already in the code but was disabled due to a regression.

See: https://tracker.freecad.org/view.php?id=2062

Associated commits: f045df1e 2509e59b d4f3cb72

I reactivate the code since the degeneration of paths seems a bigger issue to me than misformed svg files producing incorrect measurements. Degenrated paths are often the culprit for later arising 3D-calculation errors.

* avoid path degeneration by keeping scale transformations uniform

* repair style application on shapes

the style should be based on the configured svgstyle mode in the svgimport preferences.

* improve logging of face generation.

* refactor: rename _precision_step to _tolerance

naming according to example set in draft utils.

* fix: indentation

* spelling
2025-04-25 16:44:03 +02:00
Roy-043
ff92a96170 BIM: Hidden objects used for variant Links should not be hosted
If a window is a variant Link there will be a hidden source object in the document. That hidden object shares properties with the visible Link object. The Hosts property may be one of them, yet the hidden object should never be hosted.

Forum topics:
https://forum.freecad.org/viewtopic.php?p=817743#p817743 (sample file)
https://forum.freecad.org/viewtopic.php?t=96115 (code discussion)

To test the code:
1. Open the mentioned sample file.
2. Change the Hosts property of  Window001 to Wall.
3. Recompute.
2025-04-25 15:07:35 +02:00
paul
33272a76c8 [BimWindow] Integrate Interactive Creation Tool with SketchArch Parametric Attachment Feature (#20872)
Improvement to User Interactive Experience:
- Now with the stock BIM Window Interactive Tool and SketchArch-addon, the required SketchArch parametric placement information of an Arch Object (Window currently) are automatically completed, no more manual input is required.

FreeCAD Forum Discussion:
- https://forum.freecad.org/viewtopic.php?p=822493#p822493

YouTube Demo:
- https://youtu.be/BNZFk03_eGE
2025-04-25 15:05:51 +02:00
Roy-043
061ae88878 BIM: Improve grid handling for some commands (#20658)
* BIM: Improve grid handling for some commands

The updated commands did not handle the 2 grid options ("always", "only during commands") correctly. The proposed code follows the example of BimWall.py and ArchStructure.py where this issue has already been addressed.

* Rebase
2025-04-25 14:59:33 +02:00
Ladislav Michl
99f86bd40a Base, Gui: remove lefovers from xml -> pyi conversion 2025-04-25 11:57:24 +02:00
Kacper Donat
ccb42d0a0f App: Fix inheritance information for PropertyEnumeration
For some reason PropertyEnumeration in our type information system was
said to be inherited from App::PropertyInteger, wich is not the case.
This commit fixes that mistake.
2025-04-25 11:12:11 +02:00
Kacper Donat
8a2e736bf6 github: Remove description header
If PR consists of one commit with long description, github does put it
as the first lines of PR so above our header, it can result in inconsistencies.
The header is also needlessly duplicated in every PR preview.
2025-04-24 21:07:08 -05:00
Furgo
8dfa7a9a63 Assembly: BOM, handle enumerations as well 2025-04-25 01:53:11 +02:00
Kacper Donat
e9c0118dd4 CMake: Detect changes in .pyi file with the same name 2025-04-24 16:40:24 -05:00
Kacper Donat
81b675733d CMake: Rebuild .cpp/.h files from .pyi on build 2025-04-24 16:40:24 -05:00
Alex Neufeld
3cf0e8d5ca Gui: Use a perceptually uniform color map for Std_RandomColor
Using a restricted set of colrs with uniform lightless improves
the appearance of assemblies with randomly-colored parts.
2025-04-24 21:03:18 +02:00
sliptonic
2beab1c241 move PR template to ./github 2025-04-24 18:30:44 +02:00
dependabot[bot]
49b5026f0b Bump github/codeql-action from 3.28.15 to 3.28.16
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.28.15 to 3.28.16.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](45775bd823...28deaeda66)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.28.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-24 09:51:51 -05:00
Florian Foinant-Willig
73708391fb Add locked keyword to Document::addProperty 2025-04-24 16:03:34 +02:00
Furgo
160916cba3 Assembly: BOM, use getUserString to simplify code 2025-04-24 14:20:35 +02:00
Furgo
323bcb019e Assembly: BOM, use freecad_cast 2025-04-24 14:20:35 +02:00
Furgo
ce4b0205a8 Assembly: BOM, support superset property type only 2025-04-24 14:20:35 +02:00
Furgo
242c724be2 Assembly: BOM, apply suggestion: do not copy baseName
Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-04-24 14:20:35 +02:00
Furgo
ed518f5c44 Assembly: BOM, internationalize strings 2025-04-24 14:20:35 +02:00
Furgo
3871379ad2 Assembly: BOM properties, update help message 2025-04-24 14:20:35 +02:00
Furgo
c4c1b7a1a3 Assembly: BOM custom columns can now return property values 2025-04-24 14:20:35 +02:00
Roy-043
fec9d5bc5a Merge pull request #20952 from Roy-043/Draft-Change-Chain-Mode-GUI-text-to-sentence-case
Draft: Change 'Chain Mode' GUI text to sentence case
2025-04-24 10:51:59 +02:00
Roy-043
37fc925480 Draft: Change 'Chain Mode' GUI text to sentence case 2025-04-24 10:10:18 +02:00
Chris Hennes
c7333e5a5b CI: Update to LibPack 3.1.1.3 2025-04-24 08:36:05 +02:00
Monty Montgomery
eb58ba5657 Fix to sanity checking of ElementMap::restore()
An operator precedence error in new sanity checking code within
ElementMap::restore() causes <X>.Shape.Map.txt files with more than
2 element maps to be rejected as invalid.  This silently corrupts
projects upon loading, potentially unrecoverably.

The preexisting code comment is still appropriate if ironic.
2025-04-23 17:19:32 -05:00
dependabot[bot]
24bcdd3318 Bump step-security/harden-runner from 2.11.1 to 2.12.0
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.11.1 to 2.12.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](c6295a65d1...0634a2670c)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-23 16:49:34 -05:00
Pieter Hijma
5470188de4 Gui: Fix value field for DlgAddPropertyVarSet (#20824)
* Gui: Fix value field for DlgAddPropertyVarSet

The value field would only appear if a name was provided resulting in a
strange user experience.  This commit fixes this and simplifies the
logic of the dialog.

* Process comments from review

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

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
2025-04-23 22:50:03 +02:00
Furgo
e25c43537a TechDraw: Add BIM view with the page's scale (#20934)
* TechDraw: Add BIM view with the page's scale

* Fix if one-liner syntax
2025-04-23 19:31:57 +02:00
Roy-043
84166128c4 Draft: adjust formatting of params.py (#20946) 2025-04-23 19:16:40 +02:00
Roy-043
a93703974b Draft: adjust formatting of params.py 2025-04-23 17:03:07 +02:00
tetektoza
354cef7463 TechDraw: Use static_cast when casting scene's child to TextField 2025-04-23 16:32:31 +02:00
tetektoza
bbcdb77003 TechDraw: Return text fields directly as childs of QGISVGTemplate
As the title says. I've noticed during reproducing of #18921, that
after in `PagePrinter::renderPage` we call `setTemplateMarkers`
twice, which results in deleting `childItems` allocated memory
(in `setTemplateMarkers`->`setMarkers`->`updateView`->`clearClickHandles`),
and then we are calling `setTemplateMarkers` (also in `PagePrinter::renderPage`) second time,
accessing `textFields` in `setMarkers` method, which still contain hanging pointers
from the previous deallocation. This results in segfaults as we iterate through `textFields`.

So, instead of keeping sychronization between childs of QGISVGTemplate
and textFields vector - this patch removes this variable at all and uses
childs directly to return text fields.
2025-04-23 16:32:31 +02:00
Abdelhadi Wael
b31a6d8b69 Remove filter excluding Spreadsheet objects 2025-04-22 21:37:17 -05:00
Abdelhadi Wael
e1fcd129b8 Update src/Gui/CommandStructure.cpp
Co-authored-by: Florian Foinant-Willig <FlachyJoe@users.noreply.github.com>
2025-04-22 21:37:17 -05:00
Abdelhadi Wael
70529c9a11 Update CommandStructure.cpp 2025-04-22 21:37:17 -05:00
Abdelhadi Wael
37fec30977 Update src/Gui/CommandStructure.cpp
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2025-04-22 21:37:17 -05:00
Abdelhadi-Wael
d6273b078f fixed warning 2025-04-22 21:37:17 -05:00
Abdelhadi Wael
bde06bdb0c Updated PR with fixes 2025-04-22 21:37:17 -05:00
Abdelhadi Wael
d92a52e48b Fix: Only add objects when multiple are selected 2025-04-22 21:37:17 -05:00
Pieter Hijma
2c477fcb25 Remove requirements.txt 2025-04-22 20:28:27 -05:00
Kacper Donat
b24af528d5 Merge pull request #20778 from FlachyJoe/LockedProperty2
Prevent user to remove core properties
2025-04-23 00:23:37 +02:00
Pieter Hijma
039cbbe1a5 [Core] Make enum FrameOption boolean
Co-authored-by: Benjamin Bræstrup Sayoc <benj5378@outlook.com>
2025-04-22 23:56:07 +02:00