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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мои макрокоманды

Мои макрокоманды

Ответ
Поиск в этой теме
Непрочитано 19.05.2008, 15:20 1 |
Мои макрокоманды
zenon
 
Остекляем!!! Алюминим!!!
 
Москва
Регистрация: 21.02.2005
Сообщений: 3,825

Предлагаю в данной теме выкладывать используемые макрокоманды.
Выкладывать прошу с описанием, что данная макрокоманда выполняет и как. Если можно, то и рисунки к кнопкам соотвественно.

Выкладываю 4 своих макрокоманды.

Улучшенная команда _Break, разрыв в одной точке с повтором по правой клавише мышки.
Цитата:
^C^C^P(defun c:break2 () (vl-cmdf "_break" pause "f" pause "@")(princ));break2;
ps. Макрокоманда не моя. Рисунок со старой кнопки.


Объект Xline строится горизонтально
Цитата:
^C^C_xline;_h;
Объект Xline строится вертикально
Цитата:
^C^C_xline;_v;

Объект Xline строится по объекту (не работает по примитивам блока и arx объектов сторонних навесок на автокад).
Цитата:
*^C^C_xline;_offset;_Through;_nea;\_none;@;;
Макрокоманда зациклена, выход по Esc.
ps. Макрокоманда не моя.


Объект Xline строится по объекту, с поворотом в указанной точке на 90 градусов (не работает по примитивам блока и arx объектов сторонних навесок на автокад)
Цитата:
^C^C_xline;_offset;_Through;_nea;\_none;@;^C^C_rotate;_last;;\90;
ps. Макрокоманда доработана из предыдущей.

Соотвественно и кнопочки
Button.rar

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
Просмотров: 448720
 
Непрочитано 08.08.2016, 11:03
#801
quazi


 
Регистрация: 30.10.2008
Сообщений: 53


Подскажите как сделать инструмент палитры, в котором можно было бы задать значения атрибутов блока.
Вижу, что можно задать значения параметров динамического блока.
А как быть с атрибутами?
Если не в тему написал, то направьте)
quazi вне форума  
 
Непрочитано 11.08.2016, 16:18
#802
boiler85


 
Регистрация: 11.08.2016
Сообщений: 3


