- UID
- 6238
- 积分
- 291
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-6-9
- 最后登录
- 1970-1-1
|
发表于 2004-9-3 09:32:46
|
显示全部楼层
可用以下函数完成!
函数将c:\bak目录下所有dwg文件的文本读出并存入t1.txt文件
///使用以下代码注意加入必要的正确性判断!
void chdwg1(char *file,FILE *fp)
{
AcDbBlockTable *pBlockTable;
AcDbBlockTableRecord *pRec;
AcDbDatabase DB(Adesk::kFalse);
Acad::ErrorStatus err;
DB.readDwgFile(file);
//acdbCurDwg()->getBlockTable(pBlockTable,AcDb::kForRead);
DB.getBlockTable(pBlockTable,AcDb::kForRead);
pBlockTable->getAt(ACDB_MODEL_SPACE, pRec,AcDb::kForWrite);
pBlockTable->close();
AcDbBlockTableRecordIterator *pR;
pRec->newIterator(pR);
pRec->close();
int n;
for(n=0;!pR->done();n++,pR->step()){
AcDbEntity *pE;
AcDbObjectId id;
pR->getEntityId(id);
err=pR->getEntity(pE,AcDb::kForWrite);
if (err == Acad::eOk) {
if(strcmp(pE->isA()->name(),"AcDbText")==0){
AcDbText *pt=AcDbText::cast(pE);
fprintf(fp,"%lf %lf %s\n",pt->position().x,pt->position().y,pt->textString());
}
}
pE->close();
}
//DB.saveAs(file);//若修改加该句
}
void chdwgall( void )
{
char file[260];
struct _finddata_t c_file;
long hFile;
FILE *fp;
/* Find first .c file in current directory */
fp=fopen("c:\\bak\\t1.txt","w");
if( (hFile = _findfirst( "c:\\bak\\*.dwg", &c_file )) != -1L ){
strcpy(file,"c:\\bak\\");
strcat(file,c_file.name);
ads_printf("\nfile=%s",file);
chdwg1(file,fp);
while( _findnext( hFile, &c_file ) == 0 ) {
strcpy(file,"c:\\bak\\");
strcat(file,c_file.name);
ads_printf("\nfile=%s",file);
chdwg1(file,fp);
}
_findclose( hFile );
}
fclose(fp);
} |
|