From c726b69d7ede5b1af82407c515e14375f3358be3 Mon Sep 17 00:00:00 2001 From: luz paz Date: Wed, 9 Nov 2022 22:10:32 -0500 Subject: [PATCH] PD: remove trailing whitespace --- src/Mod/PartDesign/App/DatumCS.cpp | 4 +- src/Mod/PartDesign/App/DatumLine.h | 4 +- src/Mod/PartDesign/App/Feature.cpp | 4 +- src/Mod/PartDesign/App/Feature.h | 8 +- src/Mod/PartDesign/App/FeatureAddSub.h | 4 +- src/Mod/PartDesign/App/FeatureBase.cpp | 24 +- src/Mod/PartDesign/App/FeatureBase.h | 8 +- src/Mod/PartDesign/App/FeatureBoolean.cpp | 8 +- src/Mod/PartDesign/App/FeatureChamfer.cpp | 10 +- src/Mod/PartDesign/App/FeatureDraft.cpp | 2 +- src/Mod/PartDesign/App/FeatureDressUp.cpp | 2 +- src/Mod/PartDesign/App/FeatureExtrude.h | 2 +- src/Mod/PartDesign/App/FeatureFillet.cpp | 6 +- src/Mod/PartDesign/App/FeatureGroove.cpp | 6 +- src/Mod/PartDesign/App/FeatureHole.cpp | 2 +- src/Mod/PartDesign/App/FeaturePad.cpp | 2 +- src/Mod/PartDesign/App/FeaturePrimitive.h | 108 +++--- src/Mod/PartDesign/App/FeaturePy.xml | 6 +- src/Mod/PartDesign/App/FeaturePyImp.cpp | 2 +- src/Mod/PartDesign/App/FeatureRevolution.cpp | 6 +- src/Mod/PartDesign/App/FeatureSolid.h | 2 +- src/Mod/PartDesign/App/FeatureThickness.h | 2 +- src/Mod/PartDesign/App/PreCompiled.cpp | 2 +- src/Mod/PartDesign/FeatureHole/HoleGui.py | 4 +- src/Mod/PartDesign/FeatureHole/Standards.py | 312 +++++++++--------- src/Mod/PartDesign/Gui/CommandBody.cpp | 6 +- src/Mod/PartDesign/Gui/CommandPrimitive.cpp | 2 +- src/Mod/PartDesign/Gui/PreCompiled.cpp | 2 +- .../PartDesign/Gui/TaskDatumParameters.cpp | 2 +- src/Mod/PartDesign/Gui/TaskDatumParameters.h | 4 +- .../PartDesign/Gui/TaskDressUpParameters.cpp | 6 +- .../PartDesign/Gui/TaskFeatureParameters.cpp | 2 +- .../PartDesign/Gui/TaskFilletParameters.cpp | 2 +- .../Gui/TaskLinearPatternParameters.cpp | 2 +- .../PartDesign/Gui/TaskMirroredParameters.cpp | 2 +- .../Gui/TaskPrimitiveParameters.cpp | 2 +- .../PartDesign/Gui/TaskPrimitiveParameters.h | 2 +- src/Mod/PartDesign/Gui/TaskShapeBinder.cpp | 2 +- src/Mod/PartDesign/Gui/TaskShapeBinder.h | 4 +- .../Gui/TaskThicknessParameters.cpp | 4 +- .../PartDesign/Gui/TaskTransformedMessages.h | 4 +- src/Mod/PartDesign/Gui/Utils.cpp | 2 +- src/Mod/PartDesign/Gui/ViewProviderAddSub.cpp | 4 +- src/Mod/PartDesign/Gui/ViewProviderAddSub.h | 8 +- src/Mod/PartDesign/Gui/ViewProviderBody.cpp | 6 +- src/Mod/PartDesign/Gui/ViewProviderBody.h | 4 +- src/Mod/PartDesign/Gui/ViewProviderBoolean.h | 4 +- .../PartDesign/Gui/ViewProviderDatumCS.cpp | 6 +- src/Mod/PartDesign/Gui/ViewProviderDressUp.h | 4 +- src/Mod/PartDesign/Gui/ViewProviderHole.h | 2 +- src/Mod/PartDesign/Gui/ViewProviderLoft.h | 4 +- src/Mod/PartDesign/Gui/ViewProviderMainPart.h | 2 +- src/Mod/PartDesign/Gui/ViewProviderPipe.h | 6 +- .../PartDesign/Gui/ViewProviderPrimitive.h | 8 +- .../PartDesign/Gui/ViewProviderShapeBinder.h | 8 +- src/Mod/PartDesign/Init.py | 4 +- src/Mod/PartDesign/InvoluteGearFeature.py | 74 ++--- .../PartDesign/PartDesignTests/TestBoolean.py | 2 +- src/Mod/PartDesign/PartDesignTests/TestPad.py | 2 +- .../PartDesign/PartDesignTests/TestPipe.py | 12 +- src/Mod/PartDesign/Scripts/Epitrochoid.py | 2 +- src/Mod/PartDesign/SprocketFeature.py | 56 ++-- .../PartDesign/WizardShaft/SegmentFunction.py | 74 ++--- src/Mod/PartDesign/WizardShaft/Shaft.py | 160 ++++----- .../PartDesign/WizardShaft/ShaftDiagram.py | 4 +- .../PartDesign/WizardShaft/ShaftFeature.py | 4 +- src/Mod/PartDesign/fcgear/involute.py | 6 +- src/Mod/PartDesign/fcsprocket/README.md | 2 +- .../PartDesign/fcsprocket/fcsprocketdialog.py | 2 +- src/Mod/PartDesign/fcsprocket/sprocket.py | 6 +- 70 files changed, 533 insertions(+), 533 deletions(-) diff --git a/src/Mod/PartDesign/App/DatumCS.cpp b/src/Mod/PartDesign/App/DatumCS.cpp index e78eeb1126..f5a1493b72 100644 --- a/src/Mod/PartDesign/App/DatumCS.cpp +++ b/src/Mod/PartDesign/App/DatumCS.cpp @@ -71,7 +71,7 @@ Base::Vector3d CoordinateSystem::getYAxis() rot.multVec(Base::Vector3d(0,1,0), normal); return normal; } - + Base::Vector3d CoordinateSystem::getZAxis() { Base::Rotation rot = Placement.getValue().getRotation(); @@ -80,7 +80,7 @@ Base::Vector3d CoordinateSystem::getZAxis() return normal; } -App::DocumentObject *CoordinateSystem::getSubObject(const char *subname, +App::DocumentObject *CoordinateSystem::getSubObject(const char *subname, PyObject **pyObj, Base::Matrix4D *pmat, bool transform, int) const { if(pmat && transform) diff --git a/src/Mod/PartDesign/App/DatumLine.h b/src/Mod/PartDesign/App/DatumLine.h index 8faa330fb9..7e5af1b0c5 100644 --- a/src/Mod/PartDesign/App/DatumLine.h +++ b/src/Mod/PartDesign/App/DatumLine.h @@ -43,13 +43,13 @@ public: App::PropertyEnumeration ResizeMode; App::PropertyLength Length; void onChanged(const App::Property *prop) override; - + const char* getViewProviderName() const override { return "PartDesignGui::ViewProviderDatumLine"; } Base::Vector3d getDirection() const; - + private: static const char* ResizeModeEnums[]; }; diff --git a/src/Mod/PartDesign/App/Feature.cpp b/src/Mod/PartDesign/App/Feature.cpp index 9ac0fe8c8a..257ef40234 100644 --- a/src/Mod/PartDesign/App/Feature.cpp +++ b/src/Mod/PartDesign/App/Feature.cpp @@ -226,11 +226,11 @@ Body* Feature::getFeatureBody() const { for (auto in : list) { if(in->isDerivedFrom(Body::getClassTypeId()) && //is Body? static_cast(in)->hasObject(this)) { //is part of this Body? - + return static_cast(in); } } - + return nullptr; } diff --git a/src/Mod/PartDesign/App/Feature.h b/src/Mod/PartDesign/App/Feature.h index 40c21e17f1..347cf4c884 100644 --- a/src/Mod/PartDesign/App/Feature.h +++ b/src/Mod/PartDesign/App/Feature.h @@ -62,7 +62,7 @@ public: /// Returns the body the feature is in, or none Body* getFeatureBody() const; - + /** * Returns the BaseFeature property's object (if any) * @param silent if couldn't determine the base feature and silent == true, @@ -86,11 +86,11 @@ protected: /** * Get a solid of the given shape. If no solid is found an exception is raised. */ - static TopoDS_Shape getSolid(const TopoDS_Shape&); - static int countSolids(const TopoDS_Shape&, TopAbs_ShapeEnum type = TopAbs_SOLID ); + static TopoDS_Shape getSolid(const TopoDS_Shape&); + static int countSolids(const TopoDS_Shape&, TopAbs_ShapeEnum type = TopAbs_SOLID ); /// Grab any point from the given face - static const gp_Pnt getPointFromFace(const TopoDS_Face& f); + static const gp_Pnt getPointFromFace(const TopoDS_Face& f); /// Make a shape from a base plane (convenience method) static gp_Pln makePlnFromPlane(const App::DocumentObject* obj); static TopoDS_Shape makeShapeFromPlane(const App::DocumentObject* obj); diff --git a/src/Mod/PartDesign/App/FeatureAddSub.h b/src/Mod/PartDesign/App/FeatureAddSub.h index 689aa1e965..5e04008123 100644 --- a/src/Mod/PartDesign/App/FeatureAddSub.h +++ b/src/Mod/PartDesign/App/FeatureAddSub.h @@ -37,9 +37,9 @@ class PartDesignExport FeatureAddSub : public PartDesign::Feature public: enum Type { Additive = 0, - Subtractive + Subtractive }; - + FeatureAddSub(); Type getAddSubType(); diff --git a/src/Mod/PartDesign/App/FeatureBase.cpp b/src/Mod/PartDesign/App/FeatureBase.cpp index 40aeebfb32..627e32be25 100644 --- a/src/Mod/PartDesign/App/FeatureBase.cpp +++ b/src/Mod/PartDesign/App/FeatureBase.cpp @@ -43,50 +43,50 @@ FeatureBase::FeatureBase() } Part::Feature* FeatureBase::getBaseObject(bool) const { - + return nullptr; } short int FeatureBase::mustExecute() const { - + if(BaseFeature.isTouched()) return 1; - + return Part::Feature::mustExecute(); } App::DocumentObjectExecReturn* FeatureBase::execute() { - + if(!BaseFeature.getValue()) return new App::DocumentObjectExecReturn("BaseFeature link is not set"); - + if(!BaseFeature.getValue()->isDerivedFrom(Part::Feature::getClassTypeId())) return new App::DocumentObjectExecReturn("BaseFeature must be a Part::Feature"); - + auto shape = static_cast(BaseFeature.getValue())->Shape.getValue(); if (shape.IsNull()) return new App::DocumentObjectExecReturn("BaseFeature has an empty shape"); - + Shape.setValue(shape); - + return StdReturn; } void FeatureBase::onChanged(const App::Property* prop) { - + // the BaseFeature property should track the Body BaseFeature and vice-versa if (prop == &BaseFeature) { - + auto body = getFeatureBody(); if(!body) return; - + if (BaseFeature.getValue() && body->BaseFeature.getValue() != BaseFeature.getValue()) { body->BaseFeature.setValue(BaseFeature.getValue()); } } - + Part::Feature::onChanged(prop); } diff --git a/src/Mod/PartDesign/App/FeatureBase.h b/src/Mod/PartDesign/App/FeatureBase.h index d68559a8b0..28812af885 100644 --- a/src/Mod/PartDesign/App/FeatureBase.h +++ b/src/Mod/PartDesign/App/FeatureBase.h @@ -36,15 +36,15 @@ class PartDesignExport FeatureBase : public PartDesign::Feature public: FeatureBase(); - + short int mustExecute() const override; - + Part::Feature* getBaseObject(bool silent=false) const override; - + const char* getViewProviderName() const override { return "PartDesignGui::ViewProviderBase"; } - + void onChanged(const App::Property* prop) override; App::DocumentObjectExecReturn* execute() override; void onDocumentRestored() override; diff --git a/src/Mod/PartDesign/App/FeatureBoolean.cpp b/src/Mod/PartDesign/App/FeatureBoolean.cpp index c9da6922bb..7ccdb4084c 100644 --- a/src/Mod/PartDesign/App/FeatureBoolean.cpp +++ b/src/Mod/PartDesign/App/FeatureBoolean.cpp @@ -70,7 +70,7 @@ App::DocumentObjectExecReturn *Boolean::execute() { // Get the operation type std::string type = Type.getValueAsString(); - + // Check the parameters const Part::Feature* baseFeature = this->getBaseObject(/* silent = */ true); @@ -90,11 +90,11 @@ App::DocumentObjectExecReturn *Boolean::execute() auto feature = tools.back(); if(!feature->isDerivedFrom(Part::Feature::getClassTypeId())) return new App::DocumentObjectExecReturn("Cannot do boolean with anything but Part::Feature and its derivatives"); - + baseTopShape = static_cast(feature)->Shape.getShape(); tools.pop_back(); } - + if (baseTopShape.getShape().IsNull()) return new App::DocumentObjectExecReturn("Cannot do boolean operation with invalid base shape"); @@ -157,7 +157,7 @@ App::DocumentObjectExecReturn *Boolean::execute() } void Boolean::onChanged(const App::Property* prop) { - + if(strcmp(prop->getName(), "Group") == 0) touch(); diff --git a/src/Mod/PartDesign/App/FeatureChamfer.cpp b/src/Mod/PartDesign/App/FeatureChamfer.cpp index f595e34a06..70a45c0fb9 100644 --- a/src/Mod/PartDesign/App/FeatureChamfer.cpp +++ b/src/Mod/PartDesign/App/FeatureChamfer.cpp @@ -162,7 +162,7 @@ App::DocumentObjectExecReturn *Chamfer::execute() // Set the face based on flipDirection for all edges by default. Note for chamferType==0 it does not matter which face is used. TopoDS_Face face = TopoDS::Face( flipDirection ? faceLast : faceFirst ); - + // for chamfer types otherthan Equal (type = 0) check if one of the faces associated with the edge // is one of the originally selected faces. If so use the other face by default or the selected face if "flipDirection" is set if (chamferType != 0) { @@ -171,14 +171,14 @@ App::DocumentObjectExecReturn *Chamfer::execute() for (const auto &itFN : FaceNames) { const TopoDS_Shape selFace = baseShape.getSubShape(itFN.c_str()); - if ( faceLast.IsEqual(selFace) ) + if ( faceLast.IsEqual(selFace) ) face = TopoDS::Face( flipDirection ? faceFirst : faceLast ); - - else if ( faceFirst.IsEqual(selFace) ) + + else if ( faceFirst.IsEqual(selFace) ) face = TopoDS::Face( flipDirection ? faceLast : faceFirst ); } - } + } switch (chamferType) { case 0: // Equal distance diff --git a/src/Mod/PartDesign/App/FeatureDraft.cpp b/src/Mod/PartDesign/App/FeatureDraft.cpp index 6a031b131c..4312309de8 100644 --- a/src/Mod/PartDesign/App/FeatureDraft.cpp +++ b/src/Mod/PartDesign/App/FeatureDraft.cpp @@ -117,7 +117,7 @@ App::DocumentObjectExecReturn *Draft::execute() // Pull direction gp_Dir pullDirection; - App::DocumentObject* refDirection = PullDirection.getValue(); + App::DocumentObject* refDirection = PullDirection.getValue(); if (refDirection) { if (refDirection->getTypeId().isDerivedFrom(PartDesign::Line::getClassTypeId())) { PartDesign::Line* line = static_cast(refDirection); diff --git a/src/Mod/PartDesign/App/FeatureDressUp.cpp b/src/Mod/PartDesign/App/FeatureDressUp.cpp index a718b9dcc8..5d8bd8a21e 100644 --- a/src/Mod/PartDesign/App/FeatureDressUp.cpp +++ b/src/Mod/PartDesign/App/FeatureDressUp.cpp @@ -218,7 +218,7 @@ void DressUp::getAddSubShape(Part::TopoShape &addShape, Part::TopoShape &subShap for(Feature *current=this; ;current=static_cast(base)) { base = Base::freecad_dynamic_cast(current->getBaseObject(true)); if(!base) - FC_THROWM(Base::CADKernelError, + FC_THROWM(Base::CADKernelError, "Cannot find additive or subtractive support for " << getFullName()); if(!base->isDerivedFrom(DressUp::getClassTypeId())) break; diff --git a/src/Mod/PartDesign/App/FeatureExtrude.h b/src/Mod/PartDesign/App/FeatureExtrude.h index 0cfd0acc7a..c155f9935b 100644 --- a/src/Mod/PartDesign/App/FeatureExtrude.h +++ b/src/Mod/PartDesign/App/FeatureExtrude.h @@ -111,7 +111,7 @@ protected: const double angle, const double angle2, const bool midplane); - + /** * Disables settings that are not valid for the current method */ diff --git a/src/Mod/PartDesign/App/FeatureFillet.cpp b/src/Mod/PartDesign/App/FeatureFillet.cpp index 22f3f595f5..70d5b6894f 100644 --- a/src/Mod/PartDesign/App/FeatureFillet.cpp +++ b/src/Mod/PartDesign/App/FeatureFillet.cpp @@ -71,7 +71,7 @@ App::DocumentObjectExecReturn *Fillet::execute() } catch (Base::Exception& e) { return new App::DocumentObjectExecReturn(e.what()); } - std::vector SubNames = std::vector(Base.getSubValues()); + std::vector SubNames = std::vector(Base.getSubValues()); if (UseAllEdges.getValue()){ SubNames.clear(); @@ -88,9 +88,9 @@ App::DocumentObjectExecReturn *Fillet::execute() if (SubNames.empty()) return new App::DocumentObjectExecReturn("Fillet not possible on selected shapes"); - + double radius = Radius.getValue(); - + if(radius <= 0) return new App::DocumentObjectExecReturn("Fillet radius must be greater than zero"); diff --git a/src/Mod/PartDesign/App/FeatureGroove.cpp b/src/Mod/PartDesign/App/FeatureGroove.cpp index 835a3aaa5f..6bc67ccf63 100644 --- a/src/Mod/PartDesign/App/FeatureGroove.cpp +++ b/src/Mod/PartDesign/App/FeatureGroove.cpp @@ -51,7 +51,7 @@ const App::PropertyAngle::Constraints Groove::floatAngle = { Base::toDegrees 1) { return new App::DocumentObjectExecReturn("Groove: Result has multiple solids. This is not supported at this time."); } - + } else return new App::DocumentObjectExecReturn("Could not revolve the sketch!"); diff --git a/src/Mod/PartDesign/App/FeatureHole.cpp b/src/Mod/PartDesign/App/FeatureHole.cpp index bb20947451..39cf3379b5 100644 --- a/src/Mod/PartDesign/App/FeatureHole.cpp +++ b/src/Mod/PartDesign/App/FeatureHole.cpp @@ -905,7 +905,7 @@ void Hole::updateHoleCutParams() } } } - + } else { // we have an UTS profile or none diff --git a/src/Mod/PartDesign/App/FeaturePad.cpp b/src/Mod/PartDesign/App/FeaturePad.cpp index f801683a51..bf3d9b16da 100644 --- a/src/Mod/PartDesign/App/FeaturePad.cpp +++ b/src/Mod/PartDesign/App/FeaturePad.cpp @@ -253,5 +253,5 @@ App::DocumentObjectExecReturn *Pad::execute() catch (Base::Exception& e) { return new App::DocumentObjectExecReturn(e.what()); } - + } diff --git a/src/Mod/PartDesign/App/FeaturePrimitive.h b/src/Mod/PartDesign/App/FeaturePrimitive.h index e656912c6e..9b08c4bc37 100644 --- a/src/Mod/PartDesign/App/FeaturePrimitive.h +++ b/src/Mod/PartDesign/App/FeaturePrimitive.h @@ -46,16 +46,16 @@ public: Prism, Wedge }; - + FeaturePrimitive(); - + const char* getViewProviderName() const override { return "PartDesignGui::ViewProviderPrimitive"; } Type getPrimitiveType() {return primitiveType;} void onChanged(const App::Property* prop) override; PyObject* getPyObject() override; - + /// Do nothing, just to suppress warning, must be redefined in derived classes App::DocumentObjectExecReturn* execute() override { return PartDesign::FeatureAddSub::execute(); @@ -64,7 +64,7 @@ protected: void handleChangedPropertyName(Base::XMLReader &reader, const char* TypeName, const char* PropName) override; //make the boolean ops with the primitives provided by the derived features App::DocumentObjectExecReturn* execute(const TopoDS_Shape& primitiveShape); - Type primitiveType = Box; + Type primitiveType = Box; }; class PartDesignExport Box : public PartDesign::FeaturePrimitive { @@ -72,24 +72,24 @@ class PartDesignExport Box : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Box); public: - + Box(); - + App::PropertyLength Length,Height,Width; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveBox : public Box { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveBox); - + AdditiveBox() { addSubType = FeatureAddSub::Additive; } @@ -97,7 +97,7 @@ class PartDesignExport AdditiveBox : public Box { class PartDesignExport SubtractiveBox : public Box { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveBox); - + SubtractiveBox() { addSubType = FeatureAddSub::Subtractive; } @@ -109,13 +109,13 @@ class PartDesignExport Cylinder : public PartDesign::FeaturePrimitive, public Pa PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Cylinder); public: - + Cylinder(); - + App::PropertyLength Radius; App::PropertyLength Height; App::PropertyAngle Angle; - + /** @name methods override feature */ //@{ /// recalculate the Feature @@ -125,7 +125,7 @@ public: class PartDesignExport AdditiveCylinder : public Cylinder { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveCylinder); - + AdditiveCylinder() { addSubType = FeatureAddSub::Additive; } @@ -133,7 +133,7 @@ class PartDesignExport AdditiveCylinder : public Cylinder { class PartDesignExport SubtractiveCylinder : public Cylinder { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveCylinder); - + SubtractiveCylinder() { addSubType = FeatureAddSub::Subtractive; } @@ -145,27 +145,27 @@ class PartDesignExport Sphere : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Sphere); public: - + Sphere(); - + App::PropertyLength Radius; App::PropertyAngle Angle1; App::PropertyAngle Angle2; App::PropertyAngle Angle3; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveSphere : public Sphere { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveSphere); - + AdditiveSphere() { addSubType = FeatureAddSub::Additive; } @@ -173,7 +173,7 @@ class PartDesignExport AdditiveSphere : public Sphere { class PartDesignExport SubtractiveSphere : public Sphere { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveSphere); - + SubtractiveSphere() { addSubType = FeatureAddSub::Subtractive; } @@ -184,27 +184,27 @@ class PartDesignExport Cone : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Cone); public: - + Cone(); - + App::PropertyLength Radius1; App::PropertyLength Radius2; App::PropertyLength Height; App::PropertyAngle Angle; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveCone : public Cone { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveCone); - + AdditiveCone() { addSubType = FeatureAddSub::Additive; } @@ -212,7 +212,7 @@ class PartDesignExport AdditiveCone : public Cone { class PartDesignExport SubtractiveCone : public Cone { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveCone); - + SubtractiveCone() { addSubType = FeatureAddSub::Subtractive; } @@ -224,29 +224,29 @@ class PartDesignExport Ellipsoid : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Ellipsoid); public: - + Ellipsoid(); - + App::PropertyLength Radius1; App::PropertyLength Radius2; App::PropertyLength Radius3; App::PropertyAngle Angle1; App::PropertyAngle Angle2; App::PropertyAngle Angle3; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveEllipsoid : public Ellipsoid { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveEllipsoid); - + AdditiveEllipsoid() { addSubType = FeatureAddSub::Additive; } @@ -254,7 +254,7 @@ class PartDesignExport AdditiveEllipsoid : public Ellipsoid { class PartDesignExport SubtractiveEllipsoid : public Ellipsoid { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveEllipsoid); - + SubtractiveEllipsoid() { addSubType = FeatureAddSub::Subtractive; } @@ -266,28 +266,28 @@ class PartDesignExport Torus : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Torus); public: - + Torus(); - + App::PropertyLength Radius1; App::PropertyLength Radius2; App::PropertyAngle Angle1; App::PropertyAngle Angle2; App::PropertyAngle Angle3; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveTorus : public Torus { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveTorus); - + AdditiveTorus() { addSubType = FeatureAddSub::Additive; } @@ -295,7 +295,7 @@ class PartDesignExport AdditiveTorus : public Torus { class PartDesignExport SubtractiveTorus : public Torus { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveTorus); - + SubtractiveTorus() { addSubType = FeatureAddSub::Subtractive; } @@ -312,7 +312,7 @@ public: App::PropertyIntegerConstraint Polygon; App::PropertyLength Circumradius; App::PropertyLength Height; - + /** @name methods override feature */ //@{ /// recalculate the Feature @@ -322,7 +322,7 @@ public: class PartDesignExport AdditivePrism : public Prism { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditivePrism); - + AdditivePrism() { addSubType = FeatureAddSub::Additive; } @@ -330,7 +330,7 @@ class PartDesignExport AdditivePrism : public Prism { class PartDesignExport SubtractivePrism : public Prism { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractivePrism); - + SubtractivePrism() { addSubType = FeatureAddSub::Subtractive; } @@ -342,9 +342,9 @@ class PartDesignExport Wedge : public PartDesign::FeaturePrimitive { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::Wedge); public: - + Wedge(); - + App::PropertyDistance Xmin; App::PropertyDistance Ymin; App::PropertyDistance Zmin; @@ -355,20 +355,20 @@ public: App::PropertyDistance Zmax; App::PropertyDistance Z2max; App::PropertyDistance X2max; - + /** @name methods override feature */ //@{ /// recalculate the Feature App::DocumentObjectExecReturn *execute() override; short mustExecute() const override; - + protected: - + }; class PartDesignExport AdditiveWedge : public Wedge { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::AdditiveWedge); - + AdditiveWedge() { addSubType = FeatureAddSub::Additive; } @@ -376,7 +376,7 @@ class PartDesignExport AdditiveWedge : public Wedge { class PartDesignExport SubtractiveWedge : public Wedge { PROPERTY_HEADER_WITH_OVERRIDE(PartDesign::SubtractiveWedge); - + SubtractiveWedge() { addSubType = FeatureAddSub::Subtractive; } diff --git a/src/Mod/PartDesign/App/FeaturePy.xml b/src/Mod/PartDesign/App/FeaturePy.xml index 29627ce356..f8d37e0a80 100644 --- a/src/Mod/PartDesign/App/FeaturePy.xml +++ b/src/Mod/PartDesign/App/FeaturePy.xml @@ -1,10 +1,10 @@  - AddSubShape.setValue(result); + this->AddSubShape.setValue(result); if (!base.IsNull()) { // Let's call algorithm computing a fuse operation: diff --git a/src/Mod/PartDesign/App/FeatureSolid.h b/src/Mod/PartDesign/App/FeatureSolid.h index 020a3c300e..f5abf36392 100644 --- a/src/Mod/PartDesign/App/FeatureSolid.h +++ b/src/Mod/PartDesign/App/FeatureSolid.h @@ -43,7 +43,7 @@ public: Solid(); protected: - + }; } //namespace PartDesign diff --git a/src/Mod/PartDesign/App/FeatureThickness.h b/src/Mod/PartDesign/App/FeatureThickness.h index 0ac89fbf9a..0098cdd487 100644 --- a/src/Mod/PartDesign/App/FeatureThickness.h +++ b/src/Mod/PartDesign/App/FeatureThickness.h @@ -42,7 +42,7 @@ public: App::PropertyBool Reversed; App::PropertyBool Intersection; App::PropertyEnumeration Mode; - App::PropertyEnumeration Join; + App::PropertyEnumeration Join; /** @name methods override feature */ //@{ diff --git a/src/Mod/PartDesign/App/PreCompiled.cpp b/src/Mod/PartDesign/App/PreCompiled.cpp index 46269e9671..f4f569f207 100644 --- a/src/Mod/PartDesign/App/PreCompiled.cpp +++ b/src/Mod/PartDesign/App/PreCompiled.cpp @@ -21,4 +21,4 @@ ***************************************************************************/ -#include "PreCompiled.h" +#include "PreCompiled.h" diff --git a/src/Mod/PartDesign/FeatureHole/HoleGui.py b/src/Mod/PartDesign/FeatureHole/HoleGui.py index 98ef55143a..85b71f3a66 100644 --- a/src/Mod/PartDesign/FeatureHole/HoleGui.py +++ b/src/Mod/PartDesign/FeatureHole/HoleGui.py @@ -66,11 +66,11 @@ class HoleGui: if body is None: QtGui.QMessageBox.critical(mw, "No active body", "Please create a body or make a body active") return - + feature = doc.addObject("Part::FeaturePython","Hole") hole = Hole(feature) body.addFeature(feature) - + vp = ViewProviderHole(feature.ViewObject) feature.touch() FreeCAD.ActiveDocument.recompute() diff --git a/src/Mod/PartDesign/FeatureHole/Standards.py b/src/Mod/PartDesign/FeatureHole/Standards.py index 5fc07d6e97..e06144b682 100644 --- a/src/Mod/PartDesign/FeatureHole/Standards.py +++ b/src/Mod/PartDesign/FeatureHole/Standards.py @@ -26,7 +26,7 @@ import FreeCAD "Standards for bore hole feature" sources = { "inet_arcor" : "http://home.arcor.de/maschinenelemente2-din/DIN%20EN%2020273_Durchgangsl%F6cher%20fuer%20Schrauben.PDF", - "inet_duckma" : "http://www.duckma.de/mb14/SiteDocs/DIN%20Grundlagen%20Maschinenbau.pdf", + "inet_duckma" : "http://www.duckma.de/mb14/SiteDocs/DIN%20Grundlagen%20Maschinenbau.pdf", "klein_14" : "Klein: Einführung in die DIN-Normen, 14. Auflage. Stuttgart, Teubner 2008" } @@ -37,19 +37,19 @@ StandardType = 3 standards = { # "Standard name" : ("Year", "Title", "Source", "Type") - "DIN 13-1" : ("1999", "Metrisches ISO-Gewinde allgemeiner Anwendung (Auszug); Nennmaße für Regelgewinde", "klein_14", "thread"), - "DIN 74-A" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form A", "klein_14", "countersink"), - "DIN 74-E" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form E", "klein_14", "countersink"), - "DIN 74-F" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form F", "klein_14", "countersink"), - "DIN 76-2" : ("1984", "Gewindeausläufe und Gewindefreistiche (Auszug); für Metrisches ISO-Gewinde nach DIN 13; Innengewinde (Gewindegrundlöcher)", "klein_14", "threaded"), - "DIN 974-1" : ("1991", "Senkdurchmesser für Schrauben mit Zylinderkopf; Konstruktionsmaße (Auszug)", "klein_14", "counterbore"), - "DIN 974-2" : ("1991", "Senkdurchmesser fur Sechskantschrauben und Sechskantmuttern; Konstruktionsmaße(Auszug)", "klein_14", "counterbore"), - "ISO 273" : ("1979", "Fasteners; Clearance holes for bolts and screws", "inet_arcor", "through"), + "DIN 13-1" : ("1999", "Metrisches ISO-Gewinde allgemeiner Anwendung (Auszug); Nennmaße für Regelgewinde", "klein_14", "thread"), + "DIN 74-A" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form A", "klein_14", "countersink"), + "DIN 74-E" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form E", "klein_14", "countersink"), + "DIN 74-F" : ("2003", "Senkungen fur Senkschrauben, ausgenommen Senkschrauben mit Kopfen nach DIN EN 27721; Form F", "klein_14", "countersink"), + "DIN 76-2" : ("1984", "Gewindeausläufe und Gewindefreistiche (Auszug); für Metrisches ISO-Gewinde nach DIN 13; Innengewinde (Gewindegrundlöcher)", "klein_14", "threaded"), + "DIN 974-1" : ("1991", "Senkdurchmesser für Schrauben mit Zylinderkopf; Konstruktionsmaße (Auszug)", "klein_14", "counterbore"), + "DIN 974-2" : ("1991", "Senkdurchmesser fur Sechskantschrauben und Sechskantmuttern; Konstruktionsmaße(Auszug)", "klein_14", "counterbore"), + "ISO 273" : ("1979", "Fasteners; Clearance holes for bolts and screws", "inet_arcor", "through"), "ISO 15065" : ("2005", "Senkungen fur Senkschrauben mit Kopfform nach ISO 7721", "klein_14", "countersink") } aliases = { - "ISO 273" : ("ISO 273:1979", "EN 20273:1991", "DIN EN 20273:1992", "DIN ISO 273", "DIN ISO 273/09.79"), + "ISO 273" : ("ISO 273:1979", "EN 20273:1991", "DIN EN 20273:1992", "DIN ISO 273", "DIN ISO 273/09.79"), "ISO 15065" : ("ISO 15065:2005", "EN ISO 15065", "EN ISO 15065:2005", "DIN EN ISO 15065") } @@ -115,71 +115,71 @@ standards_through = { standards_counterbore = { # "Standard name" : {Thread_dia : counterboredia(row1, row2, row3, row4, row5, row6)} "DIN 974-1" : { - 1.0 : (2.2, None, None, None, None, None), - 1.2 : (2.5, None, None, None, None, None), - 1.4 : (3.0, None, None, None, None, None), - 1.6 : (3.5, 3.5, None, None, None, None), - 1.8 : (3.8, None, None, None, None, None), - 2.0 : (4.4, 5.0, None, 5.5, 6, 6), - 2.5 : (5.5, 6, None, 6, 7, 7), - 3.0 : (6.5, 7, 6.5, 7, 9, 8), - 3.5 : (6.5, 8, 6.5, 8, 9, 9), - 4.0 : (8, 9, 8, 9, 10, 10), - 5.0 : (10, 11, 10, 11, 13, 13), - 6.0 : (11, 13, 11, 13, 15, 15), - 8.0 : (15, 18, 15, 16, 18, 20), - 10.0 : (18, 24, 18, 20, 24, 24), - 12.0 : (20, None, 20, 24, 26, 33), - 14.0 : (24, None, 24, 26, 30, 40), - 16.0 : (26, None, 26, 30, 33, 43), - 18.0 : (30, None, 30, 33, 36, 46), - 20.0 : (33, None, 33, 36, 40, 48), - 22.0 : (36, None, 36, 40, 43, 54), - 24.0 : (40, None, 40, 43, 48, 58), - 27.0 : (46, None, 46, 46, 54, 63), - 30.0 : (50, None, 50, 54, 61, 73), - 33.0 : (54, None, 54, None, 63, None), - 36.0 : (58, None, 58, 63, 69, None), - 42.0 : (69, None, 69, 73, 82, None), - 48.0 : (78, None, 78, 82, 98, None), - 56.0 : (93, None, 93, 93, 112, None), - 64.0 : (107, None, 107, 107, 125, None), - 72.0 : (118, None, 118, 118, 132, None), - 80.0 : (132, None, 132, 132, 150, None), - 90.0 : (145, None, 145, 145, 170, None), + 1.0 : (2.2, None, None, None, None, None), + 1.2 : (2.5, None, None, None, None, None), + 1.4 : (3.0, None, None, None, None, None), + 1.6 : (3.5, 3.5, None, None, None, None), + 1.8 : (3.8, None, None, None, None, None), + 2.0 : (4.4, 5.0, None, 5.5, 6, 6), + 2.5 : (5.5, 6, None, 6, 7, 7), + 3.0 : (6.5, 7, 6.5, 7, 9, 8), + 3.5 : (6.5, 8, 6.5, 8, 9, 9), + 4.0 : (8, 9, 8, 9, 10, 10), + 5.0 : (10, 11, 10, 11, 13, 13), + 6.0 : (11, 13, 11, 13, 15, 15), + 8.0 : (15, 18, 15, 16, 18, 20), + 10.0 : (18, 24, 18, 20, 24, 24), + 12.0 : (20, None, 20, 24, 26, 33), + 14.0 : (24, None, 24, 26, 30, 40), + 16.0 : (26, None, 26, 30, 33, 43), + 18.0 : (30, None, 30, 33, 36, 46), + 20.0 : (33, None, 33, 36, 40, 48), + 22.0 : (36, None, 36, 40, 43, 54), + 24.0 : (40, None, 40, 43, 48, 58), + 27.0 : (46, None, 46, 46, 54, 63), + 30.0 : (50, None, 50, 54, 61, 73), + 33.0 : (54, None, 54, None, 63, None), + 36.0 : (58, None, 58, 63, 69, None), + 42.0 : (69, None, 69, 73, 82, None), + 48.0 : (78, None, 78, 82, 98, None), + 56.0 : (93, None, 93, 93, 112, None), + 64.0 : (107, None, 107, 107, 125, None), + 72.0 : (118, None, 118, 118, 132, None), + 80.0 : (132, None, 132, 132, 150, None), + 90.0 : (145, None, 145, 145, 170, None), 100.0:(160, None, 160, 160, 182, None) - }, + }, "DIN 974-2" : { - 3.0 : (11, 11, 9), - 4.0 : (13, 15, 10), - 5.0 : (15, 18, 11), - 6.0 : (18, 20, 13), - 8.0 : (24, 26, 18), - 10.0:(28, 33, 22), - 12.0:(33, 36, 26), - 14.0:(36, 43, 30), - 16.0:(40, 46, 33), - 18.0:(43, 50, 36), - 20.0:(46, 54, 40), - 22.0:(54, 61, 46), - 24.0:(58, 73, 48), - 27.0:(61, 76, 54), - 30.0:(73, 82, 61), - 33.0:(76, 89, 69), - 36.0:(82, 93, 73), - 39.0:(89, 98, 76), - 42.0:(98, 107, 82), + 3.0 : (11, 11, 9), + 4.0 : (13, 15, 10), + 5.0 : (15, 18, 11), + 6.0 : (18, 20, 13), + 8.0 : (24, 26, 18), + 10.0:(28, 33, 22), + 12.0:(33, 36, 26), + 14.0:(36, 43, 30), + 16.0:(40, 46, 33), + 18.0:(43, 50, 36), + 20.0:(46, 54, 40), + 22.0:(54, 61, 46), + 24.0:(58, 73, 48), + 27.0:(61, 76, 54), + 30.0:(73, 82, 61), + 33.0:(76, 89, 69), + 36.0:(82, 93, 73), + 39.0:(89, 98, 76), + 42.0:(98, 107, 82), 45.0:(107, 112, 89) } } standards_counterbore_through = { # Standard name : Through hole standard name - "DIN 74-A" : "ISO 273", + "DIN 74-A" : "ISO 273", "DIN 74-E" : "ISO 273", # Note that the standards seems to allow tolerance class "fine" only "DIN 74-F" : "ISO 273", - "DIN 974-1" : "ISO 273", - "DIN 974-2" : "ISO 273", + "DIN 974-1" : "ISO 273", + "DIN 974-2" : "ISO 273", "ISO 15065" : "ISO 273" } @@ -187,26 +187,26 @@ standards_counterbore_rows = { # Row index : ( extra standards e.g. bolt used or washer used ) # Note that DIN 7980 has been cancelled, therefore row three should not be used any more "DIN 974-1" : { - 1 : ("ISO 1207", "ISO 4762", "DIN 6912", "DIN 7984"), + 1 : ("ISO 1207", "ISO 4762", "DIN 6912", "DIN 7984"), 2 : ("ISO 1580", "ISO 7045"), 3 : ("DIN 7980", ""), # single value gives wrong iteration when collecting the standards - 4 : ("ISO 10673 type C", "DIN 6798", "DIN 6907"), - 5 : ("ISO 7089", "ISO 7090", "ISO 10673 type A"), + 4 : ("ISO 10673 type C", "DIN 6798", "DIN 6907"), + 5 : ("ISO 7089", "ISO 7090", "ISO 10673 type A"), 6 : ("DIN 6796", "DIN 6908") - }, + }, "DIN 974-2" : { - 1 : ("DIN 659", "DIN 896", "DIN 3112", "DIN 3124"), - 2 : ("DIN 838", "DIN 897", "DIN 3129"), + 1 : ("DIN 659", "DIN 896", "DIN 3112", "DIN 3124"), + 2 : ("DIN 838", "DIN 897", "DIN 3129"), 3 : ("tight", "") } } standards_counterbore_extradepth = { # max Thread diameter : extra depth - 1.4 : 0.2, - 6.0 : 0.4, - 20.0 : 0.6, - 27.0 : 0.8, + 1.4 : 0.2, + 6.0 : 0.4, + 20.0 : 0.6, + 27.0 : 0.8, 100.0 : 1.0 } @@ -216,46 +216,46 @@ standards_countersink_angle = 1 standards_countersink = { # "Standard name" : {Thread_dia : (countersinkdia, head angle)} "DIN 74-A" : { - 1.6 : (3.7, 90.0), + 1.6 : (3.7, 90.0), 2.0 : (4.6, 90.0), - 2.5 : (5.7, 90.0), - 3.0 : (6.5, 90.0), - 3.5 : (7.6, 90.0), - 4.0 : (8.6, 90.0), - 4.5 : (9.5, 90.0), - 5.0 : (10.4, 90.0), - 5.5 : (11.4, 90.0), - 6.0 : (12.4, 90.0), - 7.0 : (14.4, 90.0), + 2.5 : (5.7, 90.0), + 3.0 : (6.5, 90.0), + 3.5 : (7.6, 90.0), + 4.0 : (8.6, 90.0), + 4.5 : (9.5, 90.0), + 5.0 : (10.4, 90.0), + 5.5 : (11.4, 90.0), + 6.0 : (12.4, 90.0), + 7.0 : (14.4, 90.0), 8.0 : (16.4, 90.0) - }, + }, "DIN 74-E" : { - 10.0 : (19.0, 75.0), - 12.0 : (24.0, 75.0), - 16.0 : (31.0, 75.0), - 20.0 : (34.0, 60.0), - 22.0 : (37.0, 60.0), + 10.0 : (19.0, 75.0), + 12.0 : (24.0, 75.0), + 16.0 : (31.0, 75.0), + 20.0 : (34.0, 60.0), + 22.0 : (37.0, 60.0), 24.0 : (40.0, 60.0) - }, + }, "DIN 74-F" : { - 3.0 : (6.94, 90.0), - 4.0 : (9.18, 90.0), - 5.0 : (11.47, 90.0), - 6.0 : (13.71, 90.0), - 8.0 : (18.25, 90.0), - 10.0 : (22.73, 90.0), - 12.0 : (27.21, 90.0), - 14.0 : (31.19, 90.0), + 3.0 : (6.94, 90.0), + 4.0 : (9.18, 90.0), + 5.0 : (11.47, 90.0), + 6.0 : (13.71, 90.0), + 8.0 : (18.25, 90.0), + 10.0 : (22.73, 90.0), + 12.0 : (27.21, 90.0), + 14.0 : (31.19, 90.0), 16.0 : (33.39, 90.0), 20.0 : (40.71, 90.0) }, "ISO 15065" : { - 2.0 : (4.4, 90.0), - 3.0 : (6.3, 90.0), - 4.0 : (9.4, 90.0), - 5.0 : (0.4, 90.0), - 6.0 : (12.6, 90.0), - 8.0 : (17.3, 90.0), + 2.0 : (4.4, 90.0), + 3.0 : (6.3, 90.0), + 4.0 : (9.4, 90.0), + 5.0 : (0.4, 90.0), + 6.0 : (12.6, 90.0), + 8.0 : (17.3, 90.0), 10.0 : (20.0, 90.0) } } @@ -265,29 +265,29 @@ standards_threaded_types = ("normal", "short", "long") standards_threaded = { # Standard name : { Tread pitch : threadFinish(normal, short, long) } "DIN 76-2" : { - 0.20 : (1.3, 0.8, 2.0), - 0.25 : (1.5, 1.0, 2.4), - 0.30 : (1.8, 1.2, 2.9), - 0.35 : (2.1, 1.3, 3.3), - 0.40 : (2.3, 1.5, 3.7), - 0.45 : (2.6, 1.6, 4.1), - 0.50 : (2.8, 1.8, 4.5), - 0.60 : (3.4, 2.1, 5.4), - 0.70 : (3.8, 2.4, 6.1), - 0.75 : (4.0 , 2.5, 6.4), - 0.80 : (4.2, 2.7, 6.8), - 1.00 : (5.1, 3.2, 8.2), - 1.25 : (6.2, 3.9, 10), - 1.5 : (7.3, 4.6, 11.6), - 1.75 : (8.3, 5.2, 13.3), - 2.0 : (9.3, 5.8, 14.8), - 2.5 : (11.2, 7.0, 17.9), - 3.0 : (13.1, 8.2, 21.0), - 3.5 : (15.2, 9.5, 24.3), - 4.0 : (16.8, 10.5, 26.9), - 4.5 : (18.4, 11.5, 29.4), - 5.0 : (20.8, 13.0, 33.3), - 5.5 : (22.4, 14.0, 35.8), + 0.20 : (1.3, 0.8, 2.0), + 0.25 : (1.5, 1.0, 2.4), + 0.30 : (1.8, 1.2, 2.9), + 0.35 : (2.1, 1.3, 3.3), + 0.40 : (2.3, 1.5, 3.7), + 0.45 : (2.6, 1.6, 4.1), + 0.50 : (2.8, 1.8, 4.5), + 0.60 : (3.4, 2.1, 5.4), + 0.70 : (3.8, 2.4, 6.1), + 0.75 : (4.0 , 2.5, 6.4), + 0.80 : (4.2, 2.7, 6.8), + 1.00 : (5.1, 3.2, 8.2), + 1.25 : (6.2, 3.9, 10), + 1.5 : (7.3, 4.6, 11.6), + 1.75 : (8.3, 5.2, 13.3), + 2.0 : (9.3, 5.8, 14.8), + 2.5 : (11.2, 7.0, 17.9), + 3.0 : (13.1, 8.2, 21.0), + 3.5 : (15.2, 9.5, 24.3), + 4.0 : (16.8, 10.5, 26.9), + 4.5 : (18.4, 11.5, 29.4), + 5.0 : (20.8, 13.0, 33.3), + 5.5 : (22.4, 14.0, 35.8), 6.0 : (24.0, 15, 38.4) } } @@ -309,30 +309,30 @@ standards_thread = { # Standard name : { Thread diameter : (pitch, flank diameter, core diameter, thread depth outer, thread depth inner, round) } # Note: This table only has the most common thread diameters "DIN 13-1" : { - 1.0 : (0.25, 0.838, 0.693, 0.729, 0.153, 0.135, 0.036), - 1.1 : (0.25, 0.938, 0.793, 0.829, 0.153, 0.135, 0.036), - 1.2 : (0.25, 1.038, 0.893, 0.929, 0.153, 0.135, 0.036), + 1.0 : (0.25, 0.838, 0.693, 0.729, 0.153, 0.135, 0.036), + 1.1 : (0.25, 0.938, 0.793, 0.829, 0.153, 0.135, 0.036), + 1.2 : (0.25, 1.038, 0.893, 0.929, 0.153, 0.135, 0.036), 2.0 : (0.4, 1.740, 1.509, 1.567, 0.245, 0.217, 0.058), - 3.0 : (0.5, 2.675, 2.387, 2.459, 0.307, 0.271, 0.072), - 4.0 : (0.7, 3.545, 3.141, 3.242, 0.429, 0.379, 0.101 ), - 5.0 : (0.8, 4.480, 4.019, 4.134, 0.491, 0.433, 0.115), - 6.0 : (1.0, 5.350, 4.773, 4.917, 0.613, 0.541, 0.144), - 7.0 : (1.0, 6.350, 5.773, 5.917, 0.613, 0.541, 0.144), - 8.0 : (1.25, 7.188, 6.466, 6.647, 0.767, 0.677, 0.180), - 10.0 : (1.5, 9.026, 8.160, 8.376, 0.920, 0.812, 0.217), - 12.0 : (1.75, 10.863, 9.853, 10.106, 1.074, 0.947, 0.253), - 14.0 : (2.0, 12.701, 11.546, 11.835, 1.227, 1.083, 0.289), - 16.0 : (2.0, 14.701, 13.546, 13.835, 1.227, 1.083, 0.289), - 18.0 : (2.5, 16.376, 14.933, 15.294, 1.534, 1.353, 0.361), - 20.0 : (2.5, 18.376, 16.933, 17.294, 1.534, 1.353, 0.361), + 3.0 : (0.5, 2.675, 2.387, 2.459, 0.307, 0.271, 0.072), + 4.0 : (0.7, 3.545, 3.141, 3.242, 0.429, 0.379, 0.101 ), + 5.0 : (0.8, 4.480, 4.019, 4.134, 0.491, 0.433, 0.115), + 6.0 : (1.0, 5.350, 4.773, 4.917, 0.613, 0.541, 0.144), + 7.0 : (1.0, 6.350, 5.773, 5.917, 0.613, 0.541, 0.144), + 8.0 : (1.25, 7.188, 6.466, 6.647, 0.767, 0.677, 0.180), + 10.0 : (1.5, 9.026, 8.160, 8.376, 0.920, 0.812, 0.217), + 12.0 : (1.75, 10.863, 9.853, 10.106, 1.074, 0.947, 0.253), + 14.0 : (2.0, 12.701, 11.546, 11.835, 1.227, 1.083, 0.289), + 16.0 : (2.0, 14.701, 13.546, 13.835, 1.227, 1.083, 0.289), + 18.0 : (2.5, 16.376, 14.933, 15.294, 1.534, 1.353, 0.361), + 20.0 : (2.5, 18.376, 16.933, 17.294, 1.534, 1.353, 0.361), 22.0 : (2.5, 20.376, 18.933, 19.294, 1.534, 1.353, 0.361), - 24.0 : (3.0, 22.051, 20.319, 20.752, 1.840, 1.624, 0.433), - 27.0 : (3.0, 25.051, 23.319, 23.752, 1.840, 1.624, 0.433), - 30.0 : (3.5, 27.727, 25.706, 26.211, 2.147, 1.894, 0.505), - 33.0 : (3.5, 30.727, 28.706, 29.211, 2.147, 1.894, 0.505), - 36.0 : (4.0, 33.402, 31.093, 31.670, 2.454, 2.165, 0.577), - 39.0 : (4.0, 36.402, 34.093, 34.670, 2.454, 2.165, 0.577), - 42.0 : (4.5 , 39.077, 36.479, 37.129, 2.760, 2.436, 0.650), + 24.0 : (3.0, 22.051, 20.319, 20.752, 1.840, 1.624, 0.433), + 27.0 : (3.0, 25.051, 23.319, 23.752, 1.840, 1.624, 0.433), + 30.0 : (3.5, 27.727, 25.706, 26.211, 2.147, 1.894, 0.505), + 33.0 : (3.5, 30.727, 28.706, 29.211, 2.147, 1.894, 0.505), + 36.0 : (4.0, 33.402, 31.093, 31.670, 2.454, 2.165, 0.577), + 39.0 : (4.0, 36.402, 34.093, 34.670, 2.454, 2.165, 0.577), + 42.0 : (4.5 , 39.077, 36.479, 37.129, 2.760, 2.436, 0.650), 45.0 : (4.5, 42.077, 39.479, 40.129, 2.760, 2.436, 0.650) } } @@ -370,12 +370,12 @@ def getThroughHoleDia(standard, threadDia, tolerance = "medium"): FreeCAD.Console.PrintMessage("Warning: Diameter %f is not in %s" % (threadDia, standard)) return values[values.keys()[0]][standards_tolerance.index(tolerance)] return values[threadDia][standards_tolerance.index(tolerance)] - + def getThroughHoleStandard(standard): if not standard in standards_counterbore_through.keys(): raise Exception("No such standard exists") return standards_counterbore_through[standard] - + def getCounterboreDia(standard, threadDia, extraStandard = ""): if not standard in standards_counterbore.keys(): raise Exception("No such standard exists") @@ -389,7 +389,7 @@ def getCounterboreDia(standard, threadDia, extraStandard = ""): row = r break return values[threadDia][row-1] - + def calcCounterboreDepth(standard, threadDia, standardBolt, standardsWashers = []): headHeight = getBoltHead(standardBolt) washerHeight = 0.0 @@ -399,7 +399,7 @@ def calcCounterboreDepth(standard, threadDia, standardBolt, standardsWashers if threadDia <= maxThread: extraDepth = standards_counterbore_extradepth[maxThread] return headHeight + washerHeight + extraDepth - + def getRowStandards(standard): if not standard in standards_counterbore_rows.keys(): raise Exception("No such standard exists") @@ -428,7 +428,7 @@ def getCountersinkAngle(standard, threadDia): FreeCAD.Console.PrintMessage("Warning: Diameter %f is not in %s" % (threadDia, standard)) return values[values.keys()[0]][standards_countersink_angle] return values[threadDia][standards_countersink_angle] - + def getThreadCoreDiameter(standard, threadDia): if not standard in standards_thread.keys(): raise Exception("No such standard exists") diff --git a/src/Mod/PartDesign/Gui/CommandBody.cpp b/src/Mod/PartDesign/Gui/CommandBody.cpp index f41814444c..3be347b2c3 100644 --- a/src/Mod/PartDesign/Gui/CommandBody.cpp +++ b/src/Mod/PartDesign/Gui/CommandBody.cpp @@ -924,8 +924,8 @@ void CmdPartDesignMoveFeatureInTree::activated(int iMsg) for(auto dep : App::Document::getDependencyList({obj})) { auto it = orders.find(dep); if(it != orders.end() && it->second > i) { - ss << feat->Label.getValue() << ", " << - obj->Label.getValue() << " -> " << + ss << feat->Label.getValue() << ", " << + obj->Label.getValue() << " -> " << it->first->Label.getValue(); if(!failed) failed = true; @@ -937,7 +937,7 @@ void CmdPartDesignMoveFeatureInTree::activated(int iMsg) } if(failed) { QMessageBox::critical (nullptr, QObject::tr( "Dependency violation" ), - QObject::tr( "Early feature must not depend on later feature.\n\n") + QObject::tr( "Early feature must not depend on later feature.\n\n") + QString::fromUtf8(ss.str().c_str())); abortCommand(); return; diff --git a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp index 702120a21a..e2e91e8fd9 100644 --- a/src/Mod/PartDesign/Gui/CommandPrimitive.cpp +++ b/src/Mod/PartDesign/Gui/CommandPrimitive.cpp @@ -133,7 +133,7 @@ void CmdPrimtiveCompAdditive::activated(int iMsg) copyVisual(prm, "PointColor", base); copyVisual(prm, "Transparency", base); copyVisual(prm, "DisplayMode", base); - + PartDesignGui::setEdit(prm,pcActiveBody); } diff --git a/src/Mod/PartDesign/Gui/PreCompiled.cpp b/src/Mod/PartDesign/Gui/PreCompiled.cpp index 46269e9671..f4f569f207 100644 --- a/src/Mod/PartDesign/Gui/PreCompiled.cpp +++ b/src/Mod/PartDesign/Gui/PreCompiled.cpp @@ -21,4 +21,4 @@ ***************************************************************************/ -#include "PreCompiled.h" +#include "PreCompiled.h" diff --git a/src/Mod/PartDesign/Gui/TaskDatumParameters.cpp b/src/Mod/PartDesign/Gui/TaskDatumParameters.cpp index 3060a2d44e..20eed4b5d5 100644 --- a/src/Mod/PartDesign/Gui/TaskDatumParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDatumParameters.cpp @@ -86,7 +86,7 @@ TaskDlgDatumParameters::~TaskDlgDatumParameters() } bool TaskDlgDatumParameters::reject() { - + return PartGui::TaskDlgAttacher::reject(); } diff --git a/src/Mod/PartDesign/Gui/TaskDatumParameters.h b/src/Mod/PartDesign/Gui/TaskDatumParameters.h index ed25ca1fe7..3cf9510896 100644 --- a/src/Mod/PartDesign/Gui/TaskDatumParameters.h +++ b/src/Mod/PartDesign/Gui/TaskDatumParameters.h @@ -41,7 +41,7 @@ namespace Gui { class ViewProvider; } -namespace PartDesignGui { +namespace PartDesignGui { @@ -62,7 +62,7 @@ class TaskDlgDatumParameters : public PartGui::TaskDlgAttacher public: explicit TaskDlgDatumParameters(ViewProviderDatum *DatumView); ~TaskDlgDatumParameters() override; - + bool accept() override; bool reject() override; }; diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp index f3fc3c478b..4aa7a188aa 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp @@ -107,7 +107,7 @@ bool TaskDressUpParameters::referenceSelected(const Gui::SelectionChanges& msg) App::DocumentObject* base = this->getBase(); // TODO: Must we make a copy here instead of assigning to const char* ? - const char* fname = base->getNameInDocument(); + const char* fname = base->getNameInDocument(); if (strcmp(msg.pObjectName, fname) != 0) return false; @@ -128,7 +128,7 @@ bool TaskDressUpParameters::referenceSelected(const Gui::SelectionChanges& msg) } DressUpView->highlightReferences(false); setupTransaction(); - pcDressUp->Base.setValue(base, refs); + pcDressUp->Base.setValue(base, refs); pcDressUp->getDocument()->recomputeFeature(pcDressUp); return true; @@ -427,7 +427,7 @@ bool TaskDlgDressUpParameters::accept() getDressUpView()->highlightReferences(false); std::vector refs = parameter->getReferences(); std::stringstream str; - str << Gui::Command::getObjectCmd(vp->getObject()) << ".Base = (" + str << Gui::Command::getObjectCmd(vp->getObject()) << ".Base = (" << Gui::Command::getObjectCmd(parameter->getBase()) << ",["; for (std::vector::const_iterator it = refs.begin(); it != refs.end(); ++it) str << "\"" << *it << "\","; diff --git a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp index fafbde66a7..4c35dcfbf8 100644 --- a/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskFeatureParameters.cpp @@ -97,7 +97,7 @@ bool TaskDlgFeatureParameters::accept() { TaskFeatureParameters *param = qobject_cast (wgt); if(!param) continue; - + param->saveHistory (); param->apply (); } diff --git a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp index 2a75621bed..4f1c7076f4 100644 --- a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp @@ -228,7 +228,7 @@ void TaskFilletParameters::onLengthChanged(double len) pcFillet->Radius.setValue(len); pcFillet->getDocument()->recomputeFeature(pcFillet); // hide the fillet if there was a computation error - hideOnError(); + hideOnError(); } double TaskFilletParameters::getLength() const diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 4509d36576..a2cec26079 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -162,7 +162,7 @@ void TaskLinearPatternParameters::setupUI() ui->spinLength->setUnit(Base::Unit::Length); ui->spinLength->blockSignals(false); ui->spinOccurrences->setEnabled(true); - + dirLinks.setCombo(*(ui->comboDirection)); App::DocumentObject* sketch = getSketchObject(); if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) { diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index 3eaeda48b4..ee2f302440 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -205,7 +205,7 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg getReferencedSelection(pcMirrored, msg, selObj, mirrorPlanes); if (!selObj) return; - + if ( selectionMode == reference || selObj->isDerivedFrom ( App::Plane::getClassTypeId () ) ) { setupTransaction(); pcMirrored->MirrorPlane.setValue(selObj, mirrorPlanes); diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp index e684b32326..8ecb833bb4 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.cpp @@ -515,7 +515,7 @@ void TaskBoxPrimitives::onEllipsoidRadius3Changed(double v) { void TaskBoxPrimitives::onTorusAngle1Changed(double v) { PartDesign::Torus* sph = static_cast(vp->getObject()); - ui->torusAngle2->setMinimum(v); // Angle1 must geometrically be <= than Angle2 + ui->torusAngle2->setMinimum(v); // Angle1 must geometrically be <= than Angle2 sph->Angle1.setValue(v); vp->getObject()->getDocument()->recomputeFeature(vp->getObject()); } diff --git a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h index fe76273571..a57f8ab2da 100644 --- a/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPrimitiveParameters.h @@ -40,7 +40,7 @@ namespace Gui { class ViewProvider; } -namespace PartDesignGui { +namespace PartDesignGui { class Ui_DlgPrimitives; class TaskBoxPrimitives : public Gui::TaskView::TaskBox, public Gui::DocumentObserver diff --git a/src/Mod/PartDesign/Gui/TaskShapeBinder.cpp b/src/Mod/PartDesign/Gui/TaskShapeBinder.cpp index fb4bf64264..ff1fd8c9fb 100644 --- a/src/Mod/PartDesign/Gui/TaskShapeBinder.cpp +++ b/src/Mod/PartDesign/Gui/TaskShapeBinder.cpp @@ -289,7 +289,7 @@ bool TaskShapeBinder::referenceSelected(const SelectionChanges& msg) const if (strcmp(msg.pObjectName, fname) == 0) return false; - //change the references + //change the references std::string subName(msg.pSubName); Part::Feature* selectedObj = nullptr; diff --git a/src/Mod/PartDesign/Gui/TaskShapeBinder.h b/src/Mod/PartDesign/Gui/TaskShapeBinder.h index 65727a13f5..9675bb66c0 100644 --- a/src/Mod/PartDesign/Gui/TaskShapeBinder.h +++ b/src/Mod/PartDesign/Gui/TaskShapeBinder.h @@ -42,7 +42,7 @@ class ButtonGroup; class ViewProvider; } -namespace PartDesignGui { +namespace PartDesignGui { @@ -60,7 +60,7 @@ protected: enum selectionModes { none, refAdd, refRemove, refObjAdd }; void changeEvent(QEvent *e) override; selectionModes selectionMode = none; - + void removeFromListWidget(QListWidget *w, QString name); bool referenceSelected(const Gui::SelectionChanges& msg) const; diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp index faea5d446a..b80e3896e8 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp @@ -153,7 +153,7 @@ void TaskThicknessParameters::onSelectionChanged(const Gui::SelectionChanges& ms } // highlight existing references for possible further selections DressUpView->highlightReferences(true); - } + } } } @@ -284,7 +284,7 @@ bool TaskThicknessParameters::getIntersection(void) const } int TaskThicknessParameters::getJoinType(void) const { - + return ui->joinComboBox->currentIndex(); } diff --git a/src/Mod/PartDesign/Gui/TaskTransformedMessages.h b/src/Mod/PartDesign/Gui/TaskTransformedMessages.h index 39c7888ad5..4f4f4697c7 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedMessages.h +++ b/src/Mod/PartDesign/Gui/TaskTransformedMessages.h @@ -33,7 +33,7 @@ namespace App { class Property; } -namespace PartDesignGui { +namespace PartDesignGui { class ViewProviderTransformed; @@ -48,7 +48,7 @@ public: void slotDiagnosis(QString msg); private Q_SLOTS: - + protected: ViewProviderTransformed *transformedView; Connection connectionDiagnosis; diff --git a/src/Mod/PartDesign/Gui/Utils.cpp b/src/Mod/PartDesign/Gui/Utils.cpp index 2018d680ae..16a1ac9813 100644 --- a/src/Mod/PartDesign/Gui/Utils.cpp +++ b/src/Mod/PartDesign/Gui/Utils.cpp @@ -95,7 +95,7 @@ bool setEdit(App::DocumentObject *obj, PartDesign::Body *body) { * \param autoActivate * \return Body */ -PartDesign::Body *getBody(bool messageIfNot, bool autoActivate, bool assertModern, +PartDesign::Body *getBody(bool messageIfNot, bool autoActivate, bool assertModern, App::DocumentObject **topParent, std::string *subname) { PartDesign::Body * activeBody = nullptr; diff --git a/src/Mod/PartDesign/Gui/ViewProviderAddSub.cpp b/src/Mod/PartDesign/Gui/ViewProviderAddSub.cpp index 80e3af85ac..9d8a541f4d 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderAddSub.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderAddSub.cpp @@ -240,7 +240,7 @@ void ViewProviderAddSub::setPreviewDisplayMode(bool onoff) { // not sufficient to only revert the mask mode. Also the child // number of the switch node must be reverted. if (onoff) { - if(pcModeSwitch->getChild(getDefaultMode()) == previewShape) + if(pcModeSwitch->getChild(getDefaultMode()) == previewShape) return; displayMode = getActiveDisplayMode(); whichChild = pcModeSwitch->whichChild.getValue(); @@ -248,7 +248,7 @@ void ViewProviderAddSub::setPreviewDisplayMode(bool onoff) { } if (!onoff) { - if(pcModeSwitch->getChild(getDefaultMode()) != previewShape) + if(pcModeSwitch->getChild(getDefaultMode()) != previewShape) return; setDisplayMaskMode(displayMode.c_str()); pcModeSwitch->whichChild.setValue(whichChild); diff --git a/src/Mod/PartDesign/Gui/ViewProviderAddSub.h b/src/Mod/PartDesign/Gui/ViewProviderAddSub.h index 800180733f..d5d6504cdf 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderAddSub.h +++ b/src/Mod/PartDesign/Gui/ViewProviderAddSub.h @@ -38,14 +38,14 @@ public: ViewProviderAddSub(); /// destructor ~ViewProviderAddSub() override; - + void attach(App::DocumentObject*) override; void updateData(const App::Property*) override; - -protected: + +protected: void updateAddSubShapeIndicator(); void setPreviewDisplayMode(bool); - + SoSeparator* previewShape; PartGui::SoBrepFaceSet* previewFaceSet; SoCoordinate3* previewCoords; diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp index 9c564aa1a5..28171545a0 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.cpp @@ -143,7 +143,7 @@ bool ViewProviderBody::doubleClicked() if(!activeDoc) activeDoc = getDocument(); auto activeView = activeDoc->setActiveView(this); - if(!activeView) + if(!activeView) return false; if (activeView->isActiveObject(getObject(),PDBODYKEY)) { @@ -248,7 +248,7 @@ void ViewProviderBody::slotChangedObjectApp ( const App::DocumentObject& obj, co if(App::GetApplication().isRestoring()) return; - + if (!obj.isDerivedFrom ( Part::Feature::getClassTypeId () ) || obj.isDerivedFrom ( Part::BodyBase::getClassTypeId () ) ) { // we are interested only in Part::Features, not in bodies return; @@ -364,7 +364,7 @@ void ViewProviderBody::onChanged(const App::Property* prop) { if(prop == &DisplayModeBody) { auto body = dynamic_cast(getObject()); - + if ( DisplayModeBody.getValue() == 0 ) { //if we are in an override mode we need to make sure to come out, because //otherwise the maskmode is blocked and won't go into "through" diff --git a/src/Mod/PartDesign/Gui/ViewProviderBody.h b/src/Mod/PartDesign/Gui/ViewProviderBody.h index f677ea894c..b7208836e8 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBody.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBody.h @@ -53,7 +53,7 @@ public: ~ViewProviderBody() override; App::PropertyEnumeration DisplayModeBody; - + void attach(App::DocumentObject *) override; bool doubleClicked(void) override; @@ -72,7 +72,7 @@ public: /// Update the sizes of origin and datums void updateOriginDatumSize (); - + /** * Return the bounding box of visible features * @note datums are counted as their base point only diff --git a/src/Mod/PartDesign/Gui/ViewProviderBoolean.h b/src/Mod/PartDesign/Gui/ViewProviderBoolean.h index 854f22d677..5cf6a72361 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderBoolean.h +++ b/src/Mod/PartDesign/Gui/ViewProviderBoolean.h @@ -43,7 +43,7 @@ public: ~ViewProviderBoolean() override; App::PropertyEnumeration Display; - + /// grouping handling void setupContextMenu(QMenu*, QObject*, const char*) override; @@ -53,7 +53,7 @@ public: protected: bool setEdit(int ModNum) override; - + static const char* DisplayEnum[]; }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderDatumCS.cpp b/src/Mod/PartDesign/Gui/ViewProviderDatumCS.cpp index 46378e9924..3c0a1cbb8b 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDatumCS.cpp +++ b/src/Mod/PartDesign/Gui/ViewProviderDatumCS.cpp @@ -190,7 +190,7 @@ void ViewProviderDatumCoordinateSystem::setupLabels() { void ViewProviderDatumCoordinateSystem::updateData(const App::Property* prop) { - if (strcmp(prop->getName(),"Placement") == 0) + if (strcmp(prop->getName(),"Placement") == 0) updateExtents (); ViewProviderDatum::updateData(prop); @@ -203,7 +203,7 @@ void ViewProviderDatumCoordinateSystem::onChanged(const App::Property *prop) { else if(prop == &Zoom) { autoZoom->scaleFactor.setValue(Zoom.getValue()); updateExtents (); - } else if(prop == &FontSize) + } else if(prop == &FontSize) font->size = FontSize.getValue(); } ViewProviderDatum::onChanged(prop); @@ -212,7 +212,7 @@ void ViewProviderDatumCoordinateSystem::onChanged(const App::Property *prop) { void ViewProviderDatumCoordinateSystem::setExtents (Base::BoundBox3d bbox) { // Axis length of the CS is 1/3 of maximum bbox dimension, any smarter sizing will make it only worse double axisLength; - + if(Zoom.getValue()) { axisLength = 6 * Zoom.getValue(); }else{ diff --git a/src/Mod/PartDesign/Gui/ViewProviderDressUp.h b/src/Mod/PartDesign/Gui/ViewProviderDressUp.h index b004537874..3addd0af82 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderDressUp.h +++ b/src/Mod/PartDesign/Gui/ViewProviderDressUp.h @@ -49,8 +49,8 @@ public: /// Highlight the references that have been selected void highlightReferences(const bool on); - - /** + + /** * Returns the feature Name associated with the view provider. * Should be reimplemented in the successor. */ diff --git a/src/Mod/PartDesign/Gui/ViewProviderHole.h b/src/Mod/PartDesign/Gui/ViewProviderHole.h index c0c7c47086..d57cb782c1 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderHole.h +++ b/src/Mod/PartDesign/Gui/ViewProviderHole.h @@ -39,7 +39,7 @@ public: /// destructor ~ViewProviderHole() override; - /// grouping handling + /// grouping handling std::vector claimChildren()const override; void setupContextMenu(QMenu *menu, QObject *receiver, const char *member) override; bool onDelete(const std::vector &s) override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderLoft.h b/src/Mod/PartDesign/Gui/ViewProviderLoft.h index 910a485dfa..6f89b3d134 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderLoft.h +++ b/src/Mod/PartDesign/Gui/ViewProviderLoft.h @@ -44,7 +44,7 @@ public: /// destructor ~ViewProviderLoft() override; - /// grouping handling + /// grouping handling std::vector claimChildren(void)const override; void setupContextMenu(QMenu*, QObject*, const char*) override; @@ -52,7 +52,7 @@ public: void highlightProfile(bool on); void highlightSection(bool on); void highlightReferences(Reference mode, bool on); - + protected: QIcon getIcon(void) const override; bool setEdit(int ModNum) override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderMainPart.h b/src/Mod/PartDesign/Gui/ViewProviderMainPart.h index 343bfda172..1d701a68c6 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderMainPart.h +++ b/src/Mod/PartDesign/Gui/ViewProviderMainPart.h @@ -39,7 +39,7 @@ public: /// destructor virtual ~ViewProviderMainPart(); - /// grouping handling + /// grouping handling std::vector claimChildren(void)const; }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPipe.h b/src/Mod/PartDesign/Gui/ViewProviderPipe.h index 70b69ba707..cae4cf1219 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPipe.h +++ b/src/Mod/PartDesign/Gui/ViewProviderPipe.h @@ -45,18 +45,18 @@ public: /// destructor ~ViewProviderPipe() override; - /// grouping handling + /// grouping handling std::vector claimChildren()const override; void setupContextMenu(QMenu*, QObject*, const char*) override; bool onDelete(const std::vector &) override; void highlightReferences(Reference mode, bool on); - + protected: QIcon getIcon() const override; bool setEdit(int ModNum) override; void unsetEdit(int ModNum) override; - + /// Returns a newly created TaskDlgPipeParameters TaskDlgFeatureParameters *getEditDialog() override; diff --git a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h index f3fbb2944f..e381c1c1c1 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h +++ b/src/Mod/PartDesign/Gui/ViewProviderPrimitive.h @@ -37,18 +37,18 @@ public: ViewProviderPrimitive(); /// destructor ~ViewProviderPrimitive() override; - + void attach(App::DocumentObject*) override; void updateData(const App::Property*) override; - + protected: QIcon getIcon(void) const override; void setupContextMenu(QMenu* menu, QObject* receiver, const char* member) override; bool setEdit(int ModNum) override; void unsetEdit(int ModNum) override; - + void updateAddSubShapeIndicator(); - + std::string displayMode; }; diff --git a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h index 8ffb458ec8..b830dfd995 100644 --- a/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h +++ b/src/Mod/PartDesign/Gui/ViewProviderShapeBinder.h @@ -40,11 +40,11 @@ public: void setupContextMenu(QMenu*, QObject*, const char*) override; void highlightReferences(bool on); - + protected: bool setEdit(int ModNum) override; void unsetEdit(int ModNum) override; - + private: std::vector originalLineColors; std::vector originalFaceColors; @@ -63,9 +63,9 @@ public: bool canDropObjects() const override {return true;} bool canDragAndDropObject(App::DocumentObject*) const override {return false;} - bool canDropObjectEx(App::DocumentObject *obj, App::DocumentObject *owner, + bool canDropObjectEx(App::DocumentObject *obj, App::DocumentObject *owner, const char *subname, const std::vector &elements) const override; - std::string dropObjectEx(App::DocumentObject*, App::DocumentObject*, const char *, + std::string dropObjectEx(App::DocumentObject*, App::DocumentObject*, const char *, const std::vector &) override; std::vector claimChildren() const override; diff --git a/src/Mod/PartDesign/Init.py b/src/Mod/PartDesign/Init.py index 3d708988e5..61912e9228 100644 --- a/src/Mod/PartDesign/Init.py +++ b/src/Mod/PartDesign/Init.py @@ -13,12 +13,12 @@ #* for detail see the LICENCE text file. * #* * #* FreeCAD is distributed in the hope that it will be useful, * -#* but WITHOUT ANY WARRANTY; without even the implied warranty of * +#* but WITHOUT ANY WARRANTY; without even the implied warranty of * #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * #* GNU Lesser General Public License for more details. * #* * #* You should have received a copy of the GNU Library General Public * -#* License along with FreeCAD; if not, write to the Free Software * +#* License along with FreeCAD; if not, write to the Free Software * #* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * #* USA * #* * diff --git a/src/Mod/PartDesign/InvoluteGearFeature.py b/src/Mod/PartDesign/InvoluteGearFeature.py index 20c8089426..22d9f0f0ab 100644 --- a/src/Mod/PartDesign/InvoluteGearFeature.py +++ b/src/Mod/PartDesign/InvoluteGearFeature.py @@ -32,7 +32,7 @@ __title__="PartDesign InvoluteGearObject management" __author__ = "Juergen Riegel" __url__ = "http://www.freecadweb.org" - + def makeInvoluteGear(name): '''makeInvoluteGear(name): makes an InvoluteGear''' @@ -57,21 +57,21 @@ class _CommandInvoluteGear: 'MenuText': QtCore.QT_TRANSLATE_NOOP("PartDesign_InvoluteGear","Involute gear..."), 'Accel': "", 'ToolTip': QtCore.QT_TRANSLATE_NOOP("PartDesign_InvoluteGear","Creates or edit the involute gear definition.")} - + def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create involute gear") FreeCADGui.addModule("InvoluteGearFeature") FreeCADGui.doCommand("InvoluteGearFeature.makeInvoluteGear('InvoluteGear')") FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name,0)") - + def IsActive(self): if FreeCAD.ActiveDocument: return True else: return False - + class _InvoluteGear: "The InvoluteGear object" def __init__(self,obj): @@ -81,16 +81,16 @@ class _InvoluteGear: obj.addProperty("App::PropertyAngle","PressureAngle","Gear","Pressure angle of gear teeth") obj.addProperty("App::PropertyBool","HighPrecision","Gear","True=2 curves with each 3 control points False=1 curve with 4 control points ") obj.addProperty("App::PropertyBool","ExternalGear","Gear","True=external Gear False=internal Gear ") - + obj.NumberOfTeeth = 26 - obj.Modules = "2.5 mm" - obj.PressureAngle = "20 deg" - obj.HighPrecision = True - obj.ExternalGear = True - + obj.Modules = "2.5 mm" + obj.PressureAngle = "20 deg" + obj.HighPrecision = True + obj.ExternalGear = True + obj.Proxy = self - - + + def execute(self,obj): #print "_InvoluteGear.execute()" w = fcgear.FCWireBuilder() @@ -102,14 +102,14 @@ class _InvoluteGear: obj.Shape = gearw obj.positionBySupport(); return - - + + class _ViewProviderInvoluteGear: "A View Provider for the InvoluteGear object" def __init__(self,vobj): vobj.Proxy = self - + def getIcon(self): return ":/icons/PartDesign_InternalExternalGear.svg" @@ -117,14 +117,14 @@ class _ViewProviderInvoluteGear: self.ViewObject = vobj self.Object = vobj.Object - + def setEdit(self,vobj,mode): taskd = _InvoluteGearTaskPanel(self.Object,mode) taskd.obj = vobj.Object taskd.update() FreeCADGui.Control.showDialog(taskd) return True - + def unsetEdit(self,vobj,mode): FreeCADGui.Control.closeDialog() return @@ -140,10 +140,10 @@ class _InvoluteGearTaskPanel: '''The editmode TaskPanel for InvoluteGear objects''' def __init__(self,obj,mode): self.obj = obj - + self.form=FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/PartDesign/InvoluteGearFeature.ui") self.form.setWindowIcon(QtGui.QIcon(":/icons/PartDesign_InternalExternalGear.svg")) - + QtCore.QObject.connect(self.form.Quantity_Modules, QtCore.SIGNAL("valueChanged(double)"), self.modulesChanged) QtCore.QObject.connect(self.form.Quantity_PressureAngle, QtCore.SIGNAL("valueChanged(double)"), self.angleChanged) QtCore.QObject.connect(self.form.spinBox_NumberOfTeeth, QtCore.SIGNAL("valueChanged(int)"), self.numTeethChanged) @@ -151,15 +151,15 @@ class _InvoluteGearTaskPanel: #QtCore.QObject.connect(self.form.comboBox_ExternalGear, QtCore.SIGNAL("activated(QString)"), self.externalGearChanged) #QtCore.QObject.connect(self.form.comboBox_ExternalGear, QtCore.SIGNAL("currentIndexChanged(int)"), self.externalGearChanged) QtCore.QObject.connect(self.form.comboBox_ExternalGear, QtCore.SIGNAL("currentIndexChanged(int)"), self.externalGearChanged) - + self.update() - + if mode == 0: # fresh created - self.obj.Proxy.execute(self.obj) # calculate once + self.obj.Proxy.execute(self.obj) # calculate once FreeCAD.Gui.SendMsgToActiveView("ViewFit") - + def transferTo(self): - "Transfer from the dialog to the object" + "Transfer from the dialog to the object" self.obj.NumberOfTeeth = self.form.spinBox_NumberOfTeeth.value() self.obj.Modules = self.form.Quantity_Modules.text() self.obj.PressureAngle = self.form.Quantity_PressureAngle.text() @@ -173,8 +173,8 @@ class _InvoluteGearTaskPanel: else: self.obj.ExternalGear = False #self.obj.ExternalGear = self.form.comboBox_ExternalGear.currentIndex() - - + + def transferFrom(self): "Transfer from the object to the dialog" self.form.spinBox_NumberOfTeeth.setValue(self.obj.NumberOfTeeth) @@ -190,13 +190,13 @@ class _InvoluteGearTaskPanel: else: self.form.comboBox_ExternalGear.setCurrentIndex(1) #self.form.comboBox_ExternalGear.setCurrentIndex(self.obj.ExternalGear) - + def modulesChanged(self, value): #print value self.obj.Modules = value self.obj.Proxy.execute(self.obj) FreeCAD.Gui.SendMsgToActiveView("ViewFit") - + def angleChanged(self, value): #print value self.obj.PressureAngle = value @@ -207,7 +207,7 @@ class _InvoluteGearTaskPanel: self.obj.NumberOfTeeth = value self.obj.Proxy.execute(self.obj) FreeCAD.Gui.SendMsgToActiveView("ViewFit") - + def numCurvesChanged(self, value): #print value if value == 0: @@ -216,7 +216,7 @@ class _InvoluteGearTaskPanel: v=False self.obj.HighPrecision = v self.obj.Proxy.execute(self.obj) - + def externalGearChanged(self, value): #print value if value == 0: @@ -225,27 +225,27 @@ class _InvoluteGearTaskPanel: v=False self.obj.ExternalGear = v self.obj.Proxy.execute(self.obj) - + def getStandardButtons(self): return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)| int(QtGui.QDialogButtonBox.Apply) - + def clicked(self,button): if button == QtGui.QDialogButtonBox.Apply: #print "Apply" self.transferTo() - self.obj.Proxy.execute(self.obj) - + self.obj.Proxy.execute(self.obj) + def update(self): 'fills the widgets' self.transferFrom() - + def accept(self): #print 'accept(self)' self.transferTo() FreeCAD.ActiveDocument.recompute() FreeCADGui.ActiveDocument.resetEdit() - - + + def reject(self): #print 'reject(self)' FreeCADGui.ActiveDocument.resetEdit() diff --git a/src/Mod/PartDesign/PartDesignTests/TestBoolean.py b/src/Mod/PartDesign/PartDesignTests/TestBoolean.py index 1bfe6ab24b..8af4ae2b22 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestBoolean.py +++ b/src/Mod/PartDesign/PartDesignTests/TestBoolean.py @@ -52,7 +52,7 @@ class TestBoolean(unittest.TestCase): self.BooleanFuse.Type = 0 self.Doc.recompute() self.assertAlmostEqual(self.BooleanFuse.Shape.Volume, 1500) - + def testBooleanCutCase(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.Box = self.Doc.addObject('PartDesign::AdditiveBox','Box') diff --git a/src/Mod/PartDesign/PartDesignTests/TestPad.py b/src/Mod/PartDesign/PartDesignTests/TestPad.py index e8f5b40ebc..f1845fdd05 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestPad.py +++ b/src/Mod/PartDesign/PartDesignTests/TestPad.py @@ -36,7 +36,7 @@ class TestPad(unittest.TestCase): self.Pad.Profile = self.PadSketch self.Doc.recompute() self.assertEqual(len(self.Pad.Shape.Faces), 6) - + def testSketchOnPlane(self): self.Body = self.Doc.addObject('PartDesign::Body','Body') self.PadSketch = self.Doc.addObject('Sketcher::SketchObject','SketchPad') diff --git a/src/Mod/PartDesign/PartDesignTests/TestPipe.py b/src/Mod/PartDesign/PartDesignTests/TestPipe.py index 62ac5b3448..93be50ca66 100644 --- a/src/Mod/PartDesign/PartDesignTests/TestPipe.py +++ b/src/Mod/PartDesign/PartDesignTests/TestPipe.py @@ -44,9 +44,9 @@ class TestPipe(unittest.TestCase): self.SpineSketch.Support = (self.Doc.XZ_Plane, ['']) self.Doc.recompute() self.SpineSketch.addGeometry(Part.LineSegment(App.Vector(0.0,0.0,0),App.Vector(0,1,0)),False) - self.SpineSketch.addConstraint(Sketcher.Constraint('Coincident',0,1,-1,1)) - self.SpineSketch.addConstraint(Sketcher.Constraint('PointOnObject',0,2,-2)) - self.SpineSketch.addConstraint(Sketcher.Constraint('DistanceY',0,1,0,2,1)) + self.SpineSketch.addConstraint(Sketcher.Constraint('Coincident',0,1,-1,1)) + self.SpineSketch.addConstraint(Sketcher.Constraint('PointOnObject',0,2,-2)) + self.SpineSketch.addConstraint(Sketcher.Constraint('DistanceY',0,1,0,2,1)) self.Doc.recompute() self.AdditivePipe = self.Doc.addObject("PartDesign::AdditivePipe","AdditivePipe") self.Body.addObject(self.AdditivePipe) @@ -67,9 +67,9 @@ class TestPipe(unittest.TestCase): self.SpineSketch.Support = (self.Doc.XZ_Plane, ['']) self.Doc.recompute() self.SpineSketch.addGeometry(Part.LineSegment(App.Vector(0.0,0.0,0),App.Vector(0,1,0)),False) - self.SpineSketch.addConstraint(Sketcher.Constraint('Coincident',0,1,-1,1)) - self.SpineSketch.addConstraint(Sketcher.Constraint('PointOnObject',0,2,-2)) - self.SpineSketch.addConstraint(Sketcher.Constraint('DistanceY',0,1,0,2,1)) + self.SpineSketch.addConstraint(Sketcher.Constraint('Coincident',0,1,-1,1)) + self.SpineSketch.addConstraint(Sketcher.Constraint('PointOnObject',0,2,-2)) + self.SpineSketch.addConstraint(Sketcher.Constraint('DistanceY',0,1,0,2,1)) self.Doc.recompute() self.PadSketch = self.Doc.addObject('Sketcher::SketchObject', 'PadSketch') self.Body.addObject(self.PadSketch) diff --git a/src/Mod/PartDesign/Scripts/Epitrochoid.py b/src/Mod/PartDesign/Scripts/Epitrochoid.py index b99094fb85..9a78544450 100644 --- a/src/Mod/PartDesign/Scripts/Epitrochoid.py +++ b/src/Mod/PartDesign/Scripts/Epitrochoid.py @@ -30,7 +30,7 @@ class Epitrochoid: d=fp.Distance ang=0 z=0 - + if r2 == 0: raise ValueError("Exterior radius must not be zero") diff --git a/src/Mod/PartDesign/SprocketFeature.py b/src/Mod/PartDesign/SprocketFeature.py index 3c6c6c6d5a..9b20dd8452 100644 --- a/src/Mod/PartDesign/SprocketFeature.py +++ b/src/Mod/PartDesign/SprocketFeature.py @@ -62,21 +62,21 @@ class CommandSprocket: 'MenuText': QtCore.QT_TRANSLATE_NOOP("PartDesign_Sprocket","Sprocket..."), 'Accel': "", 'ToolTip': QtCore.QT_TRANSLATE_NOOP("PartDesign_Sprocket","Creates or edit the sprocket definition.")} - + def Activated(self): FreeCAD.ActiveDocument.openTransaction("Create Sprocket") FreeCADGui.addModule("SprocketFeature") FreeCADGui.doCommand("SprocketFeature.makeSprocket('Sprocket')") FreeCADGui.doCommand("Gui.activeDocument().setEdit(App.ActiveDocument.ActiveObject.Name,0)") - + def IsActive(self): if FreeCAD.ActiveDocument: return True else: return False - + class Sprocket: """ The Sprocket object @@ -126,16 +126,16 @@ class Sprocket: obj.addProperty("App::PropertyLength","Thickness","Sprocket","Thickness as stated in the reference specification") obj.SprocketReference = list(self.SprocketReferenceRollerTable.keys()) - + obj.NumberOfTeeth = 50 - obj.Pitch = "0.375 in" + obj.Pitch = "0.375 in" obj.RollerDiameter = "0.20 in" obj.SprocketReference = "ANSI 35" obj.Thickness = "0.11 in" obj.Proxy = self - - + + def execute(self,obj): w = fcsprocket.FCWireBuilder() sprocket.CreateSprocket(w, obj.Pitch.Value, obj.NumberOfTeeth, obj.RollerDiameter.Value) @@ -144,8 +144,8 @@ class Sprocket: obj.Shape = sprocketw obj.positionBySupport(); return - - + + class ViewProviderSprocket: """ A View Provider for the Sprocket object @@ -153,7 +153,7 @@ class ViewProviderSprocket: def __init__(self,vobj): vobj.Proxy = self - + def getIcon(self): return ":/icons/PartDesign_Sprocket.svg" @@ -167,7 +167,7 @@ class ViewProviderSprocket: taskd.update() FreeCADGui.Control.showDialog(taskd) return True - + def unsetEdit(self,vobj,mode): FreeCADGui.Control.closeDialog() return @@ -186,32 +186,32 @@ class SprocketTaskPanel: def __init__(self,obj,mode): self.obj = obj - + self.form=FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/PartDesign/SprocketFeature.ui") self.form.setWindowIcon(QtGui.QIcon(":/icons/PartDesign_Sprocket.svg")) - + QtCore.QObject.connect(self.form.Quantity_Pitch, QtCore.SIGNAL("valueChanged(double)"), self.pitchChanged) QtCore.QObject.connect(self.form.Quantity_RollerDiameter, QtCore.SIGNAL("valueChanged(double)"), self.rollerDiameterChanged) QtCore.QObject.connect(self.form.spinBox_NumberOfTeeth, QtCore.SIGNAL("valueChanged(int)"), self.numTeethChanged) QtCore.QObject.connect(self.form.comboBox_SprocketReference, QtCore.SIGNAL("currentTextChanged(const QString)"), self.sprocketReferenceChanged) QtCore.QObject.connect(self.form.Quantity_Thickness, QtCore.SIGNAL("valueChanged(double)"), self.thicknessChanged) - + self.update() - + if mode == 0: # fresh created - self.obj.Proxy.execute(self.obj) # calculate once + self.obj.Proxy.execute(self.obj) # calculate once FreeCAD.Gui.SendMsgToActiveView("ViewFit") - + def transferTo(self): """ Transfer from the dialog to the object - """ + """ self.obj.NumberOfTeeth = self.form.spinBox_NumberOfTeeth.value() self.obj.Pitch = self.form.Quantity_Pitch.text() self.obj.RollerDiameter = self.form.Quantity_RollerDiameter.text() self.obj.SprocketReference = self.form.comboBox_SprocketReference.currentText() self.obj.Thickness = self.form.Quantity_Thickness.text() - + def transferFrom(self): """ Transfer from the object to the dialog @@ -221,7 +221,7 @@ class SprocketTaskPanel: self.form.Quantity_RollerDiameter.setText(self.obj.RollerDiameter.UserString) self.form.comboBox_SprocketReference.setCurrentText(self.obj.SprocketReference) self.form.Quantity_Thickness.setText(self.obj.Thickness.UserString) - + def pitchChanged(self, value): self.obj.Pitch = value self.obj.Proxy.execute(self.obj) @@ -235,10 +235,10 @@ class SprocketTaskPanel: self.form.Quantity_Pitch.setText(self.obj.Pitch.UserString) self.form.Quantity_RollerDiameter.setText(self.obj.RollerDiameter.UserString) self.form.Quantity_Thickness.setText(self.obj.Thickness.UserString) - + self.obj.Proxy.execute(self.obj) FreeCAD.Gui.SendMsgToActiveView("ViewFit") - + def rollerDiameterChanged(self, value): self.obj.RollerDiameter = value self.obj.Proxy.execute(self.obj) @@ -251,23 +251,23 @@ class SprocketTaskPanel: def thicknessChanged(self, value): self.obj.Thickness = str(value) self.obj.Proxy.execute(self.obj) - + def getStandardButtons(self): return int(QtGui.QDialogButtonBox.Ok) | int(QtGui.QDialogButtonBox.Cancel)| int(QtGui.QDialogButtonBox.Apply) - + def clicked(self,button): if button == QtGui.QDialogButtonBox.Apply: self.transferTo() - self.obj.Proxy.execute(self.obj) - + self.obj.Proxy.execute(self.obj) + def update(self): self.transferFrom() - + def accept(self): self.transferTo() FreeCAD.ActiveDocument.recompute() FreeCADGui.ActiveDocument.resetEdit() - + def reject(self): FreeCADGui.ActiveDocument.resetEdit() FreeCAD.ActiveDocument.abortTransaction() diff --git a/src/Mod/PartDesign/WizardShaft/SegmentFunction.py b/src/Mod/PartDesign/WizardShaft/SegmentFunction.py index f6c6606b7d..f1c4d12c51 100644 --- a/src/Mod/PartDesign/WizardShaft/SegmentFunction.py +++ b/src/Mod/PartDesign/WizardShaft/SegmentFunction.py @@ -26,7 +26,7 @@ import numpy as np class SegmentFunctionSegment: "One segment of a segment function" - + def __init__(self, st, var, coeff, exp): self.start = st self.variable = var @@ -37,7 +37,7 @@ class SegmentFunctionSegment: "Return true if the start of this segment is xval" #FIXME: 1E-9 is arbitrary here. But since units are in meters, 1E-9 is a nanometer... return abs(self.start - xval) < 1E-9 - + def isZero(self): #FIXME: 1E-9 is arbitrary here. But since units are in meters, 1E-9 is a nanometer... return abs(self.coefficient) < 1E-5 @@ -50,14 +50,14 @@ class SegmentFunctionSegment: def clone(self): return SegmentFunctionSegment(self.start, self.variable, self.coefficient, self.exponent) - + def negate(self): self.coefficient *= -1 return self - + def negated(self): return SegmentFunctionSegment(self.start, self.variable, self.coefficient * -1.0, self.exponent) - + def __mul__(self, value): return SegmentFunctionSegment(self.start, self.variable, self.coefficient * value, self.exponent) @@ -76,7 +76,7 @@ class SegmentFunction: self.variable = "x" self.segments = [] self.name = name - + def findSegment(self, xval): "Find segment valid for the given xval" for s in self.segments: @@ -94,14 +94,14 @@ class SegmentFunction: for s in self.segments: s.negate() return self - + def negated(self): result = SegmentFunction() result.variable = self.variable for s in self.segments: result.segments.append(s.negated()) return result - + def __mul__(self, value): result = SegmentFunction() result.variable = self.variable @@ -124,7 +124,7 @@ class SegmentFunction: for key in sorted(dict.keys()): #if abs(dict[key]) > 1E-9: self.segments.append(SegmentFunctionSegment(key, var, dict[key], 0)) - + def addSegment(self, st, coeff, exp = 0.0): if abs(coeff) > 1E-9: self.segments.insert(self.index(st), SegmentFunctionSegment(st, self.variable, coeff, exp)) @@ -196,24 +196,24 @@ class SegmentFunction: class IntervalFunction: "Function defined in intervals" - + def __init__(self): self.intervals = [] self.values = [] - + def addInterval(self, begin, length, value): self.intervals.append((begin, length)) self.values.append(value) - - def value(self, xval): + + def value(self, xval): for i in range(len(self.intervals)): if xval >= self.intervals[i][0] and xval < self.intervals[i][0] + self.intervals[i][1]: return self.values[i] return self.values[len(self.values)-1] - + def lowervalue(self, xval): return self.value(xval - 1E-8) - + def index(self, xval): lastStart = 0.0 for i in range(len(self.intervals)): @@ -226,25 +226,25 @@ class IntervalFunction: def interval(self, xval): "Return interval (begin, length) for this xval" return self.intervals[self.index(xval)] - + def begin(self, xval): return self.intervals[self.index(xval)][0] - + def length(self, xval): return self.intervals[self.index(xval)][1] class StressFunction: "Specialization for segment-wise display of stresses" # The hairy thing about this is that the segments of the segfunc usually do not correspond with the intervals of the intfunc! - + def __init__(self, f, i): self.segfunc = f # The segment function for the force/moment self.intfunc = i # The divisors, an interval function giving a specific value for each interval name = "sigma" - + def isZero(self): return self.segfunc.isZero() - + def evaluate(self, maxX, pointsX): # Note: This usually creates a few more points than specified in pointsX offset = (maxX - self.segfunc.segments[0].start) / (pointsX - 1) @@ -253,10 +253,10 @@ class StressFunction: xvals = xvals.union(starts) # Make sure we have a point on each segment start divs = set([self.intfunc.intervals[i][0] for i in range(len(self.intfunc.intervals))]) xvals = xvals.union(divs) - + xresult = [] yresult = [] - for xval in sorted(xvals): + for xval in sorted(xvals): if xval in starts: # create double point at segment border xresult.append(xval) @@ -268,10 +268,10 @@ class StressFunction: xresult.append(xval) yresult.append(self.segfunc.value(xval) / self.intfunc.value(xval)) return (xresult, yresult) - + class TranslationFunction: "Specialization for segment-wise display of translations" - + def __init__(self, f, E, d, tangents, translations): if f.isZero(): self.transfunc = None @@ -289,7 +289,7 @@ class TranslationFunction: self.module = E self.intfunc = d self.name = "w" - + # Solve boundary conditions. There are two types: # External boundary conditions, e.g. a given tangent direction or translation value at a given x-value # Internal boundary conditions, i.e. at the segment borders the tangent direction and translation of the lines must be equal @@ -301,20 +301,20 @@ class TranslationFunction: b = np.zeros(shape = 2 * len(self.intfunc.intervals)) # Current row where coefficients of next equation will be added row = 0 - + # First look at external boundary conditions for bound in tangents: xval = bound[0] - tang = bound[1] + tang = bound[1] i = self.intfunc.index(xval) # index of this segment - I_i = self.intfunc.value(xval) # Area moment of this segment + I_i = self.intfunc.value(xval) # Area moment of this segment # w_i'(xval) = tang => (tangfunc(xval) + C_i0) / (E * I_i) = tang => C_i0 = tang * (E * I_i) - tangfunc(xval) A[row][2 * i] = 1.0 b[row] = tang * E * I_i - self.tangfunc.value(xval) row += 1 for bound in translations: xval = bound[0] - trans = bound[1] + trans = bound[1] i = self.intfunc.index(xval) # index of this segment I_i = self.intfunc.value(xval) # Area moment of this segment # w_i(xval) = trans => (transfunc(xval) + C_i0 * xval + C_i1) / (E * I_i) = trans => xval / (E * I_i) * C_i0 + 1 / (E * I_i) * C_i1 = trans - transfunc(xval) / (E * I_i) @@ -322,7 +322,7 @@ class TranslationFunction: A[row][2 * i + 1] = 1 / (E * I_i) b[row] = trans - self.transfunc.value(xval) / (E * I_i) row += 1 - + # Now look at internal boundary conditions (n intervals have n-1 common segment boundaries) for i in range(len(self.intfunc.intervals) - 1): x_start = self.intfunc.intervals[i][0] @@ -343,24 +343,24 @@ class TranslationFunction: A[row][2 * (i+1) + 1] = -1 / (E * I_ip1) b[row] = self.transfunc.value(x_end) / (E * I_ip1) - self.transfunc.value(x_end) / (E * I_i) row += 1 - + #FreeCAD.Console.PrintMessage(A) #FreeCAD.Console.PrintMessage(" * x = ") #FreeCAD.Console.PrintMessage(b) #FreeCAD.Console.PrintMessage("\n") - + try: self.boundaries = np.linalg.solve(A, b) # A * self.boundaries = b except np.linalg.linalg.LinAlgError as e: FreeCAD.Console.PrintMessage(e.message) FreeCAD.Console.PrintMessage(". No solution possible.\n") return - + def isZero(self): if self.transfunc is None: return True return self.transfunc.isZero() - + def evaluate(self, maxX, pointsX): # Note: This usually creates a few more points than specified in pointsX offset = (maxX - self.transfunc.segments[0].start) / (pointsX - 1) @@ -370,7 +370,7 @@ class TranslationFunction: divs = set([self.intfunc.intervals[i][0] for i in range(len(self.intfunc.intervals))]) xvals = xvals.union(divs) E = self.module - + xresult = [] yresult = [] # Coverity has reported a problem that I_i, C_i0 or C_i1: @@ -383,11 +383,11 @@ class TranslationFunction: C_i0 = self.boundaries[2 * i] C_i1 = self.boundaries[2 * i + 1] FreeCAD.Console.PrintMessage("Interval %u: %f to %f, I_i: %f, C_i0: %f, C_i1: %f\n" % (i, begin, length, I_i, C_i0, C_i1)) - + xresult.append(xval) # w(xval) = (transfunc(xval) + C_i0 * xval + C_i1) / (E * I_i) value = (self.transfunc.value(xval) + C_i0 * xval + C_i1) / (E * I_i) yresult.append(value) - + return (xresult, yresult) diff --git a/src/Mod/PartDesign/WizardShaft/Shaft.py b/src/Mod/PartDesign/WizardShaft/Shaft.py index b8f3a1841e..90571d6804 100644 --- a/src/Mod/PartDesign/WizardShaft/Shaft.py +++ b/src/Mod/PartDesign/WizardShaft/Shaft.py @@ -44,14 +44,14 @@ class Shaft: sigmaNstr = ["sigmax","sigmay","sigmaz"] # Normal/shear stresses sigmaBstr = ["taut","sigmabz", "sigmaby"] # Torsion/bending stresses # For diagram labeling - Qstrings = (("Normal force [x]", "x", "mm", "N_x", "N"), - ("Shear force [y]", "x", "mm", "Q_y", "N"), + Qstrings = (("Normal force [x]", "x", "mm", "N_x", "N"), + ("Shear force [y]", "x", "mm", "Q_y", "N"), ("Shear force [z]", "x", "mm", "Q_z", "N")) - Mstrings = (("Torque [x]", "x", "mm", "M_t", "Nm"), - ("Bending moment [z]", "x", "mm", "M_{b,z}", "Nm"), + Mstrings = (("Torque [x]", "x", "mm", "M_t", "Nm"), + ("Bending moment [z]", "x", "mm", "M_{b,z}", "Nm"), ("Bending moment [y]", "x", "mm", "M_{b,y}", "Nm")) - wstrings = (("", "", "", "", ""), - ("Translation [y]", "x", "mm", "w_y", "mm"), + wstrings = (("", "", "", "", ""), + ("Translation [y]", "x", "mm", "w_y", "mm"), ("Translation [z]", "x", "mm", "w_z", "mm")) sigmaNstrings = (("Normal stress [x]", "x", "mm", "\\sigma_x", u"N/mm²"), ("Shear stress [y]", "x", "mm", "\\sigma_y", u"N/mm²"), @@ -94,18 +94,18 @@ class Shaft: self.segments[index].constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1) + 1) )] else: # Remove reference since it is now in the middle of the shaft (which is not allowed) - self.segments[index].constraint.References = [(None, "")] + self.segments[index].constraint.References = [(None, "")] def updateSegment(self, index, length = None, diameter = None, innerdiameter = None): oldLength = self.segments[index].length - + if length is not None: self.segments[index].length = length if diameter is not None: self.segments[index].diameter = diameter if innerdiameter is not None: self.segments[index].innerdiameter = innerdiameter - + self.feature.updateSegment(index, oldLength, self.segments[index].length, self.segments[index].diameter, self.segments[index].innerdiameter) self.equilibrium() self.updateDiagrams() @@ -116,14 +116,14 @@ class Shaft: if (self.segments[index].constraintType != "None") and (self.segments[index].constraintType != constraintType): self.doc.removeObject(self.segments[index].constraint.Name) self.segments[index].constraint = None - - self.segments[index].constraintType = constraintType - + + self.segments[index].constraintType = constraintType + # Create constraint if it does not exist yet or has changed if self.segments[index].constraint is None: if (constraintType == "Force"): # TODO: Create a reference point and put the force onto it - constraint = self.doc.addObject("Fem::ConstraintForce","ShaftConstraintForce") + constraint = self.doc.addObject("Fem::ConstraintForce","ShaftConstraintForce") constraint.Force = 1000.0 self.segments[index].constraint = constraint elif (constraintType == "Fixed"): @@ -136,26 +136,26 @@ class Shaft: self.segments[index].constraint = constraint elif (constraintType == "Bearing"): # TODO: Use robust reference as soon as it is available for the cylindrical face reference - constraint = self.doc.addObject("Fem::ConstraintBearing","ShaftConstraintBearing") - constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] + constraint = self.doc.addObject("Fem::ConstraintBearing","ShaftConstraintBearing") + constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] constraint.AxialFree = True - self.segments[index].constraint = constraint + self.segments[index].constraint = constraint elif (constraintType == "Pulley"): constraint= self.doc.addObject("Fem::ConstraintPulley","ShaftConstraintPulley") - constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] - self.segments[index].constraint = constraint + constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] + self.segments[index].constraint = constraint elif (constraintType == "Gear"): - constraint = self.doc.addObject("Fem::ConstraintGear","ShaftConstraintGear") - constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] - self.segments[index].constraint = constraint - + constraint = self.doc.addObject("Fem::ConstraintGear","ShaftConstraintGear") + constraint.References = [( self.feature.feature, "Face%u" % (2 * (index+1)) )] + self.segments[index].constraint = constraint + self.equilibrium() self.updateDiagrams() - + def editConstraint(self, index): if (self.segments[index].constraint is not None): FreeCADGui.activeDocument().setEdit(self.segments[index].constraint.Name) - + def getConstraint(self, index): return self.segments[index].constraint @@ -193,7 +193,7 @@ class Shaft: # FIXME: This is impossible without robust references anchored in the sketch!!! return - def updateDiagrams(self): + def updateDiagrams(self): for ax in range(3): if self.F[ax] is not None: if self.F[ax].name in self.diagrams: @@ -211,7 +211,7 @@ class Shaft: if self.sigmaB[ax].name in self.diagrams: self.diagrams[self.sigmaB[ax].name].update(self.sigmaB[ax], self.getLengthTo(len(self.segments)) / 1000.0) - def showDiagram(self, which): + def showDiagram(self, which): if which in self.Fstr: ax = self.Fstr.index(which) text = self.Qstrings[ax] @@ -277,13 +277,13 @@ class Shaft: return self.diagrams[self.sigmaB[ax].name] = Diagram() self.diagrams[self.sigmaB[ax].name].create(text[0], self.sigmaB[ax], self.getLengthTo(len(self.segments)) / 1000.0, text[1], text[2], 1000.0, text[3], text[4], 1.0E-6, 20) - + def addTo(self, dict, location, value): if location not in dict: dict[location] = value else: dict[location] += value - + def equilibrium(self): # Build equilibrium equations try: @@ -291,20 +291,20 @@ class Shaft: except ImportError: FreeCAD.Console.PrintMessage("numpy is not installed on your system\n") raise ImportError("numpy not installed") - + # Initialization of structures. All three axes are handled separately so everything is 3-fold # dictionaries of (location : outer force/moment) with reverse sign, which means that the segment functions for the section force and section moment - # created from them will have signs as by the convention in + # created from them will have signs as by the convention in # http://www.umwelt-campus.de/ucb/fileadmin/users/90_t.preussler/dokumente/Skripte/TEMECH/TMI/Ebene_Balkenstatik.pdf (page 10) # (see also example on page 19) - forces = [{0.0:0.0}, {0.0:0.0}, {0.0:0.0}] + forces = [{0.0:0.0}, {0.0:0.0}, {0.0:0.0}] moments = [{0.0:0.0}, {0.0:0.0}, {0.0:0.0}] # Boundary conditions for shaft bending line tangents = [[], [], []] # Tangents to shaft bending line translations = [[], [], []] # Shaft displacement - # Variable names, e.g. Fx, Mz. Because the system must be exactly determined, not more than two independent variables for each + # Variable names, e.g. Fx, Mz. Because the system must be exactly determined, not more than two independent variables for each # force/moment per axis are possible (if there are more no solution is calculated) - variableNames = [[""], [""], [""]] + variableNames = [[""], [""], [""]] # # dictionary of (variableName : location) giving the x-coordinate at which the force/moment represented by the variable acts on the shaft locations = {} # Coefficients of the equilibrium equations in the form a = b * F1 + c * F2 and d = e * M1 + f * M2 @@ -315,58 +315,58 @@ class Shaft: for i in range(len(self.segments)): cType = self.segments[i].constraintType constraint = self.segments[i].constraint - + if cType == "Fixed": # Fixed segment if i == 0: # At beginning of shaft - location = 0 + location = 0 elif i == len(self.segments) - 1: # At end of shaft - location = self.getLengthTo(len(self.segments)) / 1000.0 # convert to meters + location = self.getLengthTo(len(self.segments)) / 1000.0 # convert to meters else: # TODO: Better error message FreeCAD.Console.PrintMessage("Fixed constraint must be at beginning or end of shaft\n") return - - for ax in range(3): + + for ax in range(3): # Create a new reaction force variableNames[ax].append("%s%u" % (self.Fstr[ax], i)) coefficientsF[ax].append(1) - # Register location of reaction force + # Register location of reaction force locations["%s%u" % (self.Fstr[ax], i)] = location # Boundary conditions for the translations tangents[ax].append((location, 0.0)) translations[ax].append((location, 0.0)) coefficientsM[0].append(0) # Reaction force contributes no moment around x axis coefficientsM[1].append(location) # Reaction force contributes a positive moment around z axis - coefficientsM[2].append(-location) # Reaction force contributes a negative moment around y axis - + coefficientsM[2].append(-location) # Reaction force contributes a negative moment around y axis + for ax in range(3): # Create a new reaction moment variableNames[ax].append("%s%u" % (self.Mstr[ax], i)) coefficientsF[ax].append(0) - coefficientsM[ax].append(1) + coefficientsM[ax].append(1) locations["%s%u" % (self.Mstr[ax], i)] = location - + elif cType == "Force": # Static force (currently force on midpoint of segment only) - force = constraint.DirectionVector.multiply(constraint.Force) + force = constraint.DirectionVector.multiply(constraint.Force) # TODO: Extract value of the location from geometry location = (self.getLengthTo(i) + self.segments[i].length/2.0) / 1000.0 # The force itself - for ax in range(3): + for ax in range(3): if abs(force[ax]) > 0.0: coefficientsF[ax][0] = coefficientsF[ax][0] - force[ax] # neg. because this coefficient is on the LHS of the equilibrium equation self.addTo(forces[ax], location, -force[ax]) # neg. to fulfill the convention mentioned above - # Moments created by the force (by definition no moment is created by the force in x-direction) + # Moments created by the force (by definition no moment is created by the force in x-direction) if abs(force[1]) > 0.0: coefficientsM[1][0] = coefficientsM[1][0] - force[1] * location # moment around z-axis self.addTo(moments[1], location, 0) if abs(force[2]) > 0.0: coefficientsM[2][0] = coefficientsM[2][0] + force[2] * location # moment around y-axis self.addTo(moments[2], location, 0) # No outer moment acts here! - + elif cType == "Bearing": location = constraint.BasePoint.x / 1000.0 # TODO: This assumes that the shaft feature starts with the first segment at (0,0,0) and its axis corresponds to the x-axis # Bearing reaction forces. TODO: the bearing is assumed to not induce any reaction moments @@ -380,28 +380,28 @@ class Shaft: if constraint.AxialFree == False: coefficientsM[0].append(0) # Reaction force contributes no moment around x axis coefficientsM[1].append(location) # Reaction force contributes a positive moment around z axis - coefficientsM[2].append(-location) # Reaction force contributes a negative moment around y axis - + coefficientsM[2].append(-location) # Reaction force contributes a negative moment around y axis + elif cType == "Gear": - force = constraint.DirectionVector.multiply(constraint.Force) + force = constraint.DirectionVector.multiply(constraint.Force) location = constraint.BasePoint.x / 1000.0 - lever = [0, constraint.Diameter/2.0/1000.0 * math.sin(constraint.ForceAngle / 180.0 * math.pi), + lever = [0, constraint.Diameter/2.0/1000.0 * math.sin(constraint.ForceAngle / 180.0 * math.pi), constraint.Diameter/2.0 /1000.0* math.cos(constraint.ForceAngle / 180.0 * math.pi)] - + # Effect of the gear force for ax in range(3): if abs(force[ax]) > 0.0: # Effect of the force coefficientsF[ax][0] = coefficientsF[ax][0] - force[ax] self.addTo(forces[ax], location, -force[ax]) - # Moments created by the force (by definition no moment is created by the force in x-direction) + # Moments created by the force (by definition no moment is created by the force in x-direction) if abs(force[1]) > 0.0: coefficientsM[1][0] = coefficientsM[1][0] - force[1] * location # moment around z-axis self.addTo(moments[1], location, 0) if abs(force[2]) > 0.0: coefficientsM[2][0] = coefficientsM[2][0] + force[2] * location # moment around y-axis self.addTo(moments[2], location, 0) # No outer moment acts here! - + # Moments created by the force and lever if abs(force[0]) > 0.0: momenty = force[0] * lever[2] @@ -409,7 +409,7 @@ class Shaft: coefficientsM[1][0] = coefficientsM[1][0] + momentz # moment around z-axis self.addTo(moments[1], location, momentz) coefficientsM[2][0] = coefficientsM[2][0] - momenty # moment around y-axis - self.addTo(moments[2], location, -momenty) + self.addTo(moments[2], location, -momenty) if abs(force[1]) > 0.0: moment = force[1] * lever[2] coefficientsM[0][0] = coefficientsM[0][0] + moment @@ -423,26 +423,26 @@ class Shaft: forceAngle2 = (constraint.ForceAngle - constraint.BeltAngle + 90.0) / 180.0 * math.pi #FreeCAD.Console.PrintMessage("BeltForce1: %f, BeltForce2: %f\n" % (constraint.BeltForce1, constraint.BeltForce2)) #FreeCAD.Console.PrintMessage("Angle1: %f, Angle2: %f\n" % (forceAngle1, forceAngle2)) - force = [0, -constraint.BeltForce1 * math.sin(forceAngle1) - constraint.BeltForce2 * math.sin(forceAngle2), + force = [0, -constraint.BeltForce1 * math.sin(forceAngle1) - constraint.BeltForce2 * math.sin(forceAngle2), constraint.BeltForce1 * math.cos(forceAngle1) + constraint.BeltForce2 * math.cos(forceAngle2)] - location = constraint.BasePoint.x / 1000.0 - + location = constraint.BasePoint.x / 1000.0 + # Effect of the pulley forces for ax in range(3): if abs(force[ax]) > 0.0: # Effect of the force coefficientsF[ax][0] = coefficientsF[ax][0] - force[ax] self.addTo(forces[ax], location, -force[ax]) - # Moments created by the force (by definition no moment is created by the force in x-direction) + # Moments created by the force (by definition no moment is created by the force in x-direction) if abs(force[1] ) > 0.0: coefficientsM[1][0] = coefficientsM[1][0] - force[1] * location # moment around z-axis self.addTo(moments[1], location, 0) if abs(force[2]) > 0.0: coefficientsM[2][0] = coefficientsM[2][0] + force[2] * location # moment around y-axis self.addTo(moments[2], location, 0) # No outer moment acts here! - + # Torque - moment = constraint.Force * (1 if constraint.IsDriven is True else -1) + moment = constraint.Force * (1 if constraint.IsDriven is True else -1) coefficientsM[0][0] = coefficientsM[0][0] + moment self.addTo(moments[0], location, moment) @@ -450,9 +450,9 @@ class Shaft: areamoments = [None, None, None] bendingmoments = [None, None, None] torquemoments = [None, None, None] - + for ax in range(3): - FreeCAD.Console.PrintMessage("Axis: %u\n" % ax) + FreeCAD.Console.PrintMessage("Axis: %u\n" % ax) self.printEquilibrium(variableNames[ax], coefficientsF[ax]) self.printEquilibrium(variableNames[ax], coefficientsM[ax]) @@ -461,7 +461,7 @@ class Shaft: FreeCAD.Console.PrintMessage("Matrix is singular, no solution possible\n") self.parent.updateButtons(ax, False) continue - + # Handle special cases. Note that the code above should ensure that coefficientsF and coefficientsM always have same length solution = [None, None] if len(coefficientsF[ax]) == 2: @@ -473,10 +473,10 @@ class Shaft: FreeCAD.Console.PrintMessage("System is statically undetermined. No solution possible.\n") self.parent.updateButtons(ax, False) continue - else: - # Build matrix and vector for linear algebra solving algorithm + else: + # Build matrix and vector for linear algebra solving algorithm # TODO: This could easily be done manually... there are only 2 variables and 6 coefficients - A = np.array([coefficientsF[ax][1:], coefficientsM[ax][1:]]) + A = np.array([coefficientsF[ax][1:], coefficientsM[ax][1:]]) b = np.array([coefficientsF[ax][0], coefficientsM[ax][0]]) try: solution = np.linalg.solve(A, b) # A * solution = b @@ -500,12 +500,12 @@ class Shaft: FreeCAD.Console.PrintMessage("\n") FreeCAD.Console.PrintMessage(moments[ax]) FreeCAD.Console.PrintMessage("\n") - + # Forces self.F[ax] = SegmentFunction(self.Fstr[ax]) self.F[ax].buildFromDict("x", forces[ax]) self.parent.updateButton(1, ax, not self.F[ax].isZero()) - self.F[ax].output() + self.F[ax].output() # Moments if ax == 0: self.M[0] = SegmentFunction(self.Mstr[0]) @@ -513,21 +513,21 @@ class Shaft: elif ax == 1: self.M[1] = self.F[1].integrated().negate() self.M[1].name = self.Mstr[1] - self.M[1].addSegments(moments[1]) # takes care of boundary conditions + self.M[1].addSegments(moments[1]) # takes care of boundary conditions elif ax == 2: - self.M[2] = self.F[2].integrated() + self.M[2] = self.F[2].integrated() self.M[2].name = self.Mstr[2] - self.M[2].addSegments(moments[2]) # takes care of boundary conditions + self.M[2].addSegments(moments[2]) # takes care of boundary conditions self.parent.updateButton(2, ax, not self.M[ax].isZero()) self.M[ax].output() - - # Areas and area moments + + # Areas and area moments location = 0.0 areas[ax] = IntervalFunction() # A [m²] areamoments[ax] = IntervalFunction() # I [m⁴] bendingmoments[ax] = IntervalFunction() # W_b [m³] - torquemoments[ax] = IntervalFunction() # W_t [m³] - + torquemoments[ax] = IntervalFunction() # W_t [m³] + for i in range(len(self.segments)): od = self.segments[i].diameter/1000.0 id = self.segments[i].innerdiameter/1000.0 @@ -538,7 +538,7 @@ class Shaft: bendingmoments[ax].addInterval(location, length, areamoment / (od / 2.0)) torquemoments[ax].addInterval(location, length, 2 * (areamoment / (od / 2.0))) location += length - + # Bending line if ax > 0: if len(tangents[ax])+ len(translations[ax]) == 2: @@ -547,8 +547,8 @@ class Shaft: self.w[ax].name= self.wstr[ax] self.parent.updateButton(3, ax, not self.w[ax].isZero()) else: - self.parent.updateButton(3, ax, False) - + self.parent.updateButton(3, ax, False) + # Normal/shear stresses and torque/bending stresses self.sigmaN[ax] = StressFunction(self.F[ax], areas[ax]) self.sigmaN[ax].name = self.sigmaNstr[ax] @@ -561,7 +561,7 @@ class Shaft: self.parent.updateButton(5, ax, not self.sigmaB[ax].isZero()) def printEquilibrium(self, var, coeff): - # Auxiliary method for debugging purposes + # Auxiliary method for debugging purposes for i in range(len(var)): if i == 0: FreeCAD.Console.PrintMessage("%f = " % coeff[i]) diff --git a/src/Mod/PartDesign/WizardShaft/ShaftDiagram.py b/src/Mod/PartDesign/WizardShaft/ShaftDiagram.py index 5e4f2230f0..3902e93ec0 100644 --- a/src/Mod/PartDesign/WizardShaft/ShaftDiagram.py +++ b/src/Mod/PartDesign/WizardShaft/ShaftDiagram.py @@ -59,7 +59,7 @@ class Diagram: if xlength is not None: self.xlength = xlength # Calculate points - (self.xpoints, self.ypoints) = self.function.evaluate(self.xlength, self.numxpoints) + (self.xpoints, self.ypoints) = self.function.evaluate(self.xlength, self.numxpoints) # Create plot self.plot() @@ -82,7 +82,7 @@ class Diagram: axes.set_xlim(right = max(self.xpoints) * 1.05) axes.set_ylim(min(self.ypoints) * 1.05, max(self.ypoints) * 1.05) self.thePlot.update() - + def close(self): # Close the associated mdiSubWindow self.win.parent().close() diff --git a/src/Mod/PartDesign/WizardShaft/ShaftFeature.py b/src/Mod/PartDesign/WizardShaft/ShaftFeature.py index 82e9271335..890c0c1b2c 100644 --- a/src/Mod/PartDesign/WizardShaft/ShaftFeature.py +++ b/src/Mod/PartDesign/WizardShaft/ShaftFeature.py @@ -36,7 +36,7 @@ class ShaftFeature: # TODO: Discover existing sketch and get data from it self.sketch = self.Doc.addObject("Sketcher::SketchObject","SketchShaft") self.sketch.Placement = self.App.Placement(self.App.Vector(0,0,0),self.App.Rotation(0,0,0,1)) - + self.feature = 0 self.segments = 0 # number of segments self.totalLength = 0 # total length of all segments @@ -72,7 +72,7 @@ class ShaftFeature: # First segment of shaft # Create centerline self.sketch.addGeometry(Part.LineSegment(self.App.Vector(0,0,0), self.App.Vector(self.totalLength,0,0))) - self.sketch.addConstraint(Sketcher.Constraint('DistanceX',0, self.totalLength)) # Constraint1 + self.sketch.addConstraint(Sketcher.Constraint('DistanceX',0, self.totalLength)) # Constraint1 self.sketch.addConstraint(Sketcher.Constraint('DistanceY', -1,1,0,1,innerradius)) # Constraint2 self.sketch.addConstraint(Sketcher.Constraint('PointOnObject',0,1,-2)) # Constraint3 self.sketch.addConstraint(Sketcher.Constraint('Horizontal', 0)) # Constraint4 diff --git a/src/Mod/PartDesign/fcgear/involute.py b/src/Mod/PartDesign/fcgear/involute.py index 057ccfa9ed..8894241b4d 100644 --- a/src/Mod/PartDesign/fcgear/involute.py +++ b/src/Mod/PartDesign/fcgear/involute.py @@ -149,7 +149,7 @@ def CreateInternalGear(w, m, Z, phi, split=True): Rroot = Rpitch + dedendum # root circle radius fRad = 1.5 * clearance # fillet radius, max 1.5*clearance Rf = Rroot - clearance # radius at top of fillet (end of profile) - + # ****** calculate angles (all in radians) pitchAngle = 2 * pi / Z # angle subtended by whole tooth (rads) baseToPitchAngle = genInvolutePolar(Rb, Rpitch) @@ -232,8 +232,8 @@ def CreateInternalGear(w, m, Z, phi, split=True): w.arc(rootNext, Rroot, 0) # root circle arc w.arc(filletNext, fRad, 1) - - + + w.close() return w diff --git a/src/Mod/PartDesign/fcsprocket/README.md b/src/Mod/PartDesign/fcsprocket/README.md index 3759e676ce..8225b61711 100644 --- a/src/Mod/PartDesign/fcsprocket/README.md +++ b/src/Mod/PartDesign/fcsprocket/README.md @@ -10,7 +10,7 @@ to ANSI standards from the methods outlined in: handling. Boca Raton: Taylor & Francis, 2006. Print. AND - + Oberg, Erik, et al. Machinery's handbook : a reference book for the mechanical engineer, designer, manufacturing engineer, draftsman, toolmaker, and machinist. New York: Industrial Press, 2016. Print. diff --git a/src/Mod/PartDesign/fcsprocket/fcsprocketdialog.py b/src/Mod/PartDesign/fcsprocket/fcsprocketdialog.py index d5365eff51..18fcddf621 100644 --- a/src/Mod/PartDesign/fcsprocket/fcsprocketdialog.py +++ b/src/Mod/PartDesign/fcsprocket/fcsprocketdialog.py @@ -30,7 +30,7 @@ class SprocketCreationFrame(qt.QFrame): l.addRow('Number of teeth:', self.N) l.addRow('Chain Pitch (in):', self.P) l.addRow('Roller Diameter (in):', self.Dr) - + class SprocketDialog(qt.QDialog): def __init__(self, parent=None): diff --git a/src/Mod/PartDesign/fcsprocket/sprocket.py b/src/Mod/PartDesign/fcsprocket/sprocket.py index bc29970b10..0c09f4d7bd 100644 --- a/src/Mod/PartDesign/fcsprocket/sprocket.py +++ b/src/Mod/PartDesign/fcsprocket/sprocket.py @@ -90,19 +90,19 @@ def CreateSprocket(w, P, N, Dr): p6 = [-x2,y2] p7 = [-x3,y3] p8 = [-x4,y4] - + w.move(p4) # vectors are lists [x,y] w.arc(p3, F, 0) w.line(p2) w.arc(p1, E, 1) w.arc(p0, R, 1) - + # ---- Mirror ----- w.arc(p5, R, 1) w.arc(p6, E, 1) w.line(p7) w.arc(p8, F, 0) - + # ---- Polar Array ---- alpha = -radians(360/N) for n in range(1,N):