Помогите пожалуйста дописать макрос для того, чтобы взорвать все штриховки в чертеже:
^C^C(sssetfirst nil (ssget "_x" '((0 . "HATCH"))));; _explode
Если ввести в ком.строку (без ^C^C), то все работает. При назначении на кнопку выдает ошибку.

----- добавлено через ~17 ч. -----
Все, разобрался:
^C^C(sssetfirst nil (ssget "_x" '((0 . "HATCH")))) _explode
Взрывает все штриховки на чертеже
boiler85 вне форума  
 
Непрочитано 26.08.2016, 16:19
#803
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Можно в макросе после вычерчивания полилинии задать ее замыкание? Closed? Пробую - не получается.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу на форуме  
 
Непрочитано 26.08.2016, 16:32
1 | #804
Кулик Алексей aka kpblc
Moderator

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


При рисовании полилинии заранее неизвестно количество кликов, так что макрос вряд ли решит эту задачу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.08.2016, 19:55
#805
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Можно в макросе после вычерчивания полилинии задать ее замыкание? Closed? Пробую - не получается.
Вопрос задан так, что можно ответить положительно: можно ^C^C_PL;
То есть это обычная команда но перенесенная на смд. кнопку
Для замыкания надо нажать "С".
Видимо ты хотел чтобы макрос почувствовал нажатие на начало полилинии, и она замкнулась. Наверное, можно реализовать эту идею и в макросе, если бы он запомнил координаты начала полилинии и, придя сюда последним кликом замкнул ее, а потом удалил последнй отрезок равный 0. Но для этого надо использовать выражения лиспа, а, может быть и калькулятора (без лиспа). В моей книге Язык макрокоманд... Калькулятор использовался, но в автокадах после 2002 там, в калькуляторе, что-то сбоило. Как в современных не знаю.
Мне кажется, я реализовывал подобную идею через Action Recorder Там полилиния с неизвестным заранее количеством точек замыкалсь и покрывалась штриховкой. Посмотри тему по ключевому слову Action Recorder
И тогда мы с тобой "утрем нос" самому Кулику который считает этот рекордер ерундой. (Шутка, Алексей)
Vova вне форума  
 
Непрочитано 26.08.2016, 21:18
#806
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Vova Посмотреть сообщение
Видимо ты хотел чтобы макрос почувствовал нажатие на начало полилинии
В данный момент я пытаюсь понять, какие параметры в макросах из Tool Pallettes могут оказаться в принципе. Лиспы в макросах при этом я, конечно, игнорирую - в них может же быть что угодно.
Если говорить о хотениях, то для замыкания я бы хотел, чтобы при черчении полилинии после Esc или Enter ей придавался признак Closed. А не как сделано сейчас - вводишь Closed, и она сразу замыкается.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу на форуме  
 
Непрочитано 27.08.2016, 00:05
#807
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Признаться, я мало что понимаю. Причем здесь Tool Palettes? Или ты нашел некую особенность в кнопке на палитре в отличие от обычной кнопки? И что за ESC, Это ^С в макросе или реальное нажатие на кнопку на клаве?
Об'ясни что ты хочешь или напиши неработающий макрос
Vova вне форума  
 
Непрочитано 27.08.2016, 12:02
#808
skkkk


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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Если говорить о хотениях, то для замыкания я бы хотел, чтобы при черчении полилинии после Esc или Enter ей придавался признак Closed. А не как сделано сейчас - вводишь Closed, и она сразу замыкается.
Могу предложить лиспик, но надо бы знать: замыкаться она должна несмотря на то, как отстоят друг от друга первая и последняя точки или только в том случае, если они совпадают?
skkkk вне форума  
 
Непрочитано 27.08.2016, 12:37
#809
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,001


Цитата:
Сообщение от skkkk Посмотреть сообщение
замыкаться она должна несмотря на то, как отстоят друг от друга первая и последняя точки или только в том случае, если они совпадают?
и третий вариант - первая и последняя точки отстоят друг от друга на расстояние не больше указанного
Сергей812 вне форума  
 
Непрочитано 28.08.2016, 15:23
#810
skkkk


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


Сергей812, допуск-то ввести совершенно несложно, и даже я подразумевал это априори, но ведь участники форума пользуются привязками все без изъятья, не так ли?
skkkk вне форума  
 
Непрочитано 28.08.2016, 17:04
#811
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Vova Посмотреть сообщение
Причем здесь Tool Palettes? Или ты нашел некую особенность в кнопке на палитре в отличие от обычной кнопки?
Мне нужно было понять, если я возьму кем-то когда-то как-то сделанную Tool Palette, будет ли там описано, в том числе, и Closed. Например, средствами макросов. Т.е., если я правильно понял, то замыкания/не замыкания описаны не будут, если говорить об обычных макросах, без лисп-выражений.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу на форуме  
 
Непрочитано 28.08.2016, 17:19
#812
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,001


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Мне нужно было понять, если я возьму кем-то когда-то как-то сделанную Tool Palette, будет ли там описано, в том числе, и Closed. Например, средствами макросов. Т.е., если я правильно понял, то замыкания/не замыкания описаны не будут, если говорить об обычных макросах, без лисп-выражений
у вас же вроде есть программист. Почему не хотите создать свою палитру и реализовать весь необходимый функционал?

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от skkkk Посмотреть сообщение
допуск-то ввести совершенно несложно, и даже я подразумевал это априори, но ведь участники форума пользуются привязками все без изъятья, не так ли?
зависит от конкретной задачи и реализации)
Сергей812 вне форума  
 
Непрочитано 29.08.2016, 19:17
#813
Buffalo


 
Регистрация: 29.08.2016
Сообщений: 1


Чем дольше пользуюсь макрокомандами, тем ленивей становлюсь. Порой объединяю одну команду и один ключ, мелочь, а приятно. Вот мои 5 копеек:
1) Печать текущего листа в папку, где лежит с DWG (лист настроен под "dwg to pdf").
^C^C-печать;;;;;;;;
Если лист с таким же именем уже существует в папке, то вот такой
^C^C-печать;;;;;Д;;;
сделал себе на панели быстрого доступа две кнопочки, первой запускаю печать листа первый раз, потом пока корректирую чертеж второй печатаю с заменой.

2) Окно выбора листа из шаблона "Форматы_листов.dwt" для добавления в чертеж
^C^C^R_LAYOUT _TEMPLATE "Форматы_листов.dwt"

3) Кнопка создает слой "Видовые экраны", назначает ему зеленый цвет, делает непечатаемым, запускает построение прямоугольного видового экрана
^C^C-СЛОЙ;С;ВИДОВЫЕ_ЭКРАНЫ;У;ВИДОВЫЕ_ЭКРАНЫ;Ч;Н;ВИДОВЫЕ_ЭКРАНЫ;Ц;ЗЕЛЕНЫЙ;ВИДОВЫЕ_ЭКРАНЫ;;^C^C-ВЭКРАН;

