В моем понимании задача, которая в конце концов определилась у dverovoz, выглядит так: открывается некий файл, надо нарисовать полилинию на слое "2Канализация" типом линии ACAD_ISO02W100, причем такого слоя нет и тип линии не установлен. Что получается в моем макросе? Если данного слоя нет, то он создается с нужным типом линии и сразу становится текущим. Если данный слой уже есть, то он становится текущим, причем, если в нем был задан другой тип линии, то он заменяется на ACAD_ISO02W100. Поскольку этот тип линии входит в состав файла acadiso.lin, то специально его загружать нет необходимости. Частная задача. Точно также можно написать макрос и для другого слоя с другим типом линии:
^C^C^P_-layer;_M;1Вода;_L;ACAD_ISO04W100;;;_pline;
и еще:
^C^C^P_-layer;_M;3Дорога;_L;ACAD_ISO06W100;;;_pline;
Точно также можно наделать кнопок и для других элементов топографии.
Далее делаем в адаптации новую панель с именем "Топография" в группе меню ACAD и перетаскиваем на нее наши кнопки.
Можно расписать фрагмент меню в текстовом представлении (для AutoCAD версии не выше 2005):
**TB_TOPO
[_Toolbar("Топография", _Floating, _Show, 588, 164, 1)]
[_Button("Вода", "voda.bmp", "voda.bmp")]^C^C^P_-layer;_M;1Вода;_L;ACAD_ISO04W100;;;_pline;
[_Button("Канализация", "kanal.bmp", "kanal.bmp")]^C^C^P_-layer;_M;2Канализация;_L;ACAD_ISO02W100;;;_pline;
[_Button("Дорога", "doroga.bmp", "doroga.bmp")]^C^C^P_-layer;_M;3Дорога;_L;ACAD_ISO06W100;;;_pline;
Типы линий могут быть другими, я взял наугад, главное, чтобы они были определены в файле acadiso.lin. Строки этого кода надо скопировать в файл acad.mns (сделав предварительно копию этого файла) и, желательно, в файл acad.mnu (также сделав предварительно копию). Вставить эти строки можно сразу после строки
в указанных файлах. Естественно, делать это надо при выгруженном AutoCAD'е.