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

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

概述  1.6、Lock and Unlock Layers锁定和解锁图层 You cannot edit objects on a locked layer; however, they are still visible if the layer is on and thawed. You can make a locked layer current and you can add object 1.6、Lock and Unlock Layers锁定和解锁图层

You cannot edit objects on a locked layer; however,they are still visible if the layer is on and thawed. You can make a locked layer current and you can add objects to it. You can freeze and turn off locked layers and change their associated colors and linetypes.

我们不能编辑已锁定图层上的对象,不过,如果已锁定图层是打开的并且是解冻的,那么图层上的对象仍然是可见的。我们可以将已锁定图层设为当前图层并往上添加对象,我们还可以冻结、关闭已锁定图层以及修改其关联的颜色和线型等。

Use the IsLocked property to lock or unlock a layer. If you input a value of TRUE,the layer is locked. If you input a value of FALSE,the layer is unlocked.

使用IsLocked属性来锁定或解锁图层。IsLocked属性值为TRUE则锁定图层,IsLocked属性值为FALSE则解锁图层。

Lock a layer 锁定图层@H_403_14@

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

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

VB.NET

imports autodesk.autoCAD.Runtime

imports autodesk.autoCAD.applicationservices

imports autodesk.autoCAD.DatabaseServices

<CommandMethod("LockLayer")> _

Public Sub LockLayer()

'' 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

'' Lock the layer

acLyrTblRec.IsLocked = 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("LockLayer")]

public static voID LockLayer()

{

// 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;

}

// Lock the layer锁定图层

acLyrTblRec.IsLocked = true;

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

acTrans.Commit();

}

}

VBA/ActiveX Code Reference

Sub LockLayer()

' Create a new layer called "ABC"

Dim layerObj As AcadLayer

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

' Lock layer "ABC"

layerObj.Lock = True

End Sub

总结

以上是内存溢出为你收集整理的03-05 创建和编辑AutoCAD实体(五) 使用图层、颜色和线型(1)使用图层(1-6)全部内容,希望文章能够帮你解决03-05 创建和编辑AutoCAD实体(五) 使用图层、颜色和线型(1)使用图层(1-6)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1291552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)