创建ViewTableRecord
嗨,我试着这样做:1-读取一个DWG并将所有ViewTableRecord放在一个列表中2-使用列表创建ViewTableRecord。我没有得到任何错误,但我的代码没有创建任何视图,一定有问题,但我不知道是什么。公共结构INFOVIEW。{。
公共Point2d viewCenter;。
公共Point3d viewTarget;。
公共Vector3d视图方向;。
公共双视图高度;。
}。
。
私有的无效btnView_Click(对象发送者,EventArgs e)。
{。
Listlist=new List();。
。
文档文档=AcadApp.DocumentManager.MdiActiveDocument;。
数据库dbXref=新数据库(false, true);。
。
使用(doc.LockDocument())。
{。
使用(dbXref)。
{。
尝试。
{。
dbXref.ReadDwgFile("C:\\TEMP\\viewtesting.dwg",FileShare.ReadWrite, false, "");。
}。
。
捕捉。
{。
dbXref.Dispose();。
返回;。
}。
。
使用(事务tr=dbXref.TransactionManager.StartTransaction())。
{。
ViewTable vt=(ViewTable)tr.GetObject(dbXref.ViewTableId,OpenMode.ForWrite);。
foreach(vt中的ObjectId id)。
{。
vtr=(ViewTableRecord)tr.GetObject(id,OpenMode.ForWrite);。
。
INFOVIEW newInfo;。
newInfo.viewCentervtr.CenterPoint。
newInfo.viewTargetvtr.Target。
newInfo.viewDirectionvtr.ViewDirection。
newInfo.viewHeightvtr.Height。
list.Add(newInfo);。
}。
tr.Commit();。
}。
dbXref.Dispose();。
}。
。
数据库db=doc.Database;。
。
使用(事务tr=db.TransactionManager.StartTransaction())。
{。
ViewTable vt2=(ViewTable)tr.GetObject(db.ViewTableId,OpenMode.ForWrite);。
。
foreach(INFOVIEW vtrList in list)。
{。
ViewTableRecord viewTBR=new ViewTableRecord();。
viewTBR.TargetvtrList.viewTarget。
viewTBR.ViewDirectionvtrList.viewDirection。
viewTBR.HeightvtrList.viewHeight。
viewTBR.CenterPointvtrList.viewCenter。
vt2.Add(viewTBR);。
tr.AddNewlyCreatedDBObject(viewTBR,true);。
}。
tr.Commit();。
}。
}。
}。
。
。
。
**** Hidden Message ***** 快速浏览一下你试过给他们命名吗?它们可能被添加,但匿名。 呜呜<br>就是这样,现在很好用。比你强多了! 最后一个问题
是否有其他方法可以将UCS应用于我的视图
哦,我应该没事,我只是说我可能可以使用“setUCS”来创建我的viewtablerecord。
页:
[1]