文件操作的问题,愁了我一周了
本帖最后由 作者 于 2007-8-14 14:58:39 编辑 <br /><br /> <p>Try<br/> Dim cadApp As AcadApplication = New Autodesk.AutoCAD.Interop.AcadApplicationClass()<br/> cadApp.Visible = True<br/> Dim db As Database = New Database()<br/> db = HostApplicationServices.WorkingDatabase<br/> Dim trans As Transaction = db.TransactionManager.StartTransaction()<br/> Dim bt As BlockTable = trans.GetObject(db.BlockTableId, OpenMode.ForWrite)<br/> Dim br As Circle = CreateCircle(db, bt)<br/> trans.Commit()<br/> trans.Dispose()<br/> db.SaveAs("d:\ff.dwg", DwgVersion.AC1015)<br/> Catch ex As Exception</p><p> End Try</p><p></p><p>流程是:新建一个dwg文件后,要从新建的图形上插入一个圆,但运行的结果确是圆画在了未新建图时显示的图上,请各位帮忙解决,不胜感激!QQ420021327 </p> ? <p>用Com接口啊,好久没玩这个了。</p><p>为什么不把 InsertBlock函数代码贴出来?</p> <p>自已顶一下,两周了还没有解决</p> 看不大明白,感觉应该是数据库(db)设置有问题 有没有类似的代码帖上来看看,谢了 <p>我用的是C#,</p><p>Database db = new Database(true,true); </p><p>Transaction trans = db.TransactionManager.StartTransaction(); </p><p><br/>BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForWrite); </p><p>BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt,OpenMode.ForWrite );</p><p>Line line = new Line(Point3d.Origin,new Point3d(0,0,0));</p><p>btr.AppendEntity(line);</p><p>trans.AddNewlyCreatedDBObject(line,true);</p><p>db.SaveAs("ttt.dwg",DwgVersion.Current);</p><p></p><p>大体是这样子的</p> 加入一个创建图层的函数,把实体的layerid设置到想要的图层就行。注意:要在trans.Commit()之前啊!
页:
[1]