> Newbie17
Или тоже на VB.NET:
Imports System
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Colors
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.ApplicationServices
Imports acadApp = Autodesk.AutoCAD.ApplicationServices
Imports acadDB = Autodesk.AutoCAD.DatabaseServices
Imports acadED = Autodesk.AutoCAD.EditorInput
Imports acadGo = Autodesk.AutoCAD.Geometry
Imports acadRT = Autodesk.AutoCAD.Runtime
Imports acadCol = Autodesk.AutoCAD.Colors
Public Class Class1
<CommandMethod("ALB")> _
Public Sub Doit()
Try
Dim oid As ObjectId = _
MakeLayer("NewTableLayer", "Continuous", 34, True)
Catch ex As acadRT.Exception
MessageBox.Show(ex.StackTrace)
Finally
End Try
End Sub
'//
'//
'//
Public Shared Function MakeLayer(ByVal layerName As String, ByVal ltypeName As String, ByVal layerCol As Short, ByVal toPlot As Boolean) As ObjectId
Dim db As Database = HostApplicationServices.WorkingDatabase
Dim doc As Document = acadApp.Application.DocumentManager.MdiActiveDocument
Dim dloc As DocumentLock = doc.LockDocument()
Dim ed As Editor = doc.Editor
Using tr As Transaction = db.TransactionManager.StartTransaction
Dim lrt As LayerTable
Dim layr As New LayerTableRecord
lrt = CType(tr.GetObject(db.LayerTableId, OpenMode.ForWrite), LayerTable)
'//
If lrt.Has(layerName) Then
db.Clayer = lrt(layerName)
Else
'//
layr.Name = layerName
layr.Color = acadCol.Color.FromColorIndex(ColorMethod.ByAci, layerCol)
'//
Dim ltypeID As ObjectId
Dim ltt As LinetypeTable
ltt = CType(tr.GetObject(db.LinetypeTableId, OpenMode.ForWrite), LinetypeTable)
If ltt.Has(ltypeName) Then
ltypeID = ltt(ltypeName)
Else
Dim ltype As New LinetypeTableRecord
ltype.Name = ltypeName
ltt.Add(ltype)
tr.AddNewlyCreatedDBObject(ltype, True)
ltypeID = ltype.ObjectId
End If
layr.LinetypeObjectId = ltypeID
layr.IsPlottable = toPlot
lrt.Add(layr)
tr.AddNewlyCreatedDBObject(layr, True)
db.Clayer = layr.ObjectId
End If
ed.Regen()
tr.Commit()
Return lrt(layerName)
End Using
dloc.Dispose()
End Function
End Class
~'J'~