天天看點

ObjextArx初試:選擇一條直線

//由于arx本身沒有與使用者互動的函數,是以在arx中與使用者的互動工作都是用ads函數來實作的。
ads_name en;    
ads_point pt;   
//ads_entsel函數得到實體的名字
int rtn = ads_entsel("\n選擇實體: ", en, pt);   
AcDbObjectId eId;   
if(rtn==RTNORM){   
    acdbGetObjectId(eId, en);   //擷取實體id
    AcDbEntity * pEnt;   
    if(Acad::eOk!=acdbOpenObject(pEnt, eId, AcDb::kForRead)){
         return ;//打開實體失敗,傳回
    }
    if(pEnt->isKindOf(AcDbLine::desc())){ //  判斷實體是否是AcDbLine
         AcDbLine * pLine = (AcDbLine*&)pEnt;   
  
        ads_printf("\n你選擇了一條直線");   
  
        ads_printf("\n直線的起點是:%f,%f,%f",pLine->startPoint());   
  
        ads_printf("\n直線的終點是:%f,%f,%f",pLine->endPoint());   
  
    }// end if   
    else{   
        ads_printf("\n你選擇不是直線");   
    }   
  
    pEnt->close();   
}   
acedSSFree(en); //釋放選擇
           

繼續閱讀