| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Создание пользовательских кнопок в AutoCAD 2006

Создание пользовательских кнопок в AutoCAD 2006

Ответ
Поиск в этой теме
Непрочитано 16.09.2006, 11:35
Создание кнопки для динамического блока
Shoorup
 
Минск
Регистрация: 16.09.2006
Сообщений: 1,587

Здрасте уважаемые специалисты в области AutoCAD.
:!: Вопрос следующего характера: AutoCAD2006 подарил кучу новых возможностей в том числе и динамические блоки. Проблема состоит в том что-КАК СОЗДАТЬ КНОПКУ ДЛЯ ВСТАВКИ ДИНАМИЧЕСКОГО блока. Конечно желательно чтобы команда писалась на макросе а не на лиспе (в виду не знания последнего). Кнопку удается создать для вставки блока, но блок вставляется в блоке т.е. его приходится еще и взрывать. И можно ли как небудь организовать более прилично папку с файлами блоков и иконок к ним. [/b]
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 02.04.2008 в 11:04.
Просмотров: 14171
 
Непрочитано 22.09.2006, 13:22
#21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Не точку, а "_" - тогда вызывается оригинальная команда. Но! Команду можно и переопределить лиспом. Вот чтобы вызывать снатдартную команду, и используется "."
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.09.2006, 15:03
#22
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Глаза открывал новичкам
А смесь команд по тому что многие англоязычные команды не хотят почемуто работать в моем каде. препробовал кучу вариантов. Еще раз повторяюсь мой кад RUS. причем полностью RUS- очень класно переведен в том числе и команды. а англояз не все
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 22.09.2006, 15:09
#23
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844


Код:
[Выделить все]
^C^C-в DWGPred_01;\;;;_explode;последний -очистить;все;;нет;
попробуй так:
Код:
[Выделить все]
^C^C_-insert;DWGPred_01;1;;;_.explode;_last;_.-purge;_all;;_n;
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.04.2008, 11:02
#24
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Необходимо доработать макрос на вставку динамического блока.

Бывает такая ситуация: ставлю свои панели на другой компьютер. Но иногда бывает что на другом компе отключены контекстные меню и динамический блок не работает полностью (т.е. параметр видимости и выбора не работают при нажатии на маркер). Как при вставке блока проверять переменную и если она отключена включать ее?
Сделал так "^C^C(setvar "SHORTCUTMENU" 11);_-insert;ИМЯ_БЛОКА;\1;;;_.explode;_last;_.-purge;_all;;_n;"
но надо сделать проверку если SHORTCUTMENU=0 то поставить например 11, а если другое значение то оставить его.
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 02.04.2008 в 11:54.
Shoorup вне форума  
 
Автор темы   Непрочитано 14.11.2008, 15:16
#25
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


так никто и не ответил на предыдущий пост.
А нужно еще доработать вставку блока.
Так как блоки постоянно доробатываются, нужно чтобы при вставке блока происходила проверка на "старость" блока и замена его вхождения на новый блок.

А как Вы решаете такую задачу?
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 14.11.2008, 15:56
#26
beholder

Конструктор (МК)
 
Регистрация: 27.11.2007
Львів
Сообщений: 456
<phrase 1=


Да... Задача дейсвительно нужная, часто сталкиваюсь с тем, что вставляю блок, а он вставляется по старому описанию, нужно его (блок) удалять (а если их, к примеру, 50 или больше...), выполнять _purge, и только после этого вставлять новый... Хорошую тему поднял shoorup, если, конечно, я ее правильно понял.
beholder вне форума  
 
Автор темы   Непрочитано 14.11.2008, 17:29
#27
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


beholder, все правильно понял...
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 14.11.2008, 17:37
#28
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


Кто в динблоках разбирается, посмотрите мое первое творение. Правильно ли сделан? почему то размеры через lookup неправильно растягиваются
Вложения
Тип файла: dwg
DWG 2004
Динблок.dwg (102.2 Кб, 1128 просмотров)
Рyslan вне форума  
 
Непрочитано 14.11.2008, 18:42
#29
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Рyslan Посмотреть сообщение
Кто в динблоках разбирается, посмотрите мое первое творение. Правильно ли сделан? почему то размеры через lookup неправильно растягиваются
Offtop: Рyslan, я бы все-таки вывесил пост с блоком в эту тему... Впрочем, теперь не будет отвлекаться от дела...

Рyslan, все зависит от того, что вы хотите от этого блока... У вас там 5 ручек... Параметр выбора (look up) работает, масштабные - работают, а вот на растягивание - увы...
И вообще, по-моему, у Вас слишком много ручек дублируют действия друг друга, после чего возникает неразбериха...
Напишите, что Вы хотите от этого блока.
 
 
Непрочитано 14.11.2008, 19:04
#30
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


я хочу чтобы отводы создавались как они по госту. Отвод_50 (50 условный диаметр), реальные его размеры диаметр 57, расстояние между осями 75. Отвод_80 (89, 120) Отвод_100 (114,150) Отвод_150 (159,225). Масштабирование дает или например точный размер 89 или 120. а чтоб оба были такими как нужно не получается

