创建 Point 对象

来源:互联网 发布:怎么看淘宝的追加评价 编辑:程序博客网 时间:2024/04/29 09:04

创建 Point 对象 

 

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 值指定点图形的绝对尺寸。负值将解释为视口大小的百分比。重生成图形时将重新计算所有点的大小。

更改 PDMODE 和 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();

    }

}

 

 

原创粉丝点击