Тема: Макрос на кнопке для изменения свойств обьекта

Макрос на кнопке для изменения свойств обьекта
Есть у меня 10 симпатичных кнопочек, нажимая на какую либо из них становится активным слой ассоциированный с кнопкой. Например, если я жму на зеленую кнопку становится активным слой ?06-DIMENSION? и т.д. Что надо сделать с макросом на кнопке, что- бы можно было кроме этого, еще и отправлять в данный слой заселектированный обьект.
Т.е., заселектировал обьект , жмакнул по кнопке и этот обьект переходит в соответствующий слой. AutoCAD-2006. Имеющийся макрос:

^C^C_-layer;_set;06-DIMENSION;;cecolor;bylayer;celtype;bylayer;celweight;-1;

Спасибо.

Re: Макрос на кнопке для изменения свойств обьекта

Express Tools:
посмотри на
laymch
laycur
copytolayer
---
Оно?

Re: Макрос на кнопке для изменения свойств обьекта

> Forma
"Нет предела моему изумлению."
10 кнопок для установки текущего (активного?) слоя? И все разноцветные?
Есть же в AutoCAD'е специальное окно для установки текущего слоя и даже с показом состояния слоев.
Здесь еще налицо путаница в понятиях. Объект никак не может "переходить" в другой слой. "Слой" ("Layer") - это свойство объекта, т.е. первичен объект, а не слой. А раз так, то и "переходить" его нет никакой возможности, надо просто изменить свойства объекта, в данном случае свойство "Слой" ("Layer").
Не, просто нет слов, вся эта "эргономика" вывернута наизнанку. Этак на любую команду AutoCAD'а можно сочинить макрос или программу с ничтожным эффектом, зато количество кнопок удвоится или утроится.
IMHO это или не IMHO, не берусь гадать.

Re: Макрос на кнопке для изменения свойств обьекта

> kpblc
Да. Оно. Только мне нужно на имеющийся макрос на  готовой уже кнопке .

Re: Макрос на кнопке для изменения свойств обьекта

Ну так добавить после кода напрямую команду, какая нужна - я не очень понимаю, с чем трудность-то? Или трудность с выбором? Так если выбора нет, то эти команды запрашивают его, если есть - то его, по-моему, можно изменить, или использовать имеющийся.
---
ИМХО

Re: Макрос на кнопке для изменения свойств обьекта

Владимир Громов пишет:

Нет предела моему изумлению."
10 кнопок для установки текущего (активного?) слоя? И все разноцветные?

Ну да. Очень симпатичные. Это я слямзил у в другом CADе. Идею тоже :)

Есть же в AutoCAD'е специальное окно для установки текущего слоя и даже с показом состояния слоев.

Есть то оно есть. Но я не предсталяю в нем работу. Это для мазохистов.

Здесь еще налицо путаница в понятиях.

Никакой путаницы. Тема так и называется: "Макрос на кнопке для изменения свойств обьекта". Ну а дальше я позволил себе немного пошутить. Как работать без шутки?
"Крыша" от этой канители враз сьедет у бедного юзера :)

Этак на любую команду AutoCAD'а можно сочинить макрос или программу с ничтожным эффектом,

Правильно. Так и приходится делать. "Заколебался уже". В "AutoCAD" большинство команд можно найти только в справочнике.
Или по подсказке старших товарищей. К примеру: ассоциативность размеров- Две клавиши, запись и чтение слайдов- две клавиши и много много других. В AutuCAD- ужасный пользовательский интерфейс и ужасная эргономика. Вот и приходится это дело хоть чуток поправить.

Re: Макрос на кнопке для изменения свойств обьекта

Если слой уже создан и примитивы выбраны:

^C^C_.change;_P;_LA;[b]06-DIMENSION[/b];;

где 06-DIMENSION имя нужного слоя.

Re: Макрос на кнопке для изменения свойств обьекта

> Александр Ривилис
Да. Точно это. А теперь как бы это обьединить в одной кнопке?
^C^C_-layer;_set;06-DIMENSION;;cecolor;bylayer;celtype;bylayer;celweight;-1;
и этот макрос
^C^C_.change;_P;_LA;06-DIMENSION;;

Re: Макрос на кнопке для изменения свойств обьекта

> Forma
Гхм... Ну вы, блин, даете!

^C^C_-layer;_set;06-DIMENSION;;cecolor;bylayer;celtype;bylayer;celweight;-1;_.Change;_P;_LA;06-DIMENSION;

Re: Макрос на кнопке для изменения свойств обьекта

Какой-то бред, будь я неладен. Что это такое? Это эргономика? Не, не, не, это что-то другое.

Re: Макрос на кнопке для изменения свойств обьекта

> kpblc

> Владимир Громов
Не "заводите" меня! Я так работал больше 10 лет. В другом CADе и на другом языке.

Re: Макрос на кнопке для изменения свойств обьекта

Я сейчас попробую найти и выложить коды того макроса. А экранное редактирование размеров не хотите? 1995 год.

Re: Макрос на кнопке для изменения свойств обьекта

> kpblc
Ничего я еще не даю. Это первые элементарные приемы работы, которые приходят в голову юзеру:)))

Re: Макрос на кнопке для изменения свойств обьекта

Это был макрос на кнопке. А дальше шли линки, собственно, в CADе. И все!

//c_28Dim.d (- - - - -)
 // Author         -------------------
 // Copyright ?     -------------------
 // Phone        --------------------
 // Compuserve    ------------------
 // ****** DATA DECLARATION ******
 Undo("start");
