Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как избавиться от ошибки "Method 'Application' of object 'IAcadPlot' failed" при вызове DisplayPlotPreview в VBA для AutoCAD 2010

Как избавиться от ошибки "Method 'Application' of object 'IAcadPlot' failed" при вызове DisplayPlotPreview в VBA для AutoCAD 2010

Ответ
Поиск в этой теме
Непрочитано 10.10.2013, 12:21 #1
Как избавиться от ошибки "Method 'Application' of object 'IAcadPlot' failed" при вызове DisplayPlotPreview в VBA для AutoCAD 2010
hunter_best
 
Регистрация: 31.03.2012
Сообщений: 5

Доброго времени суток. Помогите, пожалуйста, решить проблему. При попытке вызвать предварительный просмотр печатаемого листа с помощью метода DisplayPlotPreview выдаётся ошибка "Method 'Application' of object 'IAcadPlot' failed" в следующем коде

Код:
[Выделить все]
Sub Preview() 

Dim Plotlayout As AcadLayout 
Dim oPlot As AcadPlot 
Dim PntNach(0 To 1) As Double 
Dim PntKon(0 To 1) As Double 
Dim AddedLayouts() As String
         
    PntNach(0) = 0 
    PntNach(1) = 0 
     
    PntKon(0) = 100 
    PntKon(1) = 100 
     
    change_Target 
         
    ReDim Preserve AddedLayouts(1 To 1) 
    Set oPlot = ThisDrawing.Plot 
    Set PlotConfig = ThisDrawing.PlotConfigurations 
     
         
    Set Plotlayout = ThisDrawing.ModelSpace.layout 
    With Plotlayout 
        .ConfigName = "Xerox WorkCentre 5016 A4.pc3" 
        .SetCustomScale 1, 1 
        ThisDrawing.Regen acActiveViewport 
        .CanonicalMediaName = "A4" 
        .CenterPlot = True 
        .StyleSheet = "monochrome.stb" 
        .SetWindowToPlot PntNach, PntKon 
        .PlotType = acWindow 
        .PlotRotation = ac0degrees 

    End With 
         
    AddedLayouts(1) = ThisDrawing.ActiveLayout.Name 
    LayoutList = AddedLayouts 
     
    oPlot.SetLayoutsToPlot LayoutList
     oPlot.DisplayPlotPreview acFullPreview 
   
End Sub

Странно, что сперва работало нормально. Потом начали появляться ошибки после 2-го запуска. А теперь с каждым запуском.

Заранее благодарю.

Последний раз редактировалось hunter_best, 11.10.2013 в 00:55.
Просмотров: 4438
 
Непрочитано 10.10.2013, 21:26
#2
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от hunter_best Посмотреть сообщение
Странно
Действительно странно.....
Сдается мне - принтера то нет такого.
Откройте чертеж, начертите пару линий, руками откройте окно печати, установите принтер, нажмите - "Применить к листу", а уж потом выполняйте сей макрос.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 11.10.2013, 00:47
#3
hunter_best


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


Спасибо что откликнулись.
По принтеру наврядли. Потому что на печать отправляется и принтер печатает, а не работает только предварительный просмотр. Попробовал скопировать этот код в другой файл и подгрузить в акад. Опять с первого раза сработало а потом ошибку начало выдавать. И если бы не было принтера ошибка бы выдавалась в строке ".ConfigName = "Xerox WorkCentre 5016 A4.pc3"".
Не могу понять, это всё таки моя ошибка или ошибка объектной модели автокада.
Проверил на 2006 автокаде - картина не изменилась.

Так же заметил странность. Что при вставке этого макроса в модуль в котором присутствует такая же операция (DisplayPlotPreview) и стабильно работает, то при попытке запуска данного макроса выскакивает ошибка и перестаёт работать DisplayPlotPreview во всём модуле. Такое впечатление что это не макрос а вирус .

Вопрос как с этим бороться.

Последний раз редактировалось hunter_best, 11.10.2013 в 01:10.
hunter_best вне форума  
 
