1.图层,线形状,的创立

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Customization;
using Autodesk.AutoCAD.Windows;
using application = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.Colors;
using DotNetARX;
namespace steelBridge.verticalView.Label
{class LaryerColor{//layer library图层库public void layerLibrary(string layerName){Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){//结构红色、线形continues,线宽0.35 structureif (layerName == "结构"){db.AddLayer(layerName);db.SetLayerColor(layerName, 1);db.SetCurrentLayer(layerName);trans.Commit();}//辅助线白色auxiliaryif (layerName == "辅助线"){db.AddLayer(layerName);db.SetLayerColor(layerName, 7);db.SetCurrentLayer(layerName);trans.Commit();}//标题下划线蓝色underlineif (layerName == "标题下划线"){db.AddLayer(layerName);db.SetLayerColor(layerName, 5);db.SetCurrentLayer(layerName);trans.Commit();}//标注绿色labelif (layerName == "标注"){db.AddLayer(layerName);db.SetLayerColor(layerName, 3);db.SetCurrentLayer(layerName);trans.Commit();}//附注白色annotationif (layerName == "附注"){db.AddLayer(layerName);db.SetLayerColor(layerName, 7);db.SetCurrentLayer(layerName);trans.Commit();}//文本白色textif (layerName == "文本"){db.AddLayer(layerName);db.SetLayerColor(layerName, 7);db.SetCurrentLayer(layerName);trans.Commit();}//表格外框线红色TableOutlineif (layerName == "表格外框线"){db.AddLayer(layerName);db.SetLayerColor(layerName, 1);//线形db.SetLayerLineType(layerName, "Center");db.SetCurrentLayer(layerName);trans.Commit();}//中心线黄色CentreLineif (layerName == "中心线"){db.AddLayer(layerName);db.SetLayerColor(layerName, 2);//db.LoadLineType("Center");//设立线性//ObjectId centerId3 = db.LoadLineType("Center");db.SetLayerLineType(layerName, "CENTER");db.SetCurrentLayer(layerName);trans.Commit();}//虚线黄色Imaginarylineif (layerName == "虚线"){db.AddLayer(layerName);db.SetLayerColor(layerName, 2);db.SetLayerLineType(layerName, "DASHED");db.SetCurrentLayer(layerName);trans.Commit();}}}public void setlayColor(){Database db = HostApplicationServices.WorkingDatabase;Editor ed = db.GetEditor();using (Transaction trans = db.TransactionManager.StartTransaction()){string name1 = "结构";string name2 = "辅助线";string name3 = "标题下划线";string name4 = "标注";string name5 = "附注";string name6 = "文本";string name7 = "表格外框线";string name8 = "中心线";string name9 = "虚线";DocumentLock m_DocumentLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();ObjectId centerId = db.LoadLineType("CENTER");ObjectId centerId2 = db.LoadLineType("continuous");ObjectId centerId3 = db.LoadLineType("DASHED");verticalView.Label.LaryerColor color = new verticalView.Label.LaryerColor();color.layerLibrary(name1);color.layerLibrary(name2);color.layerLibrary(name3);color.layerLibrary(name4);color.layerLibrary(name5);color.layerLibrary(name6);color.layerLibrary(name7);color.layerLibrary(name8);color.layerLibrary(name9);m_DocumentLock.Dispose();trans.Commit();}}}
}


(上面图层线形的创立)
2文本样式
生成文本名字为新文字的文字样式,并置于当前

