Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: bargool от 19-01-2015, 11:30:39
-
Мне нужно произвести некие действия перед началом открытия файла, и при окончании открытия (например, замерить время открытия разных файлов)
Вроде всё здорово. Подписался на
DocumentManager.DocumentCreateStarted и DocumentManager.DocumentCreated
в
IExtensionApplication.Initialize
Библиотека прописана в реестре, LOADCTRLS = 2. Но по факту грузится она уже после создания первого документа.
Есть ли способ гарантировать, что библиотека загрузится и начнёт работать до первого созданного документа?
Совсем забыл: Автокады 2013 и 2014
-
Есть ли способ гарантировать, что библиотека загрузится и начнёт работать до первого созданного документа?
Нет.
-
А если через COM? ...?
-
А если через COM? ...?
Не понял при чем здесь COM.
-
Есть ли способ гарантировать, что библиотека загрузится и начнёт работать до первого созданного документа?
Может получится через .dvb?
Public WithEvents ACADApp As AcadApplication ' Use with Application Event Examples
Sub Example_AcadApplication_Events()
' This example intializes the public variable (ACADApp) which will be used
' to intercept AcadApplication Events
'
' The VBA WithEvents statement makes it possible to intercept an generic object
' with the events associated with that object.
'
' Before you will be able to trigger any of the AcadApplication events,
' you will first need to run this procedure.
' We could get the application from the ThisDocument object, but that would
' require having a drawing open, so we grab it from the system.
Set ACADApp = GetObject(, "AutoCAD.Application.20")
End Sub
Private Sub ACADApp_BeginOpen(FileName As String)
' This example intercepts an Application BeginOpen event.
'
' This event is triggered when a drawing is opened by AutoCAD.
'
' To trigger this example event:
' 1) Make sure to run the example that initializes
' the public variable (named ACADApp) linked to this event.
'
' 2) Use AutoCAD to open an existing drawing
' Use the "FileName" variable to determine which drawing file is being opened
MsgBox "A drawing is about to be loaded from: " & FileName
End Sub
-
1) Вопрос был про .NET, а не про VBA.
2) Сильно я сомневаюсь, что DVB грузится до открытия первого чертежа.
Тут ведь есть особенность в запуске AutoCAD. Он может быть запущен или сам по себе (впрочем через параметры может быть задано имя dwg-файла) или кликом по имени файла. Сценарии получаются разные. И в разных версиях AutoCAD тоже не всё одинаково.
-
Тут ведь есть особенность в запуске AutoCAD. Он может быть запущен или сам по себе (впрочем через параметры может быть задано имя dwg-файла) или кликом по имени файла. Сценарии получаются разные. И в разных версиях AutoCAD тоже не всё одинаково.
Вот меня интересует как раз второй сценарий. Если можно отслеживать из внешнего приложения - напишу внешнее (если это не слишком сложно - если сложно, то овчинка выделки не стоит)
-
овчинка выделки не стоит
Вот это скорее всего. Из внешнего приложения ты скорее (не используя вообще никакие AutoCAD API) можешь отследить когда открывались и закрывались dwg-файлы. Но это уже к программированию под AutoCAD никакого отношения не имеет.
-
На сколько я помню если автокад открыт, то работают события beginopen и endopen, если автокад загружается впервые двойным нажатием по файлу, то эти события не срабатывают, поэтому приходится определять, что происходит именно первый запуск автокада например через событие DocumentBecameCurrent и выполнять свои действия.
-
На сколько я помню если автокад открыт, то работают события beginopen и endopen, если автокад загружается впервые двойным нажатием по файлу, то эти события не срабатывают, поэтому приходится определять, что происходит именно первый запуск автокада например через событие DocumentBecameCurrent и выполнять свои действия.
Не срабатывает потому, как:
Есть ли способ гарантировать, что библиотека загрузится и начнёт работать до первого созданного документа?
Нет.
-
например, замерить время открытия разных файлов
команда _time
UPD а млин... тебе нужно время открытия... Если не секрет, зачем тебе это?
-
UPD а млин... тебе нужно время открытия... Если не секрет, зачем тебе это?
У нас проблемы с сетью. Все рабочие файлы лежат на удалённом сервере. Собираем статистику для того, что бы с цифрами в руках выбивать деньги на локальный сервак.
-
Все рабочие файлы лежат на удалённом сервере.
На удалённом... :) Сразу вспомнилось это (http://www.meetup.com/3D4WEB/events/219884022/#event-comments-section).