Commit Graph

79 Commits

Author SHA1 Message Date
PaddleStroke
d8640019e5 Assembly: Fix simulation crash with limits 2025-09-10 21:54:20 -05:00
PaddleStroke
3ce9452771 Assembly: Solver message taskbox. UI setup, App not implemented yet. (#23420)
* Assembly: Solver message taskbox. UI setup, App not implemented yet.

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

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

* Update TaskAssemblyMessages.cpp

* Update ViewProviderAssembly.cpp

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-01 21:29:06 +00:00
PaddleStroke
ae5564d50c Assembly: Replace "Activated" property by the core "Suppressed" mecha… (#22409)
* Assembly: Replace "Activated" property by the core "Suppressed" mechanism.

* Fix inaccuracy

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

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

* move the change to migrationScript5 function

* Update JointObject.py

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-28 18:20:01 +02:00
PaddleStroke
a8b655d602 Assembly: Use icon overlay for unconnected joints instead of annoying warning. (#22662)
* Core: FeaturePython : Add getOverlayIcons to python interface

* Assembly: unconnected joints icon overlay Fix #22643

* Update src/Mod/Assembly/Gui/ViewProviderAssembly.cpp

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

* Update AssemblyObject.cpp

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

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

* Update ViewProviderFeaturePython.h

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

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

* Update ViewProviderFeaturePython.h

* Update JointObject.py

* Update ViewProviderFeaturePython.h

* Update ViewProviderFeaturePython.cpp

* Update Application.cpp

* Update ViewProviderFeaturePython.cpp

* Update ViewProviderFeaturePython.h

* Update ViewProviderAssembly.cpp

---------

Co-authored-by: Kacper Donat <kadet1090@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-26 22:35:24 +02:00
PaddleStroke
e141cb7a49 Assembly: Fix infinite loop with subassembly. Fix #19319 (#22685)
* Assembly: Fix infinite loop with subassembly. Fix #19319

* squash

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

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

* Update AssemblyObject.h

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-25 00:11:24 +02:00
PaddleStroke
80935791fd Assembly: Fix unconnected Joints always touched
Fix https://github.com/FreeCAD/FreeCAD/issues/22642
2025-07-21 13:24:28 -05:00
PaddleStroke
facfbeb47e Assembly: Fix crash 20614 (#22538) 2025-07-18 09:53:35 -05:00
bofdahof
998f4e4d45 Console: rename PascalCase named methods to camelCase 2025-05-06 17:50:21 +02:00
Kacper Donat
6d99872b0f Assembly: Use freecad_cast whenever possible 2025-04-26 14:23:25 +02:00
Jacob Oursland
ea7845f0fa Assembly: Remove unused headers. 2025-04-17 15:11:36 +02:00
Jacob Oursland
c432b28ec2 Assembly: convert if-else to switch. 2025-04-17 15:11:36 +02:00
Chris Hennes
e7156aa326 Merge pull request #20496 from hyarion/refactor/cppify-constants 2025-03-29 18:43:40 -05:00
Andrea
0f4f47e313 [Mod] assembly clean
clean code
2025-03-29 14:31:40 -05:00
Benjamin Nauck
984c0d43fd Assembly: Use std::numeric_limits and std::numbers instead of defines 2025-03-29 13:32:38 +01:00
PaddleStroke
3b6cb37dd9 Assembly: ignore joints in error (#20253)
Co-authored-by: drwho495 <drwho495555@gmail.com>
2025-03-22 18:27:24 +01:00
bofdahof
c4eeaa2d11 Assembly: apply std::ranges 2025-03-16 17:15:26 -05:00
PaddleStroke
fa8b273f7d Merge branch 'main' into core_LCS3 2024-12-13 18:48:35 +01:00
Andrea
f5a4ec01f8 [Mod] Clean AssemblyObject.cpp
Removed dead code

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

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

.
2024-12-13 12:34:46 -05:00
PaddleStroke
1ce8f2c859 AssemblyObject: Use std::unordered_set instead of vector. 2024-12-13 18:04:10 +01:00
PaddleStroke
024fee7f97 Assembly: Enable the use of App::Datums 2024-12-13 18:04:10 +01:00
Aik-Siong Koh
3326c33d83 Assembly: Simulation implementation 2024-12-03 20:07:04 +01:00
Benjamin Nauck
e5c2c81685 Move back the assembly util functions to AssemblyUtil (#18020)
* Move back util functions to AssemblyUtils again

* Add getPropertyByName<T>() helper

* Improve constness in AssemblyUtils

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-02 10:48:48 -06:00
PaddleStroke
a049641771 Assembly: Store DocumentObject instead of mbdPart for the dragged parts. Fixing the bug where doDragStep was 50% of time failing to find the correct DocumentObject due to bundling. 2024-11-18 17:43:53 +01:00
PaddleStroke
761e5a43e8 Assembly: AssemblyLinks. 2024-10-16 15:39:23 +02:00
Furgo
df639075b1 Assembly: make "Solve failed" error more verbose (#17117)
* Add FC_ERR macro for the 'Solve failed' Assembly error

* Handle standard exceptions during assembly solve

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

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

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-10-14 10:43:15 -05:00
PaddleStroke
28b1112451 AssemblyObject.cpp : add failsafe checks 2024-10-14 08:58:35 -05:00
PaddleStroke
bdfcb6bfb2 Assembly: Fix lag during dragging of large assemblies. Bundle fix joints together. Show only the movingJoint during dragging. Do not recompute joints during dragging. 2024-09-30 17:38:54 +02:00
Bas Ruigrok
cb98abcc42 Move isLink and isLinkGroup from AssemblyObject to DocumentObject 2024-09-08 11:56:14 +02:00
Bas Ruigrok
e9fc6fb89a Move getGlobalPlacement from AssemblyObject to GeoFeature 2024-09-07 13:27:59 +02:00
Bas Ruigrok
5ed26f56f1 Move splitSubName from AssemblyObject to Base::Tools 2024-09-07 13:27:59 +02:00
wmayer
c11a6f1013 Assembly: Fix compiler warning 2024-09-03 16:26:52 +02:00
PaddleStroke
7c6dde17fb Assembly: Fix case of link groups 2024-09-02 18:20:18 +02:00
PaddleStroke
79b9d45726 Assembly: Enable ungrounded connected parts to move as one item. 2024-09-02 18:20:18 +02:00
PaddleStroke
49fa67266f Assembly: Fix objects in group would not have the dragger appear when selected. 2024-08-12 11:49:12 -04:00
PaddleStroke
39c4e2e600 Assembly: Fix distance joints 2024-08-12 11:47:21 -04:00
PaddleStroke
ece64bea29 Assembly: Make sure that when a components is deleted its joints are as well. 2024-08-12 11:43:54 -04:00
PaddleStroke
a5505a1b1c Assembly: Replace ObjRefPairs std::pair by structure. 2024-07-29 17:48:25 +02:00
PaddleStroke
4f79c675b7 Assembly: Property change from Object/Part to Reference 2024-07-29 17:48:25 +02:00
luzpaz
9a1f487cdb Fix various typos throughout the codebase 2024-07-08 17:19:20 -05:00
PaddleStroke
cf5314919a Assembly: Change Object1/2 from strings to PropertyXLinkSub and Remove Element1/2 and Vertex1/2 2024-07-01 11:22:30 -05:00
PaddleStroke
a0c4a273ba Assembly: Enable moving objects while making joints. 2024-06-27 09:10:38 +02:00
PaddleStroke
2114da3bbb Assembly: Limits: Set one checkbox for each limit. 2024-06-26 17:06:02 +02:00
PaddleStroke
8913e3ffdc Assembly: Do not attempt to drag grounded objects. 2024-06-25 09:14:59 -05:00
Chris Hennes
879b71cbc3 Merge pull request #14608 from Ondsel-Development/asm_del_obj
Assembly: Makes sure deleting assembly deletes the joints and views
2024-06-17 10:49:58 -05:00
PaddleStroke
9fad901fa8 Assembly: Fix bug by replacing const char* by std::string for variables that need to be swapped. 2024-06-11 12:11:16 +02:00
PaddleStroke
b463846bea Assembly: Add validation step during dragging to ignore steps where grounded objects moved. 2024-06-10 11:35:04 -05:00
PaddleStroke
48cfc90049 Assembly: Add preference to enable debug files of dragging 2024-06-10 11:13:12 -05:00
PaddleStroke
d5eacd7945 Assembly: Fix bad limits automatically. Fixes https://github.com/Ondsel-Development/FreeCAD/issues/61 2024-05-30 10:33:59 +02:00
PaddleStroke
cecb965f50 Assembly: Add 'Angle', 'Perpendicular' and 'Parallel' joints. 2024-05-27 11:59:06 -05:00
Jiří Mácha
9d2f72a34f Missing property Object1 or Object2 of fixed joint causing crash (#13912)
* Assembly: removal of object of fixed joint causing crash

FreeCAD is crashing if the 'Object'
property of fixed joint (Assembly/Joints/Fixed/Joint Connector 1/Object1 or
Assembly/Joints/Fixed/Joint Connector 2/Object2) is manually removed.

Steps to reproduce:

 - make simple Assembly e.g. of two cubes with Fixed joint
 - Select Fixed joint in the tree and go-to property 'Data' tab
 - Select 'Object1' or 'Object2' of the 'Joint Connector 1' or 'Joint Connector 2'
   and remove this reference
 - click by your pointing device (mouse) to the arbitrary other property

The FreeCAD will crash here because the call
App::DocumentObject* obj = getObjFromNameProp(joint, propObjName, propPartName);
will return NULL pointer.

This problem is similar to the
4b5d079e6b.

* Assembly: fixed warning message text

The warning message text is not describing two cases which can happen,
but only one - property of specific joint.

* Assembly: avoiding possible crash in rack pinion joint code

Similar problems:

07c6df61f8456a6b02e88b369dcef5643ac1574e
and
4b5d079e6b

were causing real crashes (Linux + Sway Wayland compositor) when
Fixed joint type was used.

This patch tries to avoid the same situation, but now for the
rack pinion joint type.

The returned pointer value (part1 and obj1) can get NULL pointer value
and is used in the code:

    if (obj1->getNameInDocument() != part1->getNameInDocument()) { ....

a few lines later.
2024-05-27 10:46:02 -05:00