Sketcher: allow referencing everything; add testing for circular references
This commit is contained in:
parent
a1557d07da
commit
3df305cc4e
|
@ -1707,7 +1707,14 @@ bool SketchObject::isExternalAllowed(App::Document *pDoc, App::DocumentObject *p
|
||||||
// Externals outside of the Document are NOT allowed
|
// Externals outside of the Document are NOT allowed
|
||||||
if (this->getDocument() != pDoc)
|
if (this->getDocument() != pDoc)
|
||||||
return false;
|
return false;
|
||||||
|
try {
|
||||||
|
return this->testIfLinkDAGCompatible(pObj);
|
||||||
|
} catch (Base::Exception &e) {
|
||||||
|
Base::Console().Warning("Probably, there is a circular reference in the document. Error: %s\n", e.what());
|
||||||
|
return true; //prohibiting this reference won't remove the problem anyway...
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// Note: Checking for the body of the support doesn't work when the support are the three base planes
|
// Note: Checking for the body of the support doesn't work when the support are the three base planes
|
||||||
App::DocumentObject *support = this->Support.getValue();
|
App::DocumentObject *support = this->Support.getValue();
|
||||||
Part::BodyBase* body = Part::BodyBase::findBodyOf(this);
|
Part::BodyBase* body = Part::BodyBase::findBodyOf(this);
|
||||||
|
@ -1723,6 +1730,7 @@ bool SketchObject::isExternalAllowed(App::Document *pDoc, App::DocumentObject *p
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
int SketchObject::addSymmetric(const std::vector<int> &geoIdList, int refGeoId, Sketcher::PointPos refPosId/*=Sketcher::none*/)
|
int SketchObject::addSymmetric(const std::vector<int> &geoIdList, int refGeoId, Sketcher::PointPos refPosId/*=Sketcher::none*/)
|
||||||
|
|
|
@ -4479,13 +4479,13 @@ namespace SketcherGui {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Note: its better to search the support of the sketch in case the sketch support is a base plane
|
// Note: its better to search the support of the sketch in case the sketch support is a base plane
|
||||||
Part::BodyBase* body = Part::BodyBase::findBodyOf(sketch);
|
//Part::BodyBase* body = Part::BodyBase::findBodyOf(sketch);
|
||||||
if ( body && body->hasFeature ( pObj ) && body->isAfter ( pObj, sketch ) ) {
|
//if ( body && body->hasFeature ( pObj ) && body->isAfter ( pObj, sketch ) ) {
|
||||||
// Don't allow selection after the sketch in the same body
|
// Don't allow selection after the sketch in the same body
|
||||||
// NOTE: allowness of features in other bodies is handled by SketchObject::isExternalAllowed()
|
// NOTE: allowness of features in other bodies is handled by SketchObject::isExternalAllowed()
|
||||||
// TODO may be this should be in SketchObject::isExternalAllowed() (2015-08-07, Fat-Zer)
|
// TODO may be this should be in SketchObject::isExternalAllowed() (2015-08-07, Fat-Zer)
|
||||||
return false;
|
//return false;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (!sSubName || sSubName[0] == '\0')
|
if (!sSubName || sSubName[0] == '\0')
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user