Commit Graph

28102 Commits

Author SHA1 Message Date
wmayer
fa3c0418c3 Material: use get_filename_component() instead of cmake_path() to support older CMake versions 2023-09-29 07:32:58 -05:00
Yorik van Havre
7f8589bad2 Merge pull request #10856 from Roy-043/Draft-get_movable_children-prevent-endless-loop
Draft: get_movable_children: prevent endless loop
2023-09-29 11:27:34 +02:00
Yorik van Havre
c1146d9e1d Merge pull request #10845 from Roy-043/Draft-ImportDXF-CURRENTDXFLIB-is-not-obsolete-and-should-be-kept
Draft: ImportDXF: CURRENTDXFLIB is not obsolete and should be kept
2023-09-29 11:24:06 +02:00
wmayer
f4c6504aa1 Material: QMetaType::type(const char*) is deprecatred and shouldn't be used in new code 2023-09-29 11:05:07 +02:00
wmayer
0eb789a1e2 Material: fix build failure with Qt6 2023-09-29 10:09:39 +02:00
Damien Miller
b24ec0d4fa regress test for G43 in centroid post
Since the centroid post now support --no-tlo, we can test that
too.
2023-09-29 17:46:28 +10:00
LarryWoestman
d534115c19 Path: Major refactoring of the export_common function.
Minor refactors to parse_a_path.
       Removed "message" command handling.
2023-09-28 15:30:55 -07:00
wmayer
11e4072fb7 Material: include some more required header files
as otherwise the parser of the clang code model raises a lot of error messages
2023-09-28 15:33:03 -05:00
Jolbas
5d39d7c3e9 Matrix.decompose() fix
Fixes some errors when matrix has zero scale in one or two directions
2023-09-28 15:25:29 -05:00
Jolbas
31637adaa0 Create rotation from any matrix
To help find a matrix components a decompose method is added to Matrix class
2023-09-28 15:25:29 -05:00
jffmichi
55921c81a9 Path: fix LeadInOutDressup incorrectly treating missing axis words as being 0 2023-09-28 21:10:21 +02:00
Damien Miller
43fcccf75f Add G43 tool height compensation to centroid post
This adds G43 tool height compensation to the centroid CAM post-processor using
a similar approach to the G43 support in the MACH3 post.

