Commit Graph

8349 Commits

Author SHA1 Message Date
sliptonic
29130de609 Path: make cursor reflect busy
Path: fix label buy in PathProfileEdges

Path: cleanup
2017-05-31 23:38:59 +02:00
sliptonic
7bccfff0de Path: More work on PathMillFace to remove old heeks dependency 2017-05-31 23:38:59 +02:00
sliptonic
0d9b2fc3e7 Path: TD version of getEnvelope for testing. 2017-05-31 23:38:59 +02:00
sliptonic
59fd1d0c81 Path: Engrave was using safeheight and clearance incorrectly. 2017-05-31 23:38:59 +02:00
sliptonic
67efac641f Path: engrave will do arrays 2017-05-31 23:38:59 +02:00
sliptonic
27b097c570 PATH: conversion of PathContour to PathArea nearly complete
Path: improve contour to use makeSections
2017-05-31 23:38:59 +02:00
sliptonic
c7acb2db3d Path: use verbose mode for fromShapes() to get relative arc centers 2017-05-31 23:38:59 +02:00
sliptonic
ac9a05368b PATH: Smoothie post for laser
includes spindle speed (power) on every line
2017-05-31 23:38:59 +02:00
sliptonic
bccc959f2d Path: Convert Contour and MillFace to use PathArea 2017-05-31 23:38:59 +02:00
Zheng, Lei
5bfc0757c0 Path.Command: fix toGCode() bug introduced in 31781eed
* output 6 digits instead of 5
* fixed negative value output
2017-05-31 23:50:05 +08:00
Abdullah Tahiri
70a9cce767 Notification to the user that a body is not active when inserting a datum entity - fixes #2511 2017-05-31 02:41:29 +02:00
Abdullah Tahiri
0b3bec3396 Fillet Feature: Return if radius <= 0 2017-05-30 23:09:29 +02:00
Zheng, Lei
7574429615 Path.Command: rounding instead of truncate in toGCode
Also changed default Path.Area pareameter ClipperScale to 1e6 which
corresponds to the default 5 digits output of Path.Command toGCode()
2017-05-30 18:49:34 +02:00
crobarcro
8482d2865e TopoShapeEdgePy.xml: improved docstrings
Corrected docstrings for *At methods (valueAt, tangentAt etc.) to explain parameter position meaning

Improved docstrings for FirstParameter, LastParameter, Length and getParameterByLength
2017-05-30 18:09:33 +02:00
WandererFan
d8eec8c7e1 Fix #1937 mis-shapen projections in TechDraw and Drawing
Complex curves need more bezier segments for accurate representation.
2017-05-30 15:44:38 +02:00
Abdullah Tahiri
b4e942c08b Checking for Document Restoring when extension has a null property
==================================================================

The problem:

OriginGroupExtension::OriginGroupExtension () {

    initExtensionType(OriginGroupExtension::getExtensionClassTypeId());

    EXTENSION_ADD_PROPERTY_TYPE ( Origin, (0), 0, App::Prop_Hidden, "Origin linked to the group" );
}

initializes the Origin property to null.

Then Document::Restore => readObjects => addObject => slotNewObject => ViewProviderDocumentObject::updateView => ViewProviderBody::updateData => ViewProviderGeometryObject::updateData =>
ViewProviderDocumentObject::updateData => ViewProvider::updateData => ViewProviderOriginGroupExtension::extensionUpdateData => updateOriginSize() => OriginGroupExtension::getOrigin,

the latter throws an exception because the origin property is null.

Afterwards, the origin property is initialized during Document::Restore => readObjects => ExtensionContainer::Restore() => PropertyContainer::Restore() => App::PropertyLink::Restore()
=> App::PropertyLink::setValue() => Property::hasSetValue, which triggers an onChange: Body::onChanged => BodyBase::onChanged => Feature::onChanged => DocumentObject::onChanged =>
Document::onChangedProperty => Document::slotChangedObject => ViewProviderOriginGroupExtension::slotChangedObjectGui => ViewProviderOriginGroupExtension::updateOriginSize =>
OriginGroupExtension::getOrigin,

now, the latter that is the same that was throwing the exception and generating the error message above, does not throw anymore because Origin has been initialized.

When creating a new object, isNew==true; whereas when loading a file, isNew==false. Therefore, when loading a file setupObject is not executed. SetupObject, effectively initializes
the extension via: Body::setupObject => DocumentObject::setupObject => OriginGroupExtension::onExtendedSetupObject.