4) Кнопка назначает привязку с ближней (можно вбить любое удобное значение osmode) и разрывает линию в точке, запускается снова, пока не будет нажата Esc
*^C^COSMODE 4671 РАЗОРВАТЬ \П \@

5) Объединение элементов в полилинию. Может собирать в разные полилинии не соприкасающиеся сегменты при единоразовом выборе.
*^C^C_.PSELECT С \\;;^C^CПОЛРЕД Н ТЕКУЩИЙ;;Д;0;;

6) Вырубить к лешему видовой куб и панель навигации одной кнопкой
^C^CКУБ О NAVBARDISPLAY 0

7) Удаление объектов при выборе их линией, пока не будет нажата ESC
*^C^Cстереть л \\;;
*^C^COSMODE 0 стереть рм \\\\\;;OSMODE 4671 - удаление объектов режущим многоугольником, до выбора объектов отключается привязка, после включается, сколько символов \ - столько вершин у многоугольника

8) Собрать выбранные рамкой объекты в блок со "случайным" именем с базовой точкой в начале координат. Удобно, когда нужно скопировать группу объектов в другой чертеж в координатах и не потерять возможность выбора группы
*^C^C_.PSELECT С \\;^C^CБТКОПИРОВАТЬ 0,0 ВСТБЛОК 0,0 СТЕРЕТЬ ТЕКУЩИЙ;;

9) Полилиния в виде линии разрыва с поворотом и масштабированием. Зачастую нужна просто линия, по которой можно обрезать без маскировок и прочей автоматизации. Если не параноить за размеры изломов, то вполне удобная вещь
^C^COSMODE 0 плиния \@14.5,0 @.25,-.75 @.5,1.5 @.25,-.75 @14.5,0;;повернуть @0,0;;@-30,0 о @0,0 @30,0 \^C^Cмш @0,0;;@0,0 о @0,0 @30,0 \OSMODE 4207

10) Ну и коллекция "ленивых" кнопок:
^C^C_zoom .5x - расширить рабочее пространство, когда двойной клин на колесо уже не помогает
^C^CУвеличить ц 50 - укоротить объект на половину
^C^Cатробновить в \д - обновить атрибуты у выбранного кликом блока
^C^С_slice \ 3 \; - резать тело по 3 точкам
^C^Cтеквизстиль р пск м -вид _SEISO PERSPECTIVE 1 - реалистичный визуальный стиль, с перспективой
^C^C_ucs в;_flatshot \;;; - плоский снимок

P.S. Работаю в Русской локализации верисии 2012. Знаю, что использовать в локализации команды на латинице с подчеркиванием и смешивать с кирилическими - дурной тон, прошу прощения, каюсь, виноват. Но к стати, там где нужен предварительный выбор - команда выбрать не вкатывает, _.PSELECT - как я понимаю несколько иная функция, по крайней мере, на сколько я помню, кнопки с выбором начинали работать только через нее
Buffalo вне форума  
 
Непрочитано 23.11.2016, 15:17
#814
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


...помогите плиз, нужен макрос на добавление контура к штриховке; (акад2015 рус)

^C^C_-HATCHEDIT;\Д В - работает, но запрашивает лишний запрос

Код:
[Выделить все]
Команда: _-HATCHEDIT
Выберите объект штриховки:
Задайте параметр штриховки [Неассоциативная/сТиль/Свойства/поРядок прорисовки/Добавить контуры/Удалить контуры/Восстановить контур/свяЗать/Отдельные штриховки/Исходная точка/Аннотативный/Цвет штриховки/сЛой/Прозрачность] <Свойства>: Д
Укажите внутреннюю точку или [Выбор объектов]: В
Выберите объекты: найдено: 1
Выберите объекты:
Укажите внутреннюю точку или [Выбор объектов]:

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Можно в макросе после вычерчивания полилинии задать ее замыкание? Closed? Пробую - не получается.
...я замыкаю через редактирование: _pedit _close _exit

Последний раз редактировалось Linkshunter, 23.11.2016 в 15:54.
Linkshunter вне форума  
 
Непрочитано 24.11.2016, 13:24
1 | #815
skkkk


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


Linkshunter, никогда такого не делал, сейчас попробовал - у меня не срабатывает данная последовательность: Добавить контуры -> Выбрать объекты.
Но зато сработала такая последовательность:
Команда: -РЕДШТРИХ
Выберите объект штриховки:
Введите параметр штриховки [Неассоциативная/сТиль/Свойства/поРядок
прорисовки/Добавить контуры/Удалить контуры/Восстановить
контур/свяЗать/Отдельные штриховки/Исходная точка/Аннотативный/Цвет
штриховки/сЛой/Прозрачность] <Свойства>: В
Введите тип объекта контура [Область/Полилиния] <Полилиния>: П
Связать штриховку с новым контуром? [Да/Нет] <Д>:


