加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

03-05 创建和编辑AutoCAD实体(五) 使用图层、颜色和线型(1)

发布时间:2020-12-16 22:49:59 所属栏目:大数据 来源:网络整理
导读:1.5、Freeze and Thaw Layers冻结和解冻图层 You can freeze layers to speed up display changes,improve object selection performance,and reduce regeneration time for complex drawings. AutoCAD does not display,plot,or regenerate objects on froz

1.5、Freeze and Thaw Layers冻结和解冻图层

You can freeze layers to speed up display changes,improve object selection performance,and reduce regeneration time for complex drawings. AutoCAD does not display,plot,or regenerate objects on frozen layers. Freeze the layers that you will not be working with for long periods of time. When you “thaw” a frozen layer,AutoCAD regenerates and displays the objects on that layer.

我们可以通过冻结图层来加快显示图形修改、改进对象选择性能以及减少复杂图像的重生成时间。对已冻结图层上的对象,AutoCAD不显示,不打印,也不重生成。如果长时间不用某个图层,可以将其冻结。当解冻某个已冻结图层时,AutoCAD会重生成并显示该图层上的对象。

Use the IsFrozen property to freeze or thaw a layer. If you input a value of TRUE,the layer is frozen. If you input a value of FALSE,the layer is thawed.

使用IsFrozen属性来冻结或解冻一个图层。IsFrozen属性值为TRUE则冻结图层,IsFrozen属性值为FALSE则解冻图层。

Freeze a layer 冻结图层

This example creates a new layer called “ABC” and then freezes the layer.

本例创建一个名为“ABC”的新图层,然后将其冻结。

VB.NET

Imports Autodesk.AutoCAD.Runtime

Imports Autodesk.AutoCAD.ApplicationServices

Imports Autodesk.AutoCAD.DatabaseServices

<CommandMethod("FreezeLayer")> _

Public Sub FreezeLayer()

'' Get the current document and database

Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument

Dim acCurDb As Database = acDoc.Database

'' Start a transaction

Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()

'' Open the Layer table for read

Dim acLyrTbl As LayerTable

acLyrTbl = acTrans.GetObject(acCurDb.LayerTableId,_

OpenMode.ForRead)

Dim sLayerName As String = "ABC"

Dim acLyrTblRec As LayerTableRecord

If acLyrTbl.Has(sLayerName) = False Then

acLyrTblRec = New LayerTableRecord()

'' Assign the layer a name

acLyrTblRec.Name = sLayerName

'' Upgrade the Layer table for write

acLyrTbl.UpgradeOpen()

'' Append the new layer to the Layer table and the transaction

acLyrTbl.Add(acLyrTblRec)

acTrans.AddNewlyCreatedDBObject(acLyrTblRec,True)

Else

acLyrTblRec = acTrans.GetObject(acLyrTbl(sLayerName),_

OpenMode.ForWrite)

End If

'' Freeze the layer

acLyrTblRec.IsFrozen = True

'' Save the changes and dispose of the transaction

acTrans.Commit()

End Using

End Sub

C#

using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.DatabaseServices;

[CommandMethod("FreezeLayer")]

public static void FreezeLayer()

{

// Get the current document and database获取当前文档和数据库

Document acDoc = Application.DocumentManager.MdiActiveDocument;

Database acCurDb = acDoc.Database;

// Start a transaction启动事务

using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())

{

// Open the Layer table for read以读打开图层表

LayerTable acLyrTbl;

acLyrTbl = acTrans.GetObject(acCurDb.LayerTableId,

OpenMode.ForRead) as LayerTable;

string sLayerName = "ABC";

LayerTableRecord acLyrTblRec;

if (acLyrTbl.Has(sLayerName) == false)

{

acLyrTblRec = new LayerTableRecord();

// Assign the layer a name给图层起名字

acLyrTblRec.Name = sLayerName;

// Upgrade the Layer table for write升级打开图层表

acLyrTbl.UpgradeOpen();

// Append the new layer to the Layer table and the transaction追加新图层到图层表并添加事务

acLyrTbl.Add(acLyrTblRec);

acTrans.AddNewlyCreatedDBObject(acLyrTblRec,true);

}

else

{

acLyrTblRec = acTrans.GetObject(acLyrTbl[sLayerName],

OpenMode.ForWrite) as LayerTableRecord;

}

// Freeze the layer冻结图层

acLyrTblRec.IsFrozen = true;

// Save the changes and dispose of the transaction提交修改关闭事务

acTrans.Commit();

}

}

VBA/ActiveX Code Reference

Sub FreezeLayer()

' Create a new layer called "ABC"

Dim layerObj As AcadLayer

Set layerObj = ThisDrawing.Layers.Add("ABC")

' Freeze layer "ABC"

layerObj.Freeze = True

End Sub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读