Commit Graph

39506 Commits

Author SHA1 Message Date
Chris Hennes
eb4e28eebd Merge pull request #17528 from kadet1090/get-object-T-helpers
Gui: Add getObject<T>() helpers to various classes
2024-12-06 19:51:11 -05:00
Kacper Donat
954b729b56 Gui: Use getObject<T>() helpers in classes
This commit is generated using regex based find and replace:

```
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*getObject\(\s*\)\)/getObject<$1>/
s/[\w:]+_cast\s*<([^>]+)\*>\s*\(\s*([^)]*)\s*->\s*getObject\(\s*\)\)/$2->getObject<$1>()/
```

To regenerate if needed.
2024-12-06 18:29:39 +01:00
Yorik van Havre
d17dd22aff BIM: Fixed lock button with no doc - Fixes #18191 2024-12-06 12:28:09 -05:00
lorenz
faa5711016 cam: remove imghdr import (#18081) 2024-12-06 11:27:36 -06:00
Dan Henderson
5cf757eae9 Path: Add G84/G74 Tapping Operation (#8069) 2024-12-06 11:21:49 -06:00
Kacper Donat
44f3b37200 Gui: Add getObject<T>() helpers to various classes
Obtaining specific kind of document object is very common task. This
commit introduces handy helper which makes that a lot easier.
2024-12-06 18:19:53 +01:00
Furgo
3b39296599 Improve Notification Area settings (#15207)
* Initial UI mockup for notification area settings

* First iteration of adapting the code to the Notification area settings UI reorg

* Remove redundant code to enable/disable widgets

* Reorganize notification area settings UI, improve settings and tooltips text

* Auto-wrap tooltips, add tooltips for each group

* Remove trailing space

* Fix merge error

* Further fixes from merge error

---------

Co-authored-by: WandererFan <WandererFan@gmail.com>
2024-12-06 11:15:52 -06:00
Jiří Mácha
020532dc57 Assembly: migrationScript2 and migrationScript4 improved and refactored
Description of Defects in migrationScript2 and migrationScript4:

Several additional issues have been identified in the Assembly
functions migrationScript4 and migrationScript2, beyond those fixed in
patch 71f0104bb2.

One common problem is that the Joint property Reference1 or Reference2
can be set to an invalid format. For example, user can manually cause
this issue by assigning an incorrect reference (e.g., the Z-axis) to
these properties via the FreeCAD GUI.  When this happens, internal
errors (exceptions and their corresponding Python call stack) are
reported in the Report View.  However, such information is not helpful
for the user to fix their 3D model.

Issues with the Current Implementation (Using migrationScript4 as
Reference):

- Lack of Type Validation for Reference1 and Reference2:

  The script does not check whether joint.Reference1[1] or
  joint.Reference2[1] is a sequence. If this condition is not met,
  statements like:

    sub1 = joint.Reference1[1][0]

  will throw an exception, printing the Python call stack.

- Lack of Length Validation for Sequences:

  The script does not ensure that the sequence length is sufficient
  for indexing. For example, joint.Reference1 and joint.Reference2
  must each have at least two elements to allow:

    joint.Reference1[1][1]
    joint.Reference2[1][1]

  Without validation, such calls can result in exceptions, printing the
  Python call stack.

- No Feedback on Problematic Joint:

  The user is not informed about which Assembly joint in the object
  hierarchy has an invalid Reference1 or Reference2. Depending on the
  size of the 3D model, identifying the defect can be time-consuming
  and frustrating without proper feedback.

This patch is focused on:

- Reporting Problematic Joint Path:

  A new function has been added to retrieve the full path to the
  Assembly joint. The return value (a string) is used to report the
  issue.

- Improved Exception Handling:

  Instead of adding more conditional checks (see above), exception
  handling is implemented. AttributeError, IndexError, and TypeError
  exceptions are caught. The exception message (excluding the call
  stack) is displayed at the end of a user-friendly warning.

- User-Friendly Warnings in the Report View:

  A single-line warning is now shown in the Report View, containing
  the following details:

    - Source of Warning:              'Assembly joint'
    - Location in the 3D Model: e.g., 'Assembly_XY.object_XY.joint_XY'
    - Problematic Attribute: e.g.,    'ReferenceXY'
    - Exception Message: e.g.,        'list index out of range'

- Refactoring and Optimization:

  The functions were refactored and optimized at the end of the
  conversion process.

Advantages:

- Cleaner Report View:
  Internal errors (e.g., Python call stacks) are no longer logged in
  the Report View, as they are not useful for end users. Only the
  exception message is displayed.

- Improved User Feedback:
  Users can now identify the problematic Assembly joint in the object
  hierarchy, saving significant time and effort.

- Robust and Concise Code:
  The solution simplifies the code while increasing its robustness.
2024-12-06 12:13:41 -05:00
marioalexis
4d21c7791d Fem: Fix references assignment in centrif example 2024-12-06 12:12:55 -05:00
Chris Hennes
ea7e17ba00 Merge pull request #18126 from Ondsel-Development/core_LCS2
Core datums : Card2 : Core implementation
2024-12-06 12:12:04 -05:00
Chris Hennes
8467a6c32b Merge pull request #17799 from Roy-043/Gui-FreeCAD-Light-PreferencePack-should-not-change-PickRadius
Gui: Remove rogue preferences from PreferencePacks (Light theme should not change PickRadius)
2024-12-06 12:10:17 -05:00
Roy-043
432befd79a Merge pull request #17379 from yorikvanhavre/draft-fix-annotation
Draft: better check for Gui object
2024-12-06 18:05:41 +01:00
Chris Hennes
3134cd5d8c Merge pull request #17315 from mwganson/ssclearall
[Spreadsheet] avoid removing user dynamic properties when clearing ce…
2024-12-06 11:57:45 -05:00
Florian Foinant-Willig
326a439d5b [Core] Fix for frozen status
A frozen object prevents the document to be saved
The frozen status propagates into object inheritance
A frozen sketch is no more editable
Transform and Placement can't be changed for a frozen object
The freeze icon is reduced
2024-12-06 11:56:48 -05:00
Andrea
5190acbcac MOD: ImportOcaf2::getcolor
getcolor()
      fucntion optimizzazion.
      removed duplicated check.

Clean class ImportOCAF2
[pre-commit.ci] auto fixes from pre-commit.com hooks

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

.

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

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

.

Update ImportOCAF2.cpp

.
2024-12-06 11:55:51 -05:00
Andrea
91387dca44 [Mod] clean JoinFeatures.py
Removed dead code
.
2024-12-06 11:55:09 -05:00
Jiří Pinkava
e06ce1189c [PartDesign]: Sort sketches in Attach sketch tool alphabetically
The order of sketches in sketch attaching tool is now determined
by the order in which they were added to document.
Sorting them alphabetically makes IMHO much easier to find a sketch
by user, compared to current state, especially in large and complex
projects with lot of sketches. Of cuser thix expects the user
use sensible names for the sketches.
2024-12-06 11:52:59 -05:00
Nicola Cerone
a90bbf27cc Gui: Added SendToPythonConsole item in PartDesign tree view right-click menu. 2024-12-06 11:46:46 -05:00
marioalexis
b7ccf634af Fem: Add box and elliptical beam section types - fixes #12614 2024-12-06 11:44:05 -05:00
wmayer
e34fd72956 App: Extend/change color API:
* Also set/get alpha value in setValue/asValue
* Add new static method fromValue
2024-12-06 11:37:45 -05:00
PaddleStroke
598e32cdb3 PartDesign: revert e49cfde and 7331dc3 to fix https://github.com/FreeCAD/FreeCAD/issues/17949 2024-12-06 11:36:51 -05:00
Roy-043
8e57726701 Draft: allow point for Trimex extrusion to be co-planar with the face
Fixes #14826.

If the point for the extrusion height is co-planar with the face, the normal of the face is used for the direction of the extrusion. The user can then enter a positive or negative value in the task panel. It is probably not the ideal solution, but better than what we have now I think.
2024-12-06 13:10:18 +01:00
FEA-eng
289a9cac4e FEM: Update checksanalysis.py 2024-12-05 21:21:17 +01:00
Roy-043
dd1a9835ea Merge pull request #18314 from Roy-043/Draft-make-Trimex-extrude-mode-link-aware
Draft: make Trimex extrude mode link-aware
2024-12-05 20:03:19 +01:00
Roy-043
393a3fd050 Draft: make Trimex extrude mode link-aware
Fixes #14670.
2024-12-05 15:53:38 +01:00
PaddleStroke
fd0121236b Sketcher: Fix first external geo deletion failure. 2024-12-05 15:23:25 +01:00
Yorik van Havre
f1988bfd0b BIM: Fixed IFC type icon 2024-12-05 12:31:56 +01:00
Yorik van Havre
d0cf727b7a BIM: NativeIFC: Support for types 2024-12-05 12:31:56 +01:00
Roy-043
9bd4d2466e Merge pull request #18299 from Roy-043/Draft-change-position-of-Scale-multiplier-field-in-UI
Draft: change position of 'Scale multiplier' field in UI
2024-12-05 12:17:38 +01:00
Roy-043
3f94f72eb5 Merge pull request #18307 from Roy-043/Draft-Fix-make_point-color-regression
Draft: Fix make_point color regression
2024-12-05 11:53:24 +01:00
Roy-043
bbbbc296de Merge pull request #18212 from Roy-043/Draft-Fix-finish-behavior-of-Draft_Edit-on-doc-close
Draft: Fix finish behavior of commands on doc close
2024-12-05 11:52:07 +01:00
Roy-043
05308ffa0c Draft: Fix make_point color regression
PR #12226 accidentally removed the handling of the color argument of the make_point function.
2024-12-05 08:36:34 +01:00
luzpaz
2d40efd555 Fix various typos
Found with codespell
2024-12-04 23:18:00 -05:00
Roy-043
9fd0d3b373 Draft: change position of 'Scale multiplier' field in UI
Fixes #16501.
2024-12-04 19:44:35 +01:00
Vincent Belpois
e3508d9228 Fix incorrect displayed default compression level in preferences 2024-12-04 09:50:50 -05:00
wmayer
d2250d1f56 Fix compiler warnings 2024-12-04 09:50:09 -05:00
wmayer
8501d431fd Start: Fix opening file for writing 2024-12-04 09:49:53 -05:00
Roy-043
e7b9921535 Draft: Legacy DXF importer: fix layer block behavior (#18129)
Fixes #16550.
Fixes #16552.

* Layer blocks receive a name with the "LayerBlock_" prefix.
* They are put in a layer if the "Use layer" import option is checked.
* If Draft or Sketch objects are created a Part_Compound instead of a Draft_Block is created. This was done because a Draft_Block does not claim its children. I am not sure about this change. Maybe the behavior of the Draft_Block should be changed instead.

@yorikvanhavre: do you know why a Draft_Block does not claim its children?
2024-12-04 14:45:55 +01:00
Abhiram
151bd7cd6c Fix: Ensure IFC context menu actions are displayed correctly 2024-12-04 09:49:26 +01:00
Yorik van Havre
1751c3db9a BIM: Added NativeIFC support to Add/remove tools 2024-12-04 09:46:26 +01:00
Yorik van Havre
5f6ba27a9d BIM: Fixed lock-unlock mode when opening IFC files - Fixes #18192 2024-12-04 09:25:06 +01:00
Chris Hennes
6d58b6e7b1 Merge pull request #15811 from AjinkyaDahale/sk-refactor-stage-1
[Sketcher] Round 1 of refactors
2024-12-03 22:44:10 -05:00
Ajinkya Dahale
311a750aa1 [Part] Avoid nullptr when using createArc
We could make `GeomCurve::createArc(...) = 0`, but then it needs to be
implemented in many subclasses which cannot be incomplete. It is implemented for
some of them, but others may need additional work (e.g. offsets), and would need
some exception throwing similar to what is now used.
2024-12-04 00:57:41 +05:30
Ajinkya Dahale
4e476b9c78 [Sketcher][test] Add and use helper function to get points of interest 2024-12-04 00:57:41 +05:30
Ajinkya Dahale
1a851a38b1 [Sketcher] Use variable for frequently used static cast in trim 2024-12-04 00:57:41 +05:30
Ajinkya Dahale
f16556647b [Sketcher] Remove some commented code from SketchObject::trim()
...and replace with a TODO
2024-12-04 00:57:41 +05:30
Ajinkya Dahale
94efeade32 [Sketcher] Remove some unneeded comments 2024-12-04 00:57:41 +05:30
Ajinkya Dahale
c0f800615e [Sketcher] Use switch-case in getPointForGeometry()
Minor readability improvement.
2024-12-04 00:57:41 +05:30
Ajinkya Dahale
fbc6445198 [Sketcher] Refactor SketchObject::trim()
1. Use `Part::GeomCurve::createArc()`
2. Refactor constraint logic in `trim`
2024-12-04 00:57:40 +05:30
Ajinkya Dahale
427a6853b6 [Part] Add methods to create an arc of the curve 2024-12-04 00:57:40 +05:30