From 4ec6568db1629ce4421493ece2d49b76bf37545d Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 13 Apr 2016 06:33:55 +0000 Subject: [PATCH] EgtExecutor 1.6p1 : - piccole migliorie ed aggiustamenti. --- EXE_GdbCreateCurve.cpp | 24 +++++------ EXE_GdbCreateSurf.cpp | 12 +++--- EXE_GdbModifyCurve.cpp | 30 ++++++++++++-- EXE_GdbModifySurf.cpp | 10 ++--- EXE_GeoSnap.cpp | 14 +++---- EXE_MachMgr.cpp | 83 +++++++++++++++++++++++++++++++++---- EXE_NstCreateFlatParts.cpp | 14 +++---- EXE_NstPartNesting.cpp | 6 +-- EgtExecutor.rc | Bin 11694 -> 11694 bytes LUA_GdbModifyCurve.cpp | 17 ++++++++ LUA_MachMgr.cpp | 41 +++++++++++++++++- 11 files changed, 199 insertions(+), 52 deletions(-) diff --git a/EXE_GdbCreateCurve.cpp b/EXE_GdbCreateCurve.cpp index bba7c1b..2b9b9c1 100644 --- a/EXE_GdbCreateCurve.cpp +++ b/EXE_GdbCreateCurve.cpp @@ -370,7 +370,7 @@ CreateLineTgTwoCurves( IGeomDB* pGeomDB, int nParentId, ptN2loc.LocToLoc( frDest, frCrv1) ; // calcolo la retta tangente alle due curve PtrOwner pCrvLine ; - pCrvLine.Set( GetLineTgTwoCurves( *pCrv1, ptN1loc, *Get( pCrv2Loc), ptN2loc)) ; + pCrvLine.Set( GetLineTgTwoCurves( *pCrv1, ptN1loc, *pCrv2Loc, ptN2loc)) ; if ( IsNull( pCrvLine)) return nullptr ; // porto la linea nel riferimento del gruppo destinazione @@ -420,7 +420,7 @@ CreateLinePerpTwoCurves( IGeomDB* pGeomDB, int nParentId, ptN2loc.LocToLoc( frDest, frCrv1) ; // calcolo la retta perpendicolare alle due curve PtrOwner pCrvLine ; - pCrvLine.Set( GetLinePerpTwoCurves( *pCrv1, ptN1loc, *Get(pCrv2Loc), ptN2loc)) ; + pCrvLine.Set( GetLinePerpTwoCurves( *pCrv1, ptN1loc, *pCrv2Loc, ptN2loc)) ; if ( IsNull( pCrvLine)) return nullptr ; // porto la linea nel riferimento del gruppo destinazione @@ -470,7 +470,7 @@ CreateLineTgCurvePerpCurve( IGeomDB* pGeomDB, int nParentId, ptN2loc.LocToLoc( frDest, frCrv1) ; // calcolo la retta perpendicolare alle due curve PtrOwner pCrvLine ; - pCrvLine.Set( GetLineTgCurvePerpCurve( *pCrv1, ptN1loc, *Get( pCrv2Loc), ptN2loc)) ; + pCrvLine.Set( GetLineTgCurvePerpCurve( *pCrv1, ptN1loc, *pCrv2Loc, ptN2loc)) ; if ( IsNull( pCrvLine)) return nullptr ; // porto la linea nel riferimento del gruppo destinazione @@ -737,7 +737,7 @@ ExeCreateCircleCPEx( int nParentId, const Point3d& ptCen, // recupero la curva di tangenza in locale CurveLocal CrvTgLoc( pGeomDB, nIdO, frLoc) ; // calcolo la circonferenza tangente a questa curva - pCrvArc.Set( GetCircleCenTgCurve( ptCenL, vtNL, *CrvTgLoc.Get(), ptOnL)) ; + pCrvArc.Set( GetCircleCenTgCurve( ptCenL, vtNL, *CrvTgLoc, ptOnL)) ; bOk = bOk && ! IsNull( pCrvArc) ; } // altrimenti errore @@ -973,7 +973,7 @@ ExeCreateArcC2PEx( int nParentId, const Point3d& ptCen, // recupero la curva di tangenza in locale CurveLocal CrvTgLoc( pGeomDB, nIdS, frLoc) ; // calcolo l'arco tangente a questa curva - pCrvArc.Set( GetArcCenTgCurvePnt( ptCenL, *CrvTgLoc.Get(), ptStartL, ptNearEndL, vtNormL)) ; + pCrvArc.Set( GetArcCenTgCurvePnt( ptCenL, *CrvTgLoc, ptStartL, ptNearEndL, vtNormL)) ; bOk = bOk && ! IsNull( pCrvArc) ; } // altrimenti errore @@ -1026,7 +1026,7 @@ ExeCreateArc3P( int nParentId, const Point3d& ptP1, bOk = bOk && pCrv->SetExtrusion( vtExtrL) ; // se arco, verifico che normale al suo piano e versore estrusione non siano controversi if ( bOk && pCrv->GetType() == CRV_ARC) { - ICurveArc* pArc = GetCurveArc( Get( pCrv)) ; + ICurveArc* pArc = GetCurveArc( pCrv) ; if ( ( pArc->GetNormVersor() * vtExtrL) < 0) pArc->InvertN() ; } @@ -1117,14 +1117,14 @@ ExeCreateArc2PDEx( int nParentId, const Point3d& ptStart, bOk = bOk && ! IsNull( pCrv) ; if ( bOk) { // imposto l'arco - if ( (dynamic_cast(Get(pCrv)))->Set2PVN( ptStartL, ptEndL, vtDirSL, vtNormL)) + if ( GetCurveArc( pCrv)->Set2PVN( ptStartL, ptEndL, vtDirSL, vtNormL)) ; // non riuscito, provo se risulta essere una retta else if ( ( ptEndL - ptStartL) * vtDirSL > EPS_ZERO) { // creo e setto la retta pCrv.Set( CreateCurveLine()) ; bOk = bOk && ! IsNull( pCrv) ; - bOk = bOk && (dynamic_cast(Get(pCrv)))->Set( ptStartL, ptEndL) ; + bOk = bOk && GetCurveLine( pCrv)->Set( ptStartL, ptEndL) ; } // impossibile else @@ -1136,7 +1136,7 @@ ExeCreateArc2PDEx( int nParentId, const Point3d& ptStart, // recupero la curva di tangenza in locale CurveLocal CrvTgLoc( pGeomDB, nId, frLoc) ; // calcolo l'arco tangente a questa curva - pCrv.Set( GetArcPntDirTgCurve( ptStartL, vtDirSL, *CrvTgLoc.Get(), ptEndL, vtNormL)) ; + pCrv.Set( GetArcPntDirTgCurve( ptStartL, vtDirSL, *CrvTgLoc, ptEndL, vtNormL)) ; bOk = bOk && ! IsNull( pCrv) ; } // altrimenti errore @@ -1278,7 +1278,7 @@ ExeCreateCurveFillet( int nParentId, int nCrv1, const Point3d& ptNear1, CurveLocal CrvLoc2( pGeomDB, nCrv2, frLoc) ; // calcolo il raccordo double dTrim1, dTrim2 ; - pArc.Set( CreateFillet( *CrvLoc1.Get(), ptNear1L, *CrvLoc2.Get(), ptNear2L, vtNormL, dRad, dTrim1, dTrim2)) ; + pArc.Set( CreateFillet( *CrvLoc1, ptNear1L, *CrvLoc2, ptNear2L, vtNormL, dRad, dTrim1, dTrim2)) ; bOk = bOk && ! IsNull( pArc) ; // assegno il versore estrusione bOk = bOk && pArc->SetExtrusion( vtExtrL) ; @@ -1341,7 +1341,7 @@ ExeCreateCurveChamfer( int nParentId, int nCrv1, const Point3d& ptNear1, CurveLocal CrvLoc2( pGeomDB, nCrv2, frLoc) ; // calcolo lo smusso double dTrim1, dTrim2 ; - pLine.Set( CreateChamfer( *CrvLoc1.Get(), ptNear1L, *CrvLoc2.Get(), ptNear2L, vtNormL, dDist, dTrim1, dTrim2)) ; + pLine.Set( CreateChamfer( *CrvLoc1, ptNear1L, *CrvLoc2, ptNear2L, vtNormL, dDist, dTrim1, dTrim2)) ; bOk = bOk && ! IsNull( pLine) ; // assegno il versore estrusione bOk = bOk && pLine->SetExtrusion( vtExtrL) ; @@ -2294,7 +2294,7 @@ MyCreateCirclesAlongCurve( int nParentId, int nCrvId, double dOffset, double dOv } // eseguo l'offset OffsetCurve OffsCrv ; - if ( ! OffsCrv.Make( Get( pCopy), dOffset, ICurve::OFF_FILLET)) + if ( ! OffsCrv.Make( pCopy, dOffset, ICurve::OFF_FILLET)) return GDB_ID_NULL ; // ciclo sulle curve di offset int nCount = 0 ; diff --git a/EXE_GdbCreateSurf.cpp b/EXE_GdbCreateSurf.cpp index 892264c..2835e77 100644 --- a/EXE_GdbCreateSurf.cpp +++ b/EXE_GdbCreateSurf.cpp @@ -635,7 +635,7 @@ ExeCreateSurfTmByFlatContour( int nParentId, int nCrvId, double dLinTol) CurveLocal CrvLoc( pGeomDB, nCrvId, frLoc) ; bOk = bOk && ( CrvLoc.Get() != nullptr) ; // calcolo la superficie - ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByFlatContour( CrvLoc.Get(), dLinTol) : nullptr) ; + ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByFlatContour( CrvLoc, dLinTol) : nullptr) ; // inserisco la superficie nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ; ExeSetModified() ; @@ -820,7 +820,7 @@ ExeCreateSurfTmByRevolve( int nParentId, int nCrvId, Point3d ptAxL = GetPointLocal( pGeomDB, ptAx, nRefType, frLoc) ; Vector3d vtAxL = GetVectorLocal( pGeomDB, vtAx, nRefType, frLoc) ; // calcolo la superficie - ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByRevolve( CrvLoc.Get(), ptAxL, vtAxL, bCapEnds, dLinTol) : nullptr) ; + ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByRevolve( CrvLoc, ptAxL, vtAxL, bCapEnds, dLinTol) : nullptr) ; // inserisco la superficie nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ; ExeSetModified() ; @@ -860,7 +860,7 @@ ExeCreateSurfTmByScrewing( int nParentId, int nCrvId, Point3d ptAxL = GetPointLocal( pGeomDB, ptAx, nRefType, frLoc) ; Vector3d vtAxL = GetVectorLocal( pGeomDB, vtAx, nRefType, frLoc) ; // calcolo la superficie - ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByScrewing( CrvLoc.Get(), ptAxL, vtAxL, dAngRotDeg, dMove, dLinTol) : nullptr) ; + ISurfTriMesh* pSTM = ( bOk ? GetSurfTriMeshByScrewing( CrvLoc, ptAxL, vtAxL, dAngRotDeg, dMove, dLinTol) : nullptr) ; // inserisco la superficie nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, pSTM) : GDB_ID_NULL) ; ExeSetModified() ; @@ -908,7 +908,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, double dL CurveLocal CrvLoc( pGeomDB, nPtOrCrvId2, frLoc) ; bOk = bOk && ( CrvLoc.Get() != nullptr) ; // calcolo la superficie - pSTM = ( bOk ? GetSurfTriMeshRuled( ptP, CrvLoc.Get(), dLinTol) : nullptr) ; + pSTM = ( bOk ? GetSurfTriMeshRuled( ptP, CrvLoc, dLinTol) : nullptr) ; } // se la prima entità è una curva e la seconda un punto else if ( ( pGeomDB->GetGeoType( nPtOrCrvId1) & GEO_CURVE) != 0 && @@ -924,7 +924,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, double dL Point3d ptP = GetGeoPoint3d( pGeomDB->GetGeoObj( nPtOrCrvId2))->GetPoint() ; bOk = bOk && ptP.LocToLoc( frPnt, frLoc) ; // calcolo la superficie - pSTM = ( bOk ? GetSurfTriMeshRuled( ptP, CrvLoc.Get(), dLinTol) : nullptr) ; + pSTM = ( bOk ? GetSurfTriMeshRuled( ptP, CrvLoc, dLinTol) : nullptr) ; } // se entrambe curve else if ( ( pGeomDB->GetGeoType( nPtOrCrvId1) & GEO_CURVE) != 0 && @@ -936,7 +936,7 @@ ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrCrvId2, double dL CurveLocal CrvLoc2( pGeomDB, nPtOrCrvId2, frLoc) ; bOk = bOk && ( CrvLoc2.Get() != nullptr) ; // calcolo la superficie - pSTM = ( bOk ? GetSurfTriMeshRuled( CrvLoc1.Get(), CrvLoc2.Get(), dLinTol) : nullptr) ; + pSTM = ( bOk ? GetSurfTriMeshRuled( CrvLoc1, CrvLoc2, dLinTol) : nullptr) ; } // altrimenti errore else diff --git a/EXE_GdbModifyCurve.cpp b/EXE_GdbModifyCurve.cpp index 89ff347..cf0dba0 100644 --- a/EXE_GdbModifyCurve.cpp +++ b/EXE_GdbModifyCurve.cpp @@ -563,7 +563,7 @@ MyTrimCurveWithRegion( int nCrvId, int nRegId, bool bInVsOut, bool bOn, int& nCo return GDB_ID_NULL ; // calcolo la classificazione della curva rispetto alla regione CRVCVECTOR ccClass ; - if ( ! pSFR->GetCurveClassification( *CrvLoc.Get(), ccClass)) + if ( ! pSFR->GetCurveClassification( *CrvLoc, ccClass)) return GDB_ID_NULL ; // determino gli intervalli di curva da conservare Intervals inOk ; @@ -571,7 +571,7 @@ MyTrimCurveWithRegion( int nCrvId, int nRegId, bool bInVsOut, bool bOn, int& nCo if ( ( bInVsOut && ccOne.nClass == CRVC_IN) || ( ! bInVsOut && ccOne.nClass == CRVC_OUT) || ( bOn && ( ccOne.nClass == CRVC_ON_P || ccOne.nClass == CRVC_ON_M))) - inOk.Add( ccOne.dParE, ccOne.dParS) ; + inOk.Add( ccOne.dParS, ccOne.dParE) ; } // recupero un intervallo di id contigui per tutte le parti int nFirstId = pGeomDB->GetNewId() ; @@ -1333,7 +1333,31 @@ ExeMergeCurvesInCurveCompo( int nId, double dLinTol) ExeSetModified() ; // se richiesto, salvo il comando Lua equivalente if ( IsCmdLog()) { - string sLua = "EgtMergeCurvesInCurveCompo(" + ToString( nId) + ")" + + string sLua = "EgtMergeCurvesInCurveCompo(" + ToString( nId) + "," + + ToString( dLinTol) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; +} + +//------------------------------------------------------------------------------- +bool +ExeRemoveCurveCompoUndercutOnY( int nId, double dLinTol) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) + // recupero la curva composita + ICurveComposite* pCompo = GetCurveComposite( pGeomDB->GetGeoObj( nId)) ; + bool bOk = ( pCompo != nullptr) ; + // lancio l'eliminazione delle parti sotto rispetto alla direzione Y+ + const double ANG_TOL_STD_DEG = 15 ; + bOk = bOk && pCompo->RemoveUndercutOnY( dLinTol, ANG_TOL_STD_DEG) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtRemoveCurveCompoUndercutOnY(" + ToString( nId) + "," + + ToString( dLinTol) + ")" + " -- Ok=" + ToString( bOk) ; LOG_INFO( GetCmdLogger(), sLua.c_str()) ; } diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index aa7809e..46de1bd 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -189,7 +189,7 @@ ExeSurfFrAdd( int nId1, int nId2) pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // eseguo l'unione tra le due superfici bOk = bOk && pSfr1->Add( *pSfr2L) ; @@ -229,7 +229,7 @@ ExeSurfFrSubtract( int nId1, int nId2) pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // eseguo la sottrazione della seconda superficie dalla prima bOk = bOk && pSfr1->Subtract( *pSfr2L) ; @@ -272,7 +272,7 @@ ExeSurfFrIntersect( int nId1, int nId2) pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // eseguo l'intersezione tra le due superfici bOk = bOk && pSfr1->Intersect( *pSfr2L) ; @@ -393,7 +393,7 @@ ExeSurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, doubl pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // porto in locale alla prima superficie il versore di movimento Vector3d vtDirL = GetVectorLocal( pGeomDB, vtDir, nRefType, frSurf1) ; @@ -426,7 +426,7 @@ ExeSurfFrRotateSimpleNoCollision( int nId1, int nId2, const Point3d& ptCen, doub pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // porto in locale alla prima superficie il versore di movimento Point3d ptCenL = GetPointLocal( pGeomDB, ptCen, nRefType, frSurf1) ; diff --git a/EXE_GeoSnap.cpp b/EXE_GeoSnap.cpp index 92daac3..702ea7b 100644 --- a/EXE_GeoSnap.cpp +++ b/EXE_GeoSnap.cpp @@ -337,13 +337,13 @@ ExeIntersectionPoint( int nId1, int nId2, const Point3d& ptNear, int nRefId, Poi if ( ! pGeomDB->GetGlobFrame( nId2, frEnt2)) return false ; // se il riferimento della seconda curva è diverso da quello della prima entità, devo trasformarla - PtrOwner crvTrans( nullptr) ; + PtrOwner pcrvTrans ; if ( ! AreSameFrame( frEnt1, frEnt2)) { - crvTrans.Set( pCrv2->Clone()) ; - if ( IsNull( crvTrans)) + pcrvTrans.Set( pCrv2->Clone()) ; + if ( IsNull( pcrvTrans)) return false ; - crvTrans->LocToLoc( frEnt2, frEnt1) ; - pCrv2 = ::Get( crvTrans) ; + pcrvTrans->LocToLoc( frEnt2, frEnt1) ; + pCrv2 = pcrvTrans ; } // porto il punto Near nel riferimento della prima entità Point3d ptNearL = ptNear ; @@ -875,12 +875,12 @@ ExeSurfFrChunkSimpleClassify( int nId1, int nChunk1, int nId2, int nChunk2) bOk = bOk && pGeomDB->GetGlobFrame( nId2, frSurf2) ; // se riferimenti diversi, porto una copia della seconda nel riferimento della prima const ISurfFlatRegion* pSfr2L = pSfr2 ; - PtrOwnerpTmp ; + PtrOwner pTmp ; if ( ! AreSameFrame( frSurf1, frSurf2)) { pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // classifico il chunk della prima regione rispetto a quello della seconda return pSfr1->GetChunkSimpleClassification( nChunk1, *pSfr2L, nChunk2) ; diff --git a/EXE_MachMgr.cpp b/EXE_MachMgr.cpp index b21ad77..2a95542 100644 --- a/EXE_MachMgr.cpp +++ b/EXE_MachMgr.cpp @@ -1244,7 +1244,15 @@ ExeRemoveOperation( int nId) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // elimino l'operazione indicata della macchinata corrente - return pGseCtx->m_pMachMgr->RemoveOperation( nId) ; + bool bOk = pGseCtx->m_pMachMgr->RemoveOperation( nId) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtRemoveOperation(" + ToString( nId) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1254,7 +1262,15 @@ ExeRemoveAllPhaseOperations( int nPhase) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // elimino tutte le operazioni (tranne la disposizione) della fase indicata della macchinata corrente - return pGseCtx->m_pMachMgr->RemoveAllPhaseOperations( nPhase) ; + bool bOk = pGseCtx->m_pMachMgr->RemoveAllPhaseOperations( nPhase) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtRemoveAllPhaseOperations(" + ToString( nPhase) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1264,7 +1280,15 @@ ExeRemoveAllOperations( void) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // elimino tutte le operazioni e le fasi della macchinata corrente tranne la prima disposizione - return pGseCtx->m_pMachMgr->RemoveAllOperations() ; + bool bOk = pGseCtx->m_pMachMgr->RemoveAllOperations() ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtRemoveAllOperations()" + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1274,7 +1298,16 @@ ExeSetOperationMode( int nId, bool bActive) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // imposto lo stato dell'operazione - return pGseCtx->m_pMachMgr->SetOperationMode( nId, bActive) ; + bool bOk = pGseCtx->m_pMachMgr->SetOperationMode( nId, bActive) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSetOperationMode(" + ToString( nId) + "," + + ( bActive ? "true" : "false") + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1294,7 +1327,15 @@ ExeSetAllOperationsMode( bool bActive) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // imposto lo stato di tutte le operazioni - return pGseCtx->m_pMachMgr->SetAllOperationsMode( true, bActive) ; + bool bOk = pGseCtx->m_pMachMgr->SetAllOperationsMode( true, bActive) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSetAllOperationsMode(" + string( bActive ? "true" : "false") + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1304,7 +1345,16 @@ ExeSetOperationStatus( int nId, bool bShow) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // imposto lo stato di visualizzazione dell'operazione - return pGseCtx->m_pMachMgr->SetOperationStatus( nId, bShow) ; + bool bOk = pGseCtx->m_pMachMgr->SetOperationStatus( nId, bShow) ; + // non cambia lo stato di modificato del progetto + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSetOperationStatus(" + ToString( nId) + "," + + ( bShow ? "true" : "false") + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1324,7 +1374,15 @@ ExeSetAllOperationsStatus( bool bShow) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // imposto lo stato di visualizzazione di tutte le operazioni - return pGseCtx->m_pMachMgr->SetAllOperationsStatus( true, bShow) ; + bool bOk = pGseCtx->m_pMachMgr->SetAllOperationsStatus( true, bShow) ; + // non cambia lo stato di modificato del progetto + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSetAllOperationsStatus(" + string( bShow ? "true" : "false") + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- @@ -1334,7 +1392,16 @@ ExeChangeOperationPhase( int nId, int nNewPhase) GseContext* pGseCtx = GetCurrGseContext() ; VERIFY_CTX_MACHMGR( pGseCtx, false) // cambio la fase dell'operazione e la sposto in fondo alle lavorazioni della stessa fase - return pGseCtx->m_pMachMgr->ChangeOperationPhase( nId, nNewPhase) ; + bool bOk = pGseCtx->m_pMachMgr->ChangeOperationPhase( nId, nNewPhase) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtChangeOperationPhase(" + ToString( nId) + "," + + ToString( nNewPhase) + ")" + + " -- Ok=" + ToString( bOk) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return bOk ; } //----------------------------------------------------------------------------- diff --git a/EXE_NstCreateFlatParts.cpp b/EXE_NstCreateFlatParts.cpp index 1121072..49111f1 100644 --- a/EXE_NstCreateFlatParts.cpp +++ b/EXE_NstCreateFlatParts.cpp @@ -95,7 +95,7 @@ FilterAndApprox( void) continue ; } // ciclo su tutti gli oggetti del pezzo - bool bLok = pLay->GoToFirstInGroup( *Get( pPar)) ; + bool bLok = pLay->GoToFirstInGroup( *pPar) ; while ( bLok) { // sotto ogni pezzo sono ammessi solo gruppi di livello User -> Layer int nLev ; @@ -105,7 +105,7 @@ FilterAndApprox( void) continue ; } // ciclo su tutti gli oggetti del layer - bool bEok = pEnt->GoToFirstInGroup( *Get( pLay)) ; + bool bEok = pEnt->GoToFirstInGroup( *pLay) ; while ( bEok) { // sotto ogni layer sono ammesse solo curve di livello User int nLev ; @@ -115,7 +115,7 @@ FilterAndApprox( void) continue ; } // eventuale approx della curva se Bezier o Composita con molti piccoli segmenti - ApproxCurveIfNeeded( Get( pEnt)) ; + ApproxCurveIfNeeded( pEnt) ; // passo alla successiva entità bEok = pEnt->GoToNext() ; } @@ -299,7 +299,7 @@ CreateFlatPartsByLayers( void) int nFirstId = pPar->GetId() ; while ( bPok) { // ciclo su tutti i sottogruppi (layer) - bool bLok = pLay->GoToFirstGroupInGroup( *Get( pPar)) ; + bool bLok = pLay->GoToFirstGroupInGroup( *pPar) ; while ( bLok) { // creo pezzo con questa geometria int nPartId = pGeomDB->InsertGroup( GDB_ID_NULL, nFirstId, GDB_BEFORE, Frame3d()) ; @@ -313,7 +313,7 @@ CreateFlatPartsByLayers( void) if ( ! pGeomDB->RelocateGlob( pLay->GetId(), nPartId)) return false ; // altro layer del gruppo originale - bLok = pLay->GoToFirstGroupInGroup( *Get( pPar)) ; + bLok = pLay->GoToFirstGroupInGroup( *pPar) ; } // passo al successivo bPok = pPar->GoToNextGroup() ; @@ -342,10 +342,10 @@ CreateFlatPartsByClosedCurves( void) int nFirstId = pPar->GetId() ; while ( bPok) { // ciclo su tutti i sottogruppi (layer) - bool bLok = pLay->GoToFirstGroupInGroup( *Get( pPar)) ; + bool bLok = pLay->GoToFirstGroupInGroup( *pPar) ; while ( bLok) { // ciclo su tutte le entità - bool bEok = pEnt->GoToFirstInGroup( *Get( pLay)) ; + bool bEok = pEnt->GoToFirstInGroup( *pLay) ; while ( bEok) { // se curva chiusa if ( ( pEnt->GetGeoType() & GEO_CURVE) != 0 && diff --git a/EXE_NstPartNesting.cpp b/EXE_NstPartNesting.cpp index 61e3eec..a9e9660 100644 --- a/EXE_NstPartNesting.cpp +++ b/EXE_NstPartNesting.cpp @@ -190,7 +190,7 @@ ExeCreateOutRegion( int nParentId, int nOutCrvId) // determino il punto più vicino al massimo del box e lo faccio diventare il nuovo inizio int nFlag ; double dU ; - DistPointCurve distPC( b3Box.GetMax(), *Get( pCompo)) ; + DistPointCurve distPC( b3Box.GetMax(), *pCompo) ; if ( ! distPC.GetParamAtMinDistPoint( 0, dU, nFlag) || ! pCompo->ChangeStartPoint( dU)) return false ; @@ -799,12 +799,12 @@ MySurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double bOk = bOk && pGeomDB->GetGlobFrame( nId2, frSurf2) ; // se riferimenti diversi, porto una copia della seconda nel riferimento della prima const ISurfFlatRegion* pSfr2L = pSfr2 ; - PtrOwnerpTmp ; + PtrOwner pTmp ; if ( ! AreSameFrame( frSurf1, frSurf2)) { pTmp.Set( CloneSurfFlatRegion( pSfr2)) ; bOk = bOk && ! IsNull( pTmp) ; bOk = bOk && pTmp->LocToLoc( frSurf2, frSurf1) ; - pSfr2L = Get( pTmp) ; + pSfr2L = pTmp ; } // porto in locale alla prima superficie il versore di movimento Vector3d vtDirL = vtDir ; diff --git a/EgtExecutor.rc b/EgtExecutor.rc index f394e2ee022c2d0d2a35a7be5f89d77d85e31903..5b016ddceadc3b9de732c6dfcdcb9e4726ed54ff 100644 GIT binary patch delta 121 zcmZ1%y)Jsg4>nda1|0^&%@@V4Gflq2nZsPbU^qFDTX%B-R|N}H?x5UdrpX5c5po7f iZj75332QOKH9IpSY4l^nd)1|0^I%@@V4Gflq2nZumVU@|$7TX%B-R|N}H?x5UdrpX5c5po7f iZj75332QOKH9IpSY4l^