CAD画椭圆
Point3d center=new Point3d(-9.39346286010186, 2.86410249509299, 0.0);
vector3d majVec= new Vector3d(1.23087105577724, -1.73142607162663, 0);
Ellipse ell = new Ellipse(center,majVec, Vector3d.ZAxis, 3.20067262646138, 0.0, 6.28318530717959);
Database db = HostApplicationServices.WorkingDatabase;
ObjectId objId = new ObjectId();
using (Transaction tran = db.TransactionManager.StartTransaction())
{
BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
BlockTableRecord btr = tran.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
objId= btr.AppendEntity(ell );
tran.AddNewlyCreatedDBObject(ell , true);
tran.Commit();
}
代码如上,为什么运行后椭圆并没有显示处理呢??为什么?
Ellipse ell = new Ellipse(center,majVec, Vector3d.ZAxis, 3.20067262646138, 0.0, 6.28318530717959);
改为下面样子试试,
Ellipse ell = new Ellipse(center,Vector3d.ZAxis,majVec,3.20067262646138, 0.0, 6.28318530717959);
另外检查一下是没有东西出来会是东西出来了看不见而已. sieben 发表于 2011-10-11 17:30 static/image/common/back.gif
Ellipse ell = new Ellipse(center,majVec, Vector3d.ZAxis, 3.20067262646138, 0.0, 6.28318530717959);
...
谢谢!我把代码像你说的那样,试了下,还是没显示(我运行完代码后,zoom了下,还是没出来),别的地方我检查了下,应该没什么错的,,这个问题已经让我纠结很久了,帮帮忙啊!! 本帖最后由 sieben 于 2011-10-12 10:48 编辑
1,你没有给出全部代码,看上去你给出的这部分代码是没有问题的(但或许前后有问题,甚至这些代码根本没有执行);
2,你的代码里面是将实体添加到.CurrentSpaceId,也就是说可能是添加到模型空间,也可能是添加到图纸空间
3,使用Earse 命令 All来判断是否添加了新实体(zoom不保险,另外建议在新图纸);
4,在你的函数里捕捉异常,在前后添加一些提示看你的函数正常走完了没有. 文档没有加锁,CAD应该会崩溃吧
页:
[1]