EgtExecutor :
- anche a exe/lua AddCurveCompoArc2P aggiunta possibilità di partire da una entità GeoPoint3d per trasformarla in composita con un arco.
This commit is contained in:
+28
-18
@@ -1776,38 +1776,33 @@ ExeAddCurveCompoLine( int nId, const Point3d& ptP, bool bEndVsStart, int nRefTyp
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
bool bOk = true ;
|
||||
// se punto geometrico (è lo start)
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId, frLoc) ;
|
||||
// porto in locale il nuovo punto
|
||||
Point3d ptPL = GetPointLocal( pGeomDB, ptP, nRefType, frLoc) ;
|
||||
// se l'entità da modificare è un punto geometrico
|
||||
if ( pGeomDB->GetGeoType( nId) == GEO_PNT3D) {
|
||||
// creo la curva composita
|
||||
PtrOwner<ICurveComposite> pCompo( CreateCurveComposite()) ;
|
||||
bOk = bOk && ( ! IsNull( pCompo)) ;
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId, frLoc) ;
|
||||
// recupero il punto di start
|
||||
Point3d ptStart = GetGeoPoint3d( pGeomDB->GetGeoObj( nId))->GetPoint() ;
|
||||
// porto in locale il nuovo punto
|
||||
Point3d ptPL = GetPointLocal( pGeomDB, ptP, nRefType, frLoc) ;
|
||||
// sistemo la curva composita
|
||||
bOk = bOk && pCompo->AddPoint( ptStart) && pCompo->AddLine( ptPL, bEndVsStart) ;
|
||||
// la sostituisco al GeoPoint originale
|
||||
bOk = bOk && pGeomDB->ReplaceGeoObj( nId, Release( pCompo)) ;
|
||||
ExeSetModified() ;
|
||||
}
|
||||
// altrimenti deve essere curva composita
|
||||
else {
|
||||
// recupero la curva composita
|
||||
ICurveComposite* pCompo = GetCurveComposite( pGeomDB->GetGeoObj( nId)) ;
|
||||
bOk = bOk && ( pCompo != nullptr) ;
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId, frLoc) ;
|
||||
// porto in locale il nuovo punto
|
||||
Point3d ptPL = GetPointLocal( pGeomDB, ptP, nRefType, frLoc) ;
|
||||
// eseguo la modifica
|
||||
bOk = bOk && pCompo->AddLine( ptPL, bEndVsStart) ;
|
||||
ExeSetModified() ;
|
||||
}
|
||||
// dichiaro modificato progetto
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
string sLua = "EgtAddCurveCompoLine(" + ToString( nId) + ",{" +
|
||||
@@ -1853,17 +1848,32 @@ ExeAddCurveCompoArc2P( int nId, const Point3d& ptMid, const Point3d& ptP, bool b
|
||||
IGeomDB* pGeomDB = GetCurrGeomDB() ;
|
||||
VERIFY_GEOMDB( pGeomDB, false)
|
||||
bool bOk = true ;
|
||||
// recupero la curva composita
|
||||
ICurveComposite* pCompo = GetCurveComposite( pGeomDB->GetGeoObj( nId)) ;
|
||||
bOk = bOk && ( pCompo != nullptr) ;
|
||||
// recupero il riferimento locale
|
||||
Frame3d frLoc ;
|
||||
bOk = bOk && pGeomDB->GetGlobFrame( nId, frLoc) ;
|
||||
// porto in locale i punti
|
||||
Point3d ptMidL = GetPointLocal( pGeomDB, ptMid, nRefType, frLoc) ;
|
||||
Point3d ptPL = GetPointLocal( pGeomDB, ptP, nRefType, frLoc) ;
|
||||
// eseguo la modifica
|
||||
bOk = bOk && pCompo->AddArc2P( ptMidL, ptPL, bEndVsStart) ;
|
||||
// se l'entità da modificare è un punto geometrico
|
||||
if ( pGeomDB->GetGeoType( nId) == GEO_PNT3D) {
|
||||
// creo la curva composita
|
||||
PtrOwner<ICurveComposite> pCompo( CreateCurveComposite()) ;
|
||||
bOk = bOk && ( ! IsNull( pCompo)) ;
|
||||
// recupero il punto di start
|
||||
Point3d ptStart = GetGeoPoint3d( pGeomDB->GetGeoObj( nId))->GetPoint() ;
|
||||
// sistemo la curva composita
|
||||
bOk = bOk && pCompo->AddPoint( ptStart) && pCompo->AddArc2P( ptMidL, ptPL, bEndVsStart) ;
|
||||
// la sostituisco al GeoPoint originale
|
||||
bOk = bOk && pGeomDB->ReplaceGeoObj( nId, Release( pCompo)) ;
|
||||
}
|
||||
// altrimenti deve essere curva composita
|
||||
else {
|
||||
// recupero la curva composita
|
||||
ICurveComposite* pCompo = GetCurveComposite( pGeomDB->GetGeoObj( nId)) ;
|
||||
bOk = bOk && ( pCompo != nullptr) ;
|
||||
// eseguo la modifica
|
||||
bOk = bOk && pCompo->AddArc2P( ptMidL, ptPL, bEndVsStart) ;
|
||||
}
|
||||
ExeSetModified() ;
|
||||
// se richiesto, salvo il comando Lua equivalente
|
||||
if ( IsCmdLog()) {
|
||||
|
||||
Reference in New Issue
Block a user