天天看點

AutoCAD .Net 建立點Point

以下代碼展示:

往模型空間中添加一個點。點的坐标為(100, 100, 50)。

設定點的圖層、顔色、線型、線寬請參考文章AutoCAD .Net 建立直線Line

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Colors;

[CommandMethod("NewPoint")]
public static void NewPoint()
{
    Document doc = Application.DocumentManager.MdiActiveDocument;
    Database db = doc.Database;

    using (Transaction tr = db.TransactionManager.StartTransaction())
    {
        //-------------------------------
        // 擷取模型空間
        //-------------------------------
        BlockTable blockTbl = tr.GetObject(
            db.BlockTableId, OpenMode.ForRead) as BlockTable;
        BlockTableRecord modelSpace = tr.GetObject(
            blockTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;

        //-------------------------------
        // 建立點
        //-------------------------------
        DBPoint point = new DBPoint(new Point3d(, , ));

        //-------------------------------
        // 控制點的顯示外觀
        //-------------------------------
        db.Pdmode = ;
        db.Pdsize = ;

        //----------------------------
        // 添加到模型空間并送出到資料庫
        //-------------------------------
        modelSpace.AppendEntity(point);
        tr.AddNewlyCreatedDBObject(point, true);

        tr.Commit();
    }
}
           

系統變量 PDMODE 和 PDSIZE 控制點對象的顯示外觀。

PDMODE 取值為 0、2、3 、4 時指定表示點的圖形,取值為 1 表示不顯示任何圖形,如下圖所示:

AutoCAD .Net 建立點Point

上述 PDMODE 值分别加上 32、64、96 表示分别在上述點的外形周圍加畫上不同的形狀,如下圖所示:

AutoCAD .Net 建立點Point

PDSIZE 控制點形狀的大小(PDMODE 取值為 0 和 1 時除外)。PDSIZE 為 0 時生成的點是圖形區域高度的 5% 。PDSIZE 為正值表示點形狀的絕對大小,PDSIZE 為負值解釋為相對視口大小的百分比。