Можно ли программно открыть одновременно все имеющиеся OLE объекты?Приветствую на форуме!
то значит "открыть"?Если в Автокад добавить OLE объект, то для его последующего редактирования нужна материнская программа.
И почему вопрос в разделе VBA? Означает ли это, что нужен код на VBA?Да, предпочтительно на VBA, но если это возможно сделать иным способом, то это тоже мне может помочь.
Открываются OLE-объекты только с текущего листа.Невнимательно прочел этот пункт.
Так понимаю это решаемый вопрос и можно будет открыть все объектыДа. Для этой цели нужно переключатся между листами, как сделано в коде VBA.
Можно ли сделать на Lisp такой скрипт по циклу.Там в действительности всё не так. Есть понятие реактора/события модификации объекта. Причем это событие может на одной команде OLEOPEN произойти неоднократно. Так что отслеживание достаточно непростое.
1) Открываем OLE объект (допустим OLE 1)
2) Открывшийся объект после обновления сам закрывается ( эту часть реализую в Excel)
3) Получаем команду о закрытие OLE 1
4) Открываем OLE объект (допустим OLE 2)
И так дальше до конца всех объектов. Это займет время на прохождение всего цикла, но в тот же момент не сильно загрузит комп, а про сравнение заполнения всех бланков вручную и говорить не стоит.
Делаю и понимаю, что логика у меня хромаетПохоже. :)
То есть написать стороннее приложение, которое будет создавать/заполнять базу.Допустим.
Дальше это приложение должно передать команду OLEOPEN определенному OLE объекту.Идея не слишком хорошая. Управлять AutoCAD из внешнего приложения очень не просто. Есть куча проблем и нюансов. Значительно проще всё это делать из самого AutoCAD (смотри в сторону AutoCAD .NET API)
Но есть слои, если изначально у каждого OLE объекта будет свой слой, то теоретически можно выбрать слой через командную строку и применить команду OLEOPEN.Слой выбрать нельзя. Можно выбрать OLE-объект(ы), которые расположены на этом слое.
Это даст возможность конструкторам заполнить нужный ОЛЕ, а в будущем вообщем по шаблону создавать новые листы.Программным путём вставить OLE-объект в чертеж AutoCAD нельзя. Можно вставить dwg-файла, в котором будет готовый OLE-объект.
Слой выбрать нельзя. Можно выбрать OLE-объект(ы), которые расположены на этом слое.Это тоже решает данный вопрос ))
Программным путём вставить OLE-объект в чертеж AutoCAD нельзя. Можно вставить dwg-файла, в котором будет готовый OLE-объект.Сейчас все так и есть. Правда все ручную
Главный вопрос: "Зачем нужно OLE? Таблиц AutoCAD для этой цели не хватает?". У AutoCAD очень ограниченные возможности по работе с OLE-объектами.Как можно сейчас говорить в угоду юзабилити. С таблицами работать может ( или не хочет) не каждый. С OLE у них вопросов не возникает. Да и формулы сложные легче составить в Экзель
С OLE у них вопросов не возникает. Да и формулы сложные легче составить в ЭкзельЭто до поры до времени, когда в очередной версии AutoCAD (или Microsoft Office) их OLE-объекты перестанут открываться или не будут печататься, что бывало уже не раз....
Это до поры до времени, когда в очередной версии AutoCAD (или Microsoft Office) их OLE-объекты перестанут открываться или не будут печататься, что бывало уже не раз....Да и сейчас периодически OLE-объекты на одном компьютере вдруг перестают открываться.
Кстати, на lisp'е функция, которая открывает все OLE-объекты во всех листах:Благодарю за помощь.
Да и сейчас периодически OLE-объекты на одном компьютере вдруг перестают открываться.Вот-вот. А если создать целую библиотеку таких файлов и они в один какой-то "приятный день" перестанут открываться?
Кстати, если Вам интересен (финансово) этот проект, то можем обсудитьТакие вопросы решаются в Личных сообщениях. Но с OLE-объектами я точно не буду заморачиваться.