转载自  Cad人生  的博客

链接:http://www.cnblogs.com/cadlife/articles/2668158.html

内容粘贴如下,小伙伴们可以看看哦。

 using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput ;
using Autodesk.AutoCAD.Runtime ;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices ;
namespace CH02
{
public class Class1
{
//--------------------------------------------------------------
// 功能:获取用户输入
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("GetData")]
public void GetData()
{
//获取Editor对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
//获取整型数据
PromptIntegerOptions intOp = new PromptIntegerOptions("请输入多边形的边数:");
PromptIntegerResult intRes;
intRes = ed.GetInteger(intOp);
//判断用户输入
if (intRes.Status == PromptStatus.OK)
{
int nSides = intRes.Value;
ed.WriteMessage("多边形的边数为:" + nSides);
} if (intRes.Status == PromptStatus.Cancel)
{
ed.WriteMessage("用户按了取消ESC键/n" );
}
}
//--------------------------------------------------------------
// 功能:要求用户输入点
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("PickPoint")]
static public void PickPoint()
{
//获取Editor对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptPointOptions promptPtOp = new PromptPointOptions("选择一个点:");
//指定的基点,如果指定了该点,则在选择的时候绘制一条橡皮线。
promptPtOp.BasePoint = new Autodesk.AutoCAD.Geometry.Point3d(, , );
PromptPointResult resPt;
resPt = ed.GetPoint(promptPtOp);
if (resPt.Status == PromptStatus.OK)
{
ed.WriteMessage("选择的点为:" + resPt.Value.ToString());
}
} //--------------------------------------------------------------
// 功能:获取选择集
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("SelectEnt")]
static public void SelectEnt()
{
//获取Editor对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptSelectionOptions selectionOp = new PromptSelectionOptions();
PromptSelectionResult ssRes = ed.GetSelection(selectionOp);
if (ssRes.Status == PromptStatus.OK)
{
SelectionSet SS = ssRes.Value;
int nCount = SS.Count;
ed.WriteMessage("选择了{0}个实体" , nCount);
}
}
//--------------------------------------------------------------
// 功能:获取选择集(带过滤)
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("SelectEnt2")]
static public void SelectEnt2()
{
//获取Editor对象
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
// 定义选择集选项
PromptSelectionOptions selectionOp = new PromptSelectionOptions();
//创建选择集过滤器,只选择块对象
TypedValue[] filList = new TypedValue[];
filList[] = new TypedValue((int)DxfCode.Start, "INSERT");
SelectionFilter filter = new SelectionFilter(filList);
PromptSelectionResult ssRes = ed.GetSelection(selectionOp, filter);
if (ssRes.Status == PromptStatus.OK)
{
SelectionSet SS = ssRes.Value;
int nCount = SS.Count;
ed.WriteMessage("选择了{0}个块" , nCount);
}
}
} }
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace CH03
{
public class Class1
{
//--------------------------------------------------------------
// 功能:创建一个新层
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("CreateLayer")]
public void CreateLayer()
{
ObjectId layerId;
Database db = HostApplicationServices.WorkingDatabase;
//开始一个事务
Transaction trans = db.TransactionManager.StartTransaction();
try
{
//首先取得层表
LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForWrite);
//检查MyLayer层是否存在
if (lt.Has("MyLayer"))
{
layerId = lt["MyLayer"];
}
else
{
//如果MyLayer层不存在,就创建它
LayerTableRecord ltr = new LayerTableRecord();
ltr.Name = "MyLayer"; //设置层的名字
layerId = lt.Add(ltr);
trans.AddNewlyCreatedDBObject(ltr, true);
}
//提交事务
trans.Commit();
}
catch (Autodesk.AutoCAD.Runtime.Exception e)
{
//放弃事务
trans.Abort();
}
finally
{
// 显式地释放
trans.Dispose();
}
}
//--------------------------------------------------------------
// 功能:创建一个圆
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("CreateCircle")]
public void CreateCircle()
{
Database db = HostApplicationServices.WorkingDatabase;
// 使用 "using" ,结束是自动调用事务的 "Dispose"
using (Transaction trans = db.TransactionManager.StartTransaction())
{
//获取块表和模型空间
BlockTable bt = (BlockTable)(trans.GetObject(db.BlockTableId, OpenMode.ForRead));
BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
//创建一个圆并添加到块表记录(模型空间)
Point3d center = new Point3d(, , );
Circle circle = new Circle(center, Vector3d.ZAxis, 10.0);
circle.ColorIndex = ;
btr.AppendEntity(circle);
trans.AddNewlyCreatedDBObject(circle, true);
trans.Commit();
}
}
//--------------------------------------------------------------
// 功能:创建一个块定义(块表记录)
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
public ObjectId CreateBlkDef()
{
//定义函数的返回值ObjectId
ObjectId blkObjId = new ObjectId();
Database db = HostApplicationServices.WorkingDatabase;
// 使用 "using"关键字指定事务的边界
using (Transaction trans = db.TransactionManager.StartTransaction())
{
//获取块表
BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForWrite);
//通过块名myBlkName判断块表中是否包含块表记录
if ((bt.Has("myBlkName")))
{
blkObjId = bt["myBlkName"];//如果已经存在,通过块名获取块对应的ObjectId
}
else
{
//创建一个圆
Point3d center = new Point3d(, , );
Circle circle = new Circle(center, Vector3d.ZAxis, );
circle.ColorIndex = ;
//创建文本Text:
MText text = new MText();
text.Contents = " ";
text.Location = center;
text.ColorIndex = ;
//创建新的块表记录 myBlkName
BlockTableRecord newBtr = new BlockTableRecord();
newBtr.Name = "myBlkName";
newBtr.Origin = center;
//保存块表记录到块表
blkObjId = bt.Add(newBtr); // 返回块对应的ObjectId
trans.AddNewlyCreatedDBObject(newBtr, true); //Let the transaction know about any object/entity you add to the database! //保存新创建的实体到块表记录
newBtr.AppendEntity(circle);
newBtr.AppendEntity(text);
// 通知事务新创建了对象
trans.AddNewlyCreatedDBObject(circle, true);
trans.AddNewlyCreatedDBObject(text, true);
}
trans.Commit(); //提交事务
}
return blkObjId;
} //--------------------------------------------------------------
// 功能:创建一个块引用
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("CreateBlk")]
public void CreateBlkRef()
{ //获取块的插入点
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptPointOptions ptOps = new PromptPointOptions("选择块的插入点");
PromptPointResult ptRes;
ptRes = ed.GetPoint(ptOps);
Point3d ptInsert;
if (ptRes.Status == PromptStatus.OK)
{
ptInsert = ptRes.Value ;
}
else
{
ptInsert = new Point3d(, , );
}
Database db = HostApplicationServices.WorkingDatabase;
// 使用 "using"关键字指定事务的边界
using (Transaction trans = db.TransactionManager.StartTransaction())
{
//获取块表和模型空间
BlockTable bt = (BlockTable)(trans.GetObject(db.BlockTableId, OpenMode.ForWrite));
BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); //创建块引用
BlockReference blkRef = new BlockReference(ptInsert,CreateBlkDef());// 指定插入点和所引用的块表记录
blkRef.Rotation = 1.57;//指定旋转角,按弧度
//保存新创建的块引用到模型空间
btr.AppendEntity(blkRef);
trans.AddNewlyCreatedDBObject(blkRef, true); // 通知事务新创建了对象
trans.Commit(); //提交事务
} }
//--------------------------------------------------------------
// 功能:读取对象的属性
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("OpenEnt")]
public void OpenEnt()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象");
PromptEntityResult entRes;
entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
ObjectId objId = entRes.ObjectId;
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = (Entity)trans.GetObject(objId, OpenMode.ForWrite);
ent.ColorIndex = ;
trans.Commit();
}
}
}
}
 using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace CH04
{
public class Class1
{ //--------------------------------------------------------------
// 功能:通过ObjectId打开对象
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("OpenEnt")]
public void OpenEnt()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("通过ObjectId打开对象\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象\n");
PromptEntityResult entRes;
entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
ObjectId objId = entRes.ObjectId;
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity ;
ent.ColorIndex = ;
trans.Commit();
} }
//--------------------------------------------------------------
// 功能:类型识别和转换
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("GetType")]
public void GetType()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("数据库对象的类型识别和转换\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象");
PromptEntityResult entRes;
entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
ObjectId objId = entRes.ObjectId;
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity;
ed.WriteMessage("ent.GetRXClass().Name :" + ent.GetRXClass().Name + "\n");
if (ent is Line)
{
Line aLine = ent as Line;
aLine.ColorIndex = ;
}
else if (ent.GetType() == typeof(Circle))
{
Circle cir = (Circle)ent;
cir.ColorIndex = ;
}
trans.Commit();
}
}
//--------------------------------------------------------------
// 功能:实体对象的属性
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("EntPro")]
public void EntPro()
{ Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("实体对象的属性\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象\n");
PromptEntityResult entRes;
entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出\n");
return;
}
ObjectId objId = entRes.ObjectId;
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity;
ed.WriteMessage("获取或设置实体的线型\n");
ed.WriteMessage("实体的原先的线型为 :" + ent.Linetype + "\n");
// 获取线型表记录
LinetypeTable lineTypeTbl = trans.GetObject(db.LinetypeTableId, OpenMode.ForRead) as LinetypeTable;
// 确保DOT线型名已经加载到当前数据库
LinetypeTableRecord lineTypeTblRec = trans.GetObject(lineTypeTbl["DOT"], OpenMode.ForRead) as LinetypeTableRecord;
// 设置实体的线型
ent.LinetypeId = lineTypeTblRec.ObjectId;
// 设置实体的线型比例
ed.WriteMessage("设置实体的线型比例为2.0\n");
ent.LinetypeScale = 2.0;
//设置实体的可见性
ent.Visible = true;
//设置实体所在的层
ed.WriteMessage("实体的原先所在的层为 :" + ent.Layer + "\n");
ent.Layer = "layer0";
trans.Commit();
}
}
}
}
 using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
namespace CH05
{
public class Class1
{
//--------------------------------------------------------------
// 功能:添加扩展数据XDATA
// 作者:
// 日期:2007-7-20
// 说明:
//
//----------------------------------------------------------------
[CommandMethod("AddXData")]
public void AddXData()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("添加扩充数据XDATA\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择要打开的对象\n");
PromptEntityResult entRes;
entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
ObjectId objId = entRes.ObjectId;
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = trans.GetObject(objId, OpenMode.ForWrite) as Entity ;
ent.ColorIndex = ;
RegAppTable appTbl = trans.GetObject(db.RegAppTableId, OpenMode.ForWrite) as RegAppTable ;
if (!appTbl.Has("MyAppName"))
{
RegAppTableRecord appTblRcd = new RegAppTableRecord();
appTblRcd.Name = "MyAppName";
appTbl.Add(appTblRcd);
trans.AddNewlyCreatedDBObject(appTblRcd, true);
}
ResultBuffer resBuf = new ResultBuffer();//new TypedValue(1001, "MyAppName"), new TypedValue(1000, "开发部门"));
resBuf.Add(new TypedValue(, "MyAppName"));//注册程序名称
resBuf.Add(new TypedValue( , " 张三"));//姓名
resBuf.Add(new TypedValue( , " 工程部"));//部门
resBuf.Add(new TypedValue(, 2000.0));//薪水
ent.XData = resBuf;
trans.Commit();
} } //--------------------------------------------------------------
// 功能:获取扩展数据XDATA
// 作者:
// 日期:2007-7-20
// 说明:
//
//------------------------------------------------------------
[CommandMethod("GETXDATA")]
public void GETXDATA()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("获取扩充数据XDATA\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择带扩展数据的对象");
PromptEntityResult entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
Entity ent = (Entity)trans.GetObject(entRes.ObjectId, OpenMode.ForRead);
ResultBuffer resBuf = ent.XData;
if (resBuf != null)
{
//
IEnumerator iter = resBuf.GetEnumerator();
while (iter.MoveNext())
{
TypedValue tmpVal = (TypedValue)iter.Current;
ed.WriteMessage(tmpVal.TypeCode.ToString() + ":");
ed.WriteMessage(tmpVal.Value.ToString() + "\n");
}
}
}
}
//--------------------------------------------------------------
// 功能:在命名对象词典中添加数据
// 作者:
// 日期:2007-7-20
// 说明:
//
//------------------------------------------------------------
[CommandMethod("AddInNOD")]
public void AddInNOD()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("在命名对象词典中添加数据\n");
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
//获取命名对象词典(NOD)
DBDictionary NOD =trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForWrite) as DBDictionary ;
// 声明一个新的词典
DBDictionary copyrightDict;
// 判断是否存在COPYRIGHT词典,没有则创建
try
{
// 获取COPYRIGHT词典
copyrightDict = (DBDictionary)trans.GetObject(NOD.GetAt("COPYRIGHT"), OpenMode.ForRead);
}
catch
{
//在NOD下创建COPYRIGHT词典
copyrightDict = new DBDictionary();
NOD.SetAt("COPYRIGHT", copyrightDict);
trans.AddNewlyCreatedDBObject(copyrightDict, true);
}
// 在copyrightDict中,获取或创建 "author" 词典
DBDictionary authorDict;
try
{
authorDict = (DBDictionary)trans.GetObject(copyrightDict.GetAt("Author"), OpenMode.ForWrite);
}
catch
{
authorDict = new DBDictionary();
//"author" doesn't exist, create one
copyrightDict.UpgradeOpen();
copyrightDict.SetAt("Author", authorDict);
trans.AddNewlyCreatedDBObject(authorDict, true);
}
// 通过Xrecord和ResultBuffer添加扩展数据
Xrecord authorRec;
try
{
authorRec = (Xrecord)trans.GetObject(authorDict.GetAt("AuthorInfo"), OpenMode.ForWrite);
}
catch
{
authorRec = new Xrecord();
authorRec.Data = new ResultBuffer(new TypedValue((int)DxfCode.Text, "张三"));
authorDict.SetAt("AuthorInfo", authorRec);
trans.AddNewlyCreatedDBObject(authorRec, true);
}
trans.Commit();
}
}
//--------------------------------------------------------------
// 功能:获取命名对象词典中的数据
// 作者:
// 日期:2007-7-20
// 说明:
//
//------------------------------------------------------------
[CommandMethod("GetInNOD")]
public void GetInNod()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("获取命名对象词典中数据\n");
Database db = HostApplicationServices.WorkingDatabase;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
// 获取NOD
DBDictionary NOD = (DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForRead, false);
// 获取COPYRIGHT词典
DBDictionary copyrightDict = (DBDictionary)trans.GetObject(NOD.GetAt("COPYRIGHT"), OpenMode.ForRead);
// 获取Author词典
DBDictionary AuthorDict = (DBDictionary)trans.GetObject(copyrightDict.GetAt("Author"), OpenMode.ForRead);
// 获取AuthorInfo扩展记录Xrecord
Xrecord authorXRec = (Xrecord)trans.GetObject(AuthorDict.GetAt("AuthorInfo"), OpenMode.ForRead);
ResultBuffer resBuf = authorXRec.Data;
TypedValue val = resBuf.AsArray()[];
ed.WriteMessage("该图纸由{0}设计\n", val.Value);
}
}
//--------------------------------------------------------------
// 功能:添加数据到数据库对象的扩展词典中
// 作者:
// 日期:2007-7-20
// 说明:
//
//------------------------------------------------------------
[CommandMethod("AddExtDict")]
public void AddExtDict()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("创建对象扩展词典\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择要添加扩展数据的块\n");
PromptEntityResult entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
DBObject obj = trans.GetObject(entRes.ObjectId, OpenMode.ForWrite) as DBObject;
BlockReference blkRef;
if (obj is BlockReference)
{
blkRef = obj as BlockReference;
}
else
{
return;
}
// 创建对象的扩展词典
blkRef.CreateExtensionDictionary();
DBDictionary extensionDict = (DBDictionary)trans.GetObject(blkRef.ExtensionDictionary, OpenMode.ForWrite, false); // 通过Xrecord准备附加属性数据
Xrecord xRec = new Xrecord();
xRec.Data = new ResultBuffer(
new TypedValue((int)DxfCode.Text, "张三"),// 姓名
new TypedValue((int)DxfCode.Real, 1200.0),//薪水
new TypedValue((int)DxfCode.Text, "技术部"));// 部门
// 在扩展词典中添加扩展记录
extensionDict.SetAt("EmployeeInfomation", xRec);
trans.AddNewlyCreatedDBObject(xRec, true);
trans.Commit();
}
} //--------------------------------------------------------------
// 功能:获取数据库对象的扩展词典中的数据
// 作者:
// 日期:2007-7-20
// 说明:
//
//------------------------------------------------------------
[CommandMethod("GetExtDict")]
public void GetExtDict()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("获取对象扩展词典信息\n");
PromptEntityOptions entOps = new PromptEntityOptions("选择添加了扩展数据的块\n");
PromptEntityResult entRes = ed.GetEntity(entOps);
if (entRes.Status != PromptStatus.OK)
{
ed.WriteMessage("选择对象失败,退出");
return;
}
Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
using (Transaction trans = db.TransactionManager.StartTransaction())
{
DBObject obj = trans.GetObject(entRes.ObjectId, OpenMode.ForWrite) as DBObject;
BlockReference blkRef;
if (obj is BlockReference)
{
blkRef = obj as BlockReference;
}
else
{
ed.WriteMessage("选择对象不是块,退出\n");
return;
}
// 创建对象的扩展词典
DBDictionary extensionDict = (DBDictionary)trans.GetObject(blkRef.ExtensionDictionary, OpenMode.ForWrite, false);
// 获取AuthorInfo扩展记录Xrecord
Xrecord EmpXRec = (Xrecord)trans.GetObject(extensionDict.GetAt("EmployeeInfomation"), OpenMode.ForRead);
ResultBuffer resBuf = EmpXRec.Data;
TypedValue val = resBuf.AsArray()[];
ed.WriteMessage("是员工姓名:{0}\n", val.Value);
val = resBuf.AsArray()[];
ed.WriteMessage("该员工的薪水:{0}\n", val.Value);
val = resBuf.AsArray()[];
ed.WriteMessage("该员工属于:{0}\n", val.Value); trans.Commit();
}
}
}
}

推荐net开发cad入门阅读代码片段的更多相关文章

  1. WebApp 开发中常用的代码片段

    其实这里面的多数都是 iOS 上面的代码.其他平台的就没有去验证了. HTML, 从HTML文档的开始到结束排列: <meta name=”viewport” content=”width=de ...

  2. 提高php开发效率的9大代码片段

    在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...

  3. (转:亲测)cnblogs博文浏览[推荐、Top、评论、关注、收藏]利器代码片段

    authour: Others(hoojo) updatetime: 2015-04-25 09:30:23 friendly link: http://www.cnblogs.com/hoojo/a ...

  4. chrome devtools tip(2)--自定义代码片段,构建你的工具箱

    平常开发中,有些代码片段常常用到的,比如,获取 url 参数,rgb转16进制,打印下当前页面的性能数据,给所有的 span 加个样式, 防抖节流,fetch接口,类似 jquery这样的顺手 选择 ...

  5. 9段高效率开发PHP程序的代码

    php是世界上最好的语言 在php网站开发中,大家都希望能够快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是起飞的感觉.今天由杭州php工程师送出福利来了,以下9段高效率开发PHP ...

  6. 自学 Python 3 最好的 入门 书籍 推荐(附 免费 在线阅读 下载链接)

    请大家根据自己的实际情况对号入座,挑选适合自己的 Python 入门书籍: 完全没有任何编程基础:01 号书 少量编程基础,不求全,只希望能以最快的速度入门:02 号书 少量编程基础,有一定的英文阅读 ...

  7. 10个 jQuery 代码片段,可以帮你快速开发。

    转载自:http://mp.weixin.qq.com/s/mMstI10vqwu8PvUwlLborw 1.返回顶部按钮 你可以利用 animate 和 scrollTop 来实现返回顶部的动画,而 ...

  8. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  9. 非常实用的PHP代码片段推荐

    当使用PHP进行开发的时候,如果你自己收 藏 了一些非常有用的方法或者代码片段,那么将会给你的开发工作带来极大的便利.今天我们将介绍10个超级好用的PHP代码片段,希望大家能够喜欢! 1.  使用te ...

随机推荐

  1. 【POJ2387】Til the Cows Come Home (最短路)

    题面 Bessie is out in the field and wants to get back to the barn to get as much sleep as possible bef ...

  2. Spring+Mybatis+Mysql搭建分布式数据库访问框架

    一.前言 用Java开发企业应用软件, 经常会采用Spring+MyBatis+Mysql搭建数据库框架.如果数据量很大,一个MYSQL库存储数据访问效率很低,往往会采用分库存储管理的方式.本文讲述如 ...

  3. javascript 原型及原型链详解

    我们创建的每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个原型对象,而这个原型对象中拥有的属性和方法可以被所以实例共享. function Person(){ } Pe ...

  4. javascript排序、功能代码总结[长期更新]

    //基本数组去重 ///输入:向数组中添加功能函数unique ///输出:返回一个没有重复元素的数组 Array.prototype.unique = function(){ result =[]; ...

  5. Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录

    项目无法启动了 简单的介绍一下事件过程:周一的早上,收到前端同事抛过来的一个任务,说是一个接口无法正常返回数据,于是就让他把参数发过来,我想试着在本地重现一下并且将问题修复掉,这种情况肯定是要通过de ...

  6. android 获取wifi列表,如果你忽略了这个细节,可能你的软件会崩溃

    一:业务描述 最近公司有一个小需求,用户点击wifi扫描按钮(注意:是用户主动点击wifi扫描按钮),app去扫描附近的wifi,显示在listView中,仅此而已,app都不用去连接某个wifi,看 ...

  7. 【django之博客系统开发】

    一.项目简介 使用django开发一套博客系统,参考博客园. 需求如下: 项目结构: 二.全部代码 from django.db import models # Create your models ...

  8. Navicat通过跳板机连接数据库

    完成对应设置后,即可连接数据库,本人亲测!

  9. ASUS T100TA 换屏要记

    建议完整阅读后再执行操作! 参考: [图片]华硕T100换触摸屏详细教程,全网第一发[平板电脑吧]_百度贴吧 [图片]我是这么修T100的……换外屏[win8平板吧]_百度贴吧 淘宝信息: 选择适用型 ...

  10. 【Bootstrap】bootstrap-fileinput上传文件插件

    [bootstrap-fileinput] 这是个据传最好用的bootstrap相关联的文件上传控件,支持拖曳上传,多线程上传,上传文件预览等等功能. 首先还是说一下要引入的一些文件: <lin ...