diff --git a/src/Mod/Part/App/FeaturePartBoolean.cpp b/src/Mod/Part/App/FeaturePartBoolean.cpp index fae60330d7..e04bfac8b2 100644 --- a/src/Mod/Part/App/FeaturePartBoolean.cpp +++ b/src/Mod/Part/App/FeaturePartBoolean.cpp @@ -47,6 +47,13 @@ Boolean::Boolean(void) ADD_PROPERTY_TYPE(History,(ShapeHistory()), "Boolean", (App::PropertyType) (App::Prop_Output|App::Prop_Transient|App::Prop_Hidden), "Shape history"); History.setSize(0); + + ADD_PROPERTY_TYPE(Refine,(0),"Boolean",(App::PropertyType)(App::Prop_None),"Refine shape (clean up redundant edges) after this boolean operation"); + + //init Refine property + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part/Boolean"); + this->Refine.setValue(hGrp->GetBool("RefineModel", false)); } short Boolean::mustExecute() const @@ -102,7 +109,7 @@ App::DocumentObjectExecReturn *Boolean::execute(void) history.push_back(buildHistory(*mkBool.get(), TopAbs_FACE, resShape, BaseShape)); history.push_back(buildHistory(*mkBool.get(), TopAbs_FACE, resShape, ToolShape)); - if (hGrp->GetBool("RefineModel", false)) { + if (this->Refine.getValue()) { try { TopoDS_Shape oldShape = resShape; BRepBuilderAPI_RefineModel mkRefine(oldShape); diff --git a/src/Mod/Part/App/FeaturePartBoolean.h b/src/Mod/Part/App/FeaturePartBoolean.h index a224809c0f..72ec174178 100644 --- a/src/Mod/Part/App/FeaturePartBoolean.h +++ b/src/Mod/Part/App/FeaturePartBoolean.h @@ -42,6 +42,7 @@ public: App::PropertyLink Base; App::PropertyLink Tool; PropertyShapeHistory History; + App::PropertyBool Refine; /** @name methods override Feature */ //@{ diff --git a/src/Mod/Part/App/FeaturePartCommon.cpp b/src/Mod/Part/App/FeaturePartCommon.cpp index 51543a2102..ad7df72161 100644 --- a/src/Mod/Part/App/FeaturePartCommon.cpp +++ b/src/Mod/Part/App/FeaturePartCommon.cpp @@ -66,6 +66,13 @@ MultiCommon::MultiCommon(void) ADD_PROPERTY_TYPE(History,(ShapeHistory()), "Boolean", (App::PropertyType) (App::Prop_Output|App::Prop_Transient|App::Prop_Hidden), "Shape history"); History.setSize(0); + + ADD_PROPERTY_TYPE(Refine,(0),"Boolean",(App::PropertyType)(App::Prop_None),"Refine shape (clean up redundant edges) after this boolean operation"); + + //init Refine property + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part/Boolean"); + this->Refine.setValue(hGrp->GetBool("RefineModel", false)); } short MultiCommon::mustExecute() const @@ -145,7 +152,7 @@ App::DocumentObjectExecReturn *MultiCommon::execute(void) return new App::DocumentObjectExecReturn("Resulting shape is invalid"); } } - if (hGrp->GetBool("RefineModel", false)) { + if (this->Refine.getValue()) { try { TopoDS_Shape oldShape = resShape; BRepBuilderAPI_RefineModel mkRefine(oldShape); diff --git a/src/Mod/Part/App/FeaturePartCommon.h b/src/Mod/Part/App/FeaturePartCommon.h index 68256d656c..fbcb7e6739 100644 --- a/src/Mod/Part/App/FeaturePartCommon.h +++ b/src/Mod/Part/App/FeaturePartCommon.h @@ -54,6 +54,7 @@ public: App::PropertyLinkList Shapes; PropertyShapeHistory History; + App::PropertyBool Refine; /** @name methods override feature */ //@{ diff --git a/src/Mod/Part/App/FeaturePartFuse.cpp b/src/Mod/Part/App/FeaturePartFuse.cpp index 389f2849b7..e22b5f5265 100644 --- a/src/Mod/Part/App/FeaturePartFuse.cpp +++ b/src/Mod/Part/App/FeaturePartFuse.cpp @@ -65,6 +65,14 @@ MultiFuse::MultiFuse(void) ADD_PROPERTY_TYPE(History,(ShapeHistory()), "Boolean", (App::PropertyType) (App::Prop_Output|App::Prop_Transient|App::Prop_Hidden), "Shape history"); History.setSize(0); + + ADD_PROPERTY_TYPE(Refine,(0),"Boolean",(App::PropertyType)(App::Prop_None),"Refine shape (clean up redundant edges) after this boolean operation"); + + //init Refine property + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part/Boolean"); + this->Refine.setValue(hGrp->GetBool("RefineModel", false)); + } short MultiFuse::mustExecute() const @@ -169,7 +177,7 @@ App::DocumentObjectExecReturn *MultiFuse::execute(void) return new App::DocumentObjectExecReturn("Resulting shape is invalid"); } } - if (hGrp->GetBool("RefineModel", false)) { + if (this->Refine.getValue()) { try { TopoDS_Shape oldShape = resShape; BRepBuilderAPI_RefineModel mkRefine(oldShape); diff --git a/src/Mod/Part/App/FeaturePartFuse.h b/src/Mod/Part/App/FeaturePartFuse.h index 6abae82ac8..49881d873f 100644 --- a/src/Mod/Part/App/FeaturePartFuse.h +++ b/src/Mod/Part/App/FeaturePartFuse.h @@ -55,6 +55,7 @@ public: App::PropertyLinkList Shapes; PropertyShapeHistory History; + App::PropertyBool Refine; /** @name methods override feature */ //@{