Тема: При повторном запуске AutoCAD мой тулбар пропадает

Здравствуйте.
Средствами ВБА создаю тулбар с кнопочками. Он создаётся и вроде как работает, но после завершения сеанса Акада и при повторном его запуске этот тулбар пропадает (всмысле отсутствует). Заного запускаю макрос - и по кругу...
И второй вопрос в догонку. Есть ли реальная необходимость каждый раз выгружать макрос из памятити после выполнения? Или перед закрытием документа например?

Re: При повторном запуске AutoCAD мой тулбар пропадает

По второму вопросу - вроде как нет необходимости, если память позволяет оставить под него несколько десятков килобайт :))
По первому - такое поведение вполне естественно. Ведь при загрузке АКАДа тулбары загружаются из файла меню. Вот если б макрос не только создавал/модифицировал  тулбар, а еще и файлы меню правил - тогда другое дело. При следующем старте все будет восстановлено.
Либо сделать автозапуск макроса при старте АКАДа.

Re: При повторном запуске AutoCAD мой тулбар пропадает

А разве есть разница между тем. что самому вручную создать тулбар или его создаст макрос? Но в любом случае, а как тогда сделать так, что бы тулбар схранялся? Причём такая вот странность имеет место быть: до этого момента макрос находился в файле, и просто открываешь рядом с рабочим файлом файл с макросом и работаешь. Вот, решил поправить и вынести тело макроса из файла и поместить его где нить на диске. Дак странность то заключается в том, что когда макрос жил в файле тулбар нормально создавался и не исчезал...

Re: При повторном запуске AutoCAD мой тулбар пропадает

VK пишет:

По первому - такое поведение вполне естественно. Ведь при загрузке АКАДа тулбары загружаются из файла меню. Вот если б макрос не только создавал/модифицировал тулбар, а еще и файлы меню правил - тогда другое дело.

Ничего похожего. Именно меню, при создании тулбара, и меняется.

ssn пишет:

А разве есть разница между тем. что самому вручную создать тулбар или его создаст макрос?

Абсолютно никакой разницы в том, как создается тулбар с кнопками (ПУ): ручками или программно - нет. Равно как и в том откуда запускается программа их создания из DWG- или DVB-файла.
Проблема может быть в следующем.
1. Все ПУ создаются в определенной группе меню (как правило в ACAD) и прописываются в соответствующие файлы mns и mnc. При компиляции исходного файла меню (mnu) все подобные изменения исчезают, есессьно. Проверьте не компилируется ли у Вас при загрузке АКАДа исходный файл соответсвующего меню. Что-нибудь вроде того

Dim objMenuGrp As AcadMenuGroup
Set objMenuGrp = ThisDrawing.Application.MenuGroups.Load("c:\Папка\МоеМеню.mnu")

2. Проверьте свойство Visible у нужного тулбара.

Dim objMenuGrp As AcadMenuGroup
Dim objTBar As AcadToolbar
Dim test as Boolean
For Each objMenuGrp In AutoCAD.Application.MenuGroups
    If objMenuGrp.Name = "myMenu" Then
        For Each objTBar In objMenuGrp.Toolbars
                If objTBar.Name = "myToolBars" Then
                    If objTBar.Visible = False Then
                        objTBar.Visible = True
                    End If
                    test=True
                    Exit For
                Else
                    test=False
                End if
         Next
         Exit For
    End If
Next
If test=False then
    'Здесь создаем ПУ
end if

Re: При повторном запуске AutoCAD мой тулбар пропадает

bender пишет:

Ничего похожего. Именно меню, при создании тулбара, и меняется.

Не буду настаивать, может быть меняется именно при создании тулбара.... Только что специально проверил изменение файлов при изменении тулбара. У меня есть панелька, где меняются иконки на кнопках. Независимо от того, в каком состоянии я оставляю тулбар на момент закрытия, файл MNS не меняется. Ни по текстовому содержимому, ни по дате изменения. MNR и MNC имеют ту же дату изменения, что и MNS.

Re: При повторном запуске AutoCAD мой тулбар пропадает

В пояснении ситуации добавлю, что если после того, как макрос создал тулбар добавить ещё один тулбар ручками, то все тулбары сохраняются нормально и никуда не исчезают. Может это просто галы такие?
Ведь как я понял, после создания тулбара (или добавления кнопочек), вообщем при изменении меню происходит автоматическая запись сущ. положения вещей.
А про компиляцию исходного файла что то как то не понятно (пока по крайней мере, надо хелп почитать)

Re: При повторном запуске AutoCAD мой тулбар пропадает

> ssn
Чтобы тулбар сохранялся до следующего запуска ACAD:

MenuGroup.Save MenuFileType

Разница между ручным и программным созданием в том, что при ручном создании сохранение происходит автоматически.

Re: При повторном запуске AutoCAD мой тулбар пропадает

На счет автоматического сохранения меню был не прав. Каюсь.
leha (2004-08-25 01:44:12) абсолютно прав, надо сохранять принудительно.

Re: При повторном запуске AutoCAD мой тулбар пропадает

здравствуйте снова.
ещё раз вопос все по тому же тулбару, только теперь уже в 2006 автокаде...
В 2004 у меня получилось создать тулбар и потом его сохранить.
В 2006 этот код работает, всмысле код создаёт тулбар, но вот сохранить его почему то не получается.
Всвязи с тем, что автодеск переработал правила создания и редактирования тулбаров в ручном режиме, то я подозреваю, что и в ВБА произошли перемены по поводу сохранения тулбаров... В хелпе ничего не нашел, помогите пожалуйста. Метод MenuGroup.Save MenuFileType не помогает.

Re: При повторном запуске AutoCAD мой тулбар пропадает

ssn пишет:

В 2006 этот код работает, всмысле код создаёт тулбар, но вот сохранить его почему то не получается.

И не получится. Так что не мучайся - или вручную пропиши этот тулбар в CUI или каждый раз тебе его придется создавать из VBA-кода.

Re: При повторном запуске AutoCAD мой тулбар пропадает

> ssn
P.S.: Кстати и Help ты читал не внимательно:

Menu groups cannot be saved in AutoCAD 2006. This method will be removed from the MenuGroup object in a future release.

Re: При повторном запуске AutoCAD мой тулбар пропадает

странно... а зачем тогда оставлять доступным метод Save для MenuGroup... хотя это уже риторический вопрос...
а как тогда можно програмно создать тулбар (вернее как создать понятно, как сохранить, вот это вопрос). Ведь как то это возможно..
Может это не получается от того, что я програмно пытаюсь запихнуть свой тулбар в набор тулбаров Акада (всмысле там есть набор CUSTOM, ACAD, EXPRES) Может надо создать свой набор и сохранить его в файле а потом подгрузить...

Re: При повторном запуске AutoCAD мой тулбар пропадает

> ssn
1) Создать свой файл MyMenu.mns (структуру смотри в Help'ах к предыдущим версиям AutoCAD)
2) В нем создать свой toolbar.
3) Загрузить MyMenu.mns
4) Сохранить workspace.
Но уж очень это не красиво получается...