Тема: Как программно выполнить перенос блока в другой документ ?
Здравствуйте дорогие друзья. Я знаю, что на вашем форуме данный вопрос уже рассматривался, но не откажите в подсказке.
Имеется файл со множеством блоков, которые я использую в качестве библиотеки. Мне нужно вставить в другой документ autocad блок с заранее известным именем. Я нашел похожие вопросы на вашем форуме и на их основе написал кусок программы. Открываю документ базы блоков, делаю его не активным. Нахожу блок с нужным именем , но не знаю как скопировать блок в новый документ в выбираемую точку.
Private Sub CommandButton1_Click()
UserForm1.Hide
Dim lib As AcadDocument
Dim i As Integer
Dim error_msg As String
Dim blk As AcadBlock
Dim user_doc As AcadDocument
Dim old_filedia As Integer
Dim already_present As Boolean
Dim t As String
Dim blockRefObj As AcadBlockReference
Dim InsertPnt As Variant
Set lib = Nothing
error_msg = "Библиотечный файл " & lib_name & " не открыт"
For i = 0 To AcadApplication.Documents.Count - 1
If AcadApplication.Documents.Item(i).Name = lib_name Then
Set lib = AcadApplication.Documents.Item(i)
End If
Next i
If ActiveDocument.Name = lib_name Then
error_msg = "Библиотечный файл " & lib_name & " не должен быть активным документ"
Set lib = Nothing
End If
If lib Is Nothing Then
MsgBox error_msg
Else
For Each blk In lib.Blocks
If blk.Name = "имя_блока" Then
TextBox1.Text = blk.Name
blk_name = blk.Name
InsertPnt = ThisDrawing.Utility.GetPoint _
(, vbCrLf & "Укажите точку вставки:")
Set blockRefObj = ActiveDocument.Blocks.Item(i).InsertBlock
(InsertPnt, blk.Name, 1#, 1#, 1#, 0) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End If
Next
End If
End Sub