e9f368a85f
- aggiunta funzione Exe/lua Redraw - aggiunte funzioni Exe/lua SurfTmGetSmoothAng e VolZmapGetShowEdges.
505 lines
16 KiB
C++
505 lines
16 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2016-2017
|
|
//----------------------------------------------------------------------------
|
|
// File : LUA_GdbModifyVol.cpp Data : 09.03.17 Versione : 1.8c4
|
|
// Contenuto : Funzioni di modifica dei solidi per LUA.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 27.10.16 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "LUA.h"
|
|
#include "/EgtDev/Include/EXeExecutor.h"
|
|
#include "/EgtDev/Include/EXeConst.h"
|
|
#include "/EgtDev/Include/EGkLuaAux.h"
|
|
|
|
using namespace std ;
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaExplodeVolume( lua_State* L)
|
|
{
|
|
// 1 parametro : Id
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
LuaClearStack( L) ;
|
|
// esplosione del solido
|
|
int nCount ;
|
|
int nFirstId = ExeExplodeVolume( nId, &nCount) ;
|
|
if ( nFirstId != GDB_ID_NULL)
|
|
LuaSetParam( L, nFirstId) ;
|
|
else
|
|
LuaSetParam( L) ;
|
|
LuaSetParam( L, nCount) ;
|
|
return 2 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapChangeResolution( lua_State* L)
|
|
{
|
|
// 2 parametri : Id, nNewRes
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
int nNewRes ;
|
|
LuaCheckParam( L, 2, nNewRes)
|
|
LuaClearStack( L) ;
|
|
// cambio la risoluzione
|
|
bool bOk = ExeVolZmapChangeResolution( nId, nNewRes) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetShowEdges( lua_State* L)
|
|
{
|
|
// 2 parametri : Id, bShow
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
bool bShow ;
|
|
LuaCheckParam( L, 2, bShow) ;
|
|
LuaClearStack( L) ;
|
|
// imposto flag visualizzazione spigoli vivi
|
|
bool bOk = ExeVolZmapSetShowEdges( nId, bShow) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapGetShowEdges( lua_State* L)
|
|
{
|
|
// 1 parametro : Id
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
LuaClearStack( L) ;
|
|
// imposto flag visualizzazione spigoli vivi
|
|
bool bShow ;
|
|
bool bOk = ExeVolZmapGetShowEdges( nId, bShow) ;
|
|
// restituisco il risultato
|
|
if ( bOk)
|
|
LuaSetParam( L, bShow) ;
|
|
else
|
|
LuaSetParam( L) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaRemoveVolZmapPart( lua_State* L)
|
|
{
|
|
// 2 parametri : Id, nPart(0-based)
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
int nPart ;
|
|
LuaCheckParam( L, 2, nPart)
|
|
LuaClearStack( L) ;
|
|
// rimuovo la parte indicata
|
|
bool bOk = ExeRemoveVolZmapPart( nId, nPart) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetStdTool( lua_State* L)
|
|
{
|
|
// 6 o 7 parametri : vIds, sToolName, dLen, dDiam, dCornR, dCutterH [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dDiam ;
|
|
LuaCheckParam( L, 4, dDiam)
|
|
double dCornR ;
|
|
LuaCheckParam( L, 5, dCornR)
|
|
double dCutterH ;
|
|
LuaCheckParam( L, 6, dCutterH)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 7, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto utensile standard a Zmap indicati
|
|
bool bOk = ExeVolZmapSetStdTool( vIds, sToolName, dLen, dDiam, dCornR, dCutterH, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetAdvTool( lua_State* L)
|
|
{
|
|
// 8 o 9 parametri : vIds, sToolName, dLen, dDiam, dTipLen, dTipDiam, dCornR, dCutterH [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dDiam ;
|
|
LuaCheckParam( L, 4, dDiam)
|
|
double dTipLen ;
|
|
LuaCheckParam( L, 5, dTipLen)
|
|
double dTipDiam ;
|
|
LuaCheckParam( L, 6, dTipDiam)
|
|
double dCornR ;
|
|
LuaCheckParam( L, 7, dCornR)
|
|
double dCutterH ;
|
|
LuaCheckParam( L, 8, dCutterH)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 9, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto utensile avanzato a Zmap indicati
|
|
bool bOk = ExeVolZmapSetAdvTool( vIds, sToolName, dLen, dDiam, dTipLen, dTipDiam, dCornR, dCutterH, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetSawTool( lua_State* L)
|
|
{
|
|
// 7 o 8 parametri : vIds, sToolName, dLen, dDiam, dThick, dStemDiam, dCornR [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dDiam ;
|
|
LuaCheckParam( L, 4, dDiam)
|
|
double dThick ;
|
|
LuaCheckParam( L, 5, dThick)
|
|
double dStemDiam ;
|
|
LuaCheckParam( L, 6, dStemDiam)
|
|
double dCornR ;
|
|
LuaCheckParam( L, 7, dCornR)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 8, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto utensile avanzato a Zmap indicati
|
|
bool bOk = ExeVolZmapSetSawTool( vIds, sToolName, dLen, dDiam, dThick, dStemDiam, dCornR, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetGenTool( lua_State* L)
|
|
{
|
|
// 3 o 4 parametri : vIds, sToolName, ToolSectId [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
int nToolSectId ;
|
|
LuaCheckParam( L, 3, nToolSectId)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 4, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto utensile generico a Zmap indicati
|
|
bool bOk = ExeVolZmapSetGenTool( vIds, sToolName, nToolSectId, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetMortiserTool( lua_State* L)
|
|
{
|
|
// 6 o 7 parametri : Id, sToolName, dLen, dWidth, dThick, dCornR [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dWidth ;
|
|
LuaCheckParam( L, 4, dWidth)
|
|
double dThick ;
|
|
LuaCheckParam( L, 5, dThick)
|
|
double dCornR ;
|
|
LuaCheckParam( L, 6, dCornR)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 7, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto mortasatrice a Zmap indicati
|
|
bool bOk = ExeVolZmapSetMortiserTool( vIds, sToolName, dLen, dWidth, dThick, dCornR, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetChiselTool( lua_State* L)
|
|
{
|
|
// 5 o 6 parametri : vIds, sToolName, dLen, dWidth, dThick [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dWidth ;
|
|
LuaCheckParam( L, 4, dWidth)
|
|
double dThick ;
|
|
LuaCheckParam( L, 5, dThick)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 6, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto scalpello a Zmap indicati
|
|
bool bOk = ExeVolZmapSetChiselTool( vIds, sToolName, dLen, dWidth, dThick, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapSetAdditiveTool( lua_State* L)
|
|
{
|
|
// 5 o 6 parametri : vIds, sToolName, dLen, dDiam, dCornR [, nFlag]
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
string sToolName ;
|
|
LuaCheckParam( L, 2, sToolName)
|
|
double dLen ;
|
|
LuaCheckParam( L, 3, dLen)
|
|
double dDiam ;
|
|
LuaCheckParam( L, 4, dDiam)
|
|
double dCornR ;
|
|
LuaCheckParam( L, 5, dCornR)
|
|
int nFlag = 1 ;
|
|
LuaGetParam( L, 6, nFlag) ;
|
|
LuaClearStack( L) ;
|
|
// imposto utensile additivo a Zmap indicati
|
|
bool bOk = ExeVolZmapSetAdditiveTool( vIds, sToolName, dLen, dDiam, dCornR, nFlag, true) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapResetTool( lua_State* L)
|
|
{
|
|
// 1 parametro : vIds
|
|
INTVECTOR vIds ;
|
|
LuaCheckParam( L, 1, vIds)
|
|
LuaClearStack( L) ;
|
|
// reset utensile a Zmap indicati
|
|
bool bOk = ExeVolZmapResetTools( vIds) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapGetToolOutline( lua_State* L)
|
|
{
|
|
// 2 o 3 parametri : nId, nDestGrpId [, bApprox]
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
int nDestGrpId ;
|
|
LuaCheckParam( L, 2, nDestGrpId)
|
|
bool bApprox = false ;
|
|
LuaGetParam( L, 3, bApprox) ;
|
|
LuaClearStack( L) ;
|
|
// recupero il profilo dell'utensile associato a Zmap indicato
|
|
int nNewId = ExeVolZmapGetToolOutline( nId, nDestGrpId, bApprox) ;
|
|
// restituisco il risultato
|
|
if ( nNewId != GDB_ID_NULL)
|
|
LuaSetParam( L, nNewId) ;
|
|
else
|
|
LuaSetParam( L) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapMillingStep( lua_State* L)
|
|
{
|
|
// 5 o 6 o 7 o 8 parametri : nId, ptPs, vtDs [, vtAs], ptPe, vtDe [, vtAe], [, nRefType]
|
|
int n = lua_gettop( L) ;
|
|
if ( n == 5 || n == 6) {
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
Point3d ptPs ;
|
|
LuaCheckParam( L, 2, ptPs)
|
|
Vector3d vtDs ;
|
|
LuaCheckParam( L, 3, vtDs)
|
|
Point3d ptPe ;
|
|
LuaCheckParam( L, 4, ptPe)
|
|
Vector3d vtDe ;
|
|
LuaCheckParam( L, 5, vtDe)
|
|
int nRefType = RTY_DEFAULT ;
|
|
LuaGetParam( L, 6, nRefType) ;
|
|
LuaClearStack( L) ;
|
|
// eseguo movimento di fresatura con l'utensile già associato a Zmap
|
|
bool bOk = ExeVolZmapMillingStep( nId, ptPs, vtDs, ptPe, vtDe, nRefType) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
else {
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
Point3d ptPs ;
|
|
LuaCheckParam( L, 2, ptPs)
|
|
Vector3d vtDs ;
|
|
LuaCheckParam( L, 3, vtDs)
|
|
Vector3d vtAs ;
|
|
LuaCheckParam( L, 4, vtAs)
|
|
Point3d ptPe ;
|
|
LuaCheckParam( L, 5, ptPe)
|
|
Vector3d vtDe ;
|
|
LuaCheckParam( L, 6, vtDe)
|
|
Vector3d vtAe ;
|
|
LuaCheckParam( L, 7, vtAe)
|
|
int nRefType = RTY_DEFAULT ;
|
|
LuaGetParam( L, 8, nRefType) ;
|
|
LuaClearStack( L) ;
|
|
// eseguo movimento di fresatura con l'utensile già associato a Zmap
|
|
bool bOk = ExeVolZmapMillingStep( nId, ptPs, vtDs, vtAs, ptPe, vtDe, vtAe, nRefType) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
static int
|
|
LuaCutVolZmapPlane( lua_State* L)
|
|
{
|
|
// 3 o 4 parametri : Id, ptOn, vtN [, nRefType]
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
Point3d ptOn ;
|
|
LuaCheckParam( L, 2, ptOn)
|
|
Vector3d vtN ;
|
|
LuaCheckParam( L, 3, vtN)
|
|
int nRefType = RTY_DEFAULT ;
|
|
LuaGetParam( L, 4, nRefType) ;
|
|
LuaClearStack( L) ;
|
|
// taglio la superficie con il piano
|
|
bool bOk = ExeCutVolZmapPlane( nId, ptOn, vtN, nRefType) ;
|
|
// restituisco il risultato
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaUpdateVolZmapByAddingSurfTm( lua_State* L)
|
|
{
|
|
// 2 parametri : nVolZmapId, StmId,
|
|
int nVolZmapId ;
|
|
LuaCheckParam( L, 1, nVolZmapId) ;
|
|
int nStmId ;
|
|
LuaCheckParam( L, 2, nStmId) ;
|
|
LuaClearStack( L) ;
|
|
bool bOk = ExeUpdateVolZmapByAddingSurfTm( nVolZmapId, nStmId) ;
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapMakeUniform( lua_State* L)
|
|
{
|
|
// 2 o 3 o 4 parametri : nVolZmapId, dToler [, bExtensionFirst] [, nToolNum]
|
|
int nVolZmapId ;
|
|
LuaCheckParam( L, 1, nVolZmapId) ;
|
|
double dToler ;
|
|
LuaCheckParam( L, 2, dToler) ;
|
|
bool bExtensionFirst = true ;
|
|
LuaGetParam( L, 3, bExtensionFirst) ;
|
|
int nToolNum = 0 ;
|
|
LuaGetParam( L, 4, nToolNum) ;
|
|
LuaClearStack( L) ;
|
|
bool bOk = ExeVolZmapMakeUniform( nVolZmapId, dToler, bExtensionFirst, nToolNum) ;
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapOffset( lua_State* L)
|
|
{
|
|
// 3 parametri : Id, dDist, nType
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId)
|
|
double dDist ;
|
|
LuaCheckParam( L, 2, dDist)
|
|
int nType = VolZmapOffset::FILLET ;
|
|
LuaGetParam( L, 3, nType) ;
|
|
LuaClearStack( L) ;
|
|
// eseguo l'offset della regione
|
|
bool bOk = ExeVolZMapOffset( nId, dDist, nType) ;
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
static int
|
|
LuaVolZmapRemoveFins( lua_State* L)
|
|
{
|
|
// 3 parametri : Id, vtDir, dThick
|
|
int nId ;
|
|
LuaCheckParam( L, 1, nId) ;
|
|
Vector3d vtDir ;
|
|
LuaCheckParam( L, 2, vtDir) ;
|
|
double dThick ;
|
|
LuaCheckParam( L, 3, dThick) ;
|
|
int nRefType = RTY_DEFAULT ;
|
|
LuaGetParam( L, 4, nRefType) ;
|
|
LuaClearStack( L) ;
|
|
// Eseguo la rimozione delle alette
|
|
bool bOk = ExeVolZMapRemoveFins( nId, vtDir, dThick, nRefType) ;
|
|
LuaSetParam( L, bOk) ;
|
|
return 1 ;
|
|
}
|
|
|
|
//-------------------------------------------------------------------------------
|
|
bool
|
|
LuaInstallGdbModifyVol( LuaMgr& luaMgr)
|
|
{
|
|
bool bOk = ( &luaMgr != nullptr) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtExplodeVolume", LuaExplodeVolume) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapChangeResolution", LuaVolZmapChangeResolution) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetShowEdges", LuaVolZmapSetShowEdges) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapGetShowEdges", LuaVolZmapGetShowEdges) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtRemoveVolZmapPart", LuaRemoveVolZmapPart) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetStdTool", LuaVolZmapSetStdTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetAdvTool", LuaVolZmapSetAdvTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetSawTool", LuaVolZmapSetSawTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetGenTool", LuaVolZmapSetGenTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetMortiserTool", LuaVolZmapSetMortiserTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetChiselTool", LuaVolZmapSetChiselTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapSetAdditiveTool", LuaVolZmapSetAdditiveTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapResetTool", LuaVolZmapResetTool) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapGetToolOutline", LuaVolZmapGetToolOutline) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapMillingStep", LuaVolZmapMillingStep) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtCutVolZmapPlane", LuaCutVolZmapPlane) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtUpdateVolZmapByAddingSurfTm", LuaUpdateVolZmapByAddingSurfTm ) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapMakeUniform", LuaVolZmapMakeUniform) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapOffset", LuaVolZmapOffset) ;
|
|
bOk = bOk && luaMgr.RegisterFunction( "EgtVolZmapRemoveFins", LuaVolZmapRemoveFins) ;
|
|
return bOk ;
|
|
} |