Point 对象非常有用,例如,可将 Point 对象用作捕捉的节点或者偏移对象的参考点。可以相对于屏幕或采用绝对单位来设置点的样式和大小。
PDMODE 和 PDSIZE 系统变量控制 Point 对象的外观。PDMODE 值 0、2、3 和 4 指定要通过点绘制的图形。值为 1 时表示不显示任何图形。
. + X |
0 1 2 3 4
在上述值上加上 32、64 或 96 表示除了绘制通过点的图形以外,还在点的周围绘制形状:
PDSIZE 控制点图形的尺寸(PDMODE 值为 0 和 1 时除外)。如果设置为 0,则点图形的高度是图形区高度的 5%。正的 PDSIZE 值指定点图形的绝对尺寸。负值将解释为视口大小的百分比。重生成图形时将重新计算所有点的大小。
添加AutoCAD的命名空间
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
创建点对象及设置点样式的示例源码:
[CommandMethod("AddPointAndSetPointStyle")]
public static void AddPointAndSetPointStyle()
{
//获取当前图形文档及数据库
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
//开始一个事务
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
//以只读的方式打开块表
BlockTable acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
OpenMode.ForRead) as BlockTable;
//以写的方式打开块记录
BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
OpenMode.ForWrite) as BlockTableRecord;
//在模型空间创建坐标为(4,3,0)的点对象
DBPoint acPoint = new DBPoint(new Point3d(4, 3, 0));
acPoint.SetDatabaseDefaults();
//把点对象添加到块记录和事务
acBlkTblRec.AppendEntity(acPoint);
acTrans.AddNewlyCreatedDBObject(acPoint, true);
//设置所有点对象的点样式
acCurDb.Pdmode = 34;
acCurDb.Pdsize = 1;
//提交事务,把点对象保存到数据库中.
acTrans.Commit();
}
}