Re: Блокировка AutoCAD
Свой вопрос снимаю.
По закону подлости не находил решения, спросил на форуме и сразу нашел как сделать.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → .NET → Блокировка AutoCAD
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Свой вопрос снимаю.
По закону подлости не находил решения, спросил на форуме и сразу нашел как сделать.
По закону подлости не находил решения, спросил на форуме и сразу нашел как сделать.
Ну так напиши.
Состряпал на скорую руку...
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim text_2 As String="Что то там" Dim text_1 As String = "Где то там" Call adskCommands.crLayers(text_2, text_1) End Sub Public Shared Sub crLayers(ByRef str As String, ByRef str_prop As String) ' Получениеn текущего документа и базы данных Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Dim acEd As Editor = acDoc.Editor Using db As Database = HostApplicationServices.WorkingDatabase() 'Начало транзакции Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim myDwg As Document myDwg = Application.DocumentManager.MdiActiveDocument Using docloc As DocumentLock = myDwg.LockDocument ' lock current document Try 'Открываю таблицу слоев для чтения Dim acLyrTbl As LayerTable acLyrTbl = CType(acTrans.GetObject(acCurDb.LayerTableId, _ OpenMode.ForRead), LayerTable) Dim lay As liralayer = layer_dict.Item(str) 'В этой переменной наименование слоя Dim sLayerName As String = lay.name.ToString & str_prop 'Если этого слоя нет, то создаем его If acLyrTbl.Has(sLayerName) = False Then Dim acLyrTblRec As LayerTableRecord = New LayerTableRecord() 'Создаем новый слой с заданными параметрами acLyrTblRec.Name = sLayerName acLyrTblRec.Color = Color.FromColorIndex(ColorMethod.ByAci, CType(lay.color, Short)) acLyrTblRec.Description = lay.Description + " создан программой" acLyrTblRec.LineWeight = DirectCast([Enum].Parse(GetType(LineWeight), lay.LineWeight), LineWeight) acLyrTblRec.IsPlottable = lay.IsPlottable acLyrTblRec.IsOff = lay.IsOff acLyrTblRec.IsFrozen = lay.IsFrozen acLyrTblRec.IsLocked = lay.IsLocked ''Обновляем таблицу слоев для записи acLyrTbl.UpgradeOpen() ''Добавляем новый слой в таблицу слоев acLyrTbl.Add(acLyrTblRec) acTrans.AddNewlyCreatedDBObject(acLyrTblRec, True) End If acTrans.Commit() Catch ex As Autodesk.AutoCAD.Runtime.Exception MsgBox(vbLf & "Error: " & ex.ToString) Finally acTrans.Dispose() End Try 'Сохранение изменений и завершение транзакции End Using End Using End Using End Sub
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → .NET → Блокировка AutoCAD
Форум работает на PunBB, при поддержке Informer Technologies, Inc