Specifically, G43 is emitted at every tool change by default and a new
`--no-tlo` post argument can restore the old behaviour of no height
compensation being emitted. These both match how the MACH3 post does it.
2023-09-28 23:56:50 +10:00
Roy-043
4cf613ec31 Draft: get_movable_children: prevent endless loop
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81547
2023-09-28 15:19:25 +02:00
wandererfan
2f069bb94f [TD]fix missing reference geometry 2023-09-28 09:01:39 -04:00
marioalexis
4630bdbcb1 Material: Include needed header file 2023-09-28 14:55:55 +02:00
wmayer
b01a41237a Mat: fix several compiler warnings:
* -Winconsistent-missing-override
* -Wtautological-undefined-compare
2023-09-27 21:38:56 -05:00
Chris Hennes
1dd2baa172 Merge pull request #10690 from davesrocketshop/material_merge
Material: Material handling enhancements
2023-09-27 16:15:06 -05:00
ppphp
ab8ae5ffdd Merge branch 'master' into remove_redundant_definition 2023-09-28 01:38:38 +08:00
wandererfan
a48490f518 [TD]fix centerline rotation 2023-09-27 12:24:21 -04:00
wandererfan
68f79e06ae [TD]allow centerline deletion with Del 2023-09-27 12:24:21 -04:00
Roy-043
a9e224cdae Draft: ImportDXF: CURRENTDXFLIB is not obsolete and should be kept 2023-09-27 15:41:40 +02:00
wmayer
0fd66ad64c Fem: fixes #10823: Solver CalculiX (new framework) seems to be unnecessary 2023-09-27 13:04:48 +02:00
liukaiwen
329904a055 [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
Roy-043
7a5d8bb3a8 Draft: Update the Plane class (step 1)
After this PR the `Plane` class inherits from the `PlaneBase` class.

Related issue:
#5603.

Previous PR:
#10766

The following functions have been updated:

`__init__`
* `u` argument can be a WP now.
* Input vectors are copied.
* Added the `weak` argument.
* the `doc` attribute was not used and has been removed.

`__repr__`
* Inherited.
* The `position` is now also shown.

`copy`
* Uses `match` from the parent class which uses the local `_get_prop_list` function. Again vectors are copied.

`offsetToPoint`
* I could not find evidence that this function is used anywhere.
* The `direction` argument did not make a lot of sense (only worked in 2D). It is now ignored.
* Removed the overly long docstring.
* The function now uses an external function: `DraftGeomUtils.distance_to_plane`.

`projectPoint`
* The function calls `super().project_point` which in turn calls `DraftGeomUtils.project_point_on_plane`.
* `from sys import float_info` is no longer required.

`projectPointOld`
* Obsolete and removed.

`align*`
* All align* functions now have an `offset` argument.
* All align* functions return `True` or `False`.

`alignToPointAndAxis`
* The function ignored `upvec` if `axis` was parallel to the global X axis. This meant that the "Set WP" button of the Draft_Wire command did not work properly if the WP was aligned with the Right or Left view.
* The function calls `align_to_point_and_axis` which determines the rotation with `FreeCAD.Rotation(Vector(), upvec, axis, "ZYX")`.

`alignToPointAndAxis_SVG`
* The function calls `super().align_to_point_and_axis_svg` which contains the code from the old function.

`alignToCurve`
* Was not implemented.

`alignToEdges`
* Original code required two parallel edges (for example from an axis system), else the `u` and `v` vectors would not be perpendicular.
* The function calls `super().align_to_edges_vertexes` now.

`alignToFace`
* The function now uses an external function: `DraftGeomUtils.placement_from_face`. The rotation algorithm for the `u` and `v` vectors has been moved there.

`alignTo3Points`
* Basically unchanged. `Part` is already imported at the top of the file.

`alignToSelection`
* Basically unchanged. Will be replaced in the `PlaneGui` class.
2023-09-27 11:25:04 +02:00
wmayer
712db967c2 Mesh: C++ core guidelines 2023-09-26 13:10:23 +02:00
Roy-043
2f6b72bf01 Draft: ShapeString: improve ObliqueAngle (#10811)
Calculation of the justification required the use of `optimalBoundingBox` and should happen after applying the oblique angle.
2023-09-26 12:53:53 +02:00
wmayer
a364141c58 Mesh: C++ core guidelines 2023-09-26 11:20:35 +02:00
AgCaliva
a4e90b2609 Merge branch 'master' into User/Document/Feature_level_units_selection_#7746 2023-09-25 22:58:23 -03:00
Roy-043
64c346b7fa Arch: ArchSectionPlane.getSVG add linespacing argument
Forum topic:
https://forum.freecad.org/viewtopic.php?t=81470
2023-09-25 22:09:41 +02:00
sliptonic
f23caf4d5c Merge pull request #10800 from Syres916/Sanity_FollowUp
[Path] Sanity Follow up improvements...
2023-09-25 14:19:50 -05:00
Ajinkya Dahale
8a44cfc970 [Part] Optimize snippet of code in ShapeMerge.py
Some notes:

Earlier, when adding to the list `connected_to`. the numbers are added in order
from `range(len(groups)`, so we are already in order and every `i_group` is unique.
2023-09-25 11:27:55 -05:00
howie-j
12f80320fc [Sketcher] Fix angle constraint expression regression (#10743)
* fix 10742

* moved expression string modifier to helper function

* Tests: Add example tests for SketchObject

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

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

* made expr modifier func static, pass by value and added unit tests

---------

Co-authored-by: Chris Hennes <chennes@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-09-25 10:44:31 -05:00
sliptonic
23965d6cf5 Merge pull request #10789 from haraldhartmann/PathAddEstlcamPP-patch-2
Path: refactor Utils imports in estlcam_post.py
2023-09-25 10:36:18 -05:00
sliptonic
f6ed2c28c0 Merge pull request #10792 from jffmichi/fix_leadinoutdressup
Path: fix LeadInOutDressup throwing an exception due to floating poin…
2023-09-25 10:34:17 -05:00
pre-commit-ci[bot]
6afe304b0c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-09-25 15:05:50 +00:00
David Carter
37c7169ee4 Material: Material handling enhancements
Rework of the material handling system.

This first part concntrates on a rework of the material cards.
Rather than use a fixed list of possible properties, properties can
be defined separately in their own files and mixed to provide a
complete list of possible properties. Properties can be inherited.

The cards then provide values for the properties. These can also
be inherited allowing for small changes in cards as required.

The new property definitions are more extensive than previously.
2 and 3 dimensional arrays of properties can be defined. Values
are obtained by calling an API instead of reading from a dictionary.

For compatibility, a Python dictionary of values can be obtained
similar to how it was done previously, but this is considered a
deprecated API and won't support the newer advanced features.

The editor is completely reworked. It will be able to edit older format
material cards, but can only save them in the new format.

For testing during the development phase, a system preference can
specifiy wether the old or new material editors are to be used. This
option will be removed before release.
2023-09-25 11:04:15 -04:00
David Carter
902af79514 Material: Material handling enhancements
Rework of the material handling system.

This first part concntrates on a rework of the material cards.
Rather than use a fixed list of possible properties, properties can
be defined separately in their own files and mixed to provide a
complete list of possible properties. Properties can be inherited.

The cards then provide values for the properties. These can also
be inherited allowing for small changes in cards as required.

The new property definitions are more extensive than previously.
2 and 3 dimensional arrays of properties can be defined. Values
are obtained by calling an API instead of reading from a dictionary.

For compatibility, a Python dictionary of values can be obtained
similar to how it was done previously, but this is considered a
deprecated API and won't support the newer advanced features.

The editor is completely reworked. It will be able to edit older format
material cards, but can only save them in the new format.

For testing during the development phase, a system preference can
specifiy wether the old or new material editors are to be used. This
option will be removed before release.
2023-09-25 11:04:01 -04:00
wmayer
6b0c054023 Part: Add method Part.Compound.setFaces() 2023-09-25 15:31:30 +02:00
Syres916
6309aac3e5 [Path] Sanity fixed another bug found in testing 2023-09-25 14:18:38 +01:00
Yorik van Havre
270cc72293 Arch: fixed leftover in OfflineRenderingUtils 2023-09-25 15:00:26 +02:00
Yorik van Havre
ff6e0fee24 Removed the use of SoGui in Arch OfflineRenderingUtils module 2023-09-25 15:00:26 +02:00
wmayer
b357b74bea Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
3863cff6c0 Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
cde634629f Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
e66404523c Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
35d1380d84 Test: add unit tests for PropertyPythonObject 2023-09-25 14:48:54 +02:00
Syres916
5cf4626b4d [Path] Sanity fix based on user feedback and further testing...
...of stacked substitutions and static folder paths.
2023-09-25 13:25:05 +01:00
wmayer
b491afb604 Import: fixes #8666: Enable support to read glTF files 2023-09-25 13:02:59 +02:00
wmayer
943ae448d3 Import: move glTF writer to its own source files 2023-09-25 13:02:59 +02:00
FEA-eng
960c9f2d57 FEM naming fix part 2 2023-09-25 12:17:43 +02:00