Jump to content
  • entries
    9
  • comments
    21
  • views
    2,467

Макросы


dromandon

2,399 views

 Share

Мы с вами уже настроили горячие клавиши, научились пользоваться пробелом и быстро выбирать то, что нам нужно
Но есть рутинные задачи, в которых нас не спасают ни быстрый выбор, ни быстрый ввод команды. Потому что приходится раз за разом выполнять одно и то же действие над разными объектами.
Допустим, получили вы чертёж Фасада. Хорошо оформленный чертёж, 1 к 100, все отметки стоят, всё отлично. Только вот незадача, он на А1 не помещается. Надо бы изменить масштаб чертежа. А это надо все отметки в 2 раза увеличить, ведь они сделаны из линий и текста, увы.
И поехали - выделили одну отметку -> SCALE -> Указали базовую точку -> Указали нужный масштаб (2).
И повторили.
И так раз 100.
Удручающая задача, которую надо сделать и особо никак не вывернешься.
Тут приходят на помощь макросы. 
Самое понятное определения макроса - это последовательность команд, которые вы привязываете к кнопке.
Тем самым вы можете сократить эти действия:
Выделили одну отметку -> SCALE -> Указали базовую точку -> Указали нужный масштаб (2) ->Выделили одну отметку -> SCALE -> Указали базовую точку -> Указали нужный масштаб (2).

До данных:

Команда -> Выделили одну отметку -> Указали базовую точку -> Выделили одну отметку -> Указали базовую точку .

Уйдёт ввод с клавиатуры "2", уйдёт повтор команды (потому что макрос будет зациклен)

Спойлер
Спойлер

Да, по-прежнему придётся выделить все отметки по отдельности, но вместо условных 32 секунд на 10 отметок , у нас ушло 18.
(32-18)х(100/10)=140 секунд, т.е. мы сократили время работы в идеальных условиях чуть более, чем на 2 минуты.
В принципе, со знанием, как писать макросы, этого времени достаточно, чтобы написать такой макрос.
Стоит ли игра свеч решать вам, по итогу все макросы, которые я писал для себя, мне понадобились не единожды ;)

 

Делюсь парочкой простых макросов, которыми пользовался в своё время

Уменьшить в 2 раза = *^C^C_Scale;\\;\0.5

Увеличить в 2 раза = *^C^C_Scale;\\;\2

Подобие с удаление оригинала - *^C^C_offset;_e;_y; (из-за этой команды макрос обычного подобия переделал в  - ^C^C_offset;_e;_n; )

Отражение с удаление оригинала - *^C^C_mirror;\\;\\_y;

Очистка чертежа (от неиспользуемых блоков, слоёв и т.п.) - ^C^C_-Purge;_all;;_no;

Масштаб с опорной линией - ^С^C_scale;\\;\_r;@;\\

Включить границы отображения раста - ^C^C_imageframe;1;

Выключить границы отображения раста - ^C^C_imageframe;0;

Включить границы отображения границ маскировки - ^C^C_wipeout;_f;_on;

Выключить границы отображения границ маскировки - ^C^C_wipeout;_f;_off;

Повернуть с базовым углом - ^C_rotate;\\;\_r;@;\\

 

Где прописывать макрос?
Показываю на примере АК 2013 года (в моей версии наны нет макросов, в новых должно быть похоже)

Спойлер

 

Как именно писать макросы и что обозначают все эти слеши и точки с запятыми я не буду, да и, к сожалению, давно не писал их (работаю в Нанокад СПДС 6.0, он, к сожалению моему великому, макросы не поддерживает), но в интернете прилично материала на эту тему, думаю, первая же ссылка в гугле по запросу "макросы в автокаде" вам сразу же поможет ;)

На мой взгляд, создание макроса, является самым простым "продвинутым" инструментом для освоения, который стоит изучить для максимально эффективного использования CAD программ.

Значки для кнопок.zip

 Share

3 Comments


Recommended Comments

Тоже влезу в ваш ликбез. Я прописывал в автозагрузку Наны 6.0 дополнительный *.nsf-файл,  в котором вот в таком виде:

image.png.c0a69710c0b28d1cedfa500a725288de.png

прописывал новые команды. Часть из них имеет как раз вид макроса. Так же в один из конфигов (не помню), прописывал им русские имена.

Это крайне удобно. Особенно, когда ты в такую команду прописываешь некий объект из базы, которых тебе нужно последовательно вставить 1000шт. Если ты первый объект в этом случае вставляешь объект с командной строки (командой _anker для примера ниже), то дальнейшие объекты начинают отзываться на Enter ("Последняя команда"), чего в обычной жизни с объектами из базы не происходит. Офигенно экономит время работы мышью. А также их становится можно назначать на горячие клавиши.

Приведенные 2 команды - горизонтальный и вертикальный лучи.

А эта - вставка объекта из базы:

image.png.0d700ef71b32dbb16ddc55e6f0301159.png

Edited by Mитька
  • Like 4
Link to comment
14 минут назад, Mитька сказал:

прописывал новые команды

А есть где-то более подробное разъяснение по тому, как это работает?)
Логику я в этом коде вижу,  и понимаю как на его основе ещё написать похожие команды, но хотелось бы понять побольше))
Допустим, vbCr - что это?) аналог нажатия enter?) А есть ли что-то, что, допустим, позволит тыкнуть раз (или два) мышкой в промежутке?)
 

Link to comment

В теории - да. Но это не классический VBA, это VBS - а там функционал обрезанный вроде здорово.

добавлено через 1 минуту

Вот тут глянь:

 

добавлено через 1 минуту

Да и вообще ветку всю про программирование.

добавлено через 2 минуты
2 минуты назад, Mитька сказал:

Вот тут глянь:

Тут вроде было описание, как оно работает и что делать.

добавлено через 2 минуты
24 минуты назад, dromandon сказал:

vbCr - что это?) аналог нажатия enter?)

Да.

  • Like 3
Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...