Commit Graph

3962 Commits

Author SHA1 Message Date
wmayer
2b53da4eee + include missing header files 2015-06-30 17:48:03 +02:00
wmayer
d826ad5b51 + Remove dependency to iisTaskPanel when not needed 2015-06-30 16:53:22 +02:00
wmayer
de7c8fcbbf + issue #0002053: Support of themes 2015-06-30 13:14:56 +02:00
Yorik van Havre
e239c65ba1 Arch: Small fix in IFC exporter 2015-06-28 00:23:06 -03:00
wmayer
882ecd3ce3 + implement class PythonGroupCommand 2015-06-27 17:21:02 +02:00
Yorik van Havre
38fffd8218 Draft: Enabled importing of SVG's symbol and use elements 2015-06-26 17:01:43 -03:00
Yorik van Havre
fed516d582 Arch: fixed bug in rebars 2015-06-26 13:50:02 -03:00
Daniel Falck
1a1927b8d5 added units to Draft Point Properties 2015-06-25 23:34:01 -03:00
Yorik van Havre
89cbdb35b6 Arch: External edges are now automatically removed from Rebars base sketches 2015-06-25 19:54:57 -03:00
wmayer
864e0bcccb + make it more obvious what BRep mode for IGES export means 2015-06-25 16:41:53 +02:00
Abdullah Tahiri
cac47d2548 Sketch: Bug Fix: Maintain the Elements and Constraint Widget synchronized
=========================================================================

What?
Sometimes this widgets where out of sync

Why?
Under the update only when it is redrawn policy, sometimes only one of them, i.e. the one associated with the property
triggering the updateData was updated.

Solution:
Both are updated after every redraw.

It also complements the previous bug fix related to crash on deleting, by updating the widgets to account for the deleted geometry.
2015-06-25 14:33:27 +02:00
Abdullah Tahiri
214169616d Sketch: Bug fix: On delete crash with unsuccesful solving
==========================================================

Fixes the one reported by JMG here (Thanks!!):
http://forum.freecadweb.org/viewtopic.php?f=3&t=11508#p92693

Why?
- The newly introduced redrawing policy requires that the solver geometry matches in number the sketchobject geometry.
- Most (all) problems with updateColor or getGeometry returning a null pointer are related to an out of sync between UI geometry and SketchObject geometry.

General solution:
- In other bugs, a missing "solve()" is the problem, once the solver and sketchobject geometries have the same number, an SketchObject::OnChanged triggers
a VPSketch::draw (via VPSketch::updateData) which updates the UI geometry to match SketchObject geometry and then the problem does not arise.

Particular solution:
- In this bug, the problem is not a missing solve, but the fact that the solving was not succesful and did not synchronize the geometries, however triggering a
draw() on unsuccessful solving, syncronizes the UI geometry with the SketchObject geometry and the crash is gone.
2015-06-25 14:33:22 +02:00
Eivind Kvedalen
3a69c926b5 Spreadsheet: Fixed bug in dependency tracking between objects. 2015-06-25 10:40:29 +02:00
Eivind Kvedalen
2e7b4602a9 Spreadsheet: Added initializer for Spreadsheet::RangeExpression class. 2015-06-25 10:40:15 +02:00
wmayer
165261e358 + fix memory leak 2015-06-24 20:07:36 +02:00
wmayer
c3c27817b6 + whitespace fixes 2015-06-24 19:59:53 +02:00
Abdullah Tahiri
2a54fba098 Sketcher: SparseQR as default QR method
=======================================

The SparseQR is set as default method. However, in accordance with the previous commit, only if a new enough Eigen library is present will SparseQR be executed.

If the library is old and SparseQR can not be reliably used, FC will automatically fall back to use DenseQR.

This ensures that users that have a new enough library > 3.2.2 will benefit from the performance increase, while the users that use older library will still have
the same performance as in legacy FC.
2015-06-24 17:57:06 +02:00
Abdullah Tahiri
ffaa0c8249 Sketcher: SparseQR conditional compilation
==========================================

For Eigen>=3.2.2 SparseQR is compiled in

For older versions SparseQR is not compiled in and if the option is selected FC gives a warning in the console and falls back to DenseQR.

This ensures that a user can get a sketch solved and work normally even if SparseQR is selected and the Eigen version is too old to support SparseQR.
2015-06-24 17:57:05 +02:00
Abdullah Tahiri
1fc88ebe24 Sketcher: Auto Update Mode bug fix
==================================

Bug:
http://forum.freecadweb.org/viewtopic.php?f=10&t=11341&start=60#p92422

Why?
- When coding Auto Update Mode I forgot to solve the sketch when the constraint is cancelled to restore the solver level constraints.
2015-06-24 17:57:05 +02:00
Abdullah Tahiri
82e24d830e Sketcher: Solver Advanced Control: New Param: QR Pivot Threshold
================================================================

A new parameter added to the form in order to control how low a value should be
to be considered zero (how high a value shall be to be accounted for in rank calculation)

Debug for QR pivot threshold is also added.
2015-06-24 17:57:04 +02:00
Abdullah Tahiri
8f68b14627 Sketcher: DL Solver Debug Improvement
=====================================

- In "Iteration Level" debug mode, DL now shows the stop condition code.
- More debug code
2015-06-24 17:57:04 +02:00
Abdullah Tahiri
efb08cd11c Sketcher: Disable Eigen multithread
===================================

Eigen currently only provides multithread for matrix products. It has been reported that it is even slightly slower than single-thread.
Therefore, temporarely the code is commented out. If Eigen ever implements multithread for QR decomposition, then it will make a lot of
sense to enable this.
2015-06-24 17:57:03 +02:00
Abdullah Tahiri
7f442c5a3f Sketcher: Improvement: Continuous Mode - View sketch Perpendicular
==================================================================

It allows the view sketch perpendicular button to be active during continuous mode creation (and if activated does not exit the continuous mode).

Feature requested:
http://forum.freecadweb.org/viewtopic.php?f=10&t=11051&start=30#p92256
2015-06-24 17:57:02 +02:00
Abdullah Tahiri
22bcb40484 Sketcher: Bug fix: Dense QR is set by default
=============================================

EigenQR branch 3.2 with debug code fails an assertion. The result is generally ok if we disable the assertions, however it
eventually leads to memory leakage.

This commit reenables Eigen's assertions when in debug mode, and sets dense QR as default QR algoritm until Eigen's issue is solved.
2015-06-24 17:57:02 +02:00
Abdullah Tahiri
cb2d70b4f0 Sketcher: Bug fix: Solver Advanced Control in BFGS
==================================================

- ternary operator usage was making BFGS not to iterate
- Amount of debug information for BFGS increased
2015-06-24 17:57:01 +02:00
Abdullah Tahiri
86f0df4f3c Sketcher: Improvement Continuous Creation Mode: Leave Sketch
============================================================

This enables to exit the sketch by clicking the corresponding toolbar icon, even when in creation mode, i.e.
with a drawHandler active.

Requested here:
http://forum.freecadweb.org/viewtopic.php?f=10&t=11051&start=30#p92181
2015-06-24 17:57:01 +02:00
Abdullah Tahiri
f3592c1216 Sketcher: Improvements: Solver Advanced control
===============================================

- Increased solver debug
- Changing default values from float to string, as float has "only" a precision of 12 decimals.
- Default values as macros
2015-06-24 17:57:00 +02:00
Abdullah Tahiri
516b0d3c56 Sketcher: Workaround for Eigen bug: SparseQR crash on matrices with rows>cols
=============================================================================

There is an issue with an assertion in Eigen, as reported here:
https://forum.kde.org/viewtopic.php?f=74&t=117474
http://forum.freecadweb.org/viewtopic.php?f=10&t=11341&p=92153#p92146

