Cad二次开发中使经常使用的线性和线型

  1. acad_iso03w100 - 这是一种标准的 ISO 线型,用于绘制等距投影。它包括了一系列平行的虚线段,用于表示不同的深度和高度。
  2. DASH - 这是一种常见的实线虚线混合线型,它由一系列连续的线段和间隔的虚线组成,用于绘制各种类型的线条和边界。
  3. CONTINUOUS - 这是一种标准的实线线型,它用于绘制实体对象的边界和轮廓。
  4. HIDDEN - 这是一种用于绘制隐藏线的线型,它由一系列短划线和间隔的空白线组成,通常用于绘制隐藏的边界和轮廓。
  5. CENTER - 这是一种用于绘制中心线的线型,它由一系列连续的虚线组成,通常用于标记轴线、对称轴等。
  6. PHANTOM - 这是一种用于绘制虚影线的线型,它由一系列短虚线和间隔的空白线组成,通常用于标记对象的轮廓或者边缘。
  7. DOTTED - 这是一种由一系列等距的点组成的线型,通常用于标记轮廓或边缘。

以上是一些常见的线性和线型,但不一定是全部。实际上,用户可以创建自定义的线型,以满足其特定的绘图需求。


  • 修改当前图层的线型:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
    
    
    LayerTableRecord layer = (LayerTableRecord)tr.GetObject(db.Clayer, OpenMode.ForWrite);
    if (layer != null)
    {
    
    
        // 将图层的线型属性替换为新的线型名称
        ObjectId linetypeId = SymbolUtilityServices.GetLinetypeId(db, "新线型名称");
        layer.LinetypeObjectId = linetypeId;
        layer.DowngradeOpen();
        tr.Commit();
    }
}

其中,通过 Application.DocumentManager.MdiActiveDocument 获取当前文档对象,再通过 SymbolUtilityServices.GetLinetypeId() 方法获取新的线型对象 ID,最后将图层的线型属性替换为新的线型名称。

  • 修改指定对象的线型:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;

Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;

PromptEntityResult res = ed.GetEntity("选择对象:");
if (res.Status == PromptStatus.OK)
{
    
    
    using (Transaction tr = db.TransactionManager.StartTransaction())
    {
    
    
        Entity ent = (Entity)tr.GetObject(res.ObjectId, OpenMode.ForWrite);
        if (ent != null)
        {
    
    
            // 将对象的线型属性替换为新的线型名称
            ObjectId linetypeId = SymbolUtilityServices.GetLinetypeId(db, "新线型名称");
            ent.LinetypeId = linetypeId;
            tr.Commit();
        }
    }
}

其中,通过 Editor.GetEntity() 方法获取用户选择的对象,再通过 SymbolUtilityServices.GetLinetypeId() 方法获取新的线型对象 ID,最后将对象的线型属性替换为新的线型名称。

猜你喜欢

转载自blog.csdn.net/ultramand/article/details/130377641