DocumentObject * Document::addObject(const char* sType, const char* pObjectName, bool isNew)
{
    [more code here]
    // Call the object-specific initialization
    if (!d->undoing && !d->rollback && isNew) {
        pcObject->setupObject ();
    }
    [more code here]

As DocumentObject code is generic for all objects (workbenches), by design it was chosen to initialize the object only if new. Therefore a object or an extension of a object being restored,
between the addition (addObject) and the restoring of the properties, must by design expect it not to be initialized.

The solution:

Making use of the Restore flag at document level (the one at object level is not sufficient), no exception regarding the null property is reported during document restoring.

Ticket:
https://freecadweb.org/tracker/view.php?id=2530

fixes #2530
2017-05-30 13:01:45 +02:00
Yorik van Havre
b229abb127 Arch Fixed wrong direction of preset structures 2017-05-29 18:02:36 -03:00
Yorik van Havre
28f315f4f6 Draft: First version of Draft Label object 2017-05-29 16:57:25 -03:00
wmayer
86e328a248 check for valid vertexes when measuring angles between two edges 2017-05-29 20:49:35 +02:00
wmayer
a863938aa8 handle OCC exception when accessing point of a vertex 2017-05-29 20:36:06 +02:00
Kurt Kremitzki
3c85146c18 Invert test case 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
ad6ba53577 Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
36d4012b1e Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
c85de2dba1 Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
c4a0d748ed Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00
wmayer
e694d7f90d properly raise exception in TopoShapePy::check 2017-05-29 16:52:44 +02:00
Yorik van Havre
0bead2c1d4 Arch: Small fix in site creation 2017-05-28 19:49:32 -03:00
Yorik van Havre
2a59e2ec67 Using PropertyFont in Arch, Draft 2017-05-27 22:55:56 -03:00
Bernd Hahnebach
0a387ea8e9 Test: add a def to run all test case clases from a test module 2017-05-27 20:38:50 -03:00
Amritpal Singh
ddfd793bb3 added PlacementList property for the Rebar object 2017-05-27 20:02:40 -03:00
Bernd Hahnebach
b0986504d7 FEM: group meshing, add some checks and output to catch some problems 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
831e69cfd1 FEM: code formating, change tabs in spaces 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
9e697e593a FEM: Fenics meshes, flake8 2017-05-27 19:57:28 -03:00
joha2
9edcbe2dd5 FEM: Fenics meshes, add support for xdmf format, some more improvements 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
62a823854f FEM: constraint pressure, add support for shell meshes if they have group data 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
1ef1ff52db FEM: ccx writer and mesh tools, fix bug in mesh group search 2017-05-27 19:57:28 -03:00
Bernd Hahnebach
fbc2ffad6b FEM: unittest, move mesh creation at end of test object creation 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
d5731d3147 FEM: unittest, get rid of not useful self. 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
31966c577c FEM: unittest, move all CCX analysis tests in one test case class 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
3392b7268e FEM: unittest, get rid of duplicates and move them to helpers 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
2fbe2d715f FEM: unittest, move unv test out of analysis test case 2017-05-27 19:57:27 -03:00
Bernd Hahnebach
3029f85008 FEM: unittest, update result files and FreeCAD files 2017-05-27 19:57:27 -03:00
Sabin Iacob
02e0278e45 Path: use the actual values instead of absolute values when calculating distance 2017-05-27 19:52:21 -03:00
Sabin Iacob
4778d59bfa Path: add zmax to the job weight so we drill the holes that are closer to the surface first 2017-05-27 19:52:21 -03:00
Sabin Iacob
f0ac7ad884 Path: re-add the fix from https://github.com/FreeCAD/FreeCAD/pull/725 2017-05-27 19:52:21 -03:00
Sabin Iacob
f4139b43d0 Path: make PathUtil.sort_jobs more generic, allow tuning job weights 2017-05-27 19:52:21 -03:00
Simon
f1bd61b94a Fix incomplete creation of an SVG path from edges.
* Observed bug: If an ArchWindow has two opening symbols (i.e. two sides
  that can be opened), only one was printed in SVG.
* In Draft.getSVG.getPath, some edges got lost in the call of
  Part.__sortEdges__. In contrast, Part.sortEdges does not skip edges. All
  edges are retained.
* With this fix, both opening symbols are rendered in Draft.getSVG.
* While it works for my test case, I suppose, Draft.getSVG.getPath is
  used in some other places as well. Thus, side effects must be checked
  by experienced people.
2017-05-27 19:49:20 -03:00
Simon
03c1497892 Add opening symbols to clones of windows
The method execute must create the sshapes and vshapes objects. They must
1. exist in the cloned (parent) object (by calling the execute function)
2. and be copied to the clone object.
Then the SVG rendering in ArchSectionPlan can find it.
2017-05-27 19:49:20 -03:00
Abdullah Tahiri
4e9c5bd4c6 fixes #0003018 2017-05-26 23:28:08 +02:00
Yorik van Havre
8f7c90e6ee AddonManager: Introduced SSL fix discussed on FreeCAD-addon issue #11 2017-05-25 10:48:17 -03:00