The work-around is to disable debug assertions for Eigen until the problem
gets solved.
2015-06-24 17:57:00 +02:00
Abdullah Tahiri
6030da1182 Sketcher: Solver improvements and bug fixes
===========================================

- Improvement Debug added to redundant solving in Iteration Mode, to show when just one iteration solved the system
- Fix wrong QR information on empty sketch
2015-06-24 17:56:59 +02:00
Abdullah Tahiri
bae32f74bb Sketcher: New setting: Show advanced solver taskbox
===================================================

I makes the advanced solver taskbox by default disabled (not shown) and provides
a setting in Preferences->Display->Sketcher to enable it.
2015-06-24 17:56:59 +02:00
Abdullah Tahiri
796c9d79d4 Sketcher: New Features: SparseQR decomposition and Solver advanced control TaskBox
==================================================================================

The solver has been adapted to use Eigen's SparseQR QR decomposition algorithm. The original
Dense QR implementation is maintained and can be selected using the Advanced Control TaskBox (see below).

The use of SparseQR provides over an order of magnitude improvement in solving time in complex sketches due to
the Sparse nature of the Jacobian matrix of the system of equations.

The solver advanced control is a new TaskBox in the Sketcher that allows to select which algorithms are to be used for
the different solving operations and tweak its parameters. It is not intended to be a user control, but means to debug
solving problems and improve the algorithms and their configuration.

This commit also introduces multithread support for Eigen. Currently it is only limited to products and does not provide
a substantial speed improvement. It is expected to have more multithreaded operations in Eigen in the future.

As a bonus, the TaskBoxes in the Taskbar of the Sketcher remember the last state (collapsed or deployed).
2015-06-24 17:56:58 +02:00
Abdullah Tahiri
480d23f8e1 Sketcher: Bug fix: Unexpected crashes during certain operations
===============================================================

The sketcher crashed for example during effecting a fillet operation.

Cause:
The ElementsWidget/ConstraintWidget was being updated as a consequence of adding/removing geometry/constraints, and it was effecting
a selection after the update, in cases where the geometry in the screen was not being redraw (because the sketchobject was still unsolved), therefore
trying to select an element that according to ViewProvider did not exist (as it is created during redraw).

Solution:
Widgets update when their properties changes, provided that a redraw is effected (which actually also saves some (negligible) time, as they are only updated when they should).
2015-06-24 17:56:57 +02:00
Abdullah Tahiri
93c836fdcf Sketcher: Bug fix Trim
======================

In no update mode, the last constraint was not enforced. The DoF was not properly shown.

The trim operation it is always solved at the end now if in no recompute mode.
2015-06-24 17:56:56 +02:00
Abdullah Tahiri
65310f00ab Sketcher bug fixes: Crash on deleting a line from the sketch
============================================================

- Crashing on deleting line on fully constraint box

As a bonus:
- Fully constrained sketch not shown in green on opening the sketch
2015-06-24 17:56:56 +02:00
Przemo Firszt
4caa464ebb FEM: All FEM results are stored in a single object
Functionality previously provided by setNodeColorByResult is now
in setNodeColorByScalars. FemResult* object is no longer required,
the function accepts list of elements and a list of values.

Functionality previously provided by setNodeDisplacementByResult is now
in setNodeDisplacementByVectors. FemResult* object is no longer required,
the function accepts list of elements and a list of vectors.

A side effect: FemResultValues and FemResultVector are no longer used
and have bee removed.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-24 17:44:02 +02:00
wmayer
9680f13854 + fix loading of certain urls in web page 2015-06-24 13:35:13 +02:00
Fredrik Johansson
16c740a6f9 Add ability to have external orocos-kdl library instead of the suplied
in FreeCAD, used in Robot and Path workbenches

cmake switch: FREECAD_USE_EXTERNAL_KDL

Makes Robot workbench and Path compilable on OS X 10.9
2015-06-24 11:54:31 +02:00
Yorik van Havre
18624df555 Draft: Better docstring for DraftGeomUtils.fillet() 2015-06-22 22:03:13 -03:00
Yorik van Havre
4379846dfa Arch: Section planes now restore the view clipping when loaded 2015-06-22 21:58:56 -03:00
Yorik van Havre
cd25a34171 Arch: added warning message when wall base is not a Part or Mesh 2015-06-21 21:45:18 -03:00
Abdullah Tahiri
074d5d7f11 Sketcher: Bug fix External geometry not appearing upon insertion
================================================================

A last moment change to regulate redrawing introduced this issue (reducing the redrawing to the cases where the solver geometry and the sketchObject geometry are equal).
This change also solved other issues.

The case of adding external geometry is special because the DoF is the same after insertion, yet there is an insertion (as opposed to the toggle case, where there is a change but no insertion).

SketchObject has been adapted to require a solver update before moving (which also caused a non-yet-reported crash, a separate bug), and CommandCreateGeo has been adapted to trigger a solve with
auto update mode disabled. This solve is a very low cost one as the geometry is already in place.
2015-06-17 14:53:34 +02:00
Yorik van Havre
8b4492ebc5 Arch: small bugfix in cutvolumes 2015-06-17 09:45:01 -03:00
wmayer
238becaebb + further optimization in sketcher 2015-06-16 10:18:11 +02:00
wmayer
788fadf4a8 + fix const correctness 2015-06-15 23:42:37 +02:00
Abdullah Tahiri
ec5f3b2b98 Sketcher: new Feature: Group creation of Sketcher geometry and other improvements and bug fixes
===============================================================================================

Group creation:
- complex geometries (consisting of several geometry elements and constraints) have been rewritten to use python list (one command call for all geometries and constraints)
- Ellipse ExposeInternalGeo as group creation of geometries and constraints

To construction mode creation:
- addGeometry python and SketchObject functions modified to take an additional optional parameter "construction" to create the geometry/geometries directly as construction.
  In addition to the shorter form, this helps generate less amount of onChange propagation and Redraws.
- all the geometry creation commands in CommandCreateGeo.cpp have been rewritten to use the new construction argument. This includes modifying the regular polygon script to
take a new optional parameter to create geometry as construction in addGeometry.
- special care is taken in group creation not make construction points
- Show/hide internal geometry implemented with this option.

To solving:
- the solve previously included after every geometry addition (when in no Update, e.i. no Recompute mode) has been removed and each Gui::Command calls either an UpdateActive
for recompute or a Solve in no Update mode. This is behaviour is less intrusive and uniform with group creation.

Bug fixes and redrawing reduction:
- Fixes the CheckId exception problem. The solution also helps further remove redraws during creation of complex geometry (e.g. Slot)
- Fixes touching the sketch by only opening it.
- Code clean up.
2015-06-15 22:56:36 +02:00
Abdullah Tahiri
61bd2d41ac Sketcher: Requested Feature: Remove help button
===============================================

The help button next to the close button in the Task dialog is now removed.

It was requested that this button is removed as it is inconsistent with other help sources and it is not implemented.
2015-06-15 22:56:20 +02:00
Abdullah Tahiri
d1acd124cc Sketcher: Bug fix: Undo/Redo implementation
================================================

Fixes a bug in master that the dependent 3D geometry would not update on Undo (in Auto update mode enabled).

Undo and redo signals are handled by ViewProvider in order to introduce an recompute or solve() of the sketchObject
as determined by the Auto Update Mode in order to update DoF and dependent geometry if necessary.
2015-06-15 22:56:04 +02:00
Abdullah Tahiri
eb7a3c763c Bug fix: General reduction solution / new sketch solving model
=================================================================

The new solving architecture focus all the solving on the SketchObject.

Actions that change the DoF can call execute() (i.e. recompute) or Solve() depending on whether a full recompute of dependent features is required or not.
In both calls the geometry of the solver is updated with the geometry of the SketchObject.

