📄 1.txt
字号:
void onopenfile() //读取等高线数据,并绘制
{
FILE *fp;
if((fp=fopen("E:\\DZXTEM.txt","r"))==NULL)
AfxMessageBox("打开文件失败,请把DZXTEM.txt存成E:\\DZXTEM.txt",MB_OK);
AfxMessageBox("读取数据并绘制等高线请稍等···",MB_OK);
while(!feof(fp))
{
fscanf(fp,"%s",tt);SJ[n][0]=atoi(tt);
fscanf(fp,"%s",tt);SJ[n][1]=atoi(tt);
fscanf(fp,"%s",tt);SJ[n][2]=atof(tt);
fscanf(fp,"%s",tt);SJ[n][3]=atof(tt);
fscanf(fp,"%s",tt);SJ[n][4]=atof(tt);
fscanf(fp,"%s\n",tt);SJ[n][5]=atof(tt);
n++;
}
fclose(fp);//关
AcGePoint3d startPt,endPt;
AcGePoint3d spt,ept;
AcGePoint3d st,et;
// if(IDOK==AfxMessageBox("是否绘等高线?",MB_OKCANCEL))
for(int z=0;z<n;z++)
{
AcDbLayerTable *pLayerTable;
acdbHostApplicationServices()->workingDatabase()
->getSymbolTable(pLayerTable, AcDb::kForWrite);
AcDbLayerTableRecord *pLayerTableRecord=new AcDbLayerTableRecord;
pLayerTableRecord->setName("COUNTOUR");
/*
AcCmColor color;
pLayerTableRecord->setColor(color(RGB(0,0,255)));
*/
pLayerTable->add(pLayerTableRecord);
pLayerTable->close();
pLayerTableRecord->close();
if (SJ[z][5]==33&&SJ[z+1][5]==31)
{
AcGePoint3d st(SJ[z+1][2]-2994000.0,SJ[z+1][3]-525000.0,0.0);
AcGePoint3d et(SJ[z+2][2]-2994000.0,SJ[z+2][3]-525000.0,0.0);
AcDbLine*pLine=new AcDbLine(spt,ept);
if (SJ[z][0]==12)
{
pLine->setColorIndex(8);//暗黄
}
else
pLine->setColorIndex(160);//蓝色
AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
pBlockTable->close();
AcDbObjectId lineId;
pBlockTableRecord->appendAcDbEntity(lineId,pLine);
pBlockTableRecord->close();
pLine->close();
}
else if((SJ[z][5]==31&&SJ[z+1][5]==32)||(SJ[z][5]==32||(SJ[z][5]==32&&SJ[z+1][5]==33)))
{
AcGePoint3d startPt(SJ[z][2]-2994000.0,SJ[z][3]-525000.0,0.0);
AcGePoint3d endPt(SJ[z+1][2]-2994000.0,SJ[z+1][3]-525000.0,0.0);
AcDbLine*pLine=new AcDbLine(startPt,endPt);
if (SJ[z][0]==12)
{
pLine->setColorIndex(8);//灰色
}
else
pLine->setColorIndex(160);//蓝色
AcDbBlockTable *pBlockTable;
acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable,AcDb::kForRead);
AcDbBlockTableRecord *pBlockTableRecord;
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
pBlockTable->close();
AcDbObjectId lineId;
pBlockTableRecord->appendAcDbEntity(lineId,pLine);
pBlockTableRecord->close();
pLine->setLayer("COUNTOUR");
pLine->close();
}
}
AfxMessageBox("等高线绘制完成!",MB_OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -