Друзья, благодарю вас!
Решил проблему. Причина была действительно в типах массивов, которые при создании в VBS были непонятны AutoCAD.
Рабочий вариант:
Так я заполняю массив координат для точки вставки:
Dim insertionPnt, insertionPnt2 ' ПЕРВАЯ РАЗНИЦА В СРАВНЕНИИ С ПРЕДЫДУЩИМ КОДОМ
insertionPnt = array(Cdbl(0.0), Cdbl(0.0), Cdbl(0.0))
insertionPnt2 = array(Cdbl(100.0), Cdbl(100.0), Cdbl(0.0))
Далее как и ранее преобразую его в понятный AutoCAD'y тип данных (объект состоящий из Double элементов)
set doc1 = AcadDocs.Open(strPath)
conv1 = ThisApplication.Utility.VariantToArray(insertionPnt)
conv2 = ThisApplication.Utility.VariantToArray(insertionPnt2)
set doc2 = AcadDocs.Open(strPathTo)
Set colBlocks = doc1.Blocks ' определяю блоки чертежа, из которого буду забирать нужный мне блок
Set objBlock = colBlocks.Item(strBlockName) ' нужный мне блок
Dim objArray
objArray = array(objBlock) ' ЕЩЕ ОДНА РАЗНИЦА! ПРИСВАИВАЮ ЗНАЧЕНИЕ МАССИВА ПО ДРУГОМУ
' Set objArray(0) = objBlock
convArr = ThisApplication.Utility.VariantToArray(objArray) ' преобразую его в понятный AutoCAD'y тип данных массива
doc1.CopyObjects convArr, doc2.Blocks ' помещаю объекты искомого блока в состав блоков второго чертежа
Set entRef = doc2.ModelSpace.InsertBlock(conv1, strBlockName, 1, 1, 1, 0) ' помещаю сам блок
Друзья проблему со вставкой решили. Однако, теперь стоит более глобальная задача - вставка блока на все листы чертежа.
Сейчас вставка осуществляется в пространство модели ModelSpace, для вставки в пространство листа строку меняю так:
Set entRef = doc2.ModelSpace.InsertBlock(conv1, strBlockName, 1, 1, 1, 0)
При этом блок вставляется в активный лист. А мне нужно во все листы. Возникают вопросы:
1. Какой командой активировать лист? Чтобы потом поместить блок командой Set entRef = doc2.PaperSpace.InsertBlock(conv1, strBlockName, 1, 1, 1, 0)
либо
2. Как вставить блок в конкретный лист? На Layuot не нашел команды InsertBlock
Заранее премного благодарен!