|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
menu macros
Проектировщик, гидротехник
Киев
Регистрация: 23.03.2006
Сообщений: 59
|
||
Просмотров: 3791
|
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Код:
Последний раз редактировалось Alaspher, 23.10.2007 в 08:10. |
|||
![]() |
|
||||
Проектировщик, гидротехник Регистрация: 23.03.2006
Киев
Сообщений: 59
|
Спасибо за лисп, но для меня это сложно.
Menu Macros - это язык макрокоманд, поддерживаемый Автокадом, узнал я о нем из книги Вл. Света "AutoCAD: язык макрокоманд и создание кнопок". С помощью Menu Macros можно автоматизировать часто повторяющиеся процедуры. То есть, часто используемую последовательность команд можно назначить кнопке. В простых случаях можно обойтись без Лиспа (что меня и привлекает). Я попытался автоматизировать такую задачку: простановка пикетажа по оси линейного сооружения (например дороги), то есть надо вдоль оси через 100 метров проставить символы ПК1, ПК2, ПК3 (с риской сверху) и т.д. Для этого применяю команды: measure (блоком <ПК'> и с поворотом), explode (взрываю эти блоки - на вопрос о выборе объекта - нажимаю "р" (previous), затем - команда Express Tools - tcount (автоматическая нумерация текста) и опять "р" (previous).В ручном режиме все работает нормально, а при попытке выполнить всю цепочку с помощью Menu Macros не работает previous. Причем если заменить команду explode какой-нибудь другой, также требуещей выбор объекта, "previous" работает. То есть "explode" имеет какую-то особенность. Помогите разобраться. |
|||
![]() |
|
||||
Проектировщик, гидротехник Регистрация: 23.03.2006
Киев
Сообщений: 59
|
Блок - расчленяемый.
Привожу макрос (не полностью - до момента, где не срабатывает). ^C^C_measure;\b;piket;;100;_explode;p Сообщения Автокада: Command: _measure Select object to measure: Specify length of segment or [Block]: b Enter name of block to insert: piket Align block with object? [Yes/No] <Y>: Specify length of segment: 100 Command: _explode Select object: p *Invalid selection* Expects a point or Last/ALL/Group Select object: [ATTACH]1192083282.dwg[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для vic153.
LAST - последний отрисованный объект (в данном случае блок). Именно он один и расчленится, а все остальные - нет. Макрос вы неправильно написали. У Sergiy использовалась команда "_EXPLODE" ("РАСЧЛЕНИТЬ"), а не "_XPLODE" ("ВЗОРВАТЬ"). Это в моем макросе используется "_xplode". ГАВ. |
|||
![]() |
|
||||
Проектировщик, гидротехник Регистрация: 23.03.2006
Киев
Сообщений: 59
|
Извините за молчание - не было доступа к интернету.
Для Profan: xplode я опробовал раньше - работает, но проблема в том, что для дальнейшей обработки мне также нужен предыдущий набор "р", а он в командном режиме почему-то не сохранется, а в ручном - все нормально. Хотелось бы услышать мнение Vova по этому вопросу. |
|||
![]() |
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Я прошу прощения за ответ не по-существу. Макросы имеют существенный недостаток по сравнению с лиспом, и не только по своим программистским возможностям. Тот, кто пишет лиспы, обычно всегда в форме, так как пишет их по любому поводу и любому заказчику. Несложные лиспы пишутся почти на коленках. Что касается макросов, у меня неплохая практика была, когда я начинал. Но даже тогда макрос на коленках написать не смог-бы. Почти после каждого введенного значка надо проверять, работает-ли. Теперь, каждый раз когда на форуме просят проверить работу макроса, приходится вникать и вспоминать, открывать известную книгу и находить аналоги. Я обычно делаю это с удовольствием, так как это помогает кое-как поддерживать форму. Но сейчас катастрофически нет времени. Работаю по 10 часов, и почти каждые выходные, так прижало. На форуме только на реплики хватает. Если твоя проблема не рассасется сама, постараюсь вернуться к ней позже.
ЗЫ. Макрос copy-rotate (работу которого однажды увидел) я разгадывал 3 месяца. Еду в метро, и тупо смотру на записи, пытаясь понять секрет. Зато какая радость, когда просветление наступило! А теперь каждый может прочитать в книжке |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
В.Свет "AutoCAD Язык макрокоманд и создание макросов" BHV С.-Петербург, 2004.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |