DWGdirect_NET_3_02如何实现增加entity?
基于DWGdirect_NET_3_02开发了个小系统 已经实现了 dwg展示 缩放,选择,平移等如何实现增加entity 并立即体现在系统上。即绘制后立即被保存。
用Teigha_Net可以实现吗?
没问题 和cad2开差不多 用哪个?DWGdirect_NET_3_02还是Teigha_Net? 这个问题困住我了。
你有qq吗?私聊。 我前段发了相关的帖子了 你可以看下 哪个帖子?给连接。 ...向后翻两页 我列出我的问题吧:
DWGdirect.Runtime.Services dd;
Graphics graphics;
DWGdirect.GraphicsSystem.LayoutHelperDevice helperDevice;
Database database = null;
Point3dCollection grips = new Point3dCollection();
ObjectIdCollection selected = new ObjectIdCollection();
Point2d startSelPoint;
Point3d firstCornerPoint;
在 private void panel1_MouseDown(object sender, MouseEventArgs e)
{
startSelPoint = new Point2d(e.X, e.Y);
//增加entity
LayerTableRecord ltr = cadLayer.GetLayer("00000", database);
cadLayer.SetCurrentLayer(ltr, database);
DWGdirect.DatabaseServices.Polyline ent1 = new DWGdirect.DatabaseServices.Polyline();
ent1.AddVertexAt(0, startSelPoint, 0, 10, 10);
ent1.AddVertexAt(1, new Point2d(e.X + 100, e.Y + 100), 0, 10, 10);
ent1.AddVertexAt(2, new Point2d(e.X + 200, e.Y + 300), 0, 10, 10);
using (Transaction tr = database.TransactionManager.StartTransaction())
{
//ObjectId id;
BlockTable bt = (BlockTable)tr.GetObject(database.BlockTableId, OpenMode.ForWrite);
BlockTableRecord btr = (BlockTableRecord)tr.GetObject(database.CurrentSpaceId, OpenMode.ForWrite);
ent1.ColorIndex = 1;
ent1.LineWeight = LineWeight.LineWeight005;
//ent1.Layer = "00000";//这样不注释掉,出现异常,注释掉,也看不见绘制的entity
btr.AppendEntity(ent1);
tr.AddNewlyCreatedDBObject(ent1, true);
tr.Commit();
}
//database.Save();
helperDevice.Invalidate();
Invalidate();
}
飞狐,错误在哪儿? 本帖最后由 雪山飞狐_lzh 于 2014-9-15 19:04 编辑
你应该做坐标转换吧 从DCS到WCS
试试用固定点添加看看 如果可以的话就是坐标转换的问题 你有正确的代码 给段,我比葫芦画瓢。 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=110736
最近有点忙 先看看这里吧
页:
[1]
2