Commit Graph

367 Commits

Author SHA1 Message Date
David Carter
8d5e2bc428 Material: Problems editing Quantity properties
There were several issues here, not just one. The following are fixed:

Incorrect display of Quantity items (NaN)
Editing and updating quantity items
Editing and updating items on the first row.

There are still issues with editing lists, but these were known issues at the time of initial merge. This has been split out into issue #13435

fixes #13020
2024-04-18 23:48:05 -05:00
Chris Hennes
e7069e6797 Update translations. 2024-04-17 16:50:38 -05:00
David Carter
bc36c8dab5 Material: Compatibility with older FCMat files
Provides compatibility loading older files outside the context of
a library.

Older material files were loaded by specifying a path. The new
material system used the path to associated the material with a
library, which may not be appropriate for legacy files. This change
allows the use of materials outside of a library.

Additionally, legacy files often have name/value pairs not part of the
standard list of properties. Since these were unable to be mapped to
a model property they were ignored. Materials now maintain a legacy
map to hold properties not associated with a property model. These
properties are considered transient and will not be saved. It is not
intended for this feature to be used as a generic container for
properties not mapped to an appropriate model.

Fixes #13302
2024-04-15 18:05:18 +02:00
wmayer
dfc74591cc Material: add workbench manipulator
Implement a workbench manipulator to inject Std_Material and Std_Appearance to (context) menu.
2024-04-05 10:08:06 +02:00
wmayer
f254baa65f Material: fixes several issues
* fix warning -Wunused-variable
* fix warning -Wreorder-ctor
* fix warning -Wunused-but-set-variable
* fix uic warning for DlgDisplayProperties.ui
* rename the target MateriaTestLib ALL (note the typo and the already existing MaterialTestLib ALL) to MaterialTest ALL
  drop the hard dependency to the Part module: The document is checked for a property ShapeMaterial of type Materials::PropertyMaterial.
  An alternative could be to cast to GeoFeature and use the methods getMaterialAppearance() and setMaterialAppearance()
2024-04-05 10:08:06 +02:00
FEA-eng
8440586550 MATERIAL: Update cardutils.py 2024-04-04 23:29:12 -05:00
David Carter
ba20441935 Material: Material appearance
Uses new material system for appearance

Each feature object now has a property called ShapeMaterial that
describes its physical properties. If it has a shape, it has a
material.

The ShapeColor attribute is replaced by a ShapeAppearance attribute.
This is a material list that describes all appearance properties, not
just diffuse color. As a list in can be used for all elements of a
shape, such as edges and faces.

A new widget is provided to allow the user to select materials in a
consistent fashion. It can also launch the material editor with its
more advanced capabilities.
2024-04-04 07:39:58 -05:00
wmayer
50a54516e3 Mat: Material editor can't be opened from FEM_MaterialSolid and FEM_MaterialFluid
This fixes #12949.

* The file materials-editor.ui must be installed with a separate INSTALL command because it goes to another directory than the other resource files.
* Material_rc.py isn't copied to the build directory any more. So, then don't install it either.
2024-04-02 17:44:28 +02:00
wmayer
c9ac09a528 Material: add MatGuiImages to MatGui target 2024-04-02 17:44:28 +02:00
ppphp
53ff51b10e fix for yaml version 2024-04-01 16:46:57 -05:00
David Carter
8776c5bf98 Material: Add thermal reference temperature (#13026)
* Material: Add thermal reference temperature

Fixes #13019

Adds the property 'Thermal Expansion Reference Temperature' to
the Thermal properties

* Fix delegates
2024-04-01 11:00:45 -05:00
Adrián Insaurralde Avalos
0910d7e814 Material: fix windows debug builds
Material: fix cmake linking of yaml-cpp<0.7.0
write version in final report
2024-04-01 10:38:23 -05:00
Chris Hennes
32a957bd07 Translation update: move Path to CAM 2024-03-25 17:32:59 -05:00
David Carter
2a7adbee23 Material: Material editor enhancements
Removes localization from the material card dictionary.

Fixes #12935

The previous card implementation transferred strings directly to the
card dictionary without interpretation. The new material system parses
the file data, producing a dictionary for compatibility. The new
dictionaries localized the strings which is incorrect. This PR
removes that localization.
2024-03-14 22:14:58 -05:00
David Carter
44ad16b6d3 Material: Call to import_materials only returning solids
Fixes #12933

The previous card implementation used a parameter to select either
solids or fluids. The current material dictionary ignored the
parameter and only returned solids. This PR restores the use of the
material type filter.
2024-03-14 22:14:31 -05:00
Chris Hennes
8cb1f3dfb3 Material: Linter cleanup 2024-03-10 17:44:47 -05:00
David Carter
93fdf0f7c0 Usee display name in editor 2024-03-04 04:44:45 -05:00
David Carter
15868f2121 Add property models for FEM 2024-03-04 00:50:32 -05:00
Chris Hennes
641e3dbbb4 Update translations (#12557)
* Update translations

* [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-02-24 21:38:37 -06:00
wmayer
64a91968a3 MSVC: fix compiler warnings 2024-02-25 00:12:34 +01:00
Max Wilfinger
84b7304a6e [Material] Adjust default material appearance (#12380) 2024-02-17 20:07:44 -06:00
Yorik van Havre
ae0f162a41 Crowdin translations (#12313)
* updated ts files

* merged crowdin translations

* [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-02-12 11:59:08 -06:00
wmayer
5eabeff94e Mod: fix several compiler warnings:
* fix -Wsometimes-uninitialized
* fix -Wunused-parameter
* fix -Wunused-variable
* fix -Winconsistent-missing-override
* fix -Wsign-compare
* fix -Wreorder-ctor
* fix -Wtautological-overlap-compare
2024-02-12 11:39:32 -06:00
David Carter
2a60613257 Material: Material editor enhancements
Improves compatibility when using the legacy editor.

Corrects a number of issues that prevented saved files from being displayed when using the legacy editor.

Reduces the verbosity of console messages.
2024-02-05 08:46:04 -06:00
marioalexis
02e5c4986d Material: Avoid potential dependency of core system on application module 2024-02-04 16:42:39 -06:00
marioalexis
f0201bcb78 Material: Use "et" format unit to parse path 2024-01-29 22:07:58 +01:00
marioalexis
9c27b3e747 Material: Return new reference to Python boolean 2024-01-29 22:07:58 +01:00
marioalexis
500f3b6086 Material: Initialize types 2024-01-22 08:53:38 -06:00
Chris Hennes
e11a65813c Materials: Correct PreCompiled.h includes in Gui 2024-01-21 09:52:55 -07:00
Chris Hennes
de46393711 Materials: Correct PreCompiled.h includes in App 2024-01-21 09:52:55 -07:00
Ladislav Michl
eab628460d Material: fix Qt6 build failure
QRegExp has been replaced with QRegularExpression and isn't part of the base of Qt6 any more
2024-01-14 11:08:10 +01:00
David Carter
d9017bcca3 Material: Material editor enhancements (#11764)
Continues the work of the material subsystem improvements.

Add support for embedded SVG files. These are not the same
as image files so need to be handled differently.

Add the ability to filter materials in the editor when called from
code. This allows programs to select objects supporting specific
models, complete models, older models, etc.

Updated tests, and refactored code.

New models and materials supporting patterns such as used by the
TechDraw workbench.

fixes #11686 - checks for the presense of a model property before
assinging a value. This can happen when a required model definition is
not available.

---------

Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
2024-01-06 18:11:53 -06:00
David Lanzendörfer
55cddc51c0 Adding version check (#11795)
* Adding version check

* Add compat component for Qt6

* Remove too many qts

* Fix include path

---------

Co-authored-by: David Lanzendörfer <leviathan@libresilicon.com>
2024-01-05 11:08:13 -06:00
Yorik van Havre
1f65348080 Updated ts files 2023-12-20 09:27:37 +01:00
David Carter
3dd6a67804 Material: Material editor enhancements
Continues the work of the material subsystem improvements.

This merge covers the continued development of the material editor. The
primary improvements are the addition of new data types, a new
appearance preview UI, and changes in the array data types.

New data types were added to support more advanced workflows, such as
the Render Workbench.The Image datatype allows the material to embed
the image in the card instead of pointing to an image in an external
file. Multi-buyte strings span multiple lines as the name implies.
It preserves formatting accross those lines. Also several list types
are now supported, with the primary difference being the editors.
List is a list of strings, FileList is a list of file path names, and
ImageList is a list of embedded images.

For the appearance preview, the UI now uses the same Coin library as
is used in the documents, meaning the preview will look exactly the
same as the material will be shown in the documents.

The array data types are now more complete. The default value wasn't
being used as originially envisioned and was tehrefore removed. For
3D arrays, the Python API was implemented.

There were a lot of code clean ups. This involved removing logging
statements used for debugging during development, reduction of lint
warnings, and code refactoring.

The editor can automatically convert from previous format files to the
current format. This has been extended to material files generated by
the Render WB. Old format files are displayed in the editor with a
warning icon. Selecting one will require saving the file in the new
format before it can be used.
2023-12-06 08:48:34 -06:00
Yorik van Havre
fac94ba932 Translations (#11551)
* Updated ts files

* merged crowdin translations

* [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>
2023-11-27 11:29:38 -06:00
Chris Hennes
cfd41683a5 Core: Enable compiling with MSVC /permissive- (#11014)
* Base: Fixes for MSVC permissive-

* App: Fixes for MSVC permissive-

* Gui: Fixes for MSVC permissive-

* Main: Fixes for MSVC permissive-

* Fem: Fixes for MSVC permissive-

* Material: Fixes for MSVC permissive-

* Part: Fixes for MSVC permissive-

* Mesh: Fixes for MSVC permissive-

* Points: Fixes for MSVC permissive-

* Robot: Fixes for MSVC permissive-

* TechDraw: Fixes for MSVC permissive-

* Path: Fixes for MSVC permissive-

* Core; Changes per review comments

* TD: Revision from wandererfan

* [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>
2023-11-27 17:37:29 +01:00
wmayer
04477b7bf3 Material: add QRegularExpression to PCH 2023-11-27 00:34:43 +01:00
wmayer
b26c18ad39 Material: fix Qt6 build failure and minor optimizations 2023-11-22 01:48:07 +01:00
wmayer
624b5a396a MSVC: fix warnings about unused variable 2023-11-21 23:10:03 +01:00
David Carter
332bf7ed08 Material: Continued Material enahncements
Continues the work of the material subsystem improvements.

Several important items are included in this merge. In terms of new
capabilities, this merge adds List and MultiLineString as valid
property types, complete with editing dialogs. This will help with
backwards compatibility for external workbenches, such as Render.

Stability has been a big focus. New unit tests help to verify features
work as expected. Bugs have been fixed and crashes avoided.

Material cards have had a renaming to their tree structure. For
example, 'StandardMeterials' is redundant, so this was renamed to
'Standard'. The cards themselves are more compliant fully passing the
yamllint tests.

More soon.
2023-11-20 12:19:29 -06:00
Chris Hennes
f25af97811 Update translations 2023-11-09 12:23:56 -06:00
Chris Hennes
37a8e348c6 Merge pull request #11231 from DeflateAwning/http-cleanup
Find and replace http://freecad to https://freecad
2023-11-06 11:16:13 -06:00
wmayer
74d017f4de Material: fix Python bindings
* fix reference counting of Python objects
* fix crashes in several methods
2023-11-03 16:41:11 +01:00
wmayer
9f86d63289 Material: fix compiler warning with Qt6
QVariant::Type is deprecated since Qt 6.0 and shouldn't be used in new code
2023-11-03 16:41:11 +01:00
wmayer
3d7375e3ad Material: fix compiler warnings
* unused parameter 'parent' [-Wunused-parameter]
* reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to false [-Wtautological-undefined-compare]
2023-11-03 16:41:11 +01:00
wmayer
84b01b70e0 Material: fix 'explicitly defaulted copy constructor is implicitly deleted [-Wdefaulted-function-deleted]' 2023-11-03 16:41:11 +01:00
wmayer
04163c74a0 Material: single-argument constructors must be marked as explicit 2023-11-03 16:41:11 +01:00
wmayer
bd06dd0ed5 Material: fix diagnostic errors with the clang code model 2023-11-03 16:41:11 +01:00
wmayer
cbf02165d6 Material: remove several unreferenced variables 2023-11-03 16:41:11 +01:00