AutoCAD二次开发实验二.docx

上传人:b****6 文档编号:7751700 上传时间:2023-01-26 格式:DOCX 页数:14 大小:271.52KB
下载 相关 举报
AutoCAD二次开发实验二.docx_第1页
第1页 / 共14页
AutoCAD二次开发实验二.docx_第2页
第2页 / 共14页
AutoCAD二次开发实验二.docx_第3页
第3页 / 共14页
AutoCAD二次开发实验二.docx_第4页
第4页 / 共14页
AutoCAD二次开发实验二.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

AutoCAD二次开发实验二.docx

《AutoCAD二次开发实验二.docx》由会员分享,可在线阅读,更多相关《AutoCAD二次开发实验二.docx(14页珍藏版)》请在冰豆网上搜索。

AutoCAD二次开发实验二.docx

AutoCAD二次开发实验二

实验二AutoCAD基本图形对象创建与编辑

1,创建直线对象

代码如下:

[CommandMethod("CreatLine")]

publicvoidcreatline()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

//创建直线

Point3dpt1=newPoint3d(2000,2000,0);

Point3dpt2=newPoint3d(1000,1000,0);

LinelineEnt=newLine(pt1,pt2);

//获得块表

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

//获得特定块表记录

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

//把图形对象的记录加入到块表中

pModifyEntID=btr.AppendEntity(lineEnt);

//将直线添加到事务处理中

trans.AddNewlyCreatedDBObject(lineEnt,true);

trans.Commit();

}

}

运行效果如下图所示

修改直线

代码如下:

[CommandMethod("ModifyLine")]

publicvoidModifyLine()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

//打开要修改的图形对象,定义一个实体对象

EntitypEnt=(Entity)trans.GetObject(pModifyEntID,OpenMode.ForWrite);

//修改颜色

pEnt.ColorIndex=5;

pEnt.Close();

trans.Commit();

}

}

2,创建圆对象

代码如下:

[CommandMethod("CreatCir")]

publicvoidCircle()

{

//声明圆对象

Circlec=newCircle();

c.Center=newPoint3d(0,0,0);

c.Radius=100;

Databasedb=HostApplicationServices.WorkingDatabase;

//启动事务

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

//创建块表

BlockTablec_block=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);//读取,0

BlockTableRecordc_block_record=(BlockTableRecord)trans.GetObject(c_block[BlockTableRecord.ModelSpace],OpenMode.ForWrite);//写入,1

c_block_record.AppendEntity(c);//块表记录追加实体,把图形对象的记录加入到块表记录

trans.AddNewlyCreatedDBObject(c,true);//将圆添加到事务处理中

trans.Commit();//提交事务

}

}

3,创建圆弧对象

代码如下:

//创建圆弧

[CommandMethod("CreatArc")]

publicvoidCreatArc()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

//创建圆弧,指定圆心,半径,起始角,终止角

ArcpArc=newArc(newPoint3d(100,100,0),3000,0,30);

//获得块表

BlockTablepBlkTbl=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

//获得特定块表记录

BlockTableRecordpBlkTblRec=(BlockTableRecord)trans.GetObject(pBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

//将图形对象的记录加到块表记录中

pBlkTblRec.AppendEntity(pArc);

//将圆弧添加到事务处理中

trans.AddNewlyCreatedDBObject(pArc,true);

trans.Commit();

}

}

4,创建多段线:

代码如下:

//创建多段线

[CommandMethod("CreatPloyline")]

publicvoidcreatePloyline1()

{

Polylinepl=newPolyline(5);

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

Point2dp1=newPoint2d(50,10);

Point2dp2=newPoint2d(100,30);

Point2dp3=newPoint2d(150,60);

Point2dp4=newPoint2d(200,90);

Point2dp5=newPoint2d(250,120);

Point2dCollectionpc=newPoint2dCollection();

pc.Add(p1);

pc.Add(p2);

pc.Add(p3);

pc.Add(p4);

pc.Add(p5);

for(inti=0;i<5;i++)

{

pl.AddVertexAt(i,pc[i],0.5,5,5);

}

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(pl);

trans.AddNewlyCreatedDBObject(pl,true);

trans.Commit();

}

}

5,创建椭圆

代码如下:

//创建椭圆

[CommandMethod("CEllipse")]

publicvoidEllipse()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

