CAD二次实验报告.docx_第1页
CAD二次实验报告.docx_第2页
CAD二次实验报告.docx_第3页
CAD二次实验报告.docx_第4页
CAD二次实验报告.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CAD开发实验(二)实验二 AutoCAD基本图形对象创建与编辑一、主要内容1、 创建直线2、 创建圆3、 创建圆弧4、 创建多段线5、 创建椭圆6、 样条曲线7、 创建面域8、 创建文字9、 创建填充10、 创建尺寸标注11、 创建三维实体二、学时安排三、预习内容回顾AutoCAD图形对象创建的一般过程。四、基本图形对象创建与编辑4.1 基本图形对象创建4.1.1创建直线代码:CommandMethod(CreatLine) public void CreatLine() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans=db.TransactionManager .StartTransaction() ) /creatline Point3d pt1=new Point3d (20,20,0); Point3d pt2=new Point3d (100,100,0); Line lineEnt = new Line(pt1, pt2); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr=(BlockTableRecord )trans.GetObject (btBlockTableRecord.ModelSpace,OpenMode .ForWrite); PModifyEntID=btr.AppendEntity(lineEnt); trans.AddNewlyCreatedDBObject (lineEnt,true ); trans.Commit(); CommandMethod(ModifyLine) public void ModifyLine() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Entity pEnt = (Entity)trans.GetObject(PModifyEntID, OpenMode.ForWrite); pEnt.ColorIndex = 1; pEnt.Close(); trans.Commit(); 4.1.2创建圆代码:CommandMethod(Cir) public void Circle() /声明圆对象 Circle c = new Circle(); c.Center = new Point3d(0, 0, 0); c.Radius = 100; Database db = HostApplicationServices.WorkingDatabase; /启动事务 using (Transaction trans = db.TransactionManager.StartTransaction() /创建块表 BlockTable c_block = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);/读取,0 BlockTableRecord c_block_record = (BlockTableRecord)trans.GetObject(c_blockBlockTableRecord.ModelSpace, OpenMode.ForWrite);/写入,1 c_block_record.AppendEntity(c);/块表记录追加实体,把图形对象的记录加入到块表记录 trans.AddNewlyCreatedDBObject(c, true);/将圆添加到事务处理中 trans.Commit();/提交事务 4.1.3创建圆弧代码:/创建圆弧 CommandMethod(CreatAre) public void CreatArc() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Arc pArc = new Arc(new Point3d(50, 50, 0), 100, 0, 100); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(pArc); trans.AddNewlyCreatedDBObject(pArc, true); trans.Commit(); 4.1.4创建多段线代码:/创建多段线 CommandMethod(CPloyline) public void createPloyline1() Polyline pl = new Polyline(5); Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Point2d p1 = new Point2d(50, 10); Point2d p2 = new Point2d(100, 30); Point2d p3 = new Point2d(150, 60); Point2d p4 = new Point2d(200, 90); Point2d p5 = new Point2d(250, 120); Point2dCollection pc = new Point2dCollection(); pc.Add(p1); pc.Add(p2); pc.Add(p3); pc.Add(p4); pc.Add(p5); for (int i = 0; i 5; i+) pl.AddVertexAt(i, pci, 0.5, 5, 5); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(pl); trans.AddNewlyCreatedDBObject(pl, true); trans.Commit(); 4.1.5创建椭圆代码:/创建椭圆 CommandMethod(CEllipse) public void Ellipse() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Ellipse pEllipse = new Ellipse(new Point3d(150, 150, 0), new Vector3d(0, 0, 50), new Vector3d(50, 50, 0), 0.8, 0, 0); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(pEllipse); trans.AddNewlyCreatedDBObject(pEllipse, true); trans.Commit(); 4.1.6样条曲线代码:/创建样条曲线 CommandMethod(CSpline) public void CreateSpline() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Point3d p1 = new Point3d(50, 30, 0); Point3d p2 = new Point3d(100, 60, 0); Point3d p3 = new Point3d(150, 520, 0); Point3d p4 = new Point3d(200, 240, 0); Point3d p5 = new Point3d(250, 300, 0); Point3dCollection pc = new Point3dCollection(); pc.Add(p1); pc.Add(p2); pc.Add(p3); pc.Add(p4); pc.Add(p5); Spline spline = new Spline(pc, 2, 5); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(spline); trans.AddNewlyCreatedDBObject(spline, true); trans.Commit(); 4.1.7创建面域代码:/创建面域 CommandMethod(CPolygon) public void CreatePolygon() Database db = HostApplicationServices.WorkingDatabase; using (Transaction Trans = db.TransactionManager.StartTransaction() Point3d center = new Point3d(50, 50, 0); Circle entity = new Circle(center, Vector3d.ZAxis, 150); DBObjectCollection curveSegments = new DBObjectCollection(); DBObjectCollection regions = new DBObjectCollection(); curveSegments.Add(entity); regions = Region.CreateFromCurves(curveSegments); Region newRegion = (Region)regions0; newRegion.SetDatabaseDefaults(); BlockTable bt = (BlockTable)Trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)Trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(newRegion); Trans.AddNewlyCreatedDBObject(newRegion, true); Trans.Commit(); 4.1.8创建文字代码:/创建文字 CommandMethod(AddText) public void AddText() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() DBText text = new DBText(); text.Position = new Point3d(5, 5, 0); text.ColorIndex = 3; text.TextString = 欢迎来到CAD!; MText text1 = new MText(); text1.Color =Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByAci, 2); BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(text); btr.AppendEntity(text1); trans.AddNewlyCreatedDBObject(text, true); trans.AddNewlyCreatedDBObject(text1, true); trans.Commit(); 4.1.9创建填充代码: /创建填充 CommandMethod(AddHatch) public void AddHatch() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Circle circle = new Circle(); circle.Center = new Point3d(150, 150, 0); circle.Radius = 200; BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)trans.GetObject(btBlockTableRecord.ModelSpace, OpenMode.ForWrite); btr.AppendEntity(circle); trans.AddNewlyCreatedDBObject(circle, true); ObjectIdCollection collection = new ObjectIdCollection(); collection.Add(circle.ObjectId); Hatch hatch = new Hatch(); hatch.Elevation = 0; hatch.HatchStyle = HatchStyle.Normal; hatch.ColorIndex = 5; hatch.SetHatchPattern(HatchPatternType.PreDefined, SOLID); hatch.AppendLoop(HatchLoopTypes.Default, collection); hatch.EvaluateHatch(true); btr.AppendEntity(hatch); trans.AddNewlyCreatedDBObject(hatch, true); trans.Commit(); 4.1.10创建标注代码:/ 创建半径标注 CommandMethod(CRadialDimension) public static void CreateRadialDimension() Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction() BlockTable acBlkTbl;acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable; BlockTableRecord acBlkTblRec; acBlkTblRec = acTrans.GetObject(acBlkTblBlockTableRecord.ModelSpace, OpenMode.ForWrite) as BlockTableRecord; RadialDimension acRadDim = new RadialDimension(); acRadDim.SetDatabaseDefaults(); acRadDim.Center = new Point3d(0, 0, 0); acRadDim.ChordPoint = new Point3d(25, 25, 0); acRadDim.LeaderLength = 5; acRadDim.DimensionStyle = acCurDb.Dimstyle; acBlkTblRec.AppendEntity(acRadDim); acTrans.AddNewlyCreatedDBObject(acRadDim, true); acTrans.Commit(); 4.1.11创建三维实体代码:/创建三维实体 CommandMethod(Create3DSolid) public void Create3DSolid() Database db = HostApplicationServices.WorkingDatabase; using (Transaction trans = db.TransactionManager.StartTransaction() Point3d p1 = new Point3d(50, 50

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论