CAD二次开发实验报告(9)

2020-04-14 18:26

hatch.Elevation = 0;

hatch.HatchStyle = HatchStyle.Normal; hatch.ColorIndex = 5;

hatch.SetHatchPattern(HatchPatternType.PreDefined, \); hatch.AppendLoop(HatchLoopTypes.Default, collection); hatch.EvaluateHatch(true); btr.AppendEntity(hatch);

trans.AddNewlyCreatedDBObject(hatch, true); trans.Commit(); }

}

4.10 创建尺寸标注

代码:

[CommandMethod(\)] // 创建旋转标注 public static void CreateRotatedDimension() {

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(

acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForWrite) as BlockTableRecord; // 创建旋转标注

RotatedDimension acRotDim = new RotatedDimension(); acRotDim.SetDatabaseDefaults();

acRotDim.XLine1Point = new Point3d(1, 1, 0);

35

acRotDim.XLine2Point = new Point3d(6, 3, 0); acRotDim.Rotation = 0.707;

acRotDim.DimLinePoint = new Point3d(0, 5, 0); acRotDim.DimensionStyle = acCurDb.Dimstyle; acBlkTblRec.AppendEntity(acRotDim);

acTrans.AddNewlyCreatedDBObject(acRotDim, true); acTrans.Commit(); } }

[CommandMethod(\)]// 创建半径标注 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(

acBlkTbl[BlockTableRecord.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(); } }

[CommandMethod(\)]// 创建角度标注 public static void CreateAngularDimension() {

Document acDoc = Autodesk.AutoCAD.ApplicationServices.Application. DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database;

using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) {

BlockTable acBlkTbl;

acBlkTbl = acTrans.GetObject(

36

acCurDb.BlockTableId,OpenMode.ForRead) as BlockTable; BlockTableRecord acBlkTblRec; acBlkTblRec = acTrans.GetObject(

acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForWrite) as BlockTableRecord; LineAngularDimension2 acLinAngDim = new LineAngularDimension2(); acLinAngDim.SetDatabaseDefaults();

acLinAngDim.XLine1Start = new Point3d(0, 5, 0); acLinAngDim.XLine1End = new Point3d(1, 7, 0); acLinAngDim.XLine2Start = new Point3d(0, 5, 0); acLinAngDim.XLine2End = new Point3d(1, 3, 0); acLinAngDim.ArcPoint = new Point3d(3, 5, 0); acLinAngDim.DimensionStyle = acCurDb.Dimstyle; acBlkTblRec.AppendEntity(acLinAngDim);

acTrans.AddNewlyCreatedDBObject(acLinAngDim, true); acTrans.Commit(); } }

[CommandMethod(\)]//创建折弯半径标注 public static void CreateJoggedDimension() {

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(

acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForWrite) as BlockTableRecord; RadialDimensionLarge acRadDimLrg = new RadialDimensionLarge(); acRadDimLrg.SetDatabaseDefaults();

acRadDimLrg.Center = new Point3d(-3, -4, 0); acRadDimLrg.ChordPoint = new Point3d(2, 7, 0); acRadDimLrg.OverrideCenter = new Point3d(0, 2, 0); acRadDimLrg.JogPoint = new Point3d(1, 4.5, 0); acRadDimLrg.JogAngle = 0.707;

acRadDimLrg.DimensionStyle = acCurDb.Dimstyle; acBlkTblRec.AppendEntity(acRadDimLrg);

acTrans.AddNewlyCreatedDBObject(acRadDimLrg, true); acTrans.Commit(); } }

37

[CommandMethod(\)]//创建弧长标注 public static void CreateArcLengthDimension() {

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(

acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord; ArcDimension acArcDim = new ArcDimension(new Point3d(4.5, 1.5, 0), new Point3d(8, 4.25, 0), new Point3d(0, 2, 0), new Point3d(5, 7, 0), \,acCurDb.Dimstyle); acArcDim.SetDatabaseDefaults(); acBlkTblRec.AppendEntity(acArcDim);

acTrans.AddNewlyCreatedDBObject(acArcDim, true); acTrans.Commit(); } }

[CommandMethod(\)]//创建坐标标注 public static void CreateOrdinateDimension() {

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(

acBlkTbl[BlockTableRecord.ModelSpace],OpenMode.ForWrite) as BlockTableRecord; OrdinateDimension acOrdDim = new OrdinateDimension(); acOrdDim.SetDatabaseDefaults(); acOrdDim.UsingXAxis = true;

acOrdDim.DefiningPoint = new Point3d(5, 5, 0); acOrdDim.LeaderEndPoint = new Point3d(10, 5, 0);

38

acOrdDim.DimensionStyle = acCurDb.Dimstyle; acBlkTblRec.AppendEntity(acOrdDim);

acTrans.AddNewlyCreatedDBObject(acOrdDim, true); acTrans.Commit(); } }

4.11 创建三维实体

使用Autodesk.AutoCAD.DatabaseServices.Solid3d创建三维实体 1)创建长方体

CreateBox(double lengthAlongX, double lengthAlongY, double lengthAlongZ) 该函数将会创建一个中心位于世界坐标系原点的长方体(默认) 2)平截头体(圆柱、圆锥、椭圆锥)

CreateFrustum(double height, double radiusAlongX, double radiusAlongY, double topRadius)

Height--表示平截头体的高度; radiusAlongX--表示底面在X轴方向的半径; radiusAlongY--表示底面在X轴方向的半径; topRadius—表示顶面半径,创建圆锥topRadius设置为0 3)创建金字塔

CreatePyramid(double height, int sides, double radius, double topRadius) 4)创建圆环体

CreateTorus(double majorRadius, double minorRadius) 5)创建长方体

CreateBox(double lengthAlongX, double lengthAlongY, double lengthAlongZ) 该函数将会创建一个中心位于世界坐标系原点的长方体(默认) 6)平截头体(圆柱、圆锥、椭圆锥)

39


CAD二次开发实验报告(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(全国通用版)2019版高考数学一轮复习 第二单元 函数的概念及其

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: