Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Yusuf от 24-06-2021, 13:52:03

Название: FileSystemWatcher и AutoCad
Отправлено: Yusuf от 24-06-2021, 13:52:03
Здравствуйте, уважаемые коллеги - наставники, подскажите как лучше реализовать задачу чтобы при изменении данных в файле Excel, каждый раз запускать какую то команду в autocad ?
Задача такая есть файл Excel, надо из него прочитать данные и построить примитивы, если пользователя не устраивают созданные примитивы, то меняет данные в Excel и так при каждом изменении файла Excel  надо удалить все построенные ранее примитивы и заново пересоздать объекты уже по новым данным. Из автокад я думаю нельзя так сделать или можно?
Подсказали через FileSystemWatcher, но для него же вроде процесс нужен чтобы следить постоянно за файлом, через консольную программу знаю как следить за файлом, а через автокад это возможно? Если невозможно как можно это реализовать ?
Думаю сделать консольку которая будет следить за файлом и при каждом изменении вызывать в автокад команду, а так возможно вызвать команду  в автокад из другого приложения ?
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Александр Ривилис от 24-06-2021, 13:54:20
Yusuf,
Слишком много вопросов в одной теме.
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Александр Ривилис от 24-06-2021, 13:57:40
Из автокад я думаю нельзя так сделать или можно?
Можно, но если ты знаешь что именно удалять.
Подсказали через FileSystemWatcher, но для него же вроде процесс нужен чтобы следить постоянно за файлом, через консольную программу знаю как следить за файлом, а через автокад это возможно?
Можно. Только пользователь должен будет сохранить изменения в файле. Подписываешься на событие и вперёд. Единственно что обновлять в чертеже нужно будет из главной задачи AutoCAD. Ну и нужна будет блокировка, чтобы пользователь не мог ничего испортить, пока ты будешь обновлять.
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Yusuf от 24-06-2021, 14:05:47
Можно, но если ты знаешь что именно удалять.
да пусть все удаляет пустой будет файл
Можно. Только пользователь должен будет сохранить изменения. Подписываешься на событие и вперёд. Единственно что обновлять в чертеже нужно будет из главной задачи AutoCAD. Ну и нужна будет блокировка, чтобы пользователь не мог ничего испортить, пока ты будешь обновлять.
да пользователь при любом изменении будет сохранять, а как с автокада подписаться и на какое событие ?
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Александр Ривилис от 24-06-2021, 14:08:23
да пользователь при любом изменении будет сохранять, а как с автокада подписаться и на какое событие ?
Как на какое? Ты же сам написал про FileSystemWatcher.
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Александр Ривилис от 24-06-2021, 14:09:46
Гугл быстро подсказывает пример: http://kbyte.ru/ru/Programming/Sources.aspx?id=916&mode=show
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Александр Ривилис от 24-06-2021, 14:12:26
А тут применительно к AutoCAD: https://www.keanw.com/2015/03/autocad-2016-calling-commands-from-external-events-using-net.html
Название: Re: FileSystemWatcher и AutoCad
Отправлено: Yusuf от 24-06-2021, 14:18:38
FileSystemWatcher
аа Вы про это, я с ним работал, с консоли работал, но в автокаде не сработал
спасибо за последний пример.