  public void addTextStye(){Database db=HostApplicationServices.WorkingDatabase;Editor ed=Application.DocumentManager.MdiActiveDocument.Editor;using (Transaction trans=db.TransactionManager.StartTransaction()){//设置TrueType字体(仿宋体)ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx","fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");trans.Commit();}}


3,标注样式
标注样式的生成及封装


具体封装代码如下

 //这个是对标注样式的封装。这里封装的样式有2,2.5,25,40---200等public void NewDimStyle(){//Database db =Application.DocumentManager.MdiActiveDocument.Database;Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){ DimStyleTable DimTabb = (DimStyleTable)trans.GetObject(db.DimStyleTableId, OpenMode.ForRead);ObjectId dimId = ObjectId.Null;if (!DimTabb.Has("2")){DocumentLock m_DocumentLock = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.LockDocument();DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "2";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 2;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);m_DocumentLock.Dispose();}if (!DimTabb.Has("2.5")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "2.5";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 2.5;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);//设置为当前的标注样式trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("5")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "5";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 5;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("10")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "10";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 10;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("25")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "25";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 25;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("40")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "40";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 40;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("50")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "50";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 50;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("100")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "100";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//设置TrueType字体(仿宋体)//ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");//DBText txt1 = new DBText();//txt1.TextString = "新字体";//txt1.TextStyle = styleId;//文字样式//TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;//str.TextSize = 0;//高度//str.XScale = 0.75;//宽度因子//str.SetPaperOrientation(true);//文字方向与布局是否匹配           //str.DowngradeOpen();//为了安全切换为读的状态    //db.SetCurrentTextStyle("新字体");//newRecord.Dimtxsty = styleId;//文字对齐newRecord.Dimtoh = false;//比例因子newRecord.Dimlfac = 100;//文字样式ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);//并确定事务处理知道要加入圆!//一旦完成以上操作,我们就提交事务处理,这样以上所做的改变就被保存了……trans.AddNewlyCreatedDBObject(newRecord, true);}if (!DimTabb.Has("200")){DimTabb.UpgradeOpen();DimStyleTableRecord newRecord = new DimStyleTableRecord();//建立标准名字newRecord.Name = "200";//指定标注文字的高度newRecord.Dimtxt = 2.5;//Dimtxsty 指定标注的文字样式。//设置尺寸末端箭头块newRecord.Dimblk = ObjectId.Null;//设置箭头的大小newRecord.Dimasz = 2.5;//控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。newRecord.Dimtofl = false;//当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。newRecord.Dimgap = 0.625;//小数位数newRecord.Dimdec = 0;文字位置//newRecord.Dimjust = 1;//控制文字相对尺寸线的垂直位置//这个是上方newRecord.Dimtad = 1;//文字对齐newRecord.Dimtoh = false;ObjectId styleId = db.AddTextStyle("新字体", "fsdb_e.shx", "fsdb.shx");DBText txt1 = new DBText();txt1.TextString = "新字体";txt1.TextStyle = styleId;//文字样式TextStyleTableRecord str = styleId.GetObject(OpenMode.ForWrite) as TextStyleTableRecord;str.TextSize = 0;//高度str.XScale = 0.75;//宽度因子str.SetPaperOrientation(true);//文字方向与布局是否匹配           str.DowngradeOpen();//为了安全切换为读的状态    db.SetCurrentTextStyle("新字体");newRecord.Dimtxsty = styleId;//比例因子newRecord.Dimlfac = 200;//newRecord.Dimlim = false;dimId = DimTabb.Add(newRecord);trans.AddNewlyCreatedDBObject(newRecord, true);}else{dimId = DimTabb["100"];}trans.Commit();}}

标注样式的API我网上找的资料如下

  //Dimadec 1.使用 Dimdec 设置的小数位数绘制角度标注;0-8 使用 Dimadec 设置的小数位数绘制角度标注。//Dimalt 控制标注中换算单位的显示:关.禁用换算单位 开.启用换算单位//Dimaltd 控制换算单位中小数位的位数。//Dimaltf 控制换算单位乘数。//Dimaltrnd 舍入换算标注单位。//Dimalttd 设置标注换算单位公差值小数位的位数。//Dimalttz 控制是否对公差值作消零处理。//Dimaltu 为所有标注样式族(角度标注除外)换算单位设置单位格式。//Dimaltz 控制是否对换算单位标注值作消零处理。Dimaltz 值为 0 - 3 时只影响英尺-英寸标注。//Dimapost 为所有标注类型(角度标注除外)的换算标注测量值指定文字前缀或后缀(或两者都指定)。//Dimaso 控制标注对象的关联性。//Dimassoc 控制标注对象的关联性。//Dimasz 控制尺寸线、引线箭头的大小。并控制钩线的大小。//Dimatfit 当尺寸界线的空间不足以同时放下标注文字和箭头时,本系统变量将确定这两者的排列方式。//Dimaunit 设置角度标注的单位格式:0.十进制度数 1.度/分/秒 2.百分度 3.弧度//Dimazin 对角度标注作消零处理。//Dimblk 设置尺寸线或引线末端显示的箭头块。//Dimblk1 当 Dimsah 系统变量打开时,设置尺寸线第一个端点的箭头。//Dimblk2 当 Dimsah 系统变量打开时,设置尺寸线第二个端点的箭头。//Dimcen 控制由 Dimcenter、 Dimdiameter 和 Dimradius 命令绘制的圆或圆弧的圆心标记和中心线图形。//Dimclrd 为尺寸线、箭头和标注引线指定颜色。同时控制由 leader 命令创建的引线颜色。//Dimclre 为尺寸界线指定颜色。//Dimclrt 为标注文字指定颜色。//Dimdec 设置标注主单位显示的小数位位数。精度基于选定的单位或角度格式。//Dimdle 当使用小斜线代替箭头进行标注时,设置尺寸线超出尺寸界线的距离。//Dimdli 控制基线标注中尺寸线的间距。//Dimdsep 指定一个单字符作为创建十进制标注时使用的小数分隔符。//Dimexe 指定尺寸界线超出尺寸线的距离。//Dimexo 指定尺寸界线偏移原点的距离。//Dimfit 旧式,除用于保留脚本的完整性外没有任何影响。Dimfit 被 Dimatfit 系统变量和 Dimtmove 系统变量代替。//Dimfrac 在 Dimlunit 系统变量设置为:4(建筑)或 5(分数)时设置分数格式,0.水平 1.斜 2.不堆叠//Dimgap 当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离。//Dimjust 控制标注文字的水平位置。//Dimldrblk 指定引线箭头的类型。要返回默认值(实心闭合箭头显示),请输入单个句点 (.)。//Dimlfac 设置线性标注测量值的比例因子。//Dimlim 将极限尺寸生成为默认文字。//Dimlunit 为所有标注类型(除角度标注外)设置单位制。//Dimlwd 指定尺寸线的线宽。其值是标准线宽。-3.bylayer -2.byblock 整数代表百分之一毫米的倍数//Dimlwe 指定尺寸界线的线宽。其值是标准线宽。-3 bylayer -2 byblock 整数代表百分之一毫米的倍数//Dimpost 指定标注测量值的文字前缀或后缀(或者两者都指定)。//Dimrnd 将所有标注距离舍入到指定值。//Dimsah 控制尺寸线箭头块的显示。//Dimscale 为标注变量(指定尺寸、距离或偏移量)设置全局比例因子。同时还影响 leader 命令创建的引线对象的比例。//Dimsd1 控制是否禁止显示第一条尺寸线。//Dimsd2 控制是否禁止显示第二条尺寸线。//Dimse1 控制是否禁止显示第一条尺寸界线:关.不禁止显示尺寸界线 开.禁止显示尺寸界线//Dimse2 控制是否禁止显示第二条尺寸界线:关.不禁止显示尺寸界线 开.禁止显示尺寸界线//Dimsho 旧式,除用于保留脚本的完整性外没有任何影响。//Dimsoxd 控制是否允许尺寸线绘制到尺寸界线之外:关.不消除尺寸线 开.消除尺寸线//Dimstyle Dimstyle 既是命令又是系统变量。作为系统变量,Dimstyle 将显示当前标注样式。//Dimtad 控制文字相对尺寸线的垂直位置。//Dimtdec 为标注主单位的公差值设置显示的小数位位数。//Dimtfac 按照 Dimtxt 系统变量的设置,相对于标注文字高度给分数值和公差值的文字高度指定比例因子。//Dimtih 控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置。//Dimtix 在尺寸界线之间绘制文字。//Dimtm 在 Dimtol 系统变量或 Dimlim 系统变量为开的情况下,为标注文字设置最小(下)偏差。//Dimtmove 设置标注文字的移动规则。//Dimtofl 控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)。//Dimtoh 控制标注文字在尺寸界线外的位置:0或关.将文字与尺寸线对齐 1或开.水平绘制文字//Dimtol 将公差附在标注文字之后。将 Dimtol 设置为“开”,将关闭 Dimlim 系统变量。//Dimtolj 设置公差值相对名词性标注文字的垂直对正方式:0.下 1.中间 2.上//Dimtp 在Dimtol 或 Dimlim 系统变量设置为开的情况下,为标注文字设置最大(上)偏差。Dimtp 接受带符号的值。//Dimtsz 指定线性标注、半径标注以及直径标注中替代箭头的小斜线尺寸。//Dimtvp 控制尺寸线上方或下方标注文字的垂直位置。当 Dimtad 设置为关时,autocad 将使用 Dimtvp 的值。//Dimtxsty 指定标注的文字样式。//Dimtxt 指定标注文字的高度,除非当前文字样式具有固定的高度。//Dimtzin 控制是否对公差值作消零处理。//Dimunit 旧式,除用于保留脚本的完整性外没有任何影响。Dimunit 被 Dimlunit 和 Dimfrac 系统变量代替。//Dimupt 控制用户定位文字的选项。0光标仅控制尺寸线的位置 1或开 光标控制文字以及尺寸线的位置//Dimzin 控制是否对主单位值作消零处理。

4标注的封装
(1)水平标注封装

        //整体放大比例采用前面输入//水平标注的封装;水平标注的封装;水平标注的封装//分别输入标注起始点,末尾点,标注文字,垂直距离(),整体标注的移动的开始点,结束点,以及放大比例public void addHorizonRotatedDimension(Point3d pt1, Point3d pt2, string text, double length, Point3d startpoint, Point3d endpoint, int fontNumber){Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){   //水平移动的开始点,结束点Point3d startPoint = startpoint;Point3d endPoint = endpoint;RotatedDimension dimRotated = new RotatedDimension();dimRotated.XLine1Point = pt1;dimRotated.XLine2Point = pt2;dimRotated.DimLinePoint = GeTools.MidPoint(pt1, pt2).PolarPoint(-Math.PI / 2, length);dimRotated.DimensionText = text;//<>代表标注的主尺寸,此处在标注线上插入文字dimRotated.DimensionStyle = db.Dimstyle;//设置标注样式为当前样式//将标注整体放大平移dimRotated.Scale(startPoint, fontNumber);dimRotated.Move(startPoint, endPoint);//进行标注db.AddToModelSpace(dimRotated);trans.Commit();//提交事务}}

(2)垂直标注封装

//整体放大比例采用前面输入//垂直标注的封装;垂直标注的封装;垂直标注的封装;//分别输入标注起始点,末尾点,标注文字,垂直距离(),整体标注的移动的开始点,结束点,以及放大比例public void addVerticalRotatedDimension(Point3d pt1, Point3d pt2, string text, double length, Point3d startpoint, Point3d endpoint, int fontNumber){Point3d startPoint = startpoint;Point3d endPoint = endpoint;Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){//垂直标注RotatedDimension dimRotated = new RotatedDimension();dimRotated.Rotation = Math.PI / 2;//开始点,结束点dimRotated.XLine1Point = pt1;dimRotated.XLine2Point = pt2;dimRotated.DimLinePoint = GeTools.MidPoint(pt1, pt2).PolarPoint(0, length);dimRotated.DimensionText = text;//<>代表标注的主尺寸,此处在标注线上插入文字dimRotated.DimensionStyle = db.Dimstyle;//设置标注样式为当前样式//将标注整体放大平移dimRotated.Scale(startPoint, fontNumber);dimRotated.Move(startPoint, endPoint);db.AddToModelSpace(dimRotated);trans.Commit();//提交事务} }

(3)对齐标注封装

  //整体放大比例采用前面输入//对齐标注的封装;对齐标注的封装;对齐标注的封装,,也就是倾斜标注的封装//分别输入标注起始点,末尾点,标注文字,垂直距离(),整体标注的移动的开始点,结束点,以及放大比例public void alignedDimension(Point3d pt1, Point3d pt2, string text, double length, Point3d startpoint, Point3d endpoint, int fontNumber){Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){   //水平移动的开始点,结束点Point3d startPoint = startpoint;Point3d endPoint = endpoint;//倾斜标注的封装AlignedDimension dimRotated = new AlignedDimension();dimRotated.XLine1Point = pt1;dimRotated.XLine2Point = pt2;dimRotated.DimLinePoint = GeTools.MidPoint(pt1, pt2).PolarPoint(-Math.PI / 2, length);dimRotated.DimensionText = text;//<>代表标注的主尺寸,此处在标注线上插入文字dimRotated.DimensionStyle = db.Dimstyle;//设置标注样式为当前样式//将标注整体放大平移dimRotated.Scale(startPoint, fontNumber);dimRotated.Move(startPoint, endPoint);//进行标注db.AddToModelSpace(dimRotated);trans.Commit();//提交事务}}

(4)半径标注

        //半径标注的封装;半径标注的封装;半径标注的封装;//半径标注的封装;半径标注的封装;半径标注的封装;//半径标注的封装;半径标注的封装;半径标注的封装;//分别输入标注圆心,半径(也就是距离圆心的距离),线的长度,标注度数,开始点,结束点,放大倍数public void addRadialDimension(Point3d cen, double R, double lo, double de, Point3d startpoint, Point3d endpoint, double fontNumber){Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){Point3d startPoint = startpoint;Point3d endPoint = endpoint;Circle cir1 = new Circle(cen, Vector3d.ZAxis, R);//List<Dimension> dims = new List<Dimension>();// 创建半径标注RadialDimension dimRadial = new RadialDimension();dimRadial.Center = cir1.Center;//圆或圆弧的圆心dimRadial.ChordPoint = cir1.Center.PolarPoint(GeTools.DegreeToRadian(de), R);dimRadial.LeaderLength = lo;//引线长度dimRadial.Scale(startPoint, fontNumber);dimRadial.Move(startPoint, endPoint);dimRadial.DimensionStyle = db.Dimstyle;//设置标注样式为当前样式db.AddToModelSpace(dimRadial);trans.Commit();//提交更改}}

5 引线的封装

//引线//分别输入标注起始点,末尾点,标注文字,垂直距离(),整体标注的移动的开始点,结束点,以及放大比例public void leaderLine(Point3d pt1, Point3d pt2, string text, Point3d startpoint, Point3d endpoint, int fontNumber){Database db = HostApplicationServices.WorkingDatabase;using (Transaction trans = db.TransactionManager.StartTransaction()){//水平移动的开始点,结束点Point3d startPoint = startpoint;Point3d endPoint = endpoint;//创建一个多行文本并设置其内容为4Xφd±0.005(其中d为圆的直径)MText txt=new MText();txt.Contents = text;txt.Location = pt2;//文本位置txt.TextHeight = 0.2;//文本高度 txt.Scale(startPoint, fontNumber);txt.Move(startPoint, endPoint);db.AddToModelSpace( txt);//将圆和文本添加到模型空间中 Leader leader=new Leader();//创建一个引线对象//将圆上一点及文本位置作为引线的顶点\//(Math.PI / 3这个是标注的角度leader.AppendVertex(pt1.PolarPoint(Math.PI / 3, 0));leader.AppendVertex(txt.Location);leader.Scale(startPoint, fontNumber);leader.Move(startPoint, endPoint);db.AddToModelSpace(leader);//将引线添加到模型空间中leader.Dimgap = 0.625;//设置引线的文字偏移为0.1leader.Dimasz = 2.5;//设置引线的箭头大小为2.5leader.Annotation = txt.ObjectId;//设置引线的注释对象为文本leader.EvaluateLeader();//计算引线及其关联注释之间的关系trans.Commit();//提交更改}        }

CAD.net二次开发之图层,文字样式,标注样式,标注封装,引线的封装相关推荐

  1. CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等

    基于浩辰CAD 2019测试 功能实现 直接上代码: [CommandMethod("CreateAndAssignAlayer")] //新建图层 然后添加到图层表里 publi ...

  2. C#进行MapX二次开发之图层操作

    特别说明,本文整理自一篇网络的文章<MapX从数据库读取数据形成新图层(C#)> 在C#中实现MapX从数据库读取数据形成新图层分为两个问题: 1. MapX从数据库读取数据形成新图层: ...

  3. 微信公众号二次开发实现自动回复文字,图片,图文功能

    微信公众号二次开发实现自动回复文字,图片,图文功能 自动回复文字或图片: 表单里需要有关键字和内容.但就这两个字段也需要在两个数据表里分别显示,因为要提前准备字段内容里有可能是图片,图文等等类型.所以 ...

  4. 基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作

    基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录 ...

  5. 【以项目实战讲解CAD的二次开发】

    以项目实战讲解CAD的二次开发 说明 背景目的 环境搭建 c++ .net 启动程序 后续的框架构想 总结 说明 这是我的第一个博客,之前也一直不敢写,本人能力有限,怕写错,误导一批新手.也很久没有较 ...

  6. AE二次开发-获取图层的属性表

    Arcgis Engine二次开发C#常用库封装:Github源码 获取矢量或栅格图层的属性表,且可以指定获取的行数. 可以根据字段属性设置数据表的列属性. /// <summary>// ...

  7. 【web前端开发】CSS文字和文本样式

    文章目录 前言 字体大小 字体粗细 字体样式 字体 font复合属性 文本缩进 文本水平对齐方式 文本修饰线 行高 颜色 标签水平居中 ⭐思维导图 前言 本篇文章主要讲解CSS中的文字和文本样式及一些 ...

  8. 中望CAD.NET二次开发(C#)_第01篇_环境搭建

    中望CAD版本:2020 VS版本:2013 一.创建类库项目 二.添加引用 添加对ZwDatabaseMgd.dll和ZwManaged.dll的引用 (这两个DLL位于中望CAD安装目录下) 三. ...

  9. CAD C#二次开发自动注册代码片段

    ## **自动注册插件,CAD启动时自启** 重新编译生成DLL 在CAD中使用NetLoad第一次加载编译好的DLL后,在CAD中执行RegisterCustomApp命令进行插件注册,注册成功,此 ...

  10. AE二次开发之图层移动

    找了一圈发现都是用代码写图层移动的,但其实AE控件自带的图层属性就可以实现这个功能,所以给大家分享一下: 1.右击图层控件,选择属性 2.勾选"允许图层移动选项"就可以了 既然自带 ...

最新文章

  1. 全景图拼接算法实现与改进
  2. [SCOI2007]降雨量
  3. 关于快速开发和设计应用系统的一些个人的意见
  4. win7 绑定arp
  5. NOIP模拟测试29「爬山·学数数·七十和十七」
  6. DCGAN baseline
  7. elk,centos7,filebeat,elasticsearch-head集成搭建
  8. c语言汽水瓶编程,汽水瓶 题目(C语言代码)
  9. 手把手整合SSM项目(附源码)
  10. NFR24C0L中文使用手册、stm32硬件SPI与模拟SPI比较:
  11. jar反编译工具 比jd-gui 功能更强大的 Luyten 查看jar源码, 解决jd反编译代码中break labelxxx 、 static初始块中出现return 等问题
  12. 博图os更新_PCS7和TIA博图软件有什么区别?
  13. 【显卡天梯图】2014年最新显卡天梯图 – 【迄今最全系列显卡】
  14. java获取基金实时数据_JAVA爬取天天基金网数据
  15. 采集用python还是火车头_我才知道爬虫也可以酱紫--火车采集器
  16. python的内存管理
  17. 峰会回顾 | 阿里云与StarRocks合作、开放、共赢
  18. 数据挖掘 顶级期刊_人工智能领域的顶级学术期刊大全(一)
  19. tkinter在Mac下运行主界面显示黑色
  20. Unity API常用方法和类

热门文章

  1. c++求余弦的泰勒展开式
  2. 华为存储iscsi配置_使用华为存储配置ISCSI存储方法和iSCSI建立连接提示目标错误...
  3. 终于知道电脑版微信为啥只能扫码登录了
  4. 【Matlab元胞自动机】元胞自动机双边教室疏散【含源码 1208期】
  5. 图新地球为什么很模糊,白球、看图、下载问题深度剖析
  6. python-opencv第四期:threshold函数详解
  7. 程序与算法的区别和内在联系(算法是什么?程序又是什么?)
  8. 提高软件开发工作效率的几种方法
  9. sqlserver备份还原数据库操作流程
  10. 音频压缩编码技术(一)—有损压缩