Fix regressions

smesh/viscous_layers_00/A3
smesh/3D_mesh_GHS3D_01/B1
This commit is contained in:
eap 2017-03-16 17:57:38 +03:00
parent 88d37b48bd
commit 7dbb2914d9
3 changed files with 15 additions and 10 deletions

View File

@ -135,7 +135,7 @@ SMESHGUI_BuildCompoundDlg::SMESHGUI_BuildCompoundDlg( SMESHGUI* theModule )
CheckBoxMerge = new QCheckBox(tr("MERGE_NODES_AND_ELEMENTS"), GroupArgs);
TextLabelTol = new QLabel(tr("SMESH_TOLERANCE"), GroupArgs);
TextLabelTol->setAlignment(Qt::AlignCenter);
//TextLabelTol->setAlignment(Qt::AlignCenter);
SpinBoxTol = new SMESHGUI_SpinBox(GroupArgs);
SpinBoxTol->RangeStepAndValidator(0.0, COORD_MAX, 0.00001, "len_tol_precision" );
@ -146,8 +146,8 @@ SMESHGUI_BuildCompoundDlg::SMESHGUI_BuildCompoundDlg( SMESHGUI* theModule )
GroupArgsLayout->addWidget(ComboBoxUnion, 1, 3);
GroupArgsLayout->addWidget(CheckBoxCommon, 2, 0, 1, 4);
GroupArgsLayout->addWidget(CheckBoxMerge, 3, 0, 1, 4);
GroupArgsLayout->addWidget(TextLabelTol, 4, 0, 1, 2);
GroupArgsLayout->addWidget(SpinBoxTol, 4, 2, 1, 2);
GroupArgsLayout->addWidget(TextLabelTol, 4, 0);
GroupArgsLayout->addWidget(SpinBoxTol, 4, 1, 1, 3);
/***************************************************************/
GroupButtons = new QGroupBox(this);
@ -289,6 +289,8 @@ bool SMESHGUI_BuildCompoundDlg::ClickOnApply()
if (!isValid())
return false;
SUIT_OverrideCursor aWaitCursor;
SMESH::SMESH_Mesh_var aMesh;
if (!myMesh->_is_nil())
@ -298,7 +300,6 @@ bool SMESHGUI_BuildCompoundDlg::ClickOnApply()
QStringList anEntryList;
try {
SUIT_OverrideCursor aWaitCursor;
aMesh = myMeshArray[0]->GetMesh();
aMesh->SetParameters( aParameters.join(":").toLatin1().constData() );

View File

@ -1865,14 +1865,18 @@ SMESH_ComputeErrorPtr _ViscousBuilder::Compute(SMESH_Mesh& theMesh,
size_t iSD = 0;
for ( iSD = 0; iSD < _sdVec.size(); ++iSD ) // find next SOLID to compute
if ( _sdVec[iSD]._before.IsEmpty() &&
!_sdVec[iSD]._solid.IsNull() &&
_sdVec[iSD]._n2eMap.empty() )
break;
if ( ! makeLayer(_sdVec[iSD]) ) // create _LayerEdge's
return _error;
if ( _sdVec[iSD]._n2eMap.size() == 0 )
if ( _sdVec[iSD]._n2eMap.size() == 0 ) // no layers in a SOLID
{
_sdVec[iSD]._solid.Nullify();
continue;
}
if ( ! inflate(_sdVec[iSD]) ) // increase length of _LayerEdge's
return _error;
@ -9049,7 +9053,7 @@ void _LayerEdge::Block( _SolidData& data )
minDist = Min( pSrc.SquareDistance( pTgtN ), minDist );
minDist = Min( pTgt.SquareDistance( pSrcN ), minDist );
double newMaxLen = edge->_maxLen + 0.5 * Sqrt( minDist );
if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() )
//if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() ) viscous_layers_00/A3
{
newMaxLen *= edge->_lenFactor / neibor->_lenFactor;
}