Commit Graph

992 Commits

Author SHA1 Message Date
Eivind Kvedalen
04b176ebfb PartDesign Hole Feature implemented.
Minor contributions from Mateusz Skowroński <skowri@gmail.com>
2017-07-26 23:39:00 +02:00
Eivind Kvedalen
04065564ae Make PartDesign::ProfileBased::onChanged(...) protected (not private). 2017-07-26 23:39:00 +02:00
Kurt Kremitzki
394c9f12c0 PDN: Update ellipsoid primitive test for OCC < 7 2017-07-26 23:16:12 +02:00
Kurt Kremitzki
7f34faa8b8 PDN: Make Loft and Pipe claim children correctly 2017-07-26 23:16:12 +02:00
Kurt Kremitzki
373d81b2bc PDN: Make Loft hide its sections when task dialog accepted 2017-07-26 23:16:12 +02:00
Kurt Kremitzki
c62a773cee PDN: Add tests for Boolean, MultiTransform, Primitives, Shapebinder 2017-07-26 23:16:12 +02:00
Yorik van Havre
80ad5737f0 Fixed typo - crowdin issue 2017-07-24 11:02:52 -03:00
wmayer
9ff76fc813 try to fix tolerance if shape is broken after fillet/chamfer operation 2017-07-24 12:29:46 +02:00
wmayer
488c1a1fdf handle exception thrown by BRepBuilderAPI_RefineModel 2017-07-23 15:46:57 +02:00
wmayer
7cfc084e47 fixes #0003122: FC 0.17 crashes when a sketched located outside a body object 2017-07-16 16:56:06 +02:00
Kurt Kremitzki
4331a8073c Add missing assertions for PartDesign Datum tests 2017-07-11 06:23:25 -05:00
Kurt Kremitzki
58d0b31752 Revise PartDesign Draft base test approach 2017-07-11 06:22:52 -05:00
Kurt Kremitzki
544e6587cb Add linear and polar pattern tests 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
d9277c4567 Flesh out basic dressup feature tests 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
fb5aeeaa7b Add dressup feature test structure 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
4eb59453e7 Break out PartDesign tests into own folder 2017-07-11 02:27:38 -05:00
Kurt Kremitzki
b12831be9e Revise PartDesign Loft tests to avoid sketches with shared edges failure in OCC < 7 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
2f6f00100f Revise PartDesign Loft tooltips 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
027418a16d Make PartDesign Loft have different tooltip than PartDesign Pipe 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
e1b78ab91f Add basic PartDesign::Loft test cases 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
220a63a849 Add basic PartDesign AdditivePipe and SubtractivePipe tests 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
7f03cca88c Check PartDesign::AdditivePipe's auxiliary spine for existence before deciding its externality 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
338c610cd9 Update PartDesign tests for CreateRectangleSketch refactor 2017-07-01 19:30:49 -05:00
Kurt Kremitzki
9c253eba8d Iterate over faces in testPocketToFaceCase 2017-06-21 00:10:38 -05:00
Kurt Kremitzki
df06c1e1c4 Update testPocketToFaceCase to handle OCC<7 face-naming inconsistency 2017-06-20 23:10:24 -05:00
Kurt Kremitzki
dfb3c41b65 Add pocket to face test case 2017-06-20 15:26:23 -05:00
Kurt Kremitzki
e4b61cad76 Add PartDesign Pocket tests 2017-06-20 15:26:23 -05:00
Kurt Kremitzki
3542140854 Use assertAlmostEqual and remove deprecated failUnless 2017-06-20 15:26:22 -05:00
Kurt Kremitzki
5b2c0fcccd Complete PartDesign::Pad test cases 2017-06-20 15:26:22 -05:00
wmayer
8b0fb352fd do not let unit test for revolution fail if refinement option is on 2017-06-19 21:09:43 +02:00
wmayer
989fe4028e various fixes:
+ fix typos
+ fix const correctness
+ whitespace improvements
2017-06-19 17:18:16 +02:00
Stefan Tröger
bfb95e3d12 Partially fix PartDesign move test 2017-06-19 15:37:09 +02:00
Stefan Tröger
f9200f4502 Extend python interface for groups and fix test cases 2017-06-19 15:37:09 +02:00
Stefan Tröger
183a4b4ef3 GeoFeatureGroup: Handle drag into document 2017-06-19 15:37:09 +02:00
wmayer
07fd41f4fc use assertAlmostEqual for comparison with floating numbers 2017-06-16 00:15:22 +02:00
Kurt Kremitzki
944a111c2f Add PartDesign_Mirrored test based on additive primitive 2017-06-16 00:15:22 +02:00
Kurt Kremitzki
01cca0ba53 Add PartDesign_Mirrored offset failure test 2017-06-16 00:15:22 +02:00
Abdullah Tahiri
ab48fdb6f5 render both faces 2017-06-16 00:15:22 +02:00
Kurt Kremitzki
6f18ce63ed Show failure message when part design transformation does not intersect 2017-06-16 00:15:22 +02:00
Abdullah Tahiri
ff188383a1 Fix transformation support, so that support is updated with any previous transformation executed 2017-06-16 00:15:22 +02:00
wmayer
c1070e5e8e NULL is defined as nullptr on FreeBSD and causes a build failure
For more information see: https://forum.freecadweb.org/viewtopic.php?f=4&t=22897&p=177660#p177660
2017-06-11 18:48:23 +02:00
Yorik van Havre
6e0f060e96 Fixed typo errors 2017-06-07 16:01:22 -03:00
Abdullah Tahiri
4b042536f8 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
7863a63659 Fillet Feature: Return if radius <= 0 2017-05-30 23:09:29 +02:00
Abdullah Tahiri
2686f51c57 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
Kurt Kremitzki
ee1d9533ee Invert test case 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
5dceccda52 Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
24728b4fa1 Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
7858b470bc Add PartDesignMirrored test 2017-05-29 12:59:00 -03:00
Kurt Kremitzki
0ca3f6c4b3 Change TestPartDesignApp to spaces and unix line endings 2017-05-29 12:59:00 -03:00