Последний раз редактировалось Рyslan, 15.11.2008 в 14:14.
Рyslan вне форума  
 
Непрочитано 15.11.2008, 14:13
#31
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


ну вот почему не получается, не пойму, помогите разобраться
Вложения
Тип файла: dwg
DWG 2004
Динблок1.dwg (46.3 Кб, 1127 просмотров)
Рyslan вне форума  
 
Непрочитано 15.11.2008, 18:35
#32
AlphaGeo


 
Сообщений: n/a


Рyslan, ответы на Ваши вопросы находятся в этом и этом постах.

Последний раз редактировалось AlphaGeo, 15.11.2008 в 19:54.
 
 
Непрочитано 31.01.2014, 08:24
#33
dip

проектировщик
 
Регистрация: 25.05.2007
г. Чебоксары
Сообщений: 206
<phrase 1=


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Код:
[Выделить все]
^C^C-в DWGPred_01;\;;;_explode;последний -очистить;все;;нет;
попробуй так:
Код:
[Выделить все]
^C^C_-insert;DWGPred_01;1;;;_.explode;_last;_.-purge;_all;;_n;
Скажите, пожалуйста, как сделать так чтобы этот блок вставлялся в определенном слое? Т.е. как прописать название слоя в этот код?
dip вне форума  
 
Непрочитано 31.01.2014, 08:39
#34
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


dip, можно, ведь, и поиск по форуму провести "макрос создания слоя"
например, http://forum.dwg.ru/showthread.php?t=52266
Хмурый вне форума  
 
Непрочитано 31.01.2014, 08:45
#35
dip

проектировщик
 
Регистрация: 25.05.2007
г. Чебоксары
Сообщений: 206
<phrase 1=


Хмурый, спасибо большое. Что-то я сразу не догадался
dip вне форума  
 
Непрочитано 31.01.2014, 14:03
#36
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


^C^C_-layer New LIVNEVKA;^C^C_-layer Color 140 LIVNEVKA;^C^C_-layer Set LIVNEVKA; ^C^C-insert D:/AutoDesk_14/BLOKI/KOLODEC \1 1
Я так делаю
Valery Brelovsky вне форума  
 
Непрочитано 31.01.2014, 14:16
#37
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


Valery Brelovsky, а сразу сделать _-layer _Make ?
Тогда слой создастся и станет сразу активным
Хмурый вне форума  
 
Непрочитано 31.01.2014, 15:44
#38
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Valery Brelovsky, а сразу сделать _-layer _Make ?
Тогда слой создастся и станет сразу активным
Всё таки я думаю, что необходима проверка Слоя, он м.б. например заморожен, если пользоваться _make
Цитата:
Команда: -СЛОЙ
Текущий слой: "0"
Задайте опцию [?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]: _make
Введите имя нового слоя (этот слой станет текущим) <0>: dim
Слой "dim" заморожен. Не может стать текущим до размораживания.
Слой может также уже существовать, если пользоваться _new
Цитата:
Команда: -слой
Текущий слой: "0"
Задайте опцию [?/Создать/Установить/Новый/Вкл/Откл/Цвет/Тип линий/вЕс
линий/Материал/пеЧать/Заморозить/Разморозить/Блок/рАзблок/Конфигурация]: _new
Имя нового слоя(ев): dim
Слой "dim" уже существует.
Резюмируя... я пользуюсь в таком случае ЛИСП-программкой создания слоя, которая всё это делает
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 31.01.2014 в 16:00.
Alan вне форума  
 
Непрочитано 31.01.2014, 17:28
#39
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Valery Brelovsky, а сразу сделать _-layer _Make ?
Тогда слой создастся и станет сразу активным
Не силён я в этом деле. Сидит функция в меню IMAGE и в принципе работает выбрал нужный блок и вставил на нужный слой. Если слоя нет он создаёт это слой и активирует. Можно попробовать и с _Make .


Цитата:
Сообщение от Alan Посмотреть сообщение
Слой может также уже существовать, если пользоваться _new
Если слой существует он его активирует. Самособой нового второго не создаёт.
Valery Brelovsky вне форума  
 
Непрочитано 31.01.2014, 17:41
#40
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,835
<phrase 1=


Цитата:
Сообщение от Valery Brelovsky Посмотреть сообщение
Если слой существует он его активирует.
Я забыл добавить. Слой DIM существовал и был Заморожен. Диалог с " _new" как раз для такого случая.
Слой НЕ будет активирован. Проверял по Автокад 2008 и 2013
Вот строка меню, чтобы РАЗМЕР ставился в слое, первые символы которого DIM, или в слой DIM
[m1lib(RZA,Цепочка АВТОКАД)]^C^C(if (/= (strcase (Substr (getvar "CLAYER") 1 3) T) "dim")(nlayer "DIM" nil nil) nil)(nz_dimst "txt-autocad" nil)(setvar "DIMLFAC" (n_d03-1))(setvar "DIMTXT" (getvar "TEXTSIZE"))(graphscr) _dimlinear
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 31.01.2014 в 17:49.
Alan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Создание пользовательских кнопок в AutoCAD 2006

Размещение рекламы