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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual Basic + AutoCAD 2006 = FATAL ERROR

Visual Basic + AutoCAD 2006 = FATAL ERROR

Ответ
Поиск в этой теме
Непрочитано 02.04.2009, 14:41 #1
Visual Basic + AutoCAD 2006 = FATAL ERROR
evgm
 
Регистрация: 06.07.2007
Сообщений: 56

Здравствуйте.

Программа, написанная на VB, выводит в AutoCAD используя объектную модель. Если после окончания вывода закрыть документ AutoCADa
то он (AutoCAD) рушится с криками

FATAL ERROR: Unhandled Access Violation Reading 0x0000 Exception at 0h

и предлагает отправить отчет об ошибке
В кратце сюжет такой:

Set ACAD = CreateObject("AutoCAD.Application")
Call ACAD.Documents.Add
ACAD.Visible = True
ACAD.WindowState = acMax
ACAD.ActiveDocument.ActiveSpace = acModelSpace
...
далее идет вывод
ACAD.ActiveDocument.ModelSpace.Add...
...
Call ACAD.ZoomExtents
Call ACAD.ActiveDocument.Regen(acAllViewports)
Call ACAD.ActiveDocument.SaveAs(filename.dwg")

Причем иногда (очень редко) закрывается нормально, без ошибок.
Это наблюдается и в среде разработки VB с откомпилленным exe.
Никак не пойму почему так. Подскажите, пожалуйста.
Заранее спасибо.
Просмотров: 4394
 
Непрочитано 02.04.2009, 14:50
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Какая версия VB? Наличие ServicePack на VB и на AutoCAD?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.04.2009, 14:59
#3
evgm


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


Visual Basic 6.0 + SP6
AutoCAD 2006 v. Z.54.10 без сервис паков
AutoCAD 2006 Type Library - acax16enu.tlb v. 16.2.54.0

но мне кажется дело именно в моем коде
у меня много еще всяких программ написано для работы с акадом
ничего подобного не наблюдается - только с одной единственной
все уже перепроверил казалось бы...
evgm вне форума  
 
Непрочитано 02.04.2009, 15:48
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Попробуй на AutoCAD ServicePack поставить (это по принципу лягушки, попавшей в крынку с молоком). Я на ADT 2006 Eng + SP1 прогнал такой код (без импортирования tlb):
Код:
[Выделить все]
Option Explicit
Option Base 0

Private Function GetOrCreateObject(ApplicationName As String) As Object
Dim Res As Object
  On Error GoTo lErrGetObject
  Set GetOrCreateObject = GetObject(, ApplicationName)
  Exit Function
lErrGetObject:
  Set GetOrCreateObject = CreateObject(ApplicationName)
  Exit Function
End Function

Sub Main()

Dim oAcad As Object
Dim oAcadDoc As Object

  Set oAcad = GetOrCreateObject("AutoCAD.Application.16")
  oAcad.Visible = True
Dim sTemplatePath As String, sTemplateFile As String
  sTemplatePath = oAcad.Preferences.Files.TemplateDwgPath
  Set oAcadDoc = oAcad.Documents.Add(sTemplatePath & "\acadiso.dwt")
  
  With oAcadDoc.ModelSpace
Dim ptStart(2) As Double, ptEnd(2) As Double
  ptStart(0) = -1020: ptStart(1) = 0: ptStart(2) = 0
  ptEnd(0) = 1000: ptEnd(1) = 325: ptEnd(2) = 0#
    .AddLine ptStart, ptEnd
  End With
  
  oAcadDoc.Regen 1 'acAllViewports
  oAcadDoc.Close True, "c:\test.dwg"
  oAcad.quit
  
  Set oAcadDoc = Nothing
  Set oAcad = Nothing

End Sub
Вроде сработало нормально...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.04.2009, 12:54
#5
evgm


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


Установка Sp1 на Autocad не помогает
за то помогает анализ кода...
oAcad.Visible=True
когда он и без того уже был видимый судя по всему приводил к такой ошибке
по крайней мере устранение повторного visible=true и тестирование всяко разно в течение часа наводит на такую мысль - ошибка исчезла
какие есть мнения??
evgm вне форума  
 
Непрочитано 03.04.2009, 13:16
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Ну тогда тупо заменить строку
Код:
[Выделить все]
oAcad.Visible=True
на
Код:
[Выделить все]
If Not(oAcad.Visible) Then
  oAcad.Visible = True
End If
Проверить сейчас не могу
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.04.2009, 13:40
#7
evgm


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


конечно нужно !
но вот почему же так происходит?
evgm вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual Basic + AutoCAD 2006 = FATAL ERROR

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к таблице Access Cleper Программирование 22 02.02.2016 07:05
Совместная работа Autocad 2000 и Autocad 2006 Alexiy_ AutoCAD 31 18.04.2009 16:06
AutoCad 2006 не видит текстовый примитив Olich AutoCAD 8 12.11.2008 13:57
fatal error при запуске AutoCAD 2004 Abrakadabra AutoCAD 8 27.01.2006 14:00
AUTOCAD 2006 Aragorn AutoCAD 14 01.04.2005 00:55