当前位置: 代码迷 >> ASP.NET >> Can't open file: 不知道什么原因!解决思路
  详细解决方案

Can't open file: 不知道什么原因!解决思路

热度:4315   发布时间:2013-02-25 00:00:00.0
Can't open file:…… 不知道什么原因!
用DWGDirect插件里的ReadDwgFile方法,报这个错,不知道什么原因,怎么解决,请大虾帮忙啊
C# code
protected void btn_save_Click(object sender, EventArgs e)    {        string path = "../imgfile/201207/201207171339369062.dwg";               //AcadDatabase acaddb = new AcadDatabase();        //DataTable dt = Hun.BLL.CadAdd;         //int blocks = acaddb.Blocks.Count;       getCAD(path);            }    public void getCAD(string path)    {        Database db = new Database();        try        {            //把DWG文件读入到一个临时的内存数据库中            //using (db = new Database(false, true))            //{                db.ReadDwgFile(path, System.IO.FileShare.ReadWrite, true, null);                //现在进入数据库并获得数据库的块表引用                Transaction trans = db.TransactionManager.StartTransaction();                BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead, false, true);                //从块表的模型空间特性中获得块表记录,块表记录对象包含DWG文件数据库实体                BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead, false, true);                foreach (ObjectId btrId in btr)                {                    DBObject entBlock = (DBObject)trans.GetObject(btrId, OpenMode.ForRead, false, true);                    if (entBlock.GetRXClass().DxfName.ToUpper() == "INSERT")                    {                        BlockReference bRef = (BlockReference)entBlock;                        if (bRef.AttributeCollection.Count != 0)                        {                            System.Collections.IEnumerator bRefEnum = bRef.AttributeCollection.GetEnumerator();                            while (bRefEnum.MoveNext())                            {                                ObjectId aId = (ObjectId)bRefEnum.Current;//这一句极其关键                                AttributeReference aRef = (AttributeReference)trans.GetObject(aId, OpenMode.ForRead, false, true);                                TextBox1.Text = aRef.TextString;                                           }                        }                    }                }                trans.Commit(); //提交事务处理                                                                                                     btr.Dispose();                bt.Dispose();            }        //}        catch (System.Exception ex)        {            Response.Write("\n出错啦: " + ex.Message);        }        finally        {            db.Dispose();            services.Dispose();        }       }


------解决方案--------------------------------------------------------
需要先初始化Teigha,再读图形文件,否则报错,如下:
using (Teigha.Runtime.Services srv = new Teigha.Runtime.Services())
{
//读取DWG文件
}

你用的哪个版本,发给我一下topia@163.com
  相关解决方案