The only additional call that calls the solver is MovePoint. This function may or may not update the geometry of the SketchObject
(as now it is intended for UI related solving, like dragging, rubberbands, ...).

In operations that do not involve a change of DoF and therefore do not require a sketch solving, it may happen that as a side effect of moving a point, the
geometry changes to old behaviour. In order to avoid that, those SketchObject operations, as for example setConstruction or ToggleConstruction,
must set a flag "bool solverNeedsUpdate" to true. In case a movePoint is executed before any other solver execution, the geometry is first updated and then
the moving is performed.

So to keep in mind when programming sketcher operations:
-> Need recompute (UpdateActive)
-> Need solving because DoF changed (solve())
-> The operation does not change DoF (set solverNeedsUpdate to true)
2015-06-15 22:55:28 +02:00
Abdullah Tahiri
4b0bd78814 Sketcher: Bug fixes to Auto-Update Mode
=======================================

- Fixing toggle AutoUpdate Mode
- Fix Auto-Update Sketcher tools
- Fix missing createGeo recomputes
- Missing constraints recomputes fixed

Various fixes for non-Update mode:
- Fixes lack of update upon entering a conflicting datum constraint.
- Fixes lack of update upon setting the reference/driving status of a constraint

- Added tooltips to buttons
2015-06-15 22:55:04 +02:00
Abdullah Tahiri
339717c96f Sketcher: Bug fix of New Solver Model: DoF and solver update on deletion of constraints
=========================================================

Upon deletion of a constraint, the constraint was still enforced for UI operations (dragging of a point) and DoF was not updated.
2015-06-15 22:54:49 +02:00
Abdullah Tahiri
a21265f9b6 Sketcher: New Feature: Avoiding to continuously recompute all the sketch (and dependent objects)
======================================================================================

There is a checkbox, default disabled, that makes the commands NOT to generate a recompute after each.
This means that if you are editing a sketch that is used to generate a pad or pocket, if the checkbox is
disabled, the dependent objects do not get recomputed.

There is a button next to it to force a manual recompute, in case it is needed.

If the user wants the previous behavior, he only needs to activate the checkbox. The previous status of the box
is restored upon entering a sketch in edit mode.

It is remarkable the case of the Fillet and Trim

On changing ActSketch (solvedSketch) to SketchObject and making movePoint not systematically update the geometry, the solving in MovePoint was confronted with solving for "the last solved geometry",
which is the default behaviour, in some situations (Fillet and Trim) where geometry had changed at SketchObject level, and was the subject of the moving actions.

MovePoint has been updated to take an extra optional parameter, to force the change in solved geometry in those situations.

Some other minor bug also fixed in Fillet creation in CommandCreateGeo.cpp

This commit also introduces conditional recompute on some operations of:
- constraints
- geometry creation (reubication of update active to comprise the autoconstraints within a single UpdateActive)
2015-06-15 22:54:32 +02:00
Abdullah Tahiri
0e92e6356f Sketcher: Major re-structuration: New Solving Model: General Sketch Solve call reduction
=======================================================================================

ActSketch in ViewProvider dissapears. The temporal sketch (sketch.cpp) for solving is now a data member of SketchObject.cpp (hereinafter solvedSketch). All the solving is concentrated in SketchObject.cpp.

SketchObject provides an interface to expose its solver, as it is still currently needed for some UI operations from ViewProviderSketch, like dragging points (solving rubber bands).

ViewProviderSketch still can select whether to draw the solvedSketch geometry (previously ActSketch) geometry (UI staff) or the SketchObject geometry. Performancewise, it makes sense to separate this two
geometries, as the SketchObject one involves modifying the Geometry and Constraint Properties (including all the undo related functionality), which would mess the undo functinality and incur in a big
peformance penalisation while dragging. One characteristic of solvedSketch is that its geometry is solved, whereas the geometry of SketchObject may not have been solved yet.

These geometries may differ at for the following reasons:
1. The geometry corresponds to an ongoing dragging operation, so solvedSketch has the last calculated dragging geometry, while SketchObject has the one corresponding to initial position.
2. Geometry/constraints were added to the sketch, but no solve/execute was triggered yet (envisioned situation is the future group creation functionality not in this commit).

What do I gain?

- Inserting a (simple) geometry element now costs 1 solver execution.
- Inserting a constraint now costs 1 solver executions.

For reference, in previous versions inserting a constraint involved 5 solver executions.

The following information provide a historical review of the coding of this commit (formed of 10 squashed commits):

This is a general sketch solve call reduction, not only during geometry creation (this commit does not include until here any specific measure to reduce calls on geometry creation, that is another branch)

After a lot of profiling, it seems that the "cause"(tm) that creates so many solver calls is that every update generates a solving in ViewProviderSketch, regardless of the need for that update,
many times with the only aim of providing the DoF for the message dialog and keeping ActSketch in sync with SketchObject in case it is needed (currently UI moving points, constraints,...).

Sketch solver is now a data member of SketchObject instead of a temporal object that gets initilized and destroyed.

This allows:
1. Potentially more synergy reducing calls to setUpSketch (still to be seen, still to be optimized)
2. Allowing SketchObject to access the latest geometry that has been solved => In future, allow objects that use SketchObject to obtain the latest
solved geometry instead the geometry of SketchObject that may still be unsolved. This is relevant for drawing the geometry

No more solving in ViewProviderSketch. Solving a Sketch is now an exclusive competence of SketchObject.

There is however a lot of cleaning to do in ViewProviderSketch

(I mean, not that these commits are making a mess in VPSketch,
but that as a consequence of the changes, it should be possible to
optimize VPSketch, specially moving and drawing methods)

Very useful comment for future developers that may wonder why a solve per constraint just upon addition is necessary.

Added a new function to get the size of the geometry of the instance of the solver object (Sketch.cpp).
The previous way was to extract the geometry, which is costly and error prone, as you have to delete it afterwards.

Inserted comment about the necessity of triggering a Part2D update during edit mode
2015-06-15 22:53:59 +02:00
wmayer
280019ddf9 + implement Geometry.copy for Python 2015-06-15 21:28:29 +02:00
Yorik van Havre
d0cfe4b010 Arch: Allow to build Arch objects from Part Compounds - fixes #2095
Arch objects can now be based on a Part Compound and will take
its DiffuseColor property. Arch objects that are clones of
such objects will also copy that property.
2015-06-14 18:36:54 -03:00
Eivind Kvedalen
d0d98b8775 Spreadsheet: Fixed exception bug in SheetPy::setCustomAttributes(...). 2015-06-13 12:48:21 +02:00
Eivind Kvedalen
e864bb8d92 Spreadsheet: Added test macro. 2015-06-13 12:47:52 +02:00
Eivind Kvedalen
efc21a5a63 Spreadsheet: Removed superfluous fc_target_copy_resource call in CMakeLists.txt. 2015-06-13 12:47:36 +02:00
Eivind Kvedalen
9d5d05a708 Spreadsheet: Fixed handling of unary minus/plus, exponentation order, and unit rule (#2099) 2015-06-13 12:47:19 +02:00
Eivind Kvedalen
12e4d59458 Spreadsheet: Fixed bug in setEdit method for Spreadsheet module (#2144) 2015-06-13 12:46:53 +02:00
Yorik van Havre
edbbcfb790 Draft: Fixed placement of one-face Facebinders 2015-06-12 11:08:49 -03:00
Yorik van Havre
40f8bb4143 Arch: Fixed encoding bug in IFC export 2015-06-11 23:02:29 -03:00
wmayer
54317becbf + fix writing STEP settings 2015-06-09 21:23:16 +02:00
Przemo Firszt
3a7772d0f7 FEM: Save/restore result dialog settings
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
793a5b79f1 FEM: Rename dialog element callbacks
Also setDisplacement function has been removed

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
5853eabc62 FEM: Always import FemGui
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
6de28c158d FEM: fix white space
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
9766893be1 FEM: Change FEM results selection to radio buttons
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
f29b003810 FEM: Add reset_mesh_color and reset_mesh_deformation functions
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
ca47eeaeff FEM: Remove unused property
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
6df5809c33 FEM: Optimise check_prerequisities
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
da83e47241 FEM: Remove old results before loading new set
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Przemo Firszt
157399e395 FEM: Fix problem with using old displacement value after recalculation
Reported-by: bernd
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-09 13:07:49 -03:00
Yorik van Havre
895510e08d Draft: small bugfix in Drawing view 2015-06-08 19:05:37 -03:00
Yorik van Havre
48113f3bca Arch: Fixed encoding in IFC import - fixes #2149 2015-06-06 12:52:44 -03:00
Ian Rees
418cefd7ee Cleaning up compile warnings, mainly in Sketcher
fabs() instead of std::abs(), add cmath include
2015-06-04 18:12:39 +02:00
DeepSOIC
37fbcb64a6 Part: new tools - JoinFeatures (Connect, Embed and Cutout)
Attributions:
Mark (quick61) - icons
Yorik - help with internationalization
Everyone who appeared in forum thread "A new Part tool is being born...
JoinFeatures!" - for endorsement!
http://forum.freecadweb.org/viewtopic.php?f=22&t=11112
2015-06-04 09:47:59 +02:00
wmayer
c3808cd991 + Use update mechanism for CmdSketcherToggleConstruction 2015-06-03 19:12:48 +02:00
wmayer
cf1a77a44d + Use update mechanism for CmdSketcherToggleDrivingConstraint 2015-06-03 18:31:30 +02:00
Yorik van Havre
0fec404c6d Arch: fixed Label encoding in IFC export 2015-06-02 19:58:59 -03:00
Przemo Firszt
4e94c02dda FEM: Rename animateNodes to applyDisplacementToNodes
Also animateNodes is now applyDisplacementToNodes.
The funcions are not doing animation, but are responsible
for deforming mesh.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
8195ce579b FEM: Remove not used setColorStress function
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
aed303f4ff FEM: Add curly brackets to one line for/if or if/if commands
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
70318d7820 FEM: Disable Show result button if there are no results in analysis
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
749e772d85 FEM: Add Purge FEM results button
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
97a6333f87 FEM: Simplify setting FEM results when user selected None
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
302dbbf0be FEM: Fix problem with Show button not reverting mesh deformation
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:34 +01:00
Przemo Firszt
dc7da86261 FEM: Don't use bool as variable name
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:21 +01:00
Przemo Firszt
6a13a51b90 FEM: Don't check is Show is checked after slider has been moved.
Slider is disbled is Show is not ticked, so that check is redundant.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:35:10 +01:00
Przemo Firszt
74234e7000 FEM: Switch to reading analysis stats from AnalysisStats object
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
597c9b856b FEM: Add AnalysisStats object
This commit add a new object to Analysis: AnalysisStats. AnalysisStats
contains list with 15 values (an example):
-0.000776373	<-- minimum X displacement
-7.74494e-06	<-- average X displacement
0.000774115	<-- maximum X displacement
-0.00416267	<-- minimum Y displacement
-0.00204191	<-- average Y displacement
0		<-- maximum Y displacement
-0.000775108	<-- minimum Z displacement
1.09288e-05	<-- average Z displacement
0.000775122	<-- maximum Z displacement
0		<-- minimum Abs displacement
0.00214509	<-- average Abs displacement
0.00430481	<-- maximum Abs displacement
0.390598	<-- minimum Von Mises Stress
0.93509		<-- average Von Mises Stress
1.47765		<-- maximum Von Mises Stress

Those values will be used to set field values in FEM results dialog
instead of currently used values returned by setNodeColorByResult
function.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
9c6ee0ac63 FEM: simplify reading lines from frd file
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
f5863b6d9b FEM: replace input with frd_file in ccxFrdReader.py
input is a built-in function name and should not be used as variable name

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
05cb44bfb0 FEM: use is instead of == for None in ccxFrdReader.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
39b407fdba FEM: replace deprecated has_key in ccxFrdReader.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
Przemo Firszt
cd5cc689dc FEM: white space fixes in ccxFrdReader.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-06-02 11:28:44 +01:00
J.L. Cercos-Pita
b27e512828 Corrected the wetted surface units 2015-06-01 12:00:30 -03:00
J.L. Cercos-Pita
657041d6b1 Updated the spreadsheets to the new module 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
f7be7d1e30 Fixed the locales 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
dfa96bd3fe Fixed the locales in the Hydrostatic tools 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
63360966f9 Fixed the problems with the group separator in some locales 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
3a52249400 Extended the locale fixe to the stored variables into the Ship instance 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
f867db6f71 Fixed the problems with the group separator in some locales 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
5c79b2f762 Updated the areas computation tool to the new spreadsheet 2015-06-01 12:00:29 -03:00
J.L. Cercos-Pita
071829dbc9 Fixed 'Axes' object has no attribute 'get_frame' error (see http://matplotlib.org/api/api_changes.html) 2015-05-31 19:28:16 +02:00
wmayer
a12f700aa2 + fix some warnings 2015-05-30 20:59:25 +02:00
wmayer
351e7aae6f + fix wrong default of ContinueMode in settings panel 2015-05-30 20:42:33 +02:00
wmayer
eef340f19c + fix whitespaces 2015-05-30 20:30:12 +02:00
Abdullah Tahiri
3b1873f1dc Sketcher Improvement: Always enable geometry creation
==============================================================================

Now you can switch from one tool to the next just by clicking on the next tool
2015-05-30 16:39:34 +02:00
Abdullah Tahiri
ca356c308e Sketcher Driving/Reference and Construction/Normal single buttons icons
=======================================================================
2015-05-30 16:39:33 +02:00
Abdullah Tahiri
0bd3801314 Sketcher: UI Improvement Smart button for constraints and geometry toogle/creation
==================================================================================

Geometry button:
- if no object selected, the legacy toggle icon has a new functionality, switch to/from creating in construction mode
- if object selected, it has the legacy functionality
- the button can be clicked during "continuos creation mode" to switch from creating to/from creating in construction mode

Constraint button:
- The button is not selectable if nothing is selected (it would be impossible to determine the effect)
- When constraints are selected, the button toggles the constraints to/from Driving.
- When geometry is selected, the button switches from/to reference mode, the change is apparent from the color of the constraint icons.

Continuous creation mode:
- Default changed so that it is active unless you change it in settings

Updated terminology
2015-05-30 16:39:32 +02:00
Abdullah Tahiri
a1c3b942aa Sketcher: Driving/reference creation improvements and some other fixes
======================================================================

- Changing from Driving to reference does not include unnecessary solvings.
- Added some checks to avoid making Driving constraints when calling directly from python and involving only external geometry (would give redundant constraints).
- New python command toggleDriving to just change the status from reference to Driving
- New UI toolbar Command to toggle constraints
- Fix to allow switching from/to construction mode during continuous mode creation.
- Enable/Disable for constraints in constraints widget has changed to operate on multiselection and now effects "toggle" instead of enable/disable.
- Disable the option to directly create a SnellsLaw non-driving constraint (this constraint does not support direct creation, it can be toggled to non-driving after creation though).
2015-05-30 16:39:32 +02:00
Abdullah Tahiri
4dfc96e102 Bug fix: Point was created as construction on construction mode
==============================================================

Points should not be construction points.
2015-05-30 16:39:31 +02:00
Abdullah Tahiri
8685e94b76 Bug fix: Sketcher fillet on construction lines
==============================================

The fillet applied to construction lines generates normal (not construction) geometry.

How to replicate?
1.Make a square and make all lines construction lines.
2.Apply fillet tool, there result will be a white line fillet connecting two blue constructions lines.
2015-05-30 16:39:31 +02:00
Abdullah Tahiri
75fa12964e Sketcher Driving/reference mode icons 2015-05-30 16:39:30 +02:00
Abdullah Tahiri
765b720c48 Sketcher New Feature: Toggle Mode for Reference/Driving constraints
===================================================================

It allows to create constraints directly into Reference or Driving mode.

It does not include icons
2015-05-30 16:39:30 +02:00
Abdullah Tahiri
d5ec887526 Sketcher: Construction Mode Icons 2015-05-30 16:39:28 +02:00
Abdullah Tahiri
1c803df7d4 Sketcher new Feature: Creation Mode of geometry
===============================================

It allows to select whether the geometry will be created as construction geometry or normal geometry.

This commit includes an important bug fix to reduce the number of times the sketcher solver is called when toggling
geometry. It makes an important difference in the creation during construction mode and InternalAligment geometry like the ellipse.

This commit does not include icons.

You have a button next to toggle that after having been clicked, switches from Normal to Construction geometry and vice versa
2015-05-30 16:39:28 +02:00
Abdullah Tahiri
3231a0c92a Sketcher: New Feature: External Geometry Linking improvement
============================================================

It lifts the need of clicking on the external geometry icon upon importing each external geometry element.

All the elements on which the user clicks are imported until the user right clicks with the mouse or presses ESC, like the Trim or Fillet tools.
2015-05-30 16:39:27 +02:00
Abdullah Tahiri
ba5a8fe87c Sketcher: New Feature: Continuous creation mode
===============================================

When creating a type of geometric element, the user can create as many elements of that type he wishes without having to click the button before each insertion.

The insertion of that type of elements ends by pressing ESC or clicking the right button of the mouse.

This mode is by default disabled and can be enabled in Preferences->Display->Sketch->Geometry Creation "Continue Mode".
2015-05-30 16:39:26 +02:00
Abdullah Tahiri
f7c9566f1e Sketcher bug fixes: Non-driving constraints editable on double click and color settings not working
===================================================================================================

This fixes a bug in the original implementation, that a non-driving constraint value could be
edited by double clicking on it in the 3D view.

It also includes minimal documentation on some functions.

It also includes:
- Color setting for non-driving constraints was not working.
- Settle UI terminology dispute:
  * Driving Constraint (normal red constraint)
  * Reference Constraint (non-driving constraint)
2015-05-30 16:39:26 +02:00
Abdullah Tahiri
ad180fb2c3 Sketcher New Feature: Non-driving constraints Icons by bejant
=============================================================

Nice icons to differentiate driving from non-driving constraints by bejant
2015-05-30 16:39:25 +02:00
Abdullah Tahiri
bc85670ce9 Sketcher new Feature: Non-driving constraints (aka Driven constraints or dimensions)
====================================================================================

It allows to enable and disable a constraint in the constraint list.

When disabled, the constraints current value is shown, but its value is not enforced (it is driven by the other constraints and user interaction).

A disabled constraint can be enabled (as far as it is enforceable, see non-driving constraints to external geometry below).

The sketcher functionality has been extended to support non-driving constraints to external geometry elements. This were previously excluded from
the possibility of creating a constraint on them (as their values depend on other sketches and would be redundant with the unchanged value or conflicting when value is changed).
Now these constraints are created as non-driving, but as they are not enforceable, the UI does not allow you to make them driving.

The constraint filter has been extended to include a Non-Driving constraints category.

Thanks again to Werner for his continuous support, and specially in this case to DeepSOIC, as he pointed towards a much better implementation solution than my original idea.
2015-05-30 16:39:25 +02:00
Abdullah Tahiri
5676c632f6 Bug fix: Sketcher Polygon autoconstraints
=========================================

The autoconstraints on creation of an hexagon were not working.

How to reproduce?
1. In a sketch make a couple of lines
2. Create an hexagon (or other polygon of your choice) with center in one end of a line and with side coincident with the end point of the other line

Result:
Neither the center nor the side autoconstraints are properly created.

Fix:
Straightforward. Just correct the indexes. Last is always the circle. Last but one is always a side.
2015-05-27 16:22:31 +02:00
wmayer
24b71377e1 + fix whitespaces 2015-05-26 17:55:38 +02:00
Przemo Firszt
cd4952dee4 FEM: fix white spaces in ccxInpWriter.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-26 14:33:43 +01:00
Przemo Firszt
e13a8cf304 FEM: Add ConstraintPressure
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-26 14:17:45 +01:00
Bernd Hahnebach
3c629f095d FEM: CLOAD, mesh face area is used for surface loads on volume faces 2015-05-26 13:50:38 +02:00
Abdullah Tahiri
81bd2cf34a Bug fix: Sketcher: "Ask for value after creating distance constraint" setting not working
========================================================================================

How to replicate:
1. Go to Preferences->Display->Sketch and disable that checkbox.
2. Create a distance constraint (radius, distance, ...)

It will ask for the value regardless of whether the checkbox is clicked or not.

Why?
In SketcherSettings.ui the prefpath is "Mod/Sketcher"
The code refered to ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath("User parameter:BaseApp/Preferences/Mod/Sketcher/General");
2015-05-26 13:45:24 +02:00
wmayer
a2bdc366f0 + make sure that Sketch.clear() doesn't allow any arguments 2015-05-26 13:11:48 +02:00
Abdullah Tahiri
b5ff8cdc82 Sketcher Bug fix: Python function clear() contains wrong code
=============================================================

This function is like this from 2011 according to git blame.

The original code makes no sense. I assume that what is intended in this
function (in accordance with SketchPy.xml) is call the method clear in
Sketch.cpp.
2015-05-26 13:08:22 +02:00
wood-galaxy
7843225fad Arch : Arch Section take current WorkingPlane Placement 2015-05-24 17:03:45 -03:00
Przemo Firszt
c5903523ea Part: PartDesign: Fine tune chamfer, fillet and draft icons
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-24 10:52:26 +01:00
Yorik van Havre
bb3be15ff5 Draft: Removed the 'Hide Draft Workbench' Draft preference since we now have full WB customization 2015-05-23 13:17:50 -03:00
wmayer
1099b23587 + raise error message when trying to mesh without netgen support 2015-05-22 16:15:18 +02:00
wmayer
ef610c8c96 + remove SoFCSelection from ViewProviderGeometryObject 2015-05-20 21:44:27 +02:00
wmayer
27863408c9 + remove references to SoFCSelection where not needed 2015-05-20 19:24:12 +02:00
wmayer
562ecea9cf + fix text in drawing dialog 2015-05-20 18:16:49 +02:00
jriegel
aa142250e0 add shell and beam support to FEM mesh ViewProvider 2015-05-19 21:42:36 +02:00
Yorik van Havre
afef89a8ef Arch: Fixed materials merge in IFC import 2015-05-19 10:15:07 -03:00
Przemo Firszt
b507505a47 FEM: Fix crash on missing unit when editing material second time
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-18 17:09:30 +01:00
Yorik van Havre
691b1af944 Arch: Added pref option to IFC import to treat materials with same name as one 2015-05-17 14:22:24 -03:00
wmayer
f8eb61fdf8 + prepare OCAF document to keep placement 2015-05-16 21:41:53 +02:00
wmayer
854b4be506 + prepare OCAF document to keep placement 2015-05-16 18:01:57 +02:00
wmayer
00a124cea1 + Pad type UpToFirst and UpToFace doesn't produce expected results. 2015-05-16 14:19:20 +02:00
wmayer
a6436f7d12 + fixes #0001655: Pocket type UpToFirst and UpToFace doesn't produce expected results. 2015-05-16 12:44:07 +02:00
wmayer
78671cb27e + raise exceptions in TopoShape::makeOffsetShape if needed 2015-05-15 20:20:37 +02:00
wmayer
4fe99f2658 + whitespace improvement 2015-05-15 20:07:55 +02:00
blobfish
0950e1963a Part: Offset: fill rework. 2015-05-15 20:00:47 +02:00
blobfish
cb2002d188 Part: ModelRefine: fix for bug# 2097 2015-05-15 18:06:33 +02:00
Yorik van Havre
25da93e2ea Arch: small bugfix in IFC importer 2015-05-15 11:27:15 -03:00
wmayer
96e77ab5bf + FEM: replace set with list to preserve order 2015-05-15 13:48:29 +02:00
wmayer
84d579186c Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-05-13 12:01:23 +02:00
Yorik van Havre
a6fad36ab6 Arch: small bugfix in windows 2015-05-12 23:26:41 -03:00
Yorik van Havre
c7c5171233 Draft: fixed typo 2015-05-12 22:14:06 -03:00
Przemo Firszt
29044021cd FEM: Fix Von Mises equation
Reported-by: sgrogan and confirmed by drei

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-12 15:58:49 +01:00
Yorik van Havre
bcec2d45ad Arch: Added MDF presets to panel 2015-05-10 11:30:01 -03:00
Sebastian Hoogen
d4f3cb7277 use transformGeometry in importSVG
partly reverts f045df1ef3 as workaround
for issue #2062
2015-05-09 19:57:36 +02:00
Yorik van Havre
31cecf79a1 Draft: Added archang's patch to importDWG 2015-05-09 12:39:53 -03:00
wmayer
45604b3874 + use list of pairs instead of map for getVolumesByFace 2015-05-09 12:02:25 +02:00
wmayer
fbdfeef2a3 + add method getPolesAndWeights() to NURBS surfaces and curves 2015-05-09 00:58:07 +02:00
wmayer
814c144ecb + FEM: add a couple of methods to Python interface 2015-05-09 00:15:05 +02:00
wmayer
9e89f2ff9a + implement FemMesh::getVolumesByFace, replace inner list by tuple 2015-05-08 21:45:13 +02:00
Przemo Firszt
cd6088332f FEM: Fix invalid CLOAD formatting
Existing code was producing invalid results:

a = 9876543212346789864323456.9543234578986432345678
>>> print "{:.13}".format(repr(a))
9.87654321234
>>> a
9.87654321234679e+24
The new converision should work fine:
>>> print "{:.13E}".format(a)
9.8765432123468E+24

Reported & fixed by ulrich1a
2015-05-08 20:59:32 +02:00
Przemo Firszt
6ab70bece6 FEM: inp file formatting/typos
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-08 20:59:14 +02:00
Przemo Firszt
48efcc449b FEM: Add getccxVolumesByFace and write_face_load functions
getccxVolumesByFace returns std::map<int, int> with ID of volume
and a number of face as per CalculiX definition. The same function is
accessible for python and returns list with the same information, like
this: [[229, 3], [230, 3], [233, 2], [238, 2]]

write_face_load produces something like this in the .inp file:

***********************************************************
** element + CalculiX face + load in [MPa]
** written by write_face_load function
*DLOAD
** Load on face Face2
229,P3,10.0
230,P3,10.0
233,P2,10.0
238,P2,10.0

Optimised by wmayer

Signed-off-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-08 20:58:59 +02:00
Przemo Firszt
be43c7f5c0 FEM: getNodesByVertex should return int not long
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-08 20:58:43 +02:00
Przemo Firszt
3395d4ea02 FEM: getNodesByEdge should return int not long
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-08 20:58:26 +02:00
Przemo Firszt
0e670396fa FEM: getNodesByFace should return int not long
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-08 20:58:07 +02:00
Yorik van Havre
24e310ec57 Arch: Fixed makefile 2015-05-07 18:14:52 -03:00
Yorik van Havre
7b1135a3e9 Arch: moved some ui files to resource 2015-05-07 17:38:24 -03:00
Yorik van Havre
a9ecbdc802 Arch / Draft: reorganized preferences files 2015-05-07 17:06:56 -03:00
wmayer
13070cbe23 + improve doc string 2015-05-04 15:20:23 +02:00
wmayer
74c912f169 + fixes #0002064: Editable text changes in drawing template not restored. 2015-05-02 13:14:38 +02:00
wmayer
f6c25f94de + code cleanup: remove deprecated class ViewProviderPartBase 2015-05-02 00:37:05 +02:00
wmayer
b35d28a941 + whitespace fixes, add curly braces to outer loop 2015-05-01 18:49:20 +02:00
DeepSOIC
24797fb65e Sketcher: allow mass selection for Point-on-object constraint 2015-05-01 18:31:18 +02:00
Przemo Firszt
605e8cd72c FEM: Add comments to .inp file about functions
Adding detailed information which function is responsible for
creating a proticular section of the .inp file should save
some guesswork. An example from the .inp file:

[..]
***********************************************************
** node sets for loads
** written by write_load_node_sets function
*NSET,NSET=FemConstraintForce
1,
3,
[..]

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:30:53 +02:00
Przemo Firszt
beb6cecf59 FEM: Use local variable to avoid long strings in write_constraints_force
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:30:35 +02:00
Przemo Firszt
dec69a8769 FEM: Use local variable to avoid long strings in write_constraints_fixed
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:30:20 +02:00
Przemo Firszt
0b7c02850e FEM: Use local variable to avoid long strings in write_materials
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:30:05 +02:00
Przemo Firszt
5bf115ddba FEM: Use local variable to avoid long strings in write_load_node_sets
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:29:48 +02:00
Przemo Firszt
39fd6d9217 FEM: Material name has to be limited to 80 characters for ccx
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:29:30 +02:00
Przemo Firszt
27e43f6939 FEM: Use local variable to avoid long strings in write_fixed_node_sets
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:29:14 +02:00
Przemo Firszt
d7ae64fb45 FEM: Use local variable to avoid long strings in write_material_element_sets
print material_object['Object'].Name, ':  ', material_object['Object'].Material['Name']

becomes this:

print mat_obj_name, ':  ', mat_name

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:28:57 +02:00
Przemo Firszt
a99a897ae8 FEM: Rename variables f->elem, inpfile->f
The reason behind that change is that auxiliary variables,
like a file handle, should not be too visible. inpfile was
a good description, but we're handling only one file and there
is no need to use a descriptive variable name for it in every function.
It's enough that is used in write_calculix_input_file

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-05-01 17:28:39 +02:00
wmayer
dd2b39ddd6 + fixes #0002075: Analysis of FreeCAD by PVS-Studio static analyzer 2015-05-01 16:56:31 +02:00
Przemo Firszt
f5874a74e4 FEM: Split inp write_calculix_input_file into functions
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:19 +02:00
Przemo Firszt
30a69a5797 FEM: Make sure Young's modulus is written in MPa
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:18 +02:00
Przemo Firszt
ab26d7fd50 FEM: Replace invalid General_description with Description
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:17 +02:00
Przemo Firszt
7036d46bf2 FEM: ccxInpWriter shouldn't do any validation or guessing
Also, there is no need to print material parameters to the console.
User can see that info in dialog box, in .inp file and it's also printed
to console after material has been set.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:17 +02:00
Przemo Firszt
5e48d624e4 FEM: Make sure Edit/Run buttons stay disabled if ccxInpWriter didn't generate .inp file
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:16 +02:00
Przemo Firszt
ed8267643b FEM: Cleaning ccxInpWriter
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:15 +02:00
Przemo Firszt
b61bb54b78 FEM: General_name is invalid since f96f319986
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:14 +02:00
Przemo Firszt
c9a54019aa FEM: Reduce femConsole noise
Showing ccx output during short colculations doesn't make any sense.
During long calculations user is flooded with messages, that ccx
produced empty output.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:14 +02:00
Przemo Firszt
9f7728573d FEM: Remove multiple empty lines produced by ccx before sending to FEM console
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:13 +02:00
Przemo Firszt
bdfe2bafda FEM: Always scroll FEM console to the bottom after adding new message
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:12 +02:00
Przemo Firszt
cd4e71eadd FEM: Typo/white space fix
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:12 +02:00
Przemo Firszt
294939f471 FEM: Rename CalculixLib to ccxFrdReader
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:11 +02:00
Przemo Firszt
d6b2ae8096 FEM: Move .inp writer to InpWriter.py file
Suggested by: bernd
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:10 +02:00
Przemo Firszt
42bc0b57f8 FEM: Remove never used saveMat function
That function won't be used as there is a plan to merge material
handling with Arch wb and Arch wb already has material editor.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:09 +02:00
Przemo Firszt
af4ad9059a FEM: Remove never used colorValue function and FemLib.py file
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:08 +02:00
Przemo Firszt
c6d1052f1f FEM: Force showing Youngs modulus in MPa
That commit fixes inconsistent behaviour of Young's modulus input field
units in FEM material dialog window.

Reported-by: sgrogan
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:08 +02:00
Przemo Firszt
efcfd10a56 FEM: Remove empty python file added with commit 2818bc4ddf
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:07 +02:00
Przemo Firszt
79caef00cb FEM: Fix typo
Reported-by: dubstar-04
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-27 21:33:06 +02:00
wmayer
56ef3b56ec Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-26 22:17:58 +02:00
wmayer
badfa3ad17 + unit test for PropertyEnumeration 2015-04-26 22:17:32 +02:00
Yorik van Havre
69b213b7e5 Arch: Fixed missing cmake entries in last commit 2015-04-26 17:10:52 -03:00
Yorik van Havre
02f938ebdf First groundwork on Arch Schedule tool 2015-04-26 13:57:36 -03:00
wmayer
baf0dc0524 + fix broken unit test 2015-04-25 21:58:41 +02:00
wmayer
67c4dcdf70 Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-24 21:46:19 +02:00
wmayer
2a3edfcd84 + FEM: Add icon to command 2015-04-24 21:45:34 +02:00
Yorik van Havre
c692d6e136 Arch: IFC importer can now recreate extrusions
By enabling the setting in IFC preferences, the IFC
importer can now detect if an input shape is a normal
extrusion, and create the object as a Part::Extrusion.
2015-04-24 16:30:38 -03:00
Yorik van Havre
9967bbe297 Drawing: Symbols can now contain editable texts 2015-04-23 23:13:58 -03:00
wmayer
4db69850fb + FEM: reimplement function to create FEM mesh from shape 2015-04-23 23:36:05 +02:00
wmayer
ec96217335 + FEM: cleanup of unused dialog 2015-04-23 23:11:47 +02:00
Przemo Firszt
7ec585ec18 FEM: Change Start Calculations shortcut to S, C
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:05:44 +02:00
Przemo Firszt
a4429c9ea8 FEM: Change Show Results shortcut to S, R
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:05:27 +02:00
Przemo Firszt
6ba642a3cc FEM: Change New Analysis shortcut to N, A
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:05:06 +02:00
Przemo Firszt
e6d7b7e586 FEM: Change Mechanical Material shortcut to M, M
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:04:50 +02:00
Przemo Firszt
249c2641e0 FEM: Change order of FEM toolbar items
Suggested by wmayer

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:04:31 +02:00
Przemo Firszt
f3b33f52e6 FEM: Reset min/max/avg to the initial state after user selected None
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:04:09 +02:00
Przemo Firszt
31a263ed89 FEM: Show displacement/stress nicely formatted and with proper units
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:03:44 +02:00
Przemo Firszt
bf1ffb612f FEM: Rename min/max to avoid unintentional built-in function overload
min/max are python build-in functions, so we shouldn't use them as variable names

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:03:26 +02:00
Przemo Firszt
dd3c7f1bfb FEM: Fix white spaces
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:03:04 +02:00
Przemo Firszt
129cc88b0b FEM: Ignore unicode conversion errors
Solution suggested by shoogen
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:02:42 +02:00
Przemo Firszt
c5850e510a FEM: Cut material name to 80 characters
CalculiX documentation tells that maximum alowed material name length
is 80 characters, so we have to respect that. Also ccx quietly fails if
that limit is not honoured.

Reported-by: bernd
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:02:22 +02:00
Przemo Firszt
1e026ac477 Material: Use repr instead of backticks
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:02:02 +02:00
Przemo Firszt
4f36439028 Material: Fix white space errors in Material.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:01:39 +02:00
Przemo Firszt
f96f319986 FEM: Change default behaviour of ConfigParser used for materials
ConfigParser changes option capital letters in keys to small letters.
That commit changes it to generate verbatim keys as read from FCMat
files. Also Section names are no longer used to generate material
dictionary.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:01:18 +02:00
Przemo Firszt
9b2f2b15bc FEM: Change way of handling combobox with FEM results
Identification of selected result item is no longer based
on the item string, but on a separate userData. This method
is language agnostic.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 17:00:56 +02:00
Przemo Firszt
d548490a2b FEM: Clean white spaces in MechanicalAnalysis.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 16:59:52 +02:00
Przemo Firszt
f482dc2383 FEM: Clean imports in MechanicalAnalysis.py
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 16:59:30 +02:00
Przemo Firszt
957f723782 FEM: Make sure .inp doesn't contain force values that crash ccx
ccx crashes when a force has too many digits like this:
FemConstraintForce,2,1.5966711853290134e-18
but it's OK with that format:
FemConstraintForce,2,1.5966711853e-18

An example of ccx error:
*ERROR reading *CLOAD. Card image:
FEMCONSTRAINTFORCE,3,1.5966711853290134E-18

This commits adds formatting to make sure the numbers are within ccx
limits.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-23 16:58:57 +02:00
wmayer
13b8d323b2 + FEM: Improve drag and drop for FEM analysis object 2015-04-23 13:31:14 +02:00
Yorik van Havre
bf32404975 added new set of Drawing templates - fixes #2065 #2043 #2005 2015-04-22 19:01:55 -03:00
wmayer
f460cec308 + FEM: Support drag and drop for analysis object 2015-04-22 23:24:43 +02:00
wmayer
bf2266aee3 + hide input shape after creating fem object, give feedback on wrong selection for nodes set 2015-04-22 22:45:07 +02:00
Bernd Hahnebach
f4f7759bba FEM: CalculiX input file, possibility to write more than one material object 2015-04-22 15:28:37 -03:00
wmayer
02b84611b2 + extend Inventor builder, project curve on mesh 2015-04-22 17:15:49 +02:00
wmayer
197aa0c85c + fix bug in read-only InputField, minor Utf-8 issue in meshing dialog 2015-04-22 14:01:27 +02:00
Yorik van Havre
bab894b775 Arch: Better output of ArchVRM renderer 2015-04-20 18:34:40 -03:00
Yorik van Havre
01480a174a Workaround for issue #1963 - Search for templates in userAppData/Templates folder 2015-04-20 12:45:43 -03:00
wmayer
01768b70e7 + FEM: remove useless error message 2015-04-20 11:35:40 +02:00
wmayer
9dfb87d227 + do not translate units 2015-04-20 10:48:06 +02:00
wmayer
225fce9604 + do not translate units 2015-04-19 23:41:27 +02:00
Yorik van Havre
4d630dbc32 Arch: misc improvements to materials and IFC
* Improved IFC export of curved surfaces
* Better icon for materials group
* Fixes in IFC export of materials
2015-04-19 16:34:36 -03:00
wmayer
f12a26b5fb + remove broken command from FEM workbench 2015-04-18 22:06:55 +02:00
Yorik van Havre
3e82f69ca5 Arch: Enabled materials in IFC import & export 2015-04-17 19:43:54 -03:00
wmayer
017e0f38d1 + fixes #0001998: For 32 px and 48 px the icons with a submenu in toolbars are not display at the good size 2015-04-17 23:16:28 +02:00
Przemo Firszt
943ded5774 FEM: Fix typo in fem_console_message name
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
987dddfc78 FEM: Fix rare crash related to the date of compilation of ccx
Printing FEM console message could fail if ccx was compiled in March
and standard output contained double dotted a.
"You are using an executable made on Mi 4. Mär 19:49:02 CET 2015"

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
4b56d3d406 FEM: Fix typo. Rename MathObject to MaterialObject
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
35c5de0782 FEM: No need to check length, empty list evaluates to False
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
25c18729e1 FEM: Disable "open editor" and "run ccx" buttons.
This commit moves checking prerequisites to function. The function
is called before writing .inp file to make sure all required objects
are included in the analysis. "open editor" and "run ccx" buttons are
if check_prerequisites runs successfully.

Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
2d90d39cc3 FEM: Make sure cursor gets restored if write_calculix_input_file fails
Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
d3c7270031 FEM: Fix typos
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
ac5fe442dc FEM: Group all helper functions together
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
b6ea746fa2 FEM: Rename chooseMat to choose_material
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
3066e6b3d0 FEM: Use built-in None material if there was no previous material
Adding material was using by default transient None material that
has no properties assigned. If use accepted that type of material
an attempt to write CalculiX input file was ending up with a crash.
Using built-in None material prevents that situation.

Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
6437beaec1 FEM: Use default True value for material dirs
Defaulting to False was causing problems during migration. The default
checkbox of linked FEM preferences is True, but for the first time users
there was nothing stored in UseBuiltInMaterials, UseMaterialsFromConfigDir
and UseMaterialsFromCustomDir, so the materials were not showing up in
the material ComboBox.

Reported-by: wmayer
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
76aa89b536 FEM: Catch ccx errors and print to FEM console in red
Code by wmayer

http://forum.freecadweb.org/viewtopic.php?f=18&t=10514&p=84921#p84901
2015-04-17 10:51:56 +02:00
Przemo Firszt
2acfadfeef FEM: Change way of converting ccx output to unicode
Previous method was prone to UnicodeDecodeError. The try-catch for
UnicodeDecodeError stays in as additional safety net.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Przemo Firszt
663771f0a4 FEM: Sort materials within each category
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-17 10:51:56 +02:00
Yorik van Havre
6750127a05 Arch: Added materials support 2015-04-15 22:08:54 -03:00
wmayer
38ca5341a6 Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-14 16:34:11 +02:00
wmayer
0c1fb8e4d8 + delay checking for ccx path, handle exceptions 2015-04-14 16:33:44 +02:00
Przemo Firszt
84467808a4 FEM: Use get_material_data in print_mat_data function
get_material_name provides material name in a safe way, so there is
no need to check in General_name exists in material definition

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:46 +02:00
Przemo Firszt
9eb6cf7480 FEM: Clean code to remove space-after-comma flake8 warning
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:45 +02:00
Przemo Firszt
abefd40bb7 FEM: Add Preferences option to hide materials from user defined directory
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:45 +02:00
Przemo Firszt
1d5b4709fe FEM: Add Preferences option to hide materials from .FreeCAD/Materials directory
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:44 +02:00
Przemo Firszt
32a51db481 FEM: Add Preferences option to hide built in materials
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:43 +02:00
Przemo Firszt
956e5f0da0 FEM: Remove self.params
It doesn't make sense to pull preferences in __init__ for later use as
they change dependin on user action.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:43 +02:00
Przemo Firszt
5040266320 FEM: Add message about reverting material after user clicked Cancel button
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:42 +02:00
Przemo Firszt
9205db4b77 FEM: Fix problem with lost values after editing material properties
Now a valid value is stored immediately into object material.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:41 +02:00
Przemo Firszt
75fcae04b9 FEM: Compare material using all properies and handle non-local materials
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:41 +02:00
Przemo Firszt
c091b87459 FEM: Rename comboBox_MaterialsInDir to cb_materials
The combo box no longer stores materials from just one dir, so name
needs to be changed

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:40 +02:00
Przemo Firszt
8113463e1e FEM: Import all materials in init instead of on-demand import
On-demand import is no longer good enough as we have 3 different
material directories and materials may have non-unique names.
A material is now identified by a full file path.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:39 +02:00
Przemo Firszt
343225dcc2 FEM: Show material description below combo box
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:39 +02:00
Przemo Firszt
97f5f76433 FEM: Add function for adding materiales from a directory
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:38 +02:00
Przemo Firszt
7cb4df59f7 FEM: Use chooseMat directly set set initial value for material
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:37 +02:00
Przemo Firszt
9a9f7e64a5 FEM: Add icons to materials
Add icons to distinguish where the material is from. FreeCAD icon for
build-in materials, notmal material icon for materials from user
preferences directory which is "~/.FreeCAD/Materials" on linux or
from an user defined location defined in FEM preferences.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:36 +02:00
Przemo Firszt
f7fd04aa2b FEM: Add option to define custom material directory
That commit also tidies up FEM preferences, so all file
choosers have the same width

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:36 +02:00
Przemo Firszt
0039ea9e72 FEM: Rename dirname to sytem_mat_dir
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:35 +02:00
Przemo Firszt
54ae984650 FEM: Read materials from user settings directory
That commit also adds python function getUserAppDataDir that calls
Application::getUserAppDataDir()

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:34 +02:00
Przemo Firszt
b7bb4346da FEM: Fill default ccx binary location in Preferences
ccx path is filled for linux and windows if it was empty.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:33 +02:00
Przemo Firszt
bf179d9f78 FEM: Add option to define ccx path in Preferences
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
2015-04-14 15:25:32 +02:00
Sebastian Hoogen
7ddd9d2ce0 check BoundingBox before calling distToShape
to find intersecting edges. issue #2050
2015-04-14 10:12:04 -03:00
wmayer
f6638d49ce + improve abaqus export 2015-04-14 13:33:20 +02:00
wmayer
2dc1890fd2 + fix rendering problems for FEM elements 2015-04-13 22:11:27 +02:00
wmayer
1c79de55ed + workaround for limit of length of file names 2015-04-13 18:23:30 +02:00
wmayer
618192fca5 + fix critical memory leak 2015-04-13 17:24:54 +02:00
wmayer
f53fd0fe90 + allow PNG format with POV-Ray 3.7 on Windows 2015-04-13 11:12:14 +02:00
wmayer
0c0365bb49 Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-13 10:33:39 +02:00
wmayer
d9b6007722 + fix wrong template path for Raytracing/Lux project 2015-04-13 10:33:10 +02:00
Yorik van Havre
a7c346606f Material: Fixed bug in cmake file from commit 6685ae0 2015-04-12 19:21:32 -03:00
wmayer
3e1e5974f0 Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-12 18:39:27 +02:00
wmayer
8991b9e04b + add Document::sendMsgToFirstView, fix memory leak 2015-04-12 18:39:01 +02:00
Yorik van Havre
6685ae0142 Material: Added prefix to steel material cards 2015-04-12 13:31:49 -03:00
wmayer
52db9a6cff + set shape color when reading STEP with colors 2015-04-12 12:43:21 +02:00
wmayer
2a5659c36b Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code 2015-04-11 22:30:36 +02:00