Commit Graph

26396 Commits

Author SHA1 Message Date
LarryWoestman
dd6a6d1d6c 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
e6e8c64cba 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
40228d9ef2 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
2d8c280528 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
588b964a54 Path: fix LeadInOutDressup incorrectly treating missing axis words as being 0 2023-09-28 21:10:21 +02:00
Damien Miller
9a076ac4c8 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
3847db56d5 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
d7fcbc79a8 [TD]fix missing reference geometry 2023-09-28 09:01:39 -04:00
marioalexis
2494411147 Material: Include needed header file 2023-09-28 14:55:55 +02:00
wmayer
0d7880a902 Mat: fix several compiler warnings:
* -Winconsistent-missing-override
* -Wtautological-undefined-compare
2023-09-27 21:38:56 -05:00
Chris Hennes
dcbb74a0f2 Merge pull request #10690 from davesrocketshop/material_merge
Material: Material handling enhancements
2023-09-27 16:15:06 -05:00
ppphp
82ba7ae5ca Merge branch 'master' into remove_redundant_definition 2023-09-28 01:38:38 +08:00
wandererfan
084b33d3e4 [TD]fix centerline rotation 2023-09-27 12:24:21 -04:00
wandererfan
a51c54e7f0 [TD]allow centerline deletion with Del 2023-09-27 12:24:21 -04:00
Roy-043
1efa0ee09d Draft: ImportDXF: CURRENTDXFLIB is not obsolete and should be kept 2023-09-27 15:41:40 +02:00
wmayer
7aa31adb01 Fem: fixes #10823: Solver CalculiX (new framework) seems to be unnecessary 2023-09-27 13:04:48 +02:00
liukaiwen
4f8fe8fd4a [cmake] some definitions do not matter build now 2023-09-27 18:17:14 +08:00
Roy-043
92c6a36925 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
759e83859b Mesh: C++ core guidelines 2023-09-26 13:10:23 +02:00
Roy-043
56d3d3d5b1 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
bd0a3122b6 Mesh: C++ core guidelines 2023-09-26 11:20:35 +02:00
AgCaliva
1f9bae0de7 Merge branch 'master' into User/Document/Feature_level_units_selection_#7746 2023-09-25 22:58:23 -03:00
Roy-043
0a2f47fefd 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
70894e7cbd Merge pull request #10800 from Syres916/Sanity_FollowUp
[Path] Sanity Follow up improvements...
2023-09-25 14:19:50 -05:00
Ajinkya Dahale
4435a3974f [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
acbf135b78 [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
c380d78877 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
292952d91e 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]
70f3a40fe1 [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
442bca834e 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
6624fa3775 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
563dc0b0cc Part: Add method Part.Compound.setFaces() 2023-09-25 15:31:30 +02:00
Syres916
4c666d1454 [Path] Sanity fixed another bug found in testing 2023-09-25 14:18:38 +01:00
Yorik van Havre
cdbc778513 Arch: fixed leftover in OfflineRenderingUtils 2023-09-25 15:00:26 +02:00
Yorik van Havre
afdbd4c094 Removed the use of SoGui in Arch OfflineRenderingUtils module 2023-09-25 15:00:26 +02:00
wmayer
836c237d3c Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
b8b94c249e Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
59c7653584 Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
91a40b2007 Fem: Apply clang-format 2023-09-25 14:50:43 +02:00
wmayer
c1d1a4fd1f Test: add unit tests for PropertyPythonObject 2023-09-25 14:48:54 +02:00
Syres916
0b6b72059a [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
37e477d3e7 Import: fixes #8666: Enable support to read glTF files 2023-09-25 13:02:59 +02:00
wmayer
0aa9ea99b4 Import: move glTF writer to its own source files 2023-09-25 13:02:59 +02:00
FEA-eng
9260cd9502 FEM naming fix part 2 2023-09-25 12:17:43 +02:00
Yorik van Havre
93cb1b3158 Merge pull request #10778 from Roy-043/Start-use-Gui-FileChooser-Directory-where-applicable
Start: use Gui::FileChooser::Directory where applicable
2023-09-25 10:58:20 +02:00
Yorik van Havre
be84810aa9 Merge pull request #10783 from Roy-043/Draft-ShapeString-add-ObliqueAngle-property
Draft: ShapeString: add ObliqueAngle property
2023-09-25 10:54:53 +02:00
Yorik van Havre
f883a77ca0 Merge pull request #10766 from Roy-043/Draft-Introduction-of-the-PlaneBase-class
Draft: Introduction of the PlaneBase class
2023-09-25 10:09:48 +02:00
Syres916
883de466ae [Path] Fix multiple substitutions 2023-09-25 08:27:20 +01:00
Roy-043
432ba3adde Draft: ShapeString: add ObliqueAngle property (improvement) 2023-09-24 19:04:32 +02:00
Syres916
7e92729c50 [Path] Sanity Follow up improvements...
... and removal of remaining asciidoc generating code
2023-09-24 17:23:23 +01:00