Чтобы макрос заработал в Автокаде любой локализации (мало ли что?), рекомендуется использовать английские буквы опций, которые можно взять из Справки по Автокад:

Enter hatch option [DIsassociate/Style/Properties/DRaw order/ADd boundaries/Remove boundaries/recreate Boundary/ASsociate/separate Hatches/Origin/ANnotative/ hatch COlor/ LAyer/ Transparency]

[Region/Polyline]

[Yes/No]



Проверять не стану, но навскидку, макрос будет таким (ну или типа такого):
Код:
[Выделить все]
^C^C_-HATCHEDIT;\_B;_P;_Y;
skkkk вне форума  
 
Непрочитано 24.11.2016, 14:06
#816
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от skkkk Посмотреть сообщение
Чтобы макрос заработал в Автокаде любой локализации (мало ли что?), рекомендуется использовать английские буквы опций, которые можно взять из Справки по Автокад:
спасибо за наводку, но не помогло,макрос вида ^C^C_-HATCHEDIT;\_AD;_S;_S; лишний запрос в конце все равно так же выдает. Подозреваю что -то не так делаю - не пойму почему выбор объектов начинается снова, когда набор уже есть
Команда: _-HATCHEDIT
Выберите объект штриховки:
Задайте параметр штриховки [Неассоциативная/сТиль/Свойства/поРядок прорисовки/Добавить контуры/Удалить контуры/Восстановить контур/свяЗать/Отдельные штриховки/Исходная точка/Аннотативный/Цвет штриховки/сЛой/Прозрачность] <Свойства>: _AD
Укажите внутреннюю точку или [Выбор объектов]: _S
Выберите объекты: _S
Выберите объекты: найдено: 1
Выберите объекты:
Укажите внутреннюю точку или [Выбор объектов]:


макрос типа ^C^C_-HATCHEDIT;\_AD;_S;\\;; делает то, что мне надо, но только с двумя последовательно выбранными контурами(по числу обратных слэш в конце)

Последний раз редактировалось Linkshunter, 24.11.2016 в 14:49. Причина: добавил
Linkshunter вне форума  
 
Непрочитано 24.11.2016, 15:09
#817
skkkk


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


Не пойму, что делает этот макрос. Точнее эта опция "Добавить контуры". У меня она ничего не добавляет. Чего-то я не догоняю. Догадываюсь, что речь идет о контурах не в виде полилинии, а о ручках по контурам штриховки при ее (полилинии) отсутствии. Но сколько не тыкаю в эти штриховки, не могу сообразить, о чем речь. Может, дело пойдет, если приложить к посту файл с примером - что есть и что надо?
skkkk вне форума  
 
Непрочитано 24.11.2016, 19:10
#818
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от skkkk Посмотреть сообщение
Не пойму, что делает этот макрос. Точнее эта опция "Добавить контуры". У меня она ничего не добавляет.
должна добавлять к уже существующей штриховке новые контуры(полилинии)
На второй гифке стандартная работа команды без макроса вручную
Миниатюры
Нажмите на изображение для увеличения
Название: контур.gif
Просмотров: 86
Размер:	71.7 Кб
ID:	179687  Нажмите на изображение для увеличения
Название: стд_контур.gif
Просмотров: 66
Размер:	1.34 Мб
ID:	179689  
Вложения
Тип файла: dwg
DWG 2007
new block.dwg (109.8 Кб, 27 просмотров)

Последний раз редактировалось Linkshunter, 24.11.2016 в 19:16.
Linkshunter вне форума  
 
Непрочитано 26.11.2016, 13:45
#819
skkkk


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


Цитата:
Сообщение от Linkshunter Посмотреть сообщение
добавлять к уже существующей штриховке новые контуры(полилинии)
А я на картинке увидел, как к существующим контурам (полилиниям) добавляются новые штриховки

Цитата:
Сообщение от Linkshunter Посмотреть сообщение
макрос типа ^C^C_-HATCHEDIT;\_AD;_S;\\;; делает то, что мне надо
Я так понял, проблема решилась в итоге?
skkkk вне форума  
 
Непрочитано 29.11.2016, 09:13
#820
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


Цитата:
Сообщение от skkkk Посмотреть сообщение
Я так понял, проблема решилась в итоге?
частично жму в конце ентер 2 раза вместо одного
Linkshunter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мои макрокоманды

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки 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