EgtExchange :
- in import BTL/BTLx migliorata gestione FreeContour con Pocket - in import BTLx fatte piccole sistemazioni.
This commit is contained in:
+27
-17
@@ -6399,10 +6399,15 @@ BtlGeom::CreateFreeContours( void)
|
||||
PtrOwner<ISurfTriMesh> pPocket( CreateSurfTriMesh()) ;
|
||||
if ( IsNull( pPocket) || ! pPocket->CreateByFlatContour( PL))
|
||||
continue ;
|
||||
// la oriento correttamente
|
||||
// se necessario, inverto l'orientamento del fondo
|
||||
Vector3d vtN ;
|
||||
if ( pPocket->GetFacetNormal( 0, vtN) && vtExtr * vtN < 0)
|
||||
pPocket->Invert() ;
|
||||
// altrimenti ...
|
||||
else if ( nGroup == 4) {
|
||||
pStm->Invert() ;
|
||||
pCrv->Invert() ;
|
||||
}
|
||||
// la porto in posizione corretta
|
||||
pPocket->Translate( vtExtr * dThick) ;
|
||||
// la unisco alla parte laterale
|
||||
@@ -6449,11 +6454,16 @@ BtlGeom::CreateFreeContours( void)
|
||||
PtrOwner<ISurfTriMesh> pPocket( CreateSurfTriMesh()) ;
|
||||
if ( IsNull( pPocket) || ! pPocket->CreateByFlatContour( ( ! bTwoBottom ? PL : PL2)))
|
||||
continue ;
|
||||
// la oriento correttamente
|
||||
// se necessario, inverto l'orientamento del fondo
|
||||
Vector3d vtExtr ; pCrv->GetExtrusion( vtExtr) ;
|
||||
Vector3d vtN ;
|
||||
if ( pPocket->GetFacetNormal( 0, vtN) && vtExtr * vtN < 0)
|
||||
pPocket->Invert() ;
|
||||
// altrimenti...
|
||||
else if ( ( nGroup == 4 && bTwoBottom) || ( nGroup != 4 && ! bTwoBottom)) {
|
||||
pStm->Invert() ;
|
||||
pCrv->Invert() ;
|
||||
}
|
||||
// la unisco alla parte laterale
|
||||
pStm->DoSewing( *pPocket) ;
|
||||
}
|
||||
@@ -7221,9 +7231,9 @@ BtlGeom::AddTenonBTLX( int nGroup, int nProc, int nSide, const string& sDes, int
|
||||
return true ;
|
||||
}
|
||||
|
||||
IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
geofr->Set( GetSideFrame( nSide)) ;
|
||||
m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
//IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
//geofr->Set( GetSideFrame( nSide)) ;
|
||||
//m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
|
||||
string s = to_string( ptP.x) + " " +to_string(ptP.y) + " " + to_string( ptP.z) ;
|
||||
LOG_ERROR( GetEExLogger() , s.c_str()) ;
|
||||
@@ -7464,9 +7474,9 @@ BtlGeom::AddTenonBTLX2( int nGroup, int nProc, int nSide, const string& sDes, in
|
||||
frTen.Rotate( ptP, vtN, ( nGroup != 1 ? 90 - dRot : dRot - 90)) ;
|
||||
frTen.ToGlob( GetSideFrame( nSide)) ;
|
||||
|
||||
IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
geofr->Set( GetSideFrame( nSide)) ;
|
||||
m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
//IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
//geofr->Set( GetSideFrame( nSide)) ;
|
||||
//m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
|
||||
// lunghezza del tenone
|
||||
double dThick = GetSideHeight( nSide) ;
|
||||
@@ -7651,9 +7661,9 @@ BtlGeom::AddDovetailTenonBTLX( int nGroup, int nProc, int nSide, const string& s
|
||||
|
||||
}
|
||||
|
||||
IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
geofr->Set( frTen) ;
|
||||
m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
//IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
//geofr->Set( frTen) ;
|
||||
//m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
|
||||
// calcolo il centro del tenone
|
||||
Point3d ptCen( 0, 0.5 * dTenL, dTenH) ;
|
||||
@@ -8041,9 +8051,9 @@ BtlGeom::AddDovetailMortiseBTLX( int nGroup, int nProc, int nSide, const string&
|
||||
frMort.ChangeOrig( ptP) ;
|
||||
frMort.ToGlob( GetSideFrame( nSide)) ;
|
||||
|
||||
IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
geofr->Set( frMort) ;
|
||||
m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
//IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
//geofr->Set( frMort) ;
|
||||
//m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId,geofr);
|
||||
|
||||
// calcolo il centro del fondo della mortasa
|
||||
Point3d ptCen( 0, - 0.5 * dMortL, - dMortD) ;
|
||||
@@ -8299,9 +8309,9 @@ BtlGeom::AddMortiseBTLX( int nGroup, int nProc, int nSide, const string& sDes, i
|
||||
double dCosA = frMort.VersY() * GetSideVersN( nSide) ;
|
||||
double dL = dThick / dCosA ; //lunghezza lato faccia taglio
|
||||
|
||||
IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
geofr->Set( frMort) ;
|
||||
m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId, geofr);
|
||||
//IGeoFrame3d * geofr = CreateGeoFrame3d() ;
|
||||
//geofr->Set( frMort) ;
|
||||
//m_pGDB->AddGeoObj(GDB_ID_NULL, m_nProcsId, geofr);
|
||||
|
||||
Point3d point( ptP) ;
|
||||
point.ToGlob( GetSideFrame( nSide));
|
||||
|
||||
+4
-6
@@ -61,12 +61,10 @@ ImportBtlx::ImportBtlx( void)
|
||||
bool
|
||||
ImportBtlx::Import( const string& sFile, IGeomDB* pGDB, int nFlag)
|
||||
{
|
||||
// log di informazioni
|
||||
// log di informazioni
|
||||
LOG_INFO( GetEExLogger(), ( "ImportBtlx : " + sFile).c_str())
|
||||
// string s5 = "nFlag " + to_string( nFlag) ;
|
||||
// LOG_ERROR( GetEExLogger(), s5.c_str()) ;
|
||||
nFlag= 56 ;
|
||||
// inizializzo il gestore geometria pezzi Btl
|
||||
|
||||
// inizializzo il gestore geometria pezzi Btl
|
||||
int nFlatVertPos = 0 ;
|
||||
if (( nFlag & EIBFLAG_TS3_POS) != 0)
|
||||
nFlatVertPos = 3 ;
|
||||
@@ -81,7 +79,7 @@ ImportBtlx::Import( const string& sFile, IGeomDB* pGDB, int nFlag)
|
||||
return false ;
|
||||
}
|
||||
|
||||
|
||||
// scrivo nel progetto path del file
|
||||
m_BtlGeom.SetUserAttribute( UATD_INFO, IKEY_BTL_PATH + ":" + sFile) ;
|
||||
|
||||
// inizializzo il documento
|
||||
|
||||
Reference in New Issue
Block a user