|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
Цитата:
Цитата:
|
|||
|
||||
jkalex, лиспом как два пальца... выбор по фильтру и обработка набора. Макросом... мсье знает толк в извращениях (по моему никак, вроде не раз поднимали подобные вопросы в том числе совсем 10 постов назад...)
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
геодезист Регистрация: 26.11.2010
Луцк
Сообщений: 33
|
Может кому и пригодится. В макросах можно прописать создание слоя, цвета, тип л/п, соответствующих примитиву или объекту. Разнообразить можно до невозможного если подлючить лисп.
^C^C(setvar "attdia" 0) (setvar "attreq" 1) (if (tblsearch "layer" "ОГРАЖДЕНИЯ") (command "_layer" "_set" "ОГРАЖДЕНИЯ" "") (command "_layer" "_make" "ОГРАЖДЕНИЯ" "")) Mline s 1 ST PR_12 или ^C^C(command "-linetype" "l" "475_2" "armigw.lin" "s" "475_2" "" (command "-layer" "_m" "ОГРАЖДЕНИЯ" "_s" "ОГРАЖДЕНИЯ" ""))(command "_pline") или ^C^C^P(if (tblsearch "layer" "НАДЗЕМКА")(command "_layer" "_set" "НАДЗЕМКА" "")(command "_layer" "_make" "НАДЗЕМКА" "") );^Pl2p; или ^C^C^P(if (not c:insert_395_2 )(load "VNEMASHT.LSP" ));^Pinsert_395_2 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,843
|
boretskiy.a, в макросах можно обойтись без command, setvar etc. И ты забыл про локализацию ACAD. Теоретически должно быть так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Пытаюсь сделать мультивыноску с определенным текстом в виде макроса (чтобы повесить на кнопку и в два клика проставлять одинаковые надписи). Вроде все просто: команда, два пользовательских выбора на экране (положение стрелки + положение текста), далее enter.
Записал так: Код:
Сейчас использую тоже самое, но записанное через рекордер операций. Работает, но немного подглючивает, макросом как мне кажется более стабильно должно работать. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
Immortal_6666, будет интересно - статья от Алексея Кулика.
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
Цитата:
----- добавлено через ~11 мин. ----- хотя ошибся: для такого порядка в статье - нуль получается Цитата:
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
В виде лиспа мне знаний не хватает. Да и просто интересно, где я ошибаюсь в макросе, т.к. задача вроде примитивная... П.С. А есть какая-то веская причина, почему так не любят "командные методы"? Я не против лисп, просто зачем изобретать каждый раз велосипед... В лисп всегда надо предусмотреть все события, все варианты, кучу всего прописать, часто "лишнего", т.к. "а вдруг что-то пойдет не так". А зачастую нужна просто последовательность обычных команд. По сути предложить программе нажать кнопки за пользователя. Я почему макросы такие люблю - вот повесил его на палитру, в свойствах указал в какой слой помещать, для некоторых инструментов можно сразу стиль указать и готово. В а лиспе пришлось бы описывать создание стиля, создание слоя и т.п. Я-то очень хочу в нем разобраться. Но часто получается, что это микроскоп, которым при каждом удобном случае предлагают забивать гвозди... И чтобы сделать примитивную вещь нужно ну очень много всего знать, что ставит в тупик, т.к. даже не знаешь, как подступиться к задаче. Последний раз редактировалось Immortal_6666, 02.01.2018 в 13:19. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
----- добавлено через ~1 мин. ----- engngr, спасибо огромное!!!! Я ведь пробовал менять направление слэшей... и не помогало. А Ваш код скопировал - и работает. Еще раз спасибо за ответ по делу!!! |
|||
|
||||
сети Регистрация: 03.11.2008
Московия*
Сообщений: 5,779
|
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
просто шикарно работает!!! очень помогли! ----- добавлено через 6 сек. ----- engngr, а если нужно в текст выноски добавить 2 строки, т.е принудительный переход на новую строку. Это возможно реализовать макросом? Попробовал код \X который позволяет делать такое в текстовой строке размера и \P из Мтекста, тут не сработали. Очевидно потому, что \ трактуется как пользовательский выбор. У меня просто есть выноски, которые всегда пишутся в две строки. ----- добавлено через ~8 мин. ----- И поле таким образом засунуть не получилось ^C^C_mleader;\\%<\AcVar CustomDP.Тест>% Может надо в какие-то символы обернуть код поля? Последний раз редактировалось Immortal_6666, 02.01.2018 в 13:48. |
|||
|
||||
Регистрация: 10.02.2007
Москва
Сообщений: 611
|
Цитата:
Код:
Для Immortal_6666. А вообще, при работе с мультивыноской в более сложных случаях лучше отказаться от макросов и применять VLisp. Много разных возможностей появляется: и многострочность, и поля и др. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Setvar, ок, согласен на vlisp.
Можно ли малой кровью в это Код:
Не одновременно, а в принципе, т.к. это две разные задачи - просто текст в две строки и 1 строка, но с полем. Причем очень важно, чтобы поле осталось именно полем. Код поля есть: %<\AcVar CustomDP.Тест>% Я уже весь буржуй нет облазил (на русском вообще ничего нет), книгу В.Света штудирую второй час... Научился вставлять в выноску переменные, но вот поле и вторую строку никак.. либо как-то не так ищу. Находил только решения, где поле преобразуется в текст, сохраняется в переменную, потом переменную скармливают тексту или выноске. Но мне не подходит такое, т.к. там вставлется просто текст. ----- добавлено через ~6 мин. ----- Интуитивно мне казалось, что должно быть как-то так: ^C^C(command "_MLEADER" pause pause $M=$(%<\AcVar CustomDP.Тест>%)) но нет... Последний раз редактировалось Immortal_6666, 02.01.2018 в 15:59. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
Руками я делал так: выноска - указал точки - вставить поле - выбрал какое. Далее, записал эти шаги через рекордер операций - тоже все работает. Аналогично проделал с выносками, содержимое которых одинаково во всех проектах. Кнопки со всеми этими выносками разложены на палитре. Работает, но у рекордера есть минусы (иногда подглючивает) и нужно хранить файлы .actm. В итоге, с Вашей помощью, удалось для выносок, где всего 1 строка использовать макрос\код. Так я избавился от части файлов рекордера операций. Хочется проделать тоже самое с выносками где 2 строки и теми, где поля. Про поле я еще могу понять, что это может быть сложно программно. Но про вторую строку, кажется, что должно быть просто решение, вроде управляющего символа для перевода на новую строку. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мои динамические блоки | Shoorup | Динамические блоки | 2713 | 21.04.2011 23:34 |
Повторение выполнения макрокоманды по циклу. КАК? | Kostinok | AutoCAD | 12 | 05.12.2007 15:40 |
Мои проекты | Vova | Разное | 10 | 08.10.2007 23:18 |
Мои палитры инструментов на соседний компьютер | Pave1 | AutoCAD | 4 | 27.06.2006 09:45 |