]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Full/single angle
authornds <nds@opencascade.com>
Thu, 3 Mar 2016 15:27:44 +0000 (18:27 +0300)
committernds <nds@opencascade.com>
Thu, 3 Mar 2016 15:27:44 +0000 (18:27 +0300)
src/SketchSolver/SketchSolver_ConstraintMultiRotation.cpp
src/SketchSolver/SketchSolver_ConstraintMultiTranslation.cpp

index e2839f7b9468cf07b7daa7ec303e8cb6b0582738..bd53679d9ae635b2882bc62374c5703e5b936a76 100644 (file)
@@ -143,8 +143,12 @@ void SketchSolver_ConstraintMultiRotation::adjustConstraint()
   myCenterCoord[0] = aParams.front()->value();
   myCenterCoord[1] = aParams.back()->value();
 
-  myRotationVal[0] = sin(myAngle * PI / 180.0);
-  myRotationVal[1] = cos(myAngle * PI / 180.0);
+  double anAngleValue = myAngle;
+  if (myIsFullValue && myNumberOfCopies > 0)
+    anAngleValue /= myNumberOfCopies;
+
+  myRotationVal[0] = sin(anAngleValue * PI / 180.0);
+  myRotationVal[1] = cos(anAngleValue * PI / 180.0);
 
   SketchSolver_ConstraintMulti::adjustConstraint();
 }
index dd740003a3654babe6ea50769994edfa856991f8..2bea9a21774d8e3765694ad8a32a3c1af603763c 100644 (file)
@@ -148,9 +148,15 @@ void SketchSolver_ConstraintMultiTranslation::adjustConstraint()
   EntityWrapperPtr aEnd = myStorage->entity(
       myBaseConstraint->attribute(SketchPlugin_MultiTranslation::END_POINT_ID()));
   std::list<ParameterWrapperPtr> aEndParams = aEnd->parameters();
+
   myDelta[0] = aEndParams.front()->value() - aStartParams.front()->value();
   myDelta[1] = aEndParams.back()->value() - aStartParams.back()->value();
 
+  if (myIsFullValue && myNumberOfCopies > 0) {
+    myDelta[0] /= myNumberOfCopies;
+    myDelta[1] /= myNumberOfCopies;
+  }
+
   SketchSolver_ConstraintMulti::adjustConstraint();
 }