а есть ли событие завершение открытие загрузки чертежа? = просто у меня подозрение, что оно просто не загружает доконца чертеж = т.е в него еще грузятся лиспы и длл ====и мы пытаемся закрыть его, хоть он еще не загрузился?Такого события в чистом виде нет. И в любом случае из события закрыть чертеж ты не сможешь - в лучшем случае сможешь запустить команду на закрытие. Вариант с COM\ActiveX уже проверил?
И в любом случае из события закрыть чертеж ты не сможешьВы имеете в виду события документа? Может быть, стоит попробовать сделать это в Application.Idle?
Может быть, стоит попробовать сделать это в Application.Idle?Запустить из этого события команду, закрывающую чертеж - можно. А вот выполнять в этом событии что-то типа CloseAndDiscard я бы не рискнул.
Вариант с COM\ActiveX уже проверил?да я сразу тогда и проверил, и отписался что не тот и не тот не прошел ...
Кстати команду можно запускать через:Александр, а это на 2014 автокаде работает или с 2015, или не так делаю:
Работает начиная с AutoCAD 2000 еще до всяких .NET.Кстати команду можно запускать через:Александр, а это на 2014 автокаде работает или с 2015, или не так делаю:Код - C# [Выбрать]У меня самое интересное что оно запускается в отладчике раньше чем запускается сам автокад, а если дать потом с чертежа ничего не происходит. Пробывал и "_Close" и UTF8...может я что то не так делаю ::)
ads_queueexpr(System.Text.Encoding.UTF32.GetBytes("Close"));
Например предупреди пользователя и всё.
А если речь идёт об AutoCAD 2014, то просто установи для него SP1 и забудь про отметку учебной версии.
Или воспользуйся моим кодом для снятия флажка учебной версии в AutoCAD 2014: http://adn-cis.org/forum/index.php?topic=1110.0МХ, а вот это интересно - просто я думал что сбросить флаг нельзя так как он только для чтения - обязательно прочитаю (впринципе задумка и была чистка -скидывания учебки, просто флаг только для чтения и я подумал, что нельзя скинуть)
Тему читать всю от начала и до конца. Обратить внимание на EMRCLEAR.
МХ, а вот это интересно - просто я думал что сбросить флаг нельзя так как он только для чтения - обязательно прочитаю (впринципе задумка и была чистка -скидывания учебки, просто флаг только для чтения и я подумал, что нельзя скинуть)Он и есть "только для чтения", но так как Autodesk отказался от флага учебной версии, то я себе позволил небольшой "хак".
то я себе позволил небольшой "хак".буду разбираться...Спасибо!!!
Команда конечно сессионная. Вот рабочий код (Cns - это мой класс для работы с консолью Автокада)И тебе avc, Большое Спасибо..Как раз у меня получается наверное не совсем сессионная (и смотрю закрывать как я),это хорошо видно на accore.dll - автокад даже не успевает загрузится, как она идет на обработку...Так же получается при моем (простом закрытии через ".CloseAndDiscard();),еще автокад грузит лисп-ы в чертеж и длл в автокад (но автокад уже загружен и поэтому исключение у меня вываливается, но чертеж не доконца еще загружен)=> как я пытаюсь его закрыть...
Эх, вот бы было событие BeforeOpen и получало бы оно имя файла до того как его Автокад начнет открывать - вот тогда была б красота....Это (http://help.autodesk.com/view/OARX/2018/ENU/?guid=OREFNET-Autodesk_AutoCAD_ApplicationServices_DocumentCollection_DocumentCreateStarted) разве не оно?
Это разве не оно?Имя файла в нём не известно.
Сама идея закрывать чертеж по событию его открытия - уже звучит бредово. Понятно что документ будет..полностью согласен - но я привел, как вариант - хоть мне удобнее поступить (да и красивее будет), как предложил Александр...