Commit Graph

23918 Commits

Author SHA1 Message Date
Abdullah Tahiri
186f5a4c19 GCS/Sketcher: Add equal length line constraint using the new single constraint 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
5609269ca8 GCS: New Constraint for equal size lines, avoiding to use an extra parameter
============================================================================

This specific constraint removes the free parameter of the previous implementation. This solves:
https://tracker.freecadweb.org/view.php?id=4501

fixes #4501

However, this implementation of equal size produces zero gradients when coordinates of lines are aligned,
e.g. vertical or horizontal. These zero gradients, which are mathematically right ruin the diagnosis, which
regards corresponding elements as fully constraint (because they are locked from a solver point of view), when
they are simply locked, but are movable and constrainable. For this, when the rightful gradient is small enough
(<1e-10) it is substituted by a surrogate gradient of 1e-10, which solves the problem with the diagnose, which
treats as zero only values under 1e-13 (pivot threshold used in QR decomposition).

This special behaviour fixes the wrong detection here:
https://forum.freecadweb.org/viewtopic.php?f=8&t=53466&start=40#p464168

It also fixes this one:
https://forum.freecadweb.org/viewtopic.php?p=468585#p468587
2021-01-23 07:53:28 +01:00
Abdullah Tahiri
ea49ed9215 Sketcher: Update solver partially redundant constraint information in the solver messages 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
67a9393300 Sketcher: command to select partially redundant constraints 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
b01313c0d8 Sketcher: SketchObject partially redundant status 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
a3c1010800 Sketcher: Sketch retrieve partially redundant constraints 2021-01-23 07:53:28 +01:00
Abdullah Tahiri
65fb44df6c GCS: report partially redundant constraints 2021-01-23 07:53:28 +01:00
Roy-043
a78ef319c6 Fixed typo in Arch_Schedule
Typo
2021-01-22 20:17:47 +01:00
three_d
de017757c8 Update ArchStairs.py 2021-01-22 19:09:18 +01:00
three_d
3de8208e84 Merge branch 'master' into archstairs_connections_flight_landing 2021-01-22 19:06:55 +01:00
marioalexis
0f33a09c10 Draft: Prevent Draft_Wire from setting a single-edge wire as closed 2021-01-22 01:16:40 -03:00
Tyler Colbert
c27f4e8eca Merge branch 'master' into fanuc-1st-pass 2021-01-21 18:24:19 -07:00
sliptonic
f30cbf6bd9 Merge pull request #4284 from sliptonic/bug/fixturetemplate
[Path] fix persistence of fixtures, split, and orderby to templates
2021-01-21 17:12:56 -06:00
three_d
f1d95d372d Arch: connections between stair flight and landing
Added some features to allow the user to change the types of connections between the flight of stairs and landing.
This issue is discussed in the forum thread: https://forum.freecadweb.org/viewtopic.php?f=22&t=53018
2021-01-21 18:41:23 +01:00
wmayer
3ed1248164 Gui: [skip ci] drop the hard limit of 50 allowed workbenches 2021-01-21 16:42:04 +01:00
Yorik van Havre
7a08b7aad2 Merge pull request #4285 from bitacovir/OpensCAD_Icon_replacement
[UI] Replacement of 2 SVG icons for OpenSCAD commands
2021-01-21 13:34:30 +01:00
Yorik van Havre
b4d973d800 Merge pull request #4287 from bitacovir/PartDesign_Icons
[UI] Add SVG icons for three PartDesign commands
2021-01-21 13:33:41 +01:00
Yorik van Havre
c06cd3c546 Merge pull request #4291 from aapo-aapo/TD-US-MultiValueSchema-fix
[TD] Fix Dimension unit printing problem for US building units …
2021-01-21 13:32:48 +01:00
Yorik van Havre
d7038409bf Merge pull request #4292 from aapo-aapo/TD-MDIViewPage-papersizes
[TD] MDIViewPage: Add support for Qt5 automatic paper size handling …
2021-01-21 13:21:56 +01:00
wmayer
f490852ab9 FEM: make FemMesh::getVolumesByFace() working for SMESH >= 7 2021-01-21 13:00:31 +01:00
Yorik van Havre
b0c4e16993 Merge pull request #4298 from Roy-043/ArchRoof_FixSelfRefRelProfile
ArchRoof.py: Fix for self referencing relative profile issue
2021-01-21 12:51:27 +01:00
Tyler Colbert
6a07fb6237 [PATH] First pass at a post processor for Fanuc controllers 2021-01-20 14:18:47 -07:00
wmayer
135525a806 smesh: port to version 9.6 2021-01-20 19:49:56 +01:00
Roy-043
649a767f6a Update ArchRoof.py
A relative profile can now be used if it references itself. This fixes a compatibility issue with the V0.18 version of ArchRoof, where the first profile initially always references itself.
2021-01-20 19:17:30 +01:00
Benjamin Nauck
24c6183661 Spreadsheet: make setContent use unique_ptr and cleanup
Make `Cell::setContent` use `unique_ptr` and
`make_unique` for expressions to avoid potential memory
leaks.
Also renames `expo` to `newExpr` to avoid mixup with the
member variable `expression`.

Both changes was made at the request of @chennes.
2021-01-20 18:55:27 +01:00
Benjamin Nauck
98414334ad [Spreadsheet] Add unit tests for new input behaviour 2021-01-20 18:55:27 +01:00
Benjamin Nauck
dbedb21676 [Spreadsheet] Only evaluate cell values when prefixed with '='
This commit only changes the user interaction with spreadsheet and does
not affect backwards compatibility (as valid cell expressions are
prefixed with '=' when serialized).

This fixes [#4156](https://tracker.freecadweb.org/view.php?id=4156),
which is discussed in the forum thread:
https://forum.freecadweb.org/viewtopic.php?f=3&t=39665

There has been additional logic added to handle numbers and simple
fractions without using '='.
The behaviour is what is expected by the spreadsheet test cases
and in line with how other spreadsheet software works.
The '-prefix can still be used to force the input to be handled as
as string instead.

Example of numbers and fractions handled are:
  3
  2mm
  1/8
  1mm/2
  1/2mm
  2/m
  1mm/2s

More complex expressions are not handled without '=' and will be stored
as strings instead, for example:
  2 / 3 / 2
  1 + 1/3
2021-01-20 18:55:27 +01:00
bitacovir
9e1d7653b8 Add SVG icons for two Part commands 2021-01-19 19:26:10 +01:00
donovaly
b5f57ed2f0 [TD] make pointers to the UI std::unique_ptr
as noted in https://github.com/FreeCAD/FreeCAD/pull/4271#discussion_r554673632
the pointer to the UI should be a unique pointer.

This PR does this for all TD dialogs that don't already use a unique_ptr.
2021-01-19 19:24:27 +01:00
wmayer
4af6c5a13e Gui: [skip ci] update standard cursors of 3d view when device pixel ratio changes (e.g. by moving between standard and high DPI monitor) 2021-01-19 19:19:30 +01:00
wmayer
9788467a35 Mesh: [skip ci] fix hot spot of mesh selection cursor 2021-01-19 19:17:54 +01:00
Aapo
4d40ab0f49 [TD] MDIViewPage: Support printing/exporting arbitrary custom paper sizes for Qt5. 2021-01-19 11:03:24 +02:00
Aapo
d79fd9d6a9 [TD] MDIViewPage: Add support for Qt5 automatic paper size handling with many new paper sizes possible. 2021-01-19 00:49:57 +02:00
Aapo
1c02a2ae9f [TD] Fix Dimension unit printing problem for US building units and other multivalueschema. 2021-01-18 21:52:35 +02:00
marioalexis
4c323a6325 Part: Crash when calling SubShapes of empty shape from Python 2021-01-18 19:47:35 +01:00
marioalexis
00822b0a80 Gui: Prevent crash when trying to access sub-objects of a deleted object from a SelectionObject 2021-01-18 19:46:03 +01:00
David Österberg
afd1470202 Update src/Mod/PartDesign/App/FeaturePipe.h
Co-authored-by: Benjamin Nauck <benjamin@nauck.se>
2021-01-18 17:38:15 +01:00
David Osterberg
cdfe908c52 PartDesign: Fix small bugs in the Pipe feature
- Previously a subtractive pipe on a body with no solids would create a solid. Now Pipe will generate an error.
- Fix incorrect property header. Previously Pipe was identifying itself as Pad (copy paste error)
2021-01-18 17:38:15 +01:00
wmayer
254ed951f9 Gui: [skip ci] must set device pixel ratio to QBitmaps on Windows when using for cursor as otherwise garbage is shown 2021-01-18 15:20:57 +01:00
bitacovir
d87b260692 [UI] Add SVG icons for three PartDesign commands 2021-01-18 11:04:32 -03:00
Yorik van Havre
6719e8651d Merge pull request #4271 from donovaly/TD-dimension-dialog
[TD] add dialog to modify some dimension settings
2021-01-18 15:00:48 +01:00
Yorik van Havre
8a1bd9d96e Merge pull request #4283 from paullee0/ArchComponent_02
[ArchComponent] Fix Link Of Window Hosts if empty got error as Wall Child
2021-01-18 15:00:10 +01:00
Abdullah Tahiri
41e1626bd1 Sketcher: increase relative size of the subindices of the constraints
=====================================================================

Increase the size of the subindices as per request:
https://forum.freecadweb.org/viewtopic.php?p=468144#p468144
2021-01-18 14:25:30 +01:00
Keilin Bickar
ab8a4a62a9 Fix AttributeError on deleting corrupt dressup 2021-01-17 22:04:26 -05:00
bitacovir
dc2d7c6eea [UI] Replace of 2 SVG icons for OpenSCAD commands 2021-01-17 22:00:57 -03:00
Bernd Hahnebach
bf221af686 FEM: mesh tools, add a comment 2021-01-17 23:46:49 +01:00
Bernd Hahnebach
e43ee28e38 FEM: utils, fix clipping FemMesh without Shape 2021-01-17 23:46:41 +01:00
sliptonic
e631b6b1b7 fix persistence of fixtures, split, and orderby to templates 2021-01-17 15:28:24 -06:00
paul lee
ed15b99a40 [ArchComponent] Fix Link Of Window Hosts if empty got error as Wall Child 2021-01-18 02:08:39 +08:00
Abdullah Tahiri
625502bb47 Sketcher: Compensate for Coin not taking the dpi of the monitor into account in font pixel setting
==================================================================================================

Coin documentation indicates the size of a font is:

SoSFFloat SoFont::size        Size of font. Defaults to 10.0.
For 2D rendered bitmap fonts (like for SoText2), this value is the height of a character in screen pixels. For 3D text, this value is the world-space coordinates height of a character in the current units setting (see documentation for SoUnits node).

However, with hdpi monitors, the coin font labels do not respect the size passed in pixels:
https://forum.freecadweb.org/viewtopic.php?f=3&t=54347&p=467610#p467610
https://forum.freecadweb.org/viewtopic.php?f=10&t=49972&start=40#p467471

Because I (abdullah) have  96 dpi logical, 82 dpi physical, and I see a 35px font setting for a "1" in a datum label as 34px,
and I see kilsore and Elyas screenshots showing 41px and 61px in higher resolution monitors for the same configuration, I think
that coin pixel size has to be corrected by the logical dpi of the monitor. The rationale is that: a) it obviously needs dpi
correction, b) with physical dpi, the ratio of representation between kilsore and me is too far away.

This means that the following correction does not have a documented basis, but appears necessary so that the Sketcher is usable in
HDPI monitors.
2021-01-16 08:00:30 +01:00