Minor fixes to handle boundary values of the angle for the portion of cylinder primitive.

This commit is contained in:
Florian BRUNET 2015-05-04 15:04:24 +02:00 committed by vsr
parent f971466504
commit 474f3f8098
2 changed files with 9 additions and 5 deletions

View File

@ -3055,10 +3055,12 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
theR,theH,theA,Parameters = ParseParameters(theR, theH, theA) theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
if flag: if flag:
theA = theA*math.pi/180. theA = theA*math.pi/180.
anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA) if theA<=0. or theA>=2*math.pi:
RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp) raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
anObj.SetParameters(Parameters) anObj = self.PrimOp.MakeCylinderPntVecRHA(thePnt, theAxis, theR, theH, theA)
self._autoPublish(anObj, theName, "cylinder") RaiseIfFailed("MakeCylinderPntVecRHA", self.PrimOp)
anObj.SetParameters(Parameters)
self._autoPublish(anObj, theName, "cylinder")
return anObj return anObj
## Create a cylinder with given radius and height at ## Create a cylinder with given radius and height at
@ -3136,6 +3138,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen):
theR,theH,theA,Parameters = ParseParameters(theR, theH, theA) theR,theH,theA,Parameters = ParseParameters(theR, theH, theA)
if flag: if flag:
theA = theA*math.pi/180. theA = theA*math.pi/180.
if theA<=0. or theA>=2*math.pi:
raise ValueError("The angle parameter should be strictly between 0 and 2*pi.")
anObj = self.PrimOp.MakeCylinderRHA(theR, theH, theA) anObj = self.PrimOp.MakeCylinderRHA(theR, theH, theA)
RaiseIfFailed("MakeCylinderRHA", self.PrimOp) RaiseIfFailed("MakeCylinderRHA", self.PrimOp)
anObj.SetParameters(Parameters) anObj.SetParameters(Parameters)

View File

@ -411,7 +411,7 @@ bool PrimitiveGUI_CylinderDlg::isValid (QString& msg)
{ {
ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) &&
GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) &&
( GroupDimensions->checkBox->isChecked() || GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) ); ( !GroupDimensions->checkBox->isChecked() || GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) );
if ( GroupDimensions->checkBox->isChecked() && if ( GroupDimensions->checkBox->isChecked() &&
( GroupDimensions->SpinBox_DZ->value() <= 0. || GroupDimensions->SpinBox_DZ->value() >= 360. ) ) { ( GroupDimensions->SpinBox_DZ->value() <= 0. || GroupDimensions->SpinBox_DZ->value() >= 360. ) ) {
msg += tr("GEOM_CYLINDER_ANGLE_ERR") + "\n"; msg += tr("GEOM_CYLINDER_ANGLE_ERR") + "\n";