VBA: Вставка блока - ошибка файлера (filer error)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA: Вставка блока - ошибка файлера (filer error)

VBA: Вставка блока - ошибка файлера (filer error)

Ответ
Поиск в этой теме
Непрочитано 09.11.2010, 10:08 #1
VBA: Вставка блока - ошибка файлера (filer error)
vlalexey
 
Регистрация: 23.07.2010
Сообщений: 3

При вставки блока в чертеж:
Код:
[Выделить все]
Dim insPnt(0 To 2) As Double
insPnt(0) = 0
insPnt(1) = 0
insPnt(2) = 0
Call ThisDrawing.ModelSpace.InsertBlock(insPnt, "D:\test.dwg", 1, 1, 1, 0)
получаю следующее сообщение:

Run-time error '-2145386445 (80200033)'
Ошибка файлера

(В англ. автокаде - Filer error)

Причем в новом файле этот код успешно выполняется (хоть несколько раз). Но если выполнить _purge - после этого этот Filer error и появляется

Содержимое test.dwg - несколько простых примитивов (пробовал различные файлы вместо test.dwg)
AutoCAD 2008 и 2010

Последний раз редактировалось vlalexey, 09.11.2010 в 10:27.
Просмотров: 5610
 
Непрочитано 09.11.2010, 10:31
#2
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Попробуй перед вставкой блока проверять его наличие в таблице блоков.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 09.11.2010, 10:41
#3
vlalexey


 
Регистрация: 23.07.2010
Сообщений: 3


Не совсем понял про проверку:
Если определение блока есть в таблице блока - код нормально отрабатывает.
Также код нормально отрабатывает на новом файле.
Но если я вставлю блок удалю его и затем его определение (через _purge), то код перестает отрабатывать, хотя по идее должен подгрузить блок из "D:\test.dwg"

Может есть какой-то костыль, который гарантированно выполнял вставку блока из другого файла (вне зависимости есть или нет определение этого блока в текущем файле)?
vlalexey вне форума  
 
Непрочитано 09.11.2010, 11:54
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Попробуй так:
Код:
[Выделить все]
Public Sub ttt()
Dim insPnt(0 To 2) As Double
insPnt(0) = 0
insPnt(1) = 0
insPnt(2) = 0
Dim blockRefObj As AcadBlockReference
Dim path As String
path = "D:\test.dwg"
Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insPnt, path, 1, 1, 1, 0)
End Sub
Вроде бы разницы никакой, но работает после _PURGE (во всяком случае в AutoCAD 2008). А твой код после _PURGE выдает туже ошибку.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 09.11.2010, 12:13
#5
vlalexey


 
Регистрация: 23.07.2010
Сообщений: 3


Да, действительно после добавления:
Код:
[Выделить все]
Dim mStr As String
mStr = "D:\test.dwg"
Call ThisDrawing.ModelSpace.InsertBlock(insPnt, mStr, 1, 1, 1, 0)
Все заработало (в 2008 и 2010)
Спасибо большое.

Т.е. есть получается разница передавать константу или строковую переменную?
Хорошо, что решилось, но непонятны корни проблемы.
vlalexey вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA: Вставка блока - ошибка файлера (filer error)

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несоответствие результатов в Лире s.vas Лира / Лира-САПР 19 11.11.2009 07:31
VBA. Размораживание слоя, построение объекта в нем, замораживание слоя = ошибка Alexey_02 Программирование 3 06.03.2009 22:33
ошибка FATAL ERROR: Unhandbled e0434f4dh Exception at 7c81eb33h Romses AutoCAD 3 17.01.2009 14:46
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47
Ошибка при вставке блока G.A.W. AutoCAD 6 20.03.2007 20:13