Непрочитано 11.10.2013, 09:15
#4
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от hunter_best Посмотреть сообщение
а не работает только предварительный просмотр.
Для предварительного просмотра также требуется установить принтер.
Цитата:
Сообщение от hunter_best Посмотреть сообщение
Попробовал скопировать этот код в другой файл и подгрузить в акад
может быть там меняется имя файла или вкладка ?
Цитата:
Сообщение от hunter_best Посмотреть сообщение
или ошибка объектной модели автокада
Ошибка может возникнуть в этой строке только если нажата кнопка отмены просмотра.

Идите методом от обратного - оставьте одну строку DisplayPlotPreview , а потом уже добавляйте изменения выбора файлов, вкладок, принтера, сталей и т.д.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 11.10.2013, 12:13
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


А зачем вызывается метод SetLayoutsToPlot? Может избавиться от него как-то, с учетом этого: http://vbamodel.narod.ru/AutoCAD/idh...outstoplot.htm
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 11.10.2013, 12:42
#6
hunter_best


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
А зачем вызывается метод SetLayoutsToPlot? Может избавиться от него как-то, с учетом этого: http://vbamodel.narod.ru/AutoCAD/idh...outstoplot.htm
Действительно вообще удалил строку "oPlot.SetLayoutsToPlot LayoutList" перезапустил автокад и всё работает. Только не понятно опять же в 2006 акаде без этой строки не работало, поэтому пришлось её ввести. А теперь и 2006 работает без неё.

Спасибо всем, кто отликнулся.
hunter_best вне форума  
 
Непрочитано 11.10.2013, 12:58
#7
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Do$ Посмотреть сообщение
А зачем вызывается метод SetLayoutsToPlot?
Методом экстрасенсорики могу предположить что у автора идет перебор всех вкладок, а то и открытых файлов. Вот тут оно и надо.
Если бы весь код увидеть...
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 11.10.2013, 13:04
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


А если перебор, то может быть такая ситуация - предыдущий лист не напечатался, а на печать идет уже следующий. Методы печати ActiveX не ожидают окончания предыдущей печати. В результате, программа рушится. Я, в свое время, для решения этой проблемы использовал команду "_.-plot" вместо программных методов печати.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 11.10.2013, 13:21
#9
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от Do$ Посмотреть сообщение
Методы печати ActiveX не ожидают окончания предыдущей печати.
Пока проверить не могу, но насколько помню - ожидают.
Цитата:
Сообщение от Do$ Посмотреть сообщение
В результате, программа рушится.
Такого не наблюдается. И перебор файлов есть и перебор вкладок, и ещё куча действий - всё нормально.
P.S. Это я про COM.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Непрочитано 11.10.2013, 13:51
#10
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Я на LISP программу писал, метод использовал PlotToDevice, если мне память не изменяет.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 17.10.2013, 11:34
#11
hunter_best


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
А зачем вызывается метод SetLayoutsToPlot?
Да действительно убрал эту строку всё стало работать, но не долго. Теперь аналогичная ситуация начала происходить в строке "oPlot.PlotToDevice Plotlayout.ConfigName". Причём первый лист печатается остальные нет. Так что предполагаю что всё таки это из за того что нет ожидания завершени предыдущей печати. Есть ли у кого нибудь мысли как это побороть??
hunter_best вне форума  
 
Непрочитано 17.10.2013, 11:46
#12
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от hunter_best Посмотреть сообщение
Причём первый лист печатается остальные нет. Так что предполагаю что всё таки это из за того что нет ожидания завершени предыдущей печати. Есть ли у кого нибудь мысли как это побороть??
Ответ в #7
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем.....
maratovich вне форума  
 
Автор темы   Непрочитано 17.10.2013, 11:59
#13
hunter_best


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


Цитата:
Сообщение от Do$ Посмотреть сообщение
Я, в свое время, для решения этой проблемы использовал команду "_.-plot" вместо программных методов печати.
Всё разбрался. Спасибо. Просто никогда не пользовался командной строкой програмно.

Последний раз редактировалось hunter_best, 17.10.2013 в 12:05.
hunter_best вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как избавиться от ошибки "Method 'Application' of object 'IAcadPlot' failed" при вызове DisplayPlotPreview в VBA для AutoCAD 2010

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Восстановление *.DWG Солидворкер AutoCAD 5249 01.02.2024 09:41
AutoCAD 2012 zenon AutoCAD 168 08.04.2013 16:01
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59
Как разорватьть связь с внешней ссылкой? Layout AutoCAD 8 10.11.2008 15:43