Тема: VBA присвоение имени блоку

Здравствуйте! у меня такой вопрос: на листе я сохранил блок(электро-шкаф), на сколько я понимаю для програмного копирования этого блока ему необходимо присвоить имя, как программно это сделать с последуюшим копированием его на другой лист автокада? если возможно прокоментите код! ;)

(изменено: Sari, 8 июля 2009г. 09:44:05)

Re: VBA присвоение имени блоку

При данных способах вставки имя блока будет такое же, как и имя файла, в котором он находится.

Dim blockobj As AcadBlockReference
Dim insertionPnt(0 To 2) As Double
Dim str As String
str = "C:\files block\" & nameblok-namefile & ".dwg"
insertionPnt(0) = 0: insertionPnt(1) = 0: insertionPnt(2) = 0
Set blockobj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, str, 1#, 1#, 1#, 0)
blockobj.Update

или

str = "C:\block.dwg"
ThisDrawing.SendCommand "._-insert" & vbCr & str & vbCr & "_Scale" & vbCr & "1" & vbCr & "_Rotate" & vbCr & 0 & vbCr

Re: VBA присвоение имени блоку

спасибо! :)
а если буду делать библиотеку блоков, где на одном листе.DWG будет группа блоков которые я делал вручную и в программе ни как не могу показать их имя для выборки определенного блока и копировании его на нужный лист:(  я предпологаю что это надо решать с помошью select но что то не получается, это возможно сделать?

Re: VBA присвоение имени блоку

Dim obj(0) As Object
Set obj(0) = Documents.Item("Drawing.dwg").Blocks("BlockName")
Documents.Item("Drawing.dwg").CopyObjects obj, ThisDrawing.Blocks

Но в этом случае имя блока останется тем же.
Задать блоку новое уникальное имя можно только создав программно блок с такими же вхождениями и сохранить его с нужным именем, удалить "старый" блок и на его место вставить новый блок.

Re: VBA присвоение имени блоку

таак Спасибо! а вот еще маленький вопрос: как указать что я копирую с листа Doc1 лист Doc2?