EllipsepEllipse=newEllipse(newPoint3d(150,150,0),newVector3d(0,0,50),newVector3d(50,50,0),0.8,0,0);

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(pEllipse);

trans.AddNewlyCreatedDBObject(pEllipse,true);

trans.Commit();

}

}

6,创建样条曲线

代码如下:

//创建样条曲线

[CommandMethod("CreatSpline")]

publicvoidCreateSpline()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

Point3dp1=newPoint3d(50,30,0);

Point3dp2=newPoint3d(100,60,0);

Point3dp3=newPoint3d(150,520,0);

Point3dp4=newPoint3d(200,240,0);

Point3dp5=newPoint3d(250,300,0);

Point3dCollectionpc=newPoint3dCollection();

pc.Add(p1);

pc.Add(p2);

pc.Add(p3);

pc.Add(p4);

pc.Add(p5);

Splinespline=newSpline(pc,2,5);

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(spline);

trans.AddNewlyCreatedDBObject(spline,true);

trans.Commit();

}

}

7,创建面域

代码如下:

//创建面域°

[CommandMethod("Polygon")]

publicvoidCreatePolygon()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(TransactionTrans=db.TransactionManager.StartTransaction())

{

Point3dcenter=newPoint3d(50,50,0);

Circleentity=newCircle(center,Vector3d.ZAxis,150);

DBObjectCollectioncurveSegments=newDBObjectCollection();

DBObjectCollectionregions=newDBObjectCollection();

curveSegments.Add(entity);

regions=Region.CreateFromCurves(curveSegments);

RegionnewRegion=(Region)regions[0];

newRegion.SetDatabaseDefaults();

BlockTablebt=(BlockTable)Trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)Trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(newRegion);

Trans.AddNewlyCreatedDBObject(newRegion,true);

Trans.Commit();

}

}

8,创建文字

代码如下:

//创建文字

[CommandMethod("CreatText")]

publicvoidAddText()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

DBTexttext=newDBText();

text.Position=newPoint3d(5,5,0);

text.ColorIndex=3;

text.TextString="AutoCAD二次开发!

";

MTexttext1=newMText();

text1.Contents="";

text1.Color=Autodesk.AutoCAD.Colors.Color.FromColorIndex(Autodesk.AutoCAD.Colors.ColorMethod.ByAci,2);

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(text);

btr.AppendEntity(text1);

trans.AddNewlyCreatedDBObject(text,true);

trans.AddNewlyCreatedDBObject(text1,true);

trans.Commit();

}

}

9,创建填充

代码如下

//创建填充

[CommandMethod("CreatHatch")]

publicvoidAddHatch()

{

Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{

Circlecircle=newCircle();

circle.Center=newPoint3d(150,150,0);

circle.Radius=200;BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

btr.AppendEntity(circle);

trans.AddNewlyCreatedDBObject(circle,true);

ObjectIdCollectioncollection=newObjectIdCollection();

collection.Add(circle.ObjectId);

Hatchhatch=newHatch();

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();

}

}

10,创建三维实体

代码如下:

[CommandMethod("Create3DSolid")]

publicvoidCreate3DSolid()

{Databasedb=HostApplicationServices.WorkingDatabase;

using(Transactiontrans=db.TransactionManager.StartTransaction())

{Point3dp1=newPoint3d(50,50,0);

Point3dp2=newPoint3d(110,100,0);

Point3dp3=newPoint3d(150,160,0);

Point3dp4=newPoint3d(210,190,0);

Point3dp5=newPoint3d(270,230,0);

Point3dCollectionpc=newPoint3dCollection();

pc.Add(p1);

pc.Add(p2);

pc.Add(p3);

pc.Add(p4);

pc.Add(p5);

Polyline3dPolyline3d=newPolyline3d(0,pc,true);

BlockTablebt=(BlockTable)trans.GetObject(db.BlockTableId,OpenMode.ForRead);

BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],OpenMode.ForWrite);

DBObjectCollectiondbobc=newDBObjectCollection();

DBObjectCollectionregions=newDBObjectCollection();

dbobc.Add(Polyline3d);

regions=Region.CreateFromCurves(dbobc);

Regionregion=(Region)regions[0];

Solid3dsd=newSolid3d();

sd.Revolve(region,newPoint3d(0,0,0),Vector3d.XAxis,360);

PModifyEntID=btr.AppendEntity(sd);

trans.AddNewlyCreatedDBObject(sd,true);

trans.Commit();

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1