Execute("menu", "SetLayer", Table("find", "layer", "06-Dimension"));
Execute("menu", "SetColor", -1);
 Execute("menu", "SetStyle", 1);
 Execute("menu", "SetWidth",0);
   // Exit if in error
 Exit(%ok, "OK !");

Столько говорильни.

Re: Макрос на кнопке для изменения свойств обьекта

Столько говорильни.

Эт точно.
Forma, при всем уважении - книгу В.Света "AutoCAD Язык макросов и создание кнопок" все-таки купить не помешает.
ИМХО надо полный код все-таки сделать (переводы строк снести, комментарии - через пробелы и после символов "::" - их тоже надо снести):

^C^C_-Layer;_Make;06-DIM;    :: если слоя не было, создаем. Иначе активируем
_ON;06-DIM;                        :: включаем его (на случай отключения)
_Color;3;;                         :: задаем цвет (зеленый)
_Ltype;Continuous;;                :: тип линии - непрерывный
_LWeight;0.25;;                    :: вес линии - 0,25 мм
_Plot;_Plot;;                      :: слой печатается (это второй _plot)
_Thaw;06-DIM;                      :: слой разморозить
_Unlock;06-DIM;;                   :: и разблокировать
_Change;_Properties;_Layer;06-DIM;;
                                   :: последняя строка - именно изменение слоя объектов без прочих прелестей (тип линии, цвет, вес линии не трогаются)

Перед выполнением объекты должны быть выбраны. Если слоя не было в файле, он будет создан.
Я сам шел в свое время этим путем, но быстро надоело и начал использовать лисп.

Re: Макрос на кнопке для изменения свойств обьекта

kpblc пишет:

книгу В.Света "AutoCAD Язык макросов и создание кнопок" все-таки купить не помешает.

Есть такая книга у меня. Ничего в ней не понимаю. Для кого она писалась?

но быстро надоело и начал использовать лисп.

Я, что, возражаю? На LISP. Так на LISP.
Главное, чтобы работало. И поменьше мороки при установке. Я юзер. А не системный администратор.

Re: Макрос на кнопке для изменения свойств обьекта

> Forma
Читаем аннотацию: "Для широкого круга читателей". Остальное уж простите великодушно, цитировать не буду. Если автор подключится сюда, он, может и скажет свое веское слово ;)
И для автоматизации элементарный действий и была написана "Язык макрокоманд...".
Постоянно перечитываю, например, и все равно некоторые вещи, бывает, упускаю.

Re: Макрос на кнопке для изменения свойств обьекта

> kpblc
Он в курсе. И не подключится. Sorry, конечно. Как говорят в Америке.

Re: Макрос на кнопке для изменения свойств обьекта

]> Владимир Громов (2005-08-16 09:10:36)
Здесь еще налицо путаница в понятиях. Объект никак не может "переходить" в другой слой. "Слой" ("Layer") - это свойство объекта, т.е. первичен объект, а не слой. А раз так, то и "переходить" его нет никакой возможности,

   Не знаю, насколько "в тему" будет эта реплика, но был в свое время такой разговор с одним опытным и уважаемым мной программистом, убеждавшим меня в том же. Я тогда как-то не сумел возразить...
    Думаю, что здесь путаница не в понятиях, а скорее в подходах: с точки зрения программиста - слой это свойство объекта, а с точки зрения пользователя - слой это место, где объект находится. И это очень удобно,и именно для такого представления (наложенная калька) авторы Автокада придумали имя этому "свойству".

Re: Макрос на кнопке для изменения свойств обьекта

> LeonidSN
Я цитирую самого себя:

макро для изменения свойств обьекта

Можно что то сделать? Я подобный макрос написал в DrafixCAD минут за 15. А для AutoCAD эта канитель тянется уже нескончаемо.

Re: Макрос на кнопке для изменения свойств обьекта

> LeonidSN
На счет места - не буду спорить, именно так слои (как калька) и описываются в начале любого учебника. Только потом оказывается, что это более сложное понятие. Слой может существовать без объектов, а объекты без слоя - нет, причем слой при создании объекта немедленно становится свойством этого и, возможно, других объектов. При копировании объекта из файла в другой файл за объектом тащится и слой, однако пустой слой не скопируешь через буфер обмена. Так что же такое слой, на котором нет объектов? А вообще-то лучше не думать. В CorelDRAW слой не является свойством объекта, поэтому там очень легко копируются и переносятся объекты со слоя на слой, чего не скажешь об AutoCAD'е.

Re: Макрос на кнопке для изменения свойств обьекта

> LeonidSN

> Владимир Громов
Я вам не мешаю?.... :)))

Re: Макрос на кнопке для изменения свойств обьекта

> Forma

> kpblc
И чего еще не нравится?  Работа за 5 минут была сделана, и еще 15 - оформление, чтобы понятно было, да написание аннотации.

Re: Макрос на кнопке для изменения свойств обьекта

> kpblc
В одну строку можешь написать?

Re: Макрос на кнопке для изменения свойств обьекта

^C^C_-Layer;_Make;06-DIM;_ON;06-DIM;_Color;3;;_Ltype;Continuous;;_LWeight;0.25;;_Plot;_Plot;;_Thaw;06-DIM;_Unlock;06-DIM;;_Change;_Properties;_Layer;06-DIM;;

А самостоятельно что? Блокнот отменили?
Ограничения как были у меня, так и остались (см. > kpblc (2005-08-16 15:43:19))