|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.05.2008, 15:20 | 1 | | #1 |
Мои макрокоманды
Остекляем!!! Алюминим!!!
Москва
Регистрация: 21.02.2005
Сообщений: 3,824
|
||
Просмотров: 448527
|
|
||||
Инженер-электрик Регистрация: 16.01.2007
Москва
Сообщений: 19
|
Вот буквально неделю назад (к своему стыду) начал читать книжку В. Свет "Язык макрокоманд..." и хочу выразить автору огромную благодарность (думаю выражение благодарности не будет оффтопом).
Применительно к себе пока сделал одну кнопку, но зато пользуюсь ей по 100 раз на дню: проверка ошибок, очистка чертежа только от неиспользуемых блоков с последующим сохранением. ^C^C_audit;_y;_-purge;_blocks;;_n;_qsave; |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я бы дополнил так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Вот макросы, которыми я очень часто пользуюсь:
Блокировать ВЭ Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Makswell, а можно дополнить макрос
Площадь объекта Цитата:
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот такой аляповатый макрос:
Код:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=19561RU |
|||
|
||||
Инженер-электрик Регистрация: 16.01.2007
Москва
Сообщений: 19
|
Цитата:
Код:
|
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
VPtoggle |
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Ну вот, я же писал:
Цитата:
Цитата:
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Точно!!!
Посему давайте не уходить от темы, а выкладывать макросы
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
|
вот парочка моих
может кто оптимизирует?) заливка контура сразу двумя штриховками (масштаб, название предустановлены, чтоб работало - менять на свои) Код:
Код:
Код:
|
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
ИМХО сейчас макросов меньше, потому что сейчас до них дольше добраться в CUI. Раньше нажал ПКМ на кнопке, и сразу можно править макрос. Проще было экспериментировать. Поменял что-то - посмотрел результат, опять поменял что-то и т.д...
А сейчас... Проще набрать _VLIDE и начать программировать на лиспе, а на кнопку посадить уже сделанную тобой готовую прогу. |
|||
|
||||
Чато приходят чужие чертежи с кучей прокси объектов. Благодаря Александру Ривилису с этой бедой можно бороться.
Макрос расчленяет, удаляет прокси объекты, делает аудит рисунка и восстанавливает предыдущее состояние слоев. Код:
Сам arx и подробное описание здесь: ObjectARX. Расчленение и удаление proxy-объектов
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
zenon, это проще всего делать лиспом.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
zenon,
У меня грузится лиспом с проверкой версии Автокада. Но можно так Код:
0 - 2002 Автокад 6 - 2004,2005,2006 Автокад 7 - 2007, 2008, 2009 Автокад Вариант для 2004,2005 и 2006 Автокада Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Когда я впервые пощупал 2006. то сказал об этом-же на форуме почти такими-же словами. Но потом пощупал Tool Palettes и понял, что здесь доступ к редактированию макроса даже проще, чем в старом Customize. Жаль только, что длинные макросы здесь не вмещаются
|
|||
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
|
небольшой офтоп
Цитата:
или она только в 2009 появилась? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Димас, команда AecToACAD существует только в ADT. В чистом AutoCAD ее нет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 05.04.2007
Самара
Сообщений: 1,199
|
Строит qleader по трем параметрам, предварительно отключая ОРТО, а затем его включает. Простая и распространенная выноска для строительных чертежей
для русского акада ^C^Cорто откл _qleader \\\;;орто вкл для не русского акада ^C^Cortho off qleader \\\;;ortho on Назвал Супер выноска |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Кто рисует по растру знает, что периодически растр накрывает собой нарисованное и надо делать Draworder, что достает.
(чтобы перейти к теме о макросах придется вытерпеть небольшое вступление) Несколько лет назад здесь обсуждалась моя тема о наложении в-портов для создание невсплывающей заливки.. Эту идею (по подсказке, кажется, VK) я применил и к растру. Итак, в модели имеется растр. В листе он выведен во Vport. В листе-же на него наложен другой V-port с некоторым смещением одной или двух сторон, чтобы можно было открыть любой без Ctrl+R. В этот Vport выводится участок пространства модели, отстоящий от растра на круглое расстояние, пусть вправо на 1000 единиц. Рисовать надо в модели через дырку во втором V-porte. (Да-да, через дырку, но цель оправдывает средства!) прямо по растру. На самом деле в модели рисунок оказывается на расстоянии в 1000 правей растра. Оба впорта должны быть заблокированы и их слой тоже. И тем не менее нет-нет, а автокад поднимает наверх впорт с растром и он топит все; что нарисовано во 2-м в-порте. И Draworder здесь НЕ РАБОТАЕТ!. Вот макрос. мгновенно исправляющий положение ^c^c -_La;_U;ИмяслояВЭ;;_Cp;\0,0;10,0;_E;_P;;_M;L;;0,0;-10,0;_-La;_Lo;ИмяслояВЭ;; Кто заинтересуется; расскажу подложенную под макрос идею, она довольно интересная и понять ее навскидку вряд-ли возможно |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Может, подложить свинью и расшифровать все что делает этот макрос?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Profan, Почти. Здесь используются сокращенные названия команд для Английского Автокада
_-LA - _-LAYER _CP - _COPY _M - _MOVE
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Profan> чтобы макрос заработал, надо иметь два ВЭ один над другим. Кроме того, я списал макрос на бумажку и запустил на форум уже дома. Вполне мог и ошибиться. Проверю завтра на работе, скопировав его с форума. Как ты понимаешь, я бы не запустил макрос в тему не убедившись, что он работатет. Потому что хвастался перед всеми на работе и показывал как ловко он поднимает содержимое одного ВЭ над другим. Все-же главное в моем сообщении это как можно работать по растру. (раньше мне не приходилось рисовать по растру).
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Vova, VVA указал на причину "неработы" макроса не в английских версиях. Должно быть нечто типа:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
А разве обязательно для русского автокада называть англ. команду полностью? У меня было "_M" у тебя _Move и т. д. В одном только месте я забыл подчеркивание при "L" но не думаю, что Profan не подправил. Завтра проверю, нет-ли ошибки путем прямого копирования
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Profan, признаю - был неправ.
Vova, это обязательно - иначе команда не распознается. Димас, у меня только ADT установлены, поэтому ничего сказать не могу - возможно, начиная с какой-то версии эта команда встраивается.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Ага, значит списывая с бумажки сделал ошибку. Вот это в англ работает, здесь прямая копия ^C^C-LA;U;Z-VPORT;;_CP;\;0,0;1,0;E;P;;M;L;;0,0;-1,0;-LA;LO;Z-VPORT;;
Для русского надо черточки подставить и, получается, вместо сокращенных команд надо дать их полностью. Для команды -LA надо _-LA. Насчет точки (. _-LA). У вас что, часто команdы переопределяются? Тогда почему при других командах точки нет? Интересно, что спор вокруг макроса (что прямо по теме) а о работе по растру вопросов нет. Разве никто с ними не работает? |
|||
|
||||
Vova, В русском Автокаде локализуется и acad.pgp
Короткое имя команды ПЕРЕНЕСИ (_MOVE;M) - П; -СЛОЙ (_-LAYER; -LA) - -СЛ
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
zenon, макрос Кочеткова Андрея не будет работать, если все объекты, которые надо объединить - полилинии.
А чем тебе не понравился мой последний макрос отсюда: http://dwg.ru/f/showthread.php?t=22024 |
|||
|
||||
Так макрос Андрея будет работать и с полилиниями
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Теоретически последовательность вида
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Оно и было. Честно говоря, не очень понимаю - а нажать Tab и пробел (или Enter) - неужели сильно сложно?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Действительно, что я, пальцы переломал что ли?...
Просто захотел сделать в правом верхнем углу под кнопкой Закрыть минипанель из двух кнопок с крестиками: зеленая - сохранить и закрыть (макрос, понятное дело, ^C^C_qsave;_close), и красная - закрыть без сохранения....Мне показалось, так удобней будет |
|||
|
||||
Регистрация: 23.08.2007
Москва
Сообщений: 529
|
Цитата:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Андрей, хотел попробовать "брутфорсный метод", не работает что-то у меня _saveas при filedia=0 - виснет КАД. Я нашел, другой, тоже брутфорсоватый, работает. Не макро, но тем не менее....http://dwg.ru/f/showthread.php?t=949...8%F6%2A&page=2
|
|||
|
||||
промышл проектант Регистрация: 26.05.2005
Изовсехщелей
Сообщений: 323
|
Вопрос - есть некий макрос печати в файл
ну например вида Код:
вида Код:
Есть переменная tilemode по состоянию которой можно узнать о пространстве. НО - вот как сделать ветвление при использовании макросов? HELP.... |
|||
|
||||
Diman111, Можно DIESEL'ом
Вариант меню Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 12.09.2008 в 11:16. |
||||
|
||||
Это у тебя криво скопировалось в командную строку.
Попробуй так Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Книги Н.Полещука + берешь acad.mns от 2004 и в блокноте смотришь.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
помогите с командой,не догоняю что не так-^C^C-overkill;_all;;;_audit;_y;_purge;
после overkill застревает- в ком строке следущее-Command: -overkill Select objects: _all 1136 found Select objects: 2 objects were not in the current space. IGNORE=none Fuzz=0.000001, Optimize PLINES=Y, combine PARTIAL overlap=Y, combine ENDTOEND=Y Enter an option to change [Ignore/Fuzz/Plines/parTial/Endtoend] <done>: 0 object(s) deleted.
__________________
Errare humanum est, insipientis perseverare |
||||
|
||||
Оказался востребованным вариант для Автокада 2008 и выше, сбрасывающий ScaleLIST (см Зараза в 2008) вычищающий список масштабов от дюймов (можно перенастроить на метрические единицы)
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
dextron3, Твой не уберает дюймы в перечне масштабов
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
VVA, mnl-файл ИМХО загружается 1 раз при загрузке CUI. При открытии, например, 2-го файла косяк с масштабами не решится. Так что я думаю лучше запихать это в acaddoc.lsp.
Добавлено: А вот бы ещё это же, да без командных методов - вообще было бы замечательно... |
|||
|
||||
А cui грузится в каждый чертеж. У меня этот код как раз и находится в моем mnl файле
Цитата:
Оформил ввиде функции, хотя в загружаемом файле можно оставить только цикл foreach Код:
Фукнция и команда Код:
Код:
PS Это все справедливо для Автокада с версии 2008 и выше PPS Еще тема про масштабы LISP. Как программно создавать масштабы аннотаций
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 04.10.2011 в 09:41. Причина: Новый вариант |
||||
|
||||
проектировшик Регистрация: 01.01.2007
СССР
Сообщений: 5,143
|
VVA, А у меня бывало такое что масштаб 1:100, ставлю он совсем не тот выдает, другой совсем непонятный масштаб, а когда 1:101 ставлю то вроде как 1:100 но естественно не точный, как это вылечить?
Буду благодарен!
__________________
инженер проектировшик с опттом программа авто гад образование высшие |
|||
|
||||
dextron3, Лечи так: Меню Формат/Список масштабов/Изменить
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Лисп масштабы не правит, только удаляет или оставляет в живых
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Ничего не будет
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Еще один вариант, в продолжение #75. По идее должно работать и в предыдущих версиях, тупо очищая словарь. Скорость не замерял. В 2008 вроде работает корректно:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Подскажите, как в 1 макросе правильно прописать выполнение 2 и более лиспов. Или выпонение комманды автокад после выполнения лиспа. Лисп подгружен, лежит в путях доступа.
Тупо Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Возможно, проблема в самом лиспе. И, кстати, кто мешает полностью прописать все команды внутри лиспа?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
wetr, а что это за bbl2? Чего оно делает (если б я помнил все что написал...) - напомни.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
http://forum.dwg.ru/showthread.php?t=20808
Расставляет блоки на пересечении линий. Но в лисп я вносить изменения не очень хочу - испорчу только. А в принципе должен работать макрос, например Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
wetr, Если лиспы подгружены, то можно так
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, попытаюсь разобраться.
Цитата:
Потом выполнить лисп BBL2 Потом выполнить LAYUNISO. Меня смущает вот это Цитата:
(Я не могу предположить, что ты принял команду LAYISO за лисп) В общем не работает у меня. Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
В общем так оно раньше (до 2008) и было
Кусочек файла acetlayr.lsp Код:
Для 2008, 2009 Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, спасибо! Действительно все так и есть.
Я так полагаю вариант из №89 подойдет для запуска двух лиспов. Offtop: Я уже нарисовал колонну по твоему заданию для чайников, изучающих лисп. Сейчас изучаю функции AutoLISP
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Очень простой макрос, но мне очень помогает.
Для тех кто часто использует wipeout Отключить границы wipeout Код:
Код:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Часто встречаются вопросы о том что не видна прерывистая (или иная не сплошная) линия. И чще всего проблемма в масштабе линии. Чтобы долго не выяснять сделал макрос.
^C^Cсвойства;\;Лмасштаб;2.5;;;\;Лмасштаб;5;;;\;Лмасштаб;10;;;\;Лмасштаб;15;;;\;Лмасштаб;20;;;\;Лмасштаб;30;;;\;Лмасштаб;40;;;\;Лмасштаб;50;;;\;Лмасштаб;75;;;\;Лмасштаб;100;;;\;Лмасштаб;150;;;\;Лмасштаб;200;;;\;Лмасштаб;500;; теперь просто щелкаю по лиии пока не получу желаемый результат. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я бы искал / писал лисп... А так...
Код:
Вроде так.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
[quote=Кулик Алексей aka kpblc;306797]Я бы искал / писал лисп... А так...
QUOTE] Не уютно лиспу в моей старой башке, к сожжалению. А вообще было бы интересно получить инструмент динамического масштабирования линии. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Jonas, как пример: http://forum.dwg.ru/showpost.php?p=298124&postcount=47
dextron3, я код писал сильно выпимши (у жены денб рождения был) и "насухую". Сейчас попробую подправить...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Во, вроде так получится:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Отопление и вентиляция Регистрация: 31.10.2008
Москва
Сообщений: 445
|
мож кто подскажет скрипт ,что бы при щелкании на текст он в конце текста вставлял вторую строку, уменьшенной высоты и смещенную вверх(либо какие нить другие символы). еще если можно что бы в этом скрипте можно было бы задавать высоту шрифта второй строки.и если можно, то что бы можно было выделить несколько объектов.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Ни себе хрена... Оформляй полное ТЗ и новый топик в разделе "Программирование". Не забудь тлько показать, что сам делал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Krieger, а что же? Ну не лисп, это точно
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Может быть, спорить не стану
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Очень часто для пометки того что уже проверил приходится менять цвет примитива.
Сделал кнопку для замены цвета на синий: Код:
ну и цвет думаю тоже поменять не сложно Код:
Сделал ему так: Код:
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 27.04.2012 в 14:15. |
||||
|
||||
Светопрозрачные конструкции, проектирование Регистрация: 29.07.2008
Сообщений: 47
|
Всем привет.
Может кто знает как создать такой макрос: имеем несколько вхождений динамического блока в виде прямоугольника с одной операцией - полярное растяжение (стойки и ригели каркаса). Нужно выделить несколько вхождений блока и из ком. строки задать новое значение distance. Блоки должны растягиваться ортогонально (естественно только в одном направлении). Или подскажите как добраться из командной строки до свойства distance (доступно в палитре свойств). _-ch;_p; - не отображает это свойство. У меня локализованный AutoCAD 2006. |
|||
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
Шустрики
Это все лишние телодвижения. Вот нашел, в ruCADe есть такая команда, рисования "такого же" объекта. Причем она шурует все примитивы, в том числе блоки, тексты и т.д. Где бы лиспик на нее найти... Макросиком тут похоже не обойтись. |
|||
|
||||
Регистрация: 23.09.2005
СПб
Сообщений: 424
|
2Baldares
http://dwg.ru/dnl/4357 |
|||
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
ытя, ф точку!
Еще бы исходничек глянуть. Спасибо. Раньше что-то недоглядел в данлоаде. Offtop: У меня такое чувство, что это чей-то второй ник. Как может быть с 2005 года 115 сообщений. Удивительно. ытя, Вы меня извините, просто ИМНО |
|||
|
||||
Доброго времени суток всем форумчанам.Помогите написать макрокоманду для следущих действий: хочу создать кнопку чтобы вылезала страница в интернете. получиолось только ^C^C_start;firefox;...../т.е. дальше появляется окно браузера и в автокаде команды не действуют.Подскажите как быть?
__________________
Errare humanum est, insipientis perseverare |
||||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Вроде еще не было тут такого...
Установка угла атрибута в блоках в нуль, обрывать через esc: Код:
Код:
Код:
Код:
Код:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
Цитата:
[FONT="Courier New"]Command: _-Attedit Edit attributes one at a time? [Yes/No] <Y>: Enter block name specification <*>: Enter attribute tag specification <*>: Enter attribute value specification <*>: Select Attributes: 0 attributes selected.*Invalid*[/FONT] |
|||
|
||||
BIM, С#, AutoCAD, LISP Регистрация: 15.03.2006
Дуброво
Сообщений: 657
|
Назначил наиболее часто используемые команды на кнопки мышки. Если чего не хватает - пользуюсь панелями инструментов. Казалось бы, можно спокойно с кружкой чая в левой руке.
Ан нет! На escape периодически приходится жать, для чего требуется: 1. оторвать руку от ручки кружки 2. поднять 3. переместить её, чтобы указательный палец был над кнопкой Esc 4. нажать на кнопку 5. выполнить действия 1 - 3 в обратном порядке. Мне это жутко надоело, в результате сделал кнопку Esc на панели инструментов со следующим макросом: Код:
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
Krieger ну я не совсем деблоид и понимаю что автокаду надо мышкой показывать какие объекты я хочу изменить Сам дорубился что выбирать надо секущей рамкой, тогда атрибуты выбираются.... И вообще слишком много кликов приходится делать для достижения желаемого, по моему лучше использовать лисп.
|
|||
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
|
|||
|
||||
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Сообщений: n/a
|
Имеется макрос, преобразующие с помощью Express Текст в Мтекст и выставляющий выравнивание текста "Середина оп центру":
Код:
|
|||
|
||||
AlphaGeo, Ширина - это 41 поле mtexta. Без проверок
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 27.01.2009 в 10:30. |
||||
|
||||
AlphaGeo, Там в макросе очепятка. Исправил #140
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Строит вертикальную или горизонтальную xline на расстоянии от указываемой точки. Расстояние ввожу с клавиатуры, предварительно указав мышкой направление. Можно нарисовать несколько линий, каждый раз вводя расстояние от предыдущей.
^C^C_Xline;_h;_move;_last;@;\; ^C^C_Xline;_v;_move;_last;@;\; |
||||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
|
|||
|
||||
acyxou, Посмотри переменную MENUECHO (в меню переключатель ^P)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер Регистрация: 21.08.2007
Сообщений: 596
|
Подскажите. Не могу понять почему включается дин ввод. Написал простой макрос для вставки блока C^C^_-insert;1122;\;;; и назначил горячую клавишу. Так вот при первом нажатии дин ввод включается при повторном нажатии выключается. Что надо сделать чтобы он не включался. Замучился уже.
__________________
Склероз нельзя вылечить, но о нем можно забыть. (Ф. Раневская) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Может, макрос переписать на более верный вариант?
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 21.08.2007
Сообщений: 596
|
Спасибо все работает!!! Неужели проблема в точке?
__________________
Склероз нельзя вылечить, но о нем можно забыть. (Ф. Раневская) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Djonikbishkek, проблема была не в точке. Обрати внимание на символы "^".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А osmode не может вмешаться?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 21.08.2007
Сообщений: 596
|
Вот блин. Точно. Куда только глаза смотрят. спасибо!!!
__________________
Склероз нельзя вылечить, но о нем можно забыть. (Ф. Раневская) |
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
AlphaGeo, у тебя было лишнее "", надо так.
Код:
Код:
Последний раз редактировалось Makswell, 03.02.2009 в 11:34. |
|||
|
||||
Сообщений: n/a
|
Спасибо большое! Как всегда на такой мелочи попадаюсь...
Цитата:
|
|||
|
|||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Добавлю ещё.
Анализ макросов с использованием defun я рекомендую делать так. Скопировать макрос в блокнот. В блокноте преобразовать макрос ^C^C(defun C:Имя_Псевдокоманды () <код_лиспа>);Имя_Псевдокоманды в строку (progn <код_лиспа>) и запустить это выражение в ком. строке Автокада. Для твоего случая: Цитата:
Цитата:
Добавлено: Цитата:
Цитата:
|
||||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Не получается!
Хочу написать макрос для динамического ввода проката используя программу В. Кондрата "Прокат". С ком-строки работает - _prokat;_explode;?;последний;;выдавить;?;последний; Начинаю прописывать и пробовать и на этапе - ^C^C^_prokat;\\_explode;?;Последний; - глохнет. пишет: Команда: prokat Точка вставки : Угол поворота : Команда: _explode Выберите объект: ? *Неверный выбор* Требуется точка или Последний/Все/Группа Подскажите пожалуйста! |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Такие вещи надо делать самому. Как? Начни с http://dwg.ru/art/2 , есть книжка на эту тему в DL
Вставка блока обсуждалась в 150-х постах. И где-то здесь был хороший совет: вот ежели не получается, тогда сюда с вопросами |
|||
|
||||
Регистрация: 19.04.2007
Сообщений: 191
|
Господа проектировщики подскажите пожалуйста в чем может быть дело.
Макрос для поворота атрибута в блоке не работает (прерывается автовыполнение после выбора атрибута и дальше уже необходимо забивать руками) на 2009 Acad'e хотя на 2006-2008 все работало. Вот сам макрос: -Attedit;;;;;\_a;0;_n; |
|||
|
||||
Регистрация: 19.04.2007
Сообщений: 191
|
|
|||
|
||||
Сообщений: n/a
|
LSN, а как ты завершаешь выбор объектов? Нажимаешь правую клавишу мыши? А может, она (ПКМ) настроена не так, как на 2008?
Добавлено: В любом случае, мне кажется, проблема именно в процессе выбора объектов, а не в команде ATTEDIT или ее опциях. Вот только как решить эту проблему? |
|||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Я только начинаю подбираться к макросам. Посмотрел книгу "...Язык макрокоманд и создание кнопок...", но там не нашёл то, что мне нужно. Там, как я понял только для команд, которые "на поверхности", а как быть с теми что "по-глубже" в AutoCADе. Например, Перспектива : сначала
нужно вызвать "3М орбита", затем клик правой кнопкой, затем выбрать "Проекция" и потом уже по стрелке на "Перспективная". Если не затруднит выложите, пожалуйста, уже готовый вариант макроса для отдельной кнопки "Перспективная проекция" . Мои варианты не работают: ^C^C_perspective; '_3dorbit =*_perspective; '_3dorbit _perspective; |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Что ты называешь На поверхности? Там есть коды объемом до 8 строк. Кроме того в Заключение написано следующее:
Автор не ставил своей задачей предложить все команды, представленные в книге, каждому читателю..... Главной задачей является научить пользователя... самостоятельно строить команды "под себя" Вот и пробуй строить. |
|||
|
||||
пытался своими силами создать макрокоманду
вставка блока через середину между точками но никак не могу избавится от запроса ввести масштаб и угол поворота маштаб 1, угол 0 и как прописать если я захочу поменять мастаб или угол *^C^C_insert;1122;_m2p;;; |
||||
|
||||
To AlphaGeo
Значения масштаба и угла поворота по умолчанию: *^C^C_-Insert;1122;_m2p;\\;;; огрмное спасибо в конце вроде лишняя точка с запятой стоит |
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Цитата:
Это всё равно, что проходя мимо утопающего, сказать: а тонешь - ну-ну, давай уж сам, тони самостоятельно!.. ...Смысл изучать книгу, когда в ней нет того, чтобы научиться создавать именно те команды, которые нужны мне. ...Vova, проще было бы ответить: я не знаю, как создать такую кнопку...честнее... |
|||
|
||||
Регистрация: 06.04.2009
Сообщений: 1
|
На счет кнопки перспектива, не знаю какая у вас версия, и правильно ли я вас понял, но иногда помогает такой подход: откройте все команды в разделе Customize User Interfase и внимательно просмотрите пиктограммы, там вы найдете очень много интересного, например кнопку перспектива с очень большим макросом:
$M=$(if,$(or,$(and,$(eq,$(getvar,"tilemode"),0),$(eq,$(getvar,"cvport"),1)),$(eq,$(getvar,"blockeditor"),1)),^C^C_perspective,$(if,$(eq,$(getvar,perspective),0),^C^C_perspective 1,^P(princ)^P)) версия 2009 английская. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Цитата:
|
|||
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
|
||||
Подскажите как сделать кнопку чтобы загружалась из автокада интернет страница http://forum.dwg.ru/.Браузер FireFOX. Заранее благодарен.
__________________
Errare humanum est, insipientis perseverare |
||||
|
||||
Hans667, Установить firefox браузером по умолчанию и оставить browser
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Почему то подгрузил сейчас свой CUI файл (удаляю его ибо не разрешается), чтобы кнопку написать,а он мне пишет что тот -райт протекшн. И рид онли еще..чего такое произошло то?Все работает,а изменить нельзя
__________________
Errare humanum est, insipientis perseverare |
||||
|
||||
да это я на самом деле чтобы сразить наповал начальницу- мне не двг нужен был а русско-финский словарь.Я просто до этого спрашивал как сделать,все молчали,а как до двг дело дошло,так все сразу знают
З.Ы. А почему CUI то не редактируемым стал?
__________________
Errare humanum est, insipientis perseverare Последний раз редактировалось Hans667, 07.04.2009 в 14:56. |
||||
|
||||
zenon, Почитай еще здесь же, начиная с поста #70
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Дело в том, что прежде чем задавать вопросы на уважаемом форуме, я поискал во встроенном Руководстве пользователя к AutoCADу 2006
(офиц. русская версия - справка на русском), по методике построения макросов там страниц 20-30. Но то, что мне нужно не нашёл. Затем воспользовался поиском по форуму и нашёл много ссылок на упомянутую книгу. Скачал её. Но в ней обнаружил лишь то, что есть в Руководстве, только размазано на 300 страниц. А того, что мне нужно в ней тоже нет...(Меня интересовало: как сделать отдельную кнопку "перспектива", как изменить по умолчанию путём непосредственного ввода значение системной переменной LENSLENGTH, как в команды "быстрый выбор" и "фильтр" добавить критерий "по материалу" и д.р.)... AlphaGeo и Ser-grey, спасибо за участие, но к сожалению эти макросы не сработали в AutoCAD 2006 офиц. русская версия... |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
victor.m4, а ты AutoCAD-то знаешь? Для создания собственных макросов необходимо знать команды AutoCAD'а и их опции. Надо уметь создавать сами кнопки. И надо иметь терпение при проверке работы макроса.
Знаешь ли ты, как включить перспективу без употребления команды "_3dorbit" ("3-Орбита")? Знаешь ли ты, что "материал" не является в AutoCAD 2006 свойством объекта? Знаешь ли ты, что для того, чтобы изменить значение системной переменной, надо сначала набрать на клавиатуре ее название и нажать Enter? Вот пример одной из моих программ для включения перспективы: Код:
Код:
Последний раз редактировалось Profan, 07.04.2009 в 20:04. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Для сведения: чтобы создать команду Copy-rotate я потратил 2 месяца, тупо разглядывая в метро листок с вариантами макроса, который не хотел работать, пока не понял, что надо сделать копию саму на себя. После этого принял решение написать брошюру. И она вылилась в книгу. Еще для сведения. На форуме, который тогда реставрировался, я предложил создать раздел Макросы, полагая, что их все знают и применяют, кроме меня. Раздел вскоре закрыли, так как не было ни сообщений, ни ответов на мои вопросы. Последний раз редактировалось Vova, 07.04.2009 в 20:56. |
|||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Profan
...Вообще, я работаю в 3D-Constructore 3.5. Это AutoCAD 2006 плюс параметрическое ядро от "Элекран-софт". Приложение, которое позволяет более быстро, чем в чистом ACADе проектировать мебель, создавать чертежи и спецификацию более автоматизированно и интеллектуально. Параметрика позволяет задавать условия изменения размеров как отдельных деталей, так и условия взаимодействия деталей в сборках. Достигается это путём ввода среды переменных в проектирование, а также путём использования математических и тригонометрических функций и многих других фич...Классная вещь, обожаю его...3D-Constructor существует как отдельный профиль в AutoCADе, называемый КМ. Путём экспорта из файла acad.cui в KM.cui я добавил в него многие ACADовские кнопки и панели... Но версия 3D-Constructor 3.5 работает только максимум с AutoCAD 2006... А в нём, вы конечно же знаете, рендеринг слабоват - невозможно добиться мягких теней... А хотелось бы получить более качественную визуализацию в 3DS MAX... Для последующего импорта dwg файла в 3DS MAX необходимо предварительно присвоить в 3D-Constructor-е трёхмерным объектам с различными материалами различный цвет-номер. Но в 3D-Constructor-е практически все основные трёхмерные объекты лежат в одном слое (слой KM_WORK и изменить это умолчание программы нельзя!). Вот для быстрого автоматизированного присвоения цвета и нужен был ФИЛЬТР по Материалу (которого нет в AutoCAD 2006), а вручную присваивать цвет трёхмерным объектам (которых в проекте более 200) это гемор...Так же для визуализации нужна отдельная кнопка "Перспектива" и возможность непосредственным вводом задавать фокусное расстояние. Просто когда уже имеешь качественную конструкторскую документацию хочется ещё больше -- качественную трёхмерную визуализацию... Человеку всегда хочется больше, чем есть... Про системные переменные вы верно сказали, но они ещё бывают с признаком "Только чтение", т.е. непосредственным вводом значения в командной строке изменить её нельзя. Так вот LENSLENGTH именно из таких...Просто почитав о макросах и решил, что можно немного модернизировать AutoCAD 2006. Но видимо здесь нужны более глубокие знания программирования...А лекций мне читать не надо, я просил ответа на свой вопрос, а не про изобретение "велосипеда" ... P.S. Видимо придётся снять свои вопросы, ответа на них я так понял нет... Сейчас поставил AutoCAD 2009 офиц. русская версия. Да-а-а... Оказывается Autodesk уже давно сделал то, что мне надо... И отдельная кнопка "Перспектива", и задание фокусного расстояния, и ФИЛЬТР по Материалу и рендер с глобальным освещением уже приближается к 3DS MAX... Фантастика... Видимо кто-то уже попросил производителя о моих "глупостях" и он внедрил это стандартно... Спасибо Autodesk-у... Что ж теперь буду не в 3DS MAXе импортировать, а просто открывать файл dwg 2006 в AutoCAD 2009, гораздо проще... для Vova Тогда вообще не вижу смысла давать ссылки на эту книгу - на дворе уже 2009 год... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А то, что она еще актуальна, уже не важно?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Насчет того, насколько быстро устаревает автокадовская литература. Здесь есть специальная тема про книгу (если интересуешься, найду), там показано, сколько глав устарело. Всего одна, там не показана новая CUI. Зато этот пробел восполнен статьей на главной стр. нашего форума. Вот и прикинь, надо-ли давать на книгу ссылку |
|||
|
||||
Регистрация: 07.02.2009
Сообщений: 19
|
Здравствуйте!
Цитата:
Улучшенный макрос для команды "break" отлично работает в 2010 (конечно англ.) - т.е. не вырывает кусочки при повторе команды с помощью правой кнопки мышки. А вот в 2009 русс. - вырывает при первом же обращении к команде. В чем может быть проблема? (Догадка - Может макрос написан для англ.версии када?) Уточнение - 2009 и 2010 стоят на разных машинках. Спасибо! Последний раз редактировалось Gecuba, 12.04.2009 в 17:54. |
|||
|
||||
Регистрация: 07.02.2009
Сообщений: 19
|
AlphaGeo, спасибо большое за помощь! Теперь работает!
Да, трудно неучем быть... ПС А зацикливал кто-нибудь эту команду?.. Вставка "*" перед макросом не помогла. Последний раз редактировалось Gecuba, 12.04.2009 в 19:16. Причина: Пришла в голову еще одна дилетантская идея... |
|||
|
||||
Сообщений: n/a
|
Цитата:
Чтобы использовать зацикленный макрос, его следует записывать в следующем виде: Код:
|
|||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
День добрый, вопрос глупый и простой, но что то не нашёл а надо срочно.
Сделал команду ^C^Cреген;реген (для своего дин блока, так как его надо дважды регенить что бы получить расчёт) Но на большом чертеже понятно что регенить надо только один объект, либо выбрав, либо последний. В автокаде команды Реген и Всереген (2010 русский) Не могу найти команду коотрая бы регенерировал только один объект. Подскажите научить помогите ) (возможное подчеркнуть)
__________________
Live as though tomorrow you will die, Study as though you will live eternally. |
|||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
Спасибо! Эту команду я справшивл в "динамических блоках".
Терь напишу нормально этот макрос. ) Цитата:
Посветуете?
__________________
Live as though tomorrow you will die, Study as though you will live eternally. Последний раз редактировалось Juss_00, 18.05.2009 в 11:44. Причина: Вопрос |
|||
|
||||
Инженер-строитель Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67
|
Здравствуйте . А можно ли создать макрос , удлиняющий отрезок на указанную величину сразу в обе стороны , т.е. как по команде _lengthen DElta , указываешь отрезок , но в обе стороны ?
__________________
Andrey |
|||
|
||||
Сообщений: n/a
|
Цитата:
Код:
|
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Цитата:
Код:
Код:
|
|||
|
||||
Сообщений: n/a
|
Цитата:
Добавлено: Сейчас еще раз проверил, у меня работает... Никаких запросов нет. Последний раз редактировалось AlphaGeo, 18.05.2009 в 15:01. |
|||
|
||||
Павлов Андрей, Вообще-то ты сказал спасибо одному и тому же человеку . Но лучше дважды сказать, чем дважды промолчать.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
zenon, то же самое. (
В общем придумал как решить это. КОгда те блоки начинал делать только взялся за дин. блоки, теперь избалю от ссылки на "поля" и сделаю на "натуральные" объекты должно будет помочь. AlphaGeo, не тот что вставил сюда, из полу рабочей кнопки взял первый раз обновлял, второй раз просил выделить объект. У меня не получилось дважды регенить, обновлять последний объект, может только если применить фиктивное копирование получится. Дома попробую. =)
__________________
Live as though tomorrow you will die, Study as though you will live eternally. |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Juss_00,
у меня все обновляет попробуй может так пройдет Цитата:
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
Само собой, но тестирвоал специально выбирая, разные объекты и перемещая несколько раз и его и другие объекты и с другими командами. Команды типо Копировать, переместить и прочее раотают нормально. А команды реген и обновитьполе нет, после первого выбора второй раз не находят последний объект.
__________________
Live as though tomorrow you will die, Study as though you will live eternally. |
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Для расчетов на прочность в среде Автокада не заменима команда _massprop но значение получаются в миллиметрах (поскольку модель в мм.)
а для дальнейших расчетов в основном удобней в сантиметрах (например в программе Александра Анисина "KarkasA" http://www.karkasa.narod.ru/). Приходиться делать следующее: - выполнить сечение 3Д тела, - выдавить на 10, - масштабировать на 0,1, - установить ПСК в ентр тяжести, - и затем применять _massprop, - после всего удалить не нужное. Чтобы облегчить жизнь выстрадал макрос - Код:
После завершения команду в буфере обмена находиться сечение которое можно использовать для протокола, памятки и пр. Для работы макроса нужно: - чтобы расчетное сечение было в плоскости XY, - если сечение составное - все объединить, - должна стоять Лис-программа по отрисовке шара в цнтре тяжести. К сожжалению не помню автора и где брал, поэтому выкладываю здесь. Код:
Все работает но если в сотавном сечении тела не касаются (хотя и объединяются), то считается только одно тело. Причина в том что после выдавливания сечения (хотя оно и едино) получаем отдельные тела. Будьте добры профи, может можно это решить? И еще вопрос, можно ли как то извлекать данные из текстового окна програмно? Последний раз редактировалось Кулик Алексей aka kpblc, 16.06.2009 в 14:47. |
|||
|
||||
Juss_00,
1. _change (ИЗМЕНИТЬ) 2. _chprop (СВОЙСТВА)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
Подскажите зачем в некоторых макросах пишут
Цитата:
А также в Цитата:
__________________
Live as though tomorrow you will die, Study as though you will live eternally. |
|||
|
||||
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер Регистрация: 11.12.2007
Москва
Сообщений: 295
|
За
Цитата:
А из первого абзаца я вроде ничего и не спрашивал. ) Кстати, такой вопрос а можно ли выполнив копирование многих объектов потом все их выбрать автоматически? Тип Last но на несколько объектов. (вставлялись вместе)
__________________
Live as though tomorrow you will die, Study as though you will live eternally. Последний раз редактировалось Juss_00, 29.06.2009 в 16:22. Причина: Появился вопрос |
|||
|
||||
Регистрация: 22.04.2004
Сообщений: 269
|
|
|||
|
||||
Прошу помочь написать макрокоманду, чтобы:
[FONT="]_wipeout[/FONT] включал или отключал контуры в зависимости от предудущего состояния. p.s. прошу не ругатся, сам долго пытался понять как сделать, но увы не понимаю как прописать условие. |
||||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Krieger огромное спасибо. пойду разбираться как пользоваться лиспом
|
||||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Нафига? Тогда уж кад просто закрой.
Цитата:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
|
|||
|
||||
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 15.10.2009
Сообщений: 36
|
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Именно эта литература есть в Download
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Все же получилось как желалось.
Код:
-выбираем участок балки любой кофигурации в то числе составной , - указываем (курсором) точку расчетного сечения (длжна лежать в пределах прямоуголника выбора), - получаем массовоинерционные характеристики, - жмем Enter, - из буфера можем вставить сечение. Для работы макроса должен быть Лисп multicentroid2/ Код: Код:
|
|||
|
||||
(ГС, ТМ, ОВ) Регистрация: 14.03.2008
Харьков
Сообщений: 101
|
Уважаемые гуру!
У меня есть акадовский файл (библиотека арматуры) с элементами схем (арматура и пр.). Хочу сделать так, чтобы работая в одном файле можно было нажав "волшебную кнопочку" открыть ту самую библиотеку арматуры. Пытаюсь сделать это след образом: в CUI создаю новую кнопку и пишу для нее макрос - ^C^Cfiledia;0;_open;L:/архив/Шаблон.dwg; Ничего не получается: в командной строке отображается - Команда: filedia Новое значение FILEDIA <0>: 0 Команда: _open Команда: L:/архив/Шаблон.dwg Неизвестная команда "L:/АРХИВ/ШАБЛОН.DWG". Для вызова справки нажмите F1. Мож кто-нибудь сталкивался с подобной задачкой и нашел ее решени? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Aazizv, а ты это смотрел?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
конструктор Регистрация: 13.03.2009
Беларусь
Сообщений: 15
|
"Или в автокаде:
Рисуй дугу по трём точкам и подгоняй её потихоньку к нужной длине, смотря в окно свойств, как только подгонишь - смотри радиус" Этот способ и использовался. Хотелось бы узнать более красивый способ-если конечно он есть. |
|||
|
||||
Проектировщик Регистрация: 03.04.2008
Питер
Сообщений: 48
|
Помогите пожалуйста разобраться с простым макросом:
(переносит выбранные объекты на заданный слой lt001) ^C^C_-layer;_set;lt001;;_laycur; С линиями работает нормально, вот только почему-то при такой операции с размерами они не меняют цвет по слою. версия ACAD 2008.
__________________
Sanya |
|||
|
||||
Проектировщик Регистрация: 03.04.2008
Питер
Сообщений: 48
|
так и настроено. и в свойствах так отображается. вот только не меняется отображаемый цвет размера.
да, притом если "потаскать" размер за ручки, цвет становится как надо. regen и redrawall испробованы, не помогают.
__________________
Sanya Последний раз редактировалось Sanya1310, 12.01.2010 в 16:18. |
|||
|
||||
мелкий местный хищник Регистрация: 20.10.2009
замкадье
Сообщений: 72
|
С "поблоком" тоже должно работать. Скорее всего в текущем разм. стиле конкретный цвет задан. Вот он и не меняется
Апаздал, однако Глупость спрошу. А почему у тебя в панели свойств слой wc004, а не lt001? Последний раз редактировалось Буджум, 12.01.2010 в 16:18. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
подскажите уважаемые:
1.сделал команду ^C^C_маскировка;к;в 2.повесил ее на кнопку собственно вопрос, как сделать, что бы ее можно было вызывать клавиатурным сокрацением (не ctrl+, а типа мскв??? пока вышел из положения в AUTOCAD 2010 через рекордер операций, но думаю это не есть красиво |
||||
|
||||
Сообщений: n/a
|
Цитата:
Код:
|
|||
|
||||
Сообщений: n/a
|
Цитата:
Я просто не подумал, что "именованные" макросы AutoCAD "помнит" только после одного запуска самого макроса и до завершения работы в текущем сеансе программы. А чтобы команды загружались сразу - это только через создание файла *.lsp и добавление его в автозагрузку. |
|||
|
||||
gomer, Спасибо!
Offtop: то что надо работает. особенно Код:
только вот поправил : Код:
Обновление атрибутов, работает криво: Код:
AUTOCAD 2010 Последний раз редактировалось doctorraz, 28.03.2010 в 12:10. |
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
А ответа на вопрос faeto1982 про именованный фильтр нет? (пост 280)
Тоже интересует, чтобы не появлялось диалоговое окно "фильтры выбора объектов", а сразу нужная опция из этого окна автоматически подставлялась в макросе. Как это делается? |
|||
|
||||
Пост #281 дает загадочный (для неподготовленного) и вполне исчерпывающий (для людей опытных) ответ
Вообще, как мне кажется, активировать именованный фильтр без запуска диалогового окна невозможно. А в посте #281 дается альтернативный вариант - все необходимые параметры (по которым фильтруем) указываются при помощи DXF-кодов. |
||||
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
Это есть красиво! Записанные макросы (файлы *.actm) складывайте в папку с лиспами и добавьте ее в пути поиска Автокада (OPTIONS -> Files -> Action Recorder Settings -> Additional Actions Reading File Locations). От туда макросы будут работать во всех файлах
__________________
Users are not stupid, they are busy. |
|||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Цитата:
Создав свою кнопку и в свойствах вставив макрос: ^C^C^P(defun selectobjects( / ss )(setq ss "_A" (ssget '((0 . "LINE")))) (sssetfirst ss ss));selectobjects -AutoCAD 2006 выдаёт ошибку. О DXF-кодах в справке к Автокаду ничего нет. Где смотреть то? Чтобы не гадать, вот что мне нужно: К примеру, в командной строке ввожу 'фильтр. Выскакивает окно "Фильтры выбора объектов". Выбираю фильтр "Размер", добавляю его в список. Нажимаю кнопку "Применить". Окно закрывается и рамкой выбираю объекты. В результате выбираются только размеры, нажимаю enter. Так вот как написать макрос к отдельной кнопке, чтобы не выскакивало окно "Фильтры выбора объектов" (и не нужно было выбирать конкретный фильтр), а сразу пользователь перемещался к шагу выбора объектов рамкой? Т.е. критерий ("Размер") сразу прописать в макросе. Как это сделать, подскажите, пожалуйса? Последний раз редактировалось victor.m4, 06.04.2010 в 18:49. |
|||
|
||||
|
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Do$, спасибо большое. Ваш вариант работает, но только как отдельная команда. А мне нужен аналог именно ком. для прозрачного вызова, т.е. 'фильтр "размер" должен выполняться во время выполнения основной команды.
Объясню полнее. У меня была своя кнопка с макросом: ^C^C(km_dimsreda) km_dimord_base X;\'фильтр; - это в программе 3D-Constructor 3.5 (мебельное приложение к Автокаду)..Вот вместо прозрачной 'фильтр и нужно подставить ещё макрос выбора размеров (без диалогового окна "Фильтры выбора объектов"). Если подставляю ваш макрос, то основная команда прерывается. А этого быть не должно. Т.е. фильтр по размеру является дополнением основной команды. Как это реализовать? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
1. Прочитать книгу В.Света "AutoCAD : Язык макрокоманд и создание кнопок" (по-моему, даже в Download была).
2. Попытаться снять ^C^C перед началом макроса.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Здесь, похоже, недоработка разработчиков приложения. Если программа предназначена для обработки размеров (судя по названию), то кроме размеров ничего не должно выбираться.
"Фильтр без диалога" при помощи autolisp-функции ssget можно применять для стандартных команд autocad, например, для удаления только размеров: Код:
Для приложений от сторонних разработчиков такие конструкции нужно пробовать медотом "тыка" и не факт, что удастся заставить работать. Пробуйте. Если не получится - попытайтесь достучаться до разработчиков приложения, чтобы они добавили фильтр в тело программы. Или не задумывайтесь и работайте как раньше |
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Do$, спасибо за участие. Но увы, пока мне не удаётся реализовать команду.
Попробую поискать литературу по LISP'у, может что вычитаю. P.S. У разработчиков 3D-Constructor в команде всё правильно. Просто в ней есть ещё разные опции (но вот для "подопции" опции выделения сразу всех размеров нет). Это я сделал отдельные кнопки под конкретные опции, в которых требуется выделение размеров. Но пока кликов мыши многовато. Хотелось бы сократить. P.P.S. По-моему дописывать в мою исходную команду: ^C^C(km_dimsreda) km_dimord_base X;\'фильтр; вместо "'фильтр" ещё какой-нибудь именно LISP - это вообще нельзя!... Обратил внимание в командной строке выскакивает: "Повторный вход в LISP невозможен ". Может как раз наоборот можно только на языке макрокоманд... Засада... Надо бы почитать правила. Последний раз редактировалось victor.m4, 08.04.2010 в 00:53. |
|||
|
||||
Так правильно же! Выполняется пользовательская LISP-функция km_dimsreda. В этом случае можно запускать только функции, работающие в "прозрачном" режиме.
Попробуйте загрузить файлик с таким кодом: Код:
|
||||
|
||||
Регистрация: 22.12.2008
Сообщений: 17
|
Do$, сохранил ваш лисп, прописал к нему путь, загрузил в программу.
Затем подставил вместо 'фильтр 'dimfl. Нет, что-то не то. Не воспринимает исходная программа 'dimfl также как 'фильтр. Если ^C^C(km_dimsreda) km_dimord_base X;\'dimfl; то размеры выделяются, но снова следует запрос "выберите объекты", как будто и не было выделения. Если ^C^C(km_dimsreda) km_dimord_base X;\'dimfl;; то этап выбора "только размеров" вообще пропускается. Если ^C^C(km_dimsreda) km_dimord_base X;\'dimfl;Последний; ^C^C(km_dimsreda) km_dimord_base X;\'dimfl;Предыдущий; то результат как в первом случае. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Без глубинного разбора, поэтому на гарантированную работу не претендую. Может, попробовать так?
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Печально, но дело обстоит так - "обернутая" во vlax-add-cmd функция перестает возвращать результат, "подсвеченный" выбор объектов сбрасывается после завершения работы "прозрачной" команды (правда, он сохраняется в качестве последнего сформированного набора - но толку от этого немного).
Какой смысл тогда в созданных таким образом "прозрачных" командах |
||||
|
||||
Регистрация: 12.07.2008
Сообщений: 211
|
Приветствую всех! Помогите кто может, пожалуйста...
Сделал макросы на создание аннотативных размеров такого вида: Код:
Хотел по образцу проделать то же самое и с DIMANGULAR, DIMRADIUS и DIMDIAMETER: Код:
Код:
Есть ли какой способ решить эту проблему? Тут главное чтобы стиль создавался в файле в котором этого стиля еще нет.... |
|||
|
||||
acyxou,
попробуй в макросе заменить "AMC$2" на (strcat "AMC" (chr 36) "2")
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
AutoCAD Регистрация: 26.07.2007
Москва
Сообщений: 1,064
|
Подскажите, как написать макрос для открытия проводника с заданной открытой папкой?
Думаю, должно быть примерно так: Код:
Проблема в обратной косой черте '\' в строке пути. Ее лисп воспринимает как управляющую команду. Пробовал \\, /, //. Добавлено: в чате Makswell и Meknotek подсказали: получилось так: Код:
Последний раз редактировалось Vildar, 10.08.2010 в 15:16. Причина: исправил код |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А если так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Нда... Привычка к лиспу делает свое черное дело
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я бы вообще сделал отдельный лисп типа:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Нажми Ctrl + R, набери cmd. В окошке набери set и нажми Enter. Все переменные машины, до которых ты можешь добраться через getenv, будут перечислены
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.12.2006
Калининград
Сообщений: 38
|
Подскажите пожалйста....
Пока что учусь создавать макрокомманды начал читать книгу Язык макрокомманд и создание кнопок.... дошёл до функций с калькулятором встал просто вопрос как с помощью макрокоманды просто начертить линию между двумя линиями с помощью привязок Nea (ближайшая). Последовательность действий должна быть такая 1.Вызывается команда _line Enter 2.'_Cal Enter 3.p1=nea Enter и указывается первая линия 4.'_cal Enter 5.p2=nea и указывается вторая линия Enter Всё линия построена. Теперь всё записываю в макрос ^C^C_line;'_cal;p1=nea;'_cal;p2=nea Но при выборе второй линии квадратик привязки не появляется?((( что может быть? P.S. Получилось вот таким образом ... Код HTML:
^C^C_cal;p1=nea;\;p2=nea;\;^C^C_line;'_cal;p1;'_cal;p2; Последний раз редактировалось МихМих, 13.08.2010 в 13:11. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ИМХО:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Сообщений: n/a
|
А команда _LINE как в AutoCAD'e работает? Она ведь всегда после указания начала и конца отрезка предлагает рисовать следующий отрезок с началом в конце предыдущего. Вот и здесь так. Просто добавь в конце второй «энтер», т.е. еще одну точку с запятой поставь.
|
|||
|
||||
Регистрация: 06.12.2006
Калининград
Сообщений: 38
|
Цитата:
Цитата:
Попробовал и без _none работает...... для чего оно может понадобиться? Последний раз редактировалось МихМих, 13.08.2010 в 13:39. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Тьфу, дура я дура!
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.12.2006
Калининград
Сообщений: 38
|
Кулик Алексей aka kpblc
Всё началось вот с этого макроса из книги В.Свет ...измерение угла двух линий за 2 щелчка. Я знаю что есть опечатки тут код уже с исправленными опечатками...... ну не работает ни в какую перепробовал уже ВСЁЁ!!! где ж загвоздка.... autocad2008 rus Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
int -> пересечение
appint -> кажущееся пересечение
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.12.2006
Калининград
Сообщений: 38
|
Если начертить две линии а потом подействовать на первую нарисованную линию вот этим макросом ^C^C_line;'_cal;P1=nea;\_Appint;@; то получим точку пересечения этих линий..... подскажите как сохранить данную точку например на p3 . Нужно чтобы макрос автоматом сохранял координаты данной точки на p3
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Уже неоднократно писал, начиная от версии 2006, кажется, калькулятор в некоторых макросах стал сбоить. Я стал исследовать и даже на форуме приложил картинку, как сбоИт. Но сейчас не найти. Попробуй так: начни испытывать макрос с начала, удалив большую его часть, затем добавляй по знаку-два. Где-то под большим зумом выдается крючек в построениях, и он и дает сбой.
В книге есть опечатки, их список есть на Caduser.ru Но бОльшая часть макросов дана в книге в виде скрина с экрана, (специально так делал, чтобы избежать опечаток) а следовательно они однозначно работают. Кроме мест с калькулятором, но не все там дает сбой |
|||
|
||||
Регистрация: 06.12.2006
Калининград
Сообщений: 38
|
Подскажите пожалуйста например в книге Света есть команда
^C^C_-insert;H3100;\;;\_cal;P1=@; код рабочий... так вот тут старнность \_cal при каких обстоятельствах функция _cal работает совместно с \ (ручным вводом) ? например при команде _copy не прокатывает..... |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
День добрый.
Этот макрос у меня (AutoCAD 2010 Rus) не работает. В командной строке после ввода значения радиуса 0.0 команда просто прерывается и не предлагает выбрать две линии. Запускаю команду СОПРЯЖЕНИЕ. Все в порядке, а в макросе проблемы. |
|||
|
||||
Сообщений: n/a
|
Цитата:
Код:
Прошу прощения, написал сообщение не испытав. Не работает. Даже так вот не работает Код:
Последний раз редактировалось AlphaGeo, 22.11.2010 в 16:41. |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Не принципиально, просто интересно, почему не работает:
^C^C_fillet; - вызов команды _R; - вызов параметра "радиус сопряжения" 0.0; - установка радиус в 0, после которой, по идее, Автокад должен предлагать сделать выбор объектов. Если делать последовательно "руками", то предлагает, а в макросе не предлагает. Вот и возникает вопрос: ПОЧЕМУ? |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Есть две интересные посылки для обсуждения.
1. В моем вариянте 341 буква "U" поставлена для того, чтобы команда работала многоразово. ЗАметьте, "u' а не "m", как предписывается опциями команды англ автокада. Буква "U" была в прежних версиях, но с успехом работает в новых, в отличие от "M". 2. Вижу во многих макросах подчерк перед опциями в английском (чтобы работали в русском). А подчеркивание в алиасах, на форуме говорилось, не работает. Недоработка? |
|||
|
||||
Проектировщик свиноводство Регистрация: 21.08.2003
Сообщений: 2,260
|
Цитата:
Еще один недостаток алиасов - невозможность прописывать макросы прямо там. А было бы здорово. (Но об этом на форуме, кажется, когда-то уже говорилось) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я думаю - особенности локализации. Которые определяются Autodesk.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Это не особенности локализации, а особенности рудимента. Файл acad.pgp появился еще тогда, когда подчерк "_" в AutoCAD'е не использовался. И в русском AutoCAD R10, например, приходилось даже команды в программах на AutoLisp записывать на русском языке.
|
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
Всем привет!
Хочу проконсультироваться, надеюсь, тема еще кем-то просматривается. У меня есть макрокоманда для отрисовки мультилиний: ^C^C_cmlstyle st1;_cmljust 1;_cmlscale;\;_mline; однако во время выполнения, в командной строке выдается сообщение: "Новое значение CMLSCALE <1,000>:", а хочется, чтобы при запросе ввода в командную строку выдавалось немного другое: "Укажите смещение от опорных точек <1,000>:". Вопрос, как это можно реализовать в макросе кнопки, с помощью лисп выражения или diesel, может кто подскажет. Сам я не силен не в лиспе, не в diesel. Заранее очень благодарен, ну очень нужна такая фигня. |
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
Спасибо за код, но правда не успел попробовать.
У меня вчера примерно так получилось: ^C^C_cmlstyle st1;_cmljust 1;(setvar "cmlscale" (getint "Укажите смещение от опорных точек:")) \");_mline; Работает вроде, на моем 2011 каде, не знаю правильно это или нет, подобрал методом научного тыка. Интересно будет ли работать у других, и в других версиях, а вот с <???>: текущим значением переменной пока никак. Может можно дополнить? Попробовал лисп, конечно это круче, а можно добавить в код еще и функции создания нового слоя с выбором цвета для слоя из окна палитры? У меня было: ^C^C_-layer;_unlo;st1;_t;st1;_on;st1;_m;st1;_c;\;;_lwe;0.3;;;_cmlstyle;st1;_cmljust;1;(setvar "cmlscale" (getint "Укажите смещение от опорных точек:")) \");_mline;, но цвет приходится вводить в ком. строке, а хочется выбрать в окне палитры. Это было бы ваще круто... Последний раз редактировалось Pavel23, 07.12.2010 в 09:57. |
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
Нет конечно, только при первом создании слоя и отрисовки млинии, потом просто жму [Enter], если не нужно менять цвет. У меня много кнопочек таких, каждая создает млинию по определенному шаблону в определенном слое, тобишь если десять млиний в чертеже - то десять слоев и каждая из них со своим шаблоном. Смысл в этом следующий, рисуется плиния (как бы опорная), затем рисуется млиния по контрточкам плинии (в шаблоне млинии всего одна линия с отступом -1 от средней точки), то есть опорные точки смещены на милиметр, рисуем вторую линию со смещением например 2, затем объединяем это дело в группу. Когда я изменяю плинию, двигая контрточки - меняются все три синхронно, так как конрточки общие. Слои нужны, что-бы редактировать млинии отдельно друг от друга (добавить вершины, изменить цвет и прочее). Вобщем цель этой затеи - получить псевдомультилинию, в которой можно не редактируя шаблона раздвигать относительно друг друга линии между собой, менять их цвет, менять независимо масштаб самих линий с определенным типом, вобщем модификация небольшая, дающая возможность хоть как-то редактировать млинию размещенную в чертеже.
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Как вызвать палитру цветов я не знаю. Можно ведь определиться с каким то одним цветом и забить его на кнопке, каждому типу млинии по своему цвету.
Вообще, можно рисовать ведь сразу несколько млиний одновременно и автоматом кидать их в группу. Т.е. алгоритм проги такой: 1. Жмем на кнопку. 2. Вводим значения между линиями в комстроку (т.е. по очереди масштаб будущих млиний). 3. Создаем один стиль млинии объединяющий в себе обе линии. 4. Отрисовываем вручную трассу (или что там у тебя). Попутно (или потом) создаем список точек трассы. 5. Удаляем все что нарисовали и создали. 6. Создаем новые 2 млинии, которые должны быть в группе. 7. Отрисовываем автоматом их по ранее созданному списку точек. Каждую в своем слое. 8. Объединяем в группу. Здесь можешь взять проги для создания стиля млинии вместо их импорта из шаблона: http://forum.dwg.ru/showthread.php?t...EC%EB%E8%ED%2A
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
С шаблонами стилей млиний, как раз проблем нету, я вояю типа Tools для своей конторы, и шаблоны у меня загружаются из базы (файл.dwg), вместе с типами линий, кучей блоков, слоями и прочее. Кнопочка _-insert;"Файл.dwg";0,0;;;;_eras;_last;, в конце работы с чертежом двойное _purge, чтоб удалить лишние блоки. База лежит на серваке, это очень удобно, если я че-то там правлю или добавляю, при загрузке это все прилетает к пользователям. Шаблонов не так много, каждый со своим типом линий, ну штук десять, больше не пользуем, а вот кол-во линий каждый раз разное и 3, и по 7 бывает, как это воплотить в твоем предложении пока плохо представляю. Еще по возможности стараюсь кнопки переводить на скрипты, ложу их на сервак, тоже очень удобно модифицировать. К стати, лиспы тоже можно пихать в скрипты...
Предлагаю для решения проблем с цветом, тоже сделать на лиспе, а ком. строке при запросе цвета выводить подсказки "Укажите цвет линии [1-красный];[2-желтый];[3-зеленый]; ... основные цвета до 7-го подсказать;[1-255]:" думаю этого будет вполне достаточно. Правда в лиспе ваще не шарю, и как это реализовать не знаю. Если поможешь, огромное спасибо, если нет, так нет, у всех свои заботы... Последний раз редактировалось Pavel23, 07.12.2010 в 22:10. |
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
Всем привет, замострячил тут кнопочку, которая блокирует и при повторном нажатии разблокирует нужные слои. Может кому пригодиться такой опыт.
У меня было много кнопочек управления определенными слоями проекта, теперь их стало в два раза меньше, одна кнопка и вкл и выкл. Для более стабильной работы, в конце кода можно добавить обнуление переменных. Код:
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
архитектор Регистрация: 20.11.2007
Ростов-на-Дону
Сообщений: 539
|
Уважаемые товарищи! Есть в ACADe такая кнопка "Dimension, Precision, 0" (округление до целых) с макросом "^C^C_aidimprec _0".
Пытался на основе этой макрокоманды написать макрос для кнопки чтобы округление было до 10 мм. Например размер 504 округлялся до 500. P.S. Заранее спасибо от чайника в написании макрокоманд |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Попробуй так:
Код:
Добавлено: Доработал макрос, теперь ведет себя в точности, как _aidimprec, т.е. поддерживает множественный выбор и выбор рамкой, и из всего набора объектов попавших в рамку, фильтрует только dimensions (размеры). Код:
Добавлено2: Если надо подавлять нули после запятой, конечно, при их наличии (при DIMZIN=0): Код:
Последний раз редактировалось skkkk, 15.01.2011 в 02:24. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: Интересно, ты свои правишь размеры или чужие? Это я к тому, что можно их прямо в таком виде создавать (например, подправив Размерный стиль или изменив системную переменную DIMRNG, в твоем случае - в 10, или подумав, сделать на нее отдельную кнопку)
|
|||
|
||||
архитектор Регистрация: 20.11.2007
Ростов-на-Дону
Сообщений: 539
|
Не я просто столкнулся с тем что например сейчас причёсываю кладочные планы, на которых есть кладочные размеры по фасадам. Так вот несколько размеров надо округлять до 10 мм т.к. это части стен под углом 45 град. и подогнать под кладку не везде получилось. А выдавать на стройку размеры по кладке например 1237 или 931 мм неприлично.А так у меня достаточно высокая точность стоит до нескольких знаков после запятой. Компьютер тем и хорош что позволяет точно чертить.
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Когда появляются углы, размеры не кратные 10 неизбежность... по крайней мере в металле... |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
|
|||
|
||||
Регистрация: 30.08.2010
Сообщений: 10
|
Помогите пожалуйста небольшим макросом.
Сам только начал разбиратся с Лиспом, пока только научился чертить в каде по данным из екселя. Прочитал эту ветку но полезного не нашёл, может кому не трудно будет. Есть текст1 который надо заменить на "текст2 - текст3" текст 2 и 3 брать с чертежа. Таких операций надо много делать по этому надо по минимум нажатий: вызвал макрос, выбрал текст1,2,3 и текст 1 заменился. Ну что то типа того) Буду очень признателен |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Регистрация: 30.08.2010
Сообщений: 10
|
Цитата:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: Тут выбираешь 1-й текст (это уменьшаемое), 2-й текст (вычитаемое), и в 3-й текст вставляется разность)
кол-во знаков после запятой меняется в строчке (setvar "LUPREC" 2) Последний раз редактировалось skkkk, 28.12.2010 в 16:44. Причина: Добавил в код обработчик ошибок |
|||
|
||||
Регистрация: 30.08.2010
Сообщений: 10
|
|
|||
|
||||
Регистрация: 06.05.2010
Сообщений: 22
|
Читал тут одну умную книгу мельком, называется "AutoCAD секреты, которые должен знать каждый пользователь". Где видал ту умную книгу не помню точно, но нашлась в инете быстро и на халяву. Понравилась глава 7, про пакеты, тобишь скрипты, запускаешь и он сам все делает и даже с кучей файлов, и тексты поправит, и другое что. Настоятельно рекомендую, там вроде все по простому изложено, что даже я понял...
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: И только? Ну я, в общем, так и думал. Это же DIMZINчик! Действительно, ты прав, добавил в #364. Хотя, может, Antonu_Br так и не надо... ведь, по умолчанию DIMZIN имеет значение 8, то есть, судя по всему, у него нулей-то и нет, как и у меня не было... Только вот зачем такой большой код? Anton_Br же просил макрос по аналогии с _aidimprec, а эти диалоги уже и превращают макрос в лисп
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: Дело каждого... А если макрос содержит, например, и команды и опции, но не определен функцией defun, то его не повторить по правой кнопке или Enter'у, что часто неудобно. А я это так, ради интереса тренируюсь, без претензии на награды и почет. Это, к сведению - мой первый серьезный макролисп. Учусь. Практикуюсь. Здорово же, когда от этого еще и польза кому-то есть
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Макрос по определению служит для вызова нескольких команд с опциями |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Сместить точку как объект? или получить новую х-координату этой точки? Ничего не ясно из постановки вопроса. Лучше сразу подробней и толково объясни, чего нужно добиться от макроса. А переменная pt1 из твоего примера - это список, содержащий х- и y-координаты точки
|
|||
|
||||
Регистрация: 08.02.2011
Сообщений: 2
|
спасибо сделал так
^C^C(setq pt1 (getpoint));\(setq pt2 (mapcar '+ pt1 '(6.0 0.0 0.0)));_break;!A;!pt1;_non;!pt2; Вопрос, можно ли добавить подсказку при вводе mtext? чтобы вместо mtext было что то полезное? как например при рисоавнии линии пишется укажите первую точку. Последний раз редактировалось gyani, 09.02.2011 в 14:47. |
|||
|
||||
Регистрация: 08.02.2011
Сообщений: 6
|
Привет. Народ, подскажите пож как прописать макрос на поворот копии обьекта с опорным углом. Я порылся в этой темке и нашол макрос на поворот с опорным углом -
Код:
|
|||
|
||||
Сообщений: n/a
|
Цитата:
Код:
|
|||
|
||||
Сообщений: n/a
|
Volv, а ты попробуй сохранить эту строку в файл *.lsp и загрузить в AutoCAD, как приложение. Подробней можно прочитать здесь: Как использовать лисп, опубликованный на форуме. В таком случае можно будет и в автозагрузку этот макрос добавить.
Добавлено: Можно еще попробовать упрощенный вариант (не тестировал) именно в качестве макроса. а не приложения. Код:
Последний раз редактировалось AlphaGeo, 09.02.2011 в 19:11. |
|||
|
||||
Регистрация: 08.02.2011
Сообщений: 6
|
Цитата:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
*^C^CROTATE;\\;\90
Здесь угол задается путем изменения макроса (который удобнее расположить на палете) и предназначен для множественного использования подряд. Выбор объектов обязательно и только двумя кликами (можно рамкой). |
|||
|
||||
Регистрация: 08.02.2011
Сообщений: 6
|
Do$, в твоем посте приведено два варианта лиспа на поворот копии с рефрентной ссылкой, первый, написаный AlphaGeo, будет как бы попроще да и его работоспособность я уже проверил (только его нада постоянно подгружать), что касается твоего предложения, то его я не тестил, вот только мне не охота юзать лиспы, хочу юзать команду при помощи макроса....
|
|||
|
||||
Испорчен я напрочь этим форумом - не могу просто писать, обязательно всякие проверки, подстраховки и прочие излишества применяю
Хозяин - барин |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Что это??? Собственно тогда как показали выше.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Сообщений: n/a
|
Цитата:
И как эта команда вообще работает? Какие сообщения и опции отображаются в командной строке? Смущает меня такой вот «438035B5DE6E701C» аргумент. |
|||
|
||||
Сообщений: n/a
|
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
http://forum.dwg.ru/showpost.php?p=330892&postcount=123
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Регистрация: 30.08.2010
Сообщений: 10
|
Цитата:
Помогите кто может) Макрос переделал, всё работает, но хотелось бы убыстрить работу с ним. Сейчас после выбора двух текстов надо нажать ентер и потом выбрать изменяемый текст. Очень хотелось бы не нажимать ентер: выбрал два текста и третий изменяемый и готово, а то неудобно рукой прыгать от пробела к ентеру всё время... Пытался разобраться сам, но мозгов на это пока не хватает Код:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Код:
В макрос можно подставить любую переменную, у которой нужно использовать поочередно два разных числовых значения |
|||
|
||||
arh Регистрация: 16.03.2011
Moskow
Сообщений: 3
|
Доброго времени суток, прошу помощи в создании макроса для автокада:
сумма выделенных чисел ^C^C(if (null C:z-calc-text-value)(load "z-calc-text-value"));z-calc-text-value; макрос не мой и я не умею их создавать (нет понимания как это делается), могу только пользоваться и назначать кнопкам. этот макрос у меня не работает не могу понять что не так автокад стоит 2012 engl. если в последнем выражении поставить пробелы: ^C^C(if (null C:z-calc-text-value)(load "z-calc-text-value"));z calc text value; то получается вообще не совсем понятная команда. в общей сложности мне нужен макрос который считает сумму чисел, например есть экспликация помещений и есть площади помещений, площади пишутся цифрами мультитекста, выделяются нужне числа и считается общая сумма. просто бывает нужно считать не все помещения а выборочно, а бывает все и сидеть складывать убивается оооочень много времени, которого как правило нет. и еще вопрос есть рабочий макрос: *^C^C_List;\;_dimordinate ;@;_Text;$m= $(Rtos,$(*,$(Getvar,area),0.000001),2,2);\ мне он очень нравиться и выдает число в нужном формате (я о запятой в нужном месте) но по умолчанию там слишком маленькая высота текста. можно ли как то дописать в этот макрос настройку на изменение высоты текста и толщину линии на которой он выноситься? |
|||
|
||||
Сообщений: n/a
|
Цитата:
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
ну зачем так сложно? отключи привязку по Z и все.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 06.05.2010
Сургут
Сообщений: 248
|
Sta1917, это можно реализовать примероно так *^C^C_-layer;_m;_Водопровод_подземный;;_CELTYPE;gugk5_122_v;;;_CELWEIGHT;30;;;_pline; т.е. сначала выполнить настройки а потом рисовать полилинию. но в товоем случае это видимо не получится с командой _flatten. да и сдругими командами тоже т.к. отрисовка полилинии трубует завершения по enter.
|
|||
|
||||
Регистрация: 04.11.2009
Сообщений: 24
|
Всем, доброго времени суток.
У меня просьба, подскажите, что не так сделал ^C^C(setq lr (getvar 'clayer)) (setvar 'clayer "Размеры") _dimlinear; (setvar 'clayer lr). Работает, но как-то криво. Хотелось поставить размер в нужный слой, не выбирая объекты, а просто проставляя размеры. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Код:
Это два |
|||
|
||||
Регистрация: 28.04.2010
Сообщений: 268
|
_QSELECT - быстрый выбор
Я так и делаю, 1. _QSELECT выбираю свойства объекта (МТЕХТ), значение (слой) 2. _ЕXPLODE 3. _QSELECT свойства объекта (ТЕХТ), значение (слой) 4. _FIND (найти "." и заменить на ",") Хотелось бы, нажал на одну кнопку и все готово |
|||
|
||||
Регистрация: 28.04.2010
Сообщений: 268
|
Подскажите, пожалуйста, как в макросе, вот таком -
^C^C(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_find;(setq a(ssget "_X" '((0 . "MTEXT"))));(sssetfirst nil a);_explode сделать, чтобы МТЕХТ выбирался не на всем чертеже, а на текущем слое (ActiveLayer) |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Ну и кто мешает писать на лиспе... это ж не макрос это лисп собственной персоной
|
|||
|
||||
Регистрация: 28.04.2010
Сообщений: 268
|
Еще вопрос -
^C^C(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_find;(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_explode ^C^C(setq a(ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_text- по отдельности они работают, а если их объединить вместе ^C^C(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_find;(setq a(ssget "_X" (list '(0 . "MTEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_explode;(setq a(ssget "_X" (list '(0 . "TEXT") (cons 8 (getvar "clayer")))));(sssetfirst nil a);_text- то не работают. В чем моя ошибка? |
|||
|
||||
Регистрация: 28.04.2010
Сообщений: 268
|
|
|||
|
||||
Может при копировании вкралась ошибка? Приложу на всякий случай файлик.
Если не поможет - то надо смотреть dwg-файл, что там такое, что вызывает сбой. У меня отрабатывает нормально. правда, у меня нет загадочной команды _TEXT-, что это за зверь? Последний раз редактировалось Do$, 23.06.2011 в 15:45. |
||||
|
||||
Регистрация: 28.04.2010
Сообщений: 268
|
Спасибо, буду пробовать. _text- это программка, которая подчеркивает выбранный однострочный текст.
Красота! Все получилось. Не срабатывало, потому что не было первой строки. Еще раз спасибо. Мне до того уровня , как до Китая пешком, век живи, век учись ... Последний раз редактировалось PSG, 24.06.2011 в 09:53. |
|||
|
||||
Регистрация: 11.01.2010
Сообщений: 19
|
Добрый день уважаемые форумчане. Устроился на новую работу, думал приду настрою автокад под себя со своими любимыми лиспами, не тут то было, на рабочих компах стоят AutoCAD LT 2010 (русский). Пришлось писать макросами начали появляться вопросы. Собственно сам макрос: ^C^CСлой;С;Размеры;_c;желтый;;;_dimlinear. Макрос работает, но хотелось, что бы по его завершении слой возвращался на предыдущий (что то типа лиспа от многоуважаемого VVA), который стоял до этой команды. Если правильно понял то это делается при помощи команды предыдущее состояние слоев СЛОЙП (_LAYERP), но вот самой команды найти никак не могу. Будьте добры подскажите что дописать в конце сего творения.
И еще один вопросик: можно ли повесить на кнопку макрос с использованием БВЫБОР (_QSELECT). Например жму кнопку включается БВЫБОР, в нем автоматически выбираются все размеры (линейные, радиусы и тд.), после выбора все автоматически переносится на слой "Размеры". Может я конечно многого хочу, но хотелось бы так. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Vadikus, для написания макросов очень поможет DIESEL (в лайте это единственная возможность хоть какую-то логику добавить)
Тестовый пример, макрос запоминает в переменной users5 имя текущего слоя, затем на слое 0 рисует линию, после чего возвращается на запомненный слой. Код:
Последний раз редактировалось bargool, 30.09.2011 в 15:09. |
|||
|
||||
Регистрация: 11.01.2010
Сообщений: 19
|
bargool, поставил для пробы на кнопку ваш макрос
Код:
Жму кнопку автокад хочет выполнить предыдущюю команду, слой 0 не переключается на предыдущий. Последний раз редактировалось Vadikus, 30.09.2011 в 15:36. |
|||
|
||||
Регистрация: 16.08.2006
Санкт-Петербург
Сообщений: 508
|
Vadikus, для использования английских команд в русском каде надо добавлять только "_" без точки
При этом имена системных переменных пишутся латиницей без добавления всяких подчеркиваний (вроде бы - проверить негде, если честно. в конторе все автокады английские), CLAYER тоже системная переменная. Но у меня действительно переходит на сохраненный слой только со второго раза... Update: похоже, дизель свои выражения вычисляет до вызова команды, поэтому в данном макросе возвращает предыдущее значение users5 Update2 из этого последовал прекрасный вывод: Код:
Последний раз редактировалось bargool, 30.09.2011 в 17:02. |
|||
|
||||
Регистрация: 11.01.2010
Сообщений: 19
|
Нашел в соседней теме такую вещь, и обошлись без дизеля
Код:
С радиусами и диаметрами разобрался, была лишняя палка (\), а вот с dimcontinue что то не получается (т.к. создается несколько размерных линий). Последний раз редактировалось Vadikus, 02.10.2011 в 13:19. |
|||
|
||||
Инженер-проектировщик Регистрация: 16.05.2007
Мурманск
Сообщений: 79
|
Может уже было подобное, заранее извиняюсь за лень чтоб просмотреть 23 страницы.
Достойная альтернатива кнопке "Сохранить" Код:
__________________
Нащяльника,мая AutoCAD паставиль,инсталя сделаль,сапускаю, а она ажамбех пашамбе эшельбе шайтанама! |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
В одной из тем один из самых знающих автокадчиков форума назвал макросы убожеством.
У макросов есть еще одно предназначение, оно хорошо работает и значительно экономит время. Вот пример, показанный в книге Autocad Язык макрокоманд и создание кнопок. Цитата:
^C^C_I;LTG-FIX-BOX;\;;;;;XXX;SELECT;SI;\M;P;;\\TTC;;\\\\;E;\;MA;\\; Второй макрос по-проще, вставляет блок и передает ему свойства с подходящей к блоку коммуникации. ^C^C_I;z-stub-dn;\96;;;MA;\\; Оба макроса сугубо временные, никогда в таком виде никому не пригодятся, и как только я закончу чертеж, их удалю. Макросы безо всяких изысков, можно было убить время и сэкономить клик-другой, но время было дороже. Подобные для текущей задачи может сделать любой, слегка набивший на них руку пользователь |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
> Достойная альтернатива кнопке "Сохранить"
Я бы сделал немного по-другому: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 30.10.2011 в 22:29. |
|||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
Заказчик в комплекте с техзаданием, требованиями и прочими инструкциями по выполнению работ предоставил надстройку для Autocad. Всё замечательно работает, но какой-то из лиспов надстройки периодически меняет настройки единиц чертежа, при этом "забывая" вернуть их в исходное после выполнения своего алгоритма.
Подскажите пожалуйста макрос для выставки линейных единиц в формат "десятичные" и угловых в формат "десятичные градусы", точность для линейных и угловых единиц одинакова "0.00". |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
^C^C^Plunits;2;luprec;2;aunits;0;auprec;2
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
существет кнопка перемещающие объекты на задний план: ^C^C^P_ai_draworder _Back ^P
пробовал переделать её как в первом посте Цитата:
Есть ли способ реализовать то что хотел или с этой командой не прокатит?
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
^C^C^P(defun c:atback () (vl-cmdf "_ai_draworder" "_back") (princ));atback;
конструкция проверена не единожды. ругается именно vl-cmdf (пробовал и с command) на "_ai_draworder... ругается не только в тексте макроса, но и из ком строки.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 21.11.2011
Сообщений: 2
|
Друзья, други, товарищи, коллеги, добрые люди, жители форума и все все все кто слышит меня даже из других галактек!!!!
Перейду сразу к делу! В автокаде, в режиме орто линия не ведется параллельно точки привязки, а непосредственно привязывается к этой точке если щелкать по этой точке. Я чертил в архикаде, там иначе, в компасе тоже так, как мне надо, (хотя компас мне не нравится). может надо прописать макрос или изменить настройки. Я прочитал переписку данной темы, нашел много мне нужного, но это последний вопрос который не дает мне покоя. Привожу схему: http://files.mail.ru/PT1AWE?t=1 Не ясно почему в режиме орто линия как то может пойти под любым углом, если щелкать в нужную точку привязки. Програмный вариант типа попасть в точку привязки и немного отойти от нее меня не устраивает, это тормозит темп работы. Заранее извиняюсь если задал глупый вопрос и заранее благодарю за проявленное понимание и помощь. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Вообще-то это зависит от настроек привязок. Лично у меня привязка "ближайшая" срабатывает тогда и только тогда, когда мне это надо. В остальных случаях работает другой набор.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Не поделитесь настройками?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Это какими? osmode (лично мои предпочтения!) = 503; ну и плюс временное включение нужных привязок через Ctrl+Правый клик
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Знаю только, как без диалогового окна выбрать все мультивыноски (тут, на форуме научили когда-то)
Код:
|
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
skkkk, Я мультивыносками проставляю позиции. Иногда требуется выделять диапазон, допустим с 31 позиции до 79. Это делается так. Быстрый выбор-мультивыноска-содержимое-поиск по глобальным символам - [3-7][0-9]. То что делать дальше с выделенными мультивыносками это моя печаль. ))) Смысл в том что нужно выделять несколько диапазонов плюс постоянно ошибаюсь в значениях, приходится каждый раз проделывать всю цепочку выбора заново.
|
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
Код:
[1-10] или [2-6],[12-45] и т.д.
__________________
cadtools |
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
При моделировании часто нужно выполнить вычитание при условии сохранения вычитаемого тела.
Для этого соорудил макрос: Код:
- указываем тело для вычитания, - указываем вычитаемое тело, - указываем любую точку, на случай если вычитаемое тело полое (труба), выполняется разделение и включается команда удаление, - указываем удаляемые (не нужные) части. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
В 2008-м автокаде работал макрос
Код:
|
|||
|
||||
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
|
|
|||
|
||||
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
|
Этот вариант после первого копирования запрашивает выбор объекта для следующего копирования, после чего уже для него надо ввести базовую точку, и угол. Т.е. по сути заменяет после первого копирования нажатие enter (повтор команды вобщем).
А хотелось бы, чтобы после первого копирования исходный объект был "уже выбран" и базовая точка осталась прежней, а кликать только для указания нового опорного угла. По аналогии с обычным копированием, где каждым следующим кликом вставляем объект в новую точку. Добавление звездочки в самом (если я правильно понимаю) начале как исходного так и предложенного чуть выше варианта приводит к прокручиванию запросов в командной строке. |
|||
|
||||
Регистрация: 05.03.2012
Санкт-Петербург
Сообщений: 20
|
|
|||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
Цитата:
или ^C^C_qsave;_quit;_Y Последний раз редактировалось roaa, 01.04.2012 в 17:07. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Думаю, неужели прокатит в 11-м? Закроет из командной строки диалог "Сохранить изменения...?" Не хочется FILEDIA обнулять...
Не прокатило. Ладно, обнуляю. И тут не прокатывает!!! Диалог выскакивает всё равно. Видимо новая опция в целях увеличения бдительности безопасности проделанной работы Но и в 2008-м ^C^C_qsave;_close; никогда не подводили |
|||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
roaa, действительно, сработало! Даже при FILEDIA= 1/ Спасибо. Сам бы не додумался никогда. В прежних версиях такие фокусы не прокатывали...
Правда сделал так: Код:
Добавлено: А первый раз пробовал только без "command" , поэтому и не получилось. Слишком отчаялся, видимо, при неудаче первого варианта Последний раз редактировалось skkkk, 05.04.2012 в 01:29. |
|||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
Код:
__________________
cadtools |
|||
|
||||
Регистрация: 23.09.2005
СПб
Сообщений: 424
|
|
|||
|
||||
Помогите доработать макрос по заданию цвета.
Пока используется такой макрос: Код:
Как сделать чтобы можно было объекты выбирать и рамкой и выбором на объекте? Вообще нужно сделать так: Если на чертеже есть выбранные объекты, то при нажатии на кнопку сменить цвет. (Что-то типа Код:
Если не выбрано, то выбирать объекты и после нажатия Enter сменить цвет.
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 27.04.2012 в 11:40. |
||||
|
||||
Регистрация: 11.12.2011
Сообщений: 32
|
Здравствуйте! пытался создать макрокоманду на основе команды _plot для перевода черетежей в pdf, но столкнулся с проблемой при задании названия файла - каждый раз приходится вбивать вручную. Возможно ли чтобы файл получаемый на выходе получал название листа из которого была произведена печать? саму макрокоманду смогу выложить чуть позже, но в ней ничего важного/сложного.
И еще один вопрос пытался сделать макрокоманду для выбора предыдущих выбранных объектов, но _select;_previous;; - не работает, хотя когда просто вводишь команды через командную строку - всё ок. В чем загвоздка? |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Код:
Код:
Это я использовал файл DWG To PDF.pc3 (прилагается). В каждом конкретном случае нужно поработать с командной строкой и посмотреть, что нужно скормить на каждый запрос и затем подставить в макрос. (getvar "ctab") - возвращает имя активного листа. Ограничения: 1. Будет печататься только текущий лист (активный). Но это похоже то, что нужно. 2. Файл *.pdf сохранится в текущей папке. Если надо другую, добавить в strcat строку с адресом (strcat "C:\\Папка\\" (getvar "ctab") ".pdf") 3. Если файл *.pdf с таким именем уже существует в этой папке (например, захочется нажать эту кнопку на данном листе еще раз), - макрос не сработает, вернее сработает неверно - имя файлу будет присвоено "_Y". В общем, надо допиливать, но информации к действию, думаю пока должно хватить LISP. Повтор предыдущего выбора элементов. Там несколько вариантов: макросы, лисп - можно выбрать по душе. |
|||
|
||||
Цитата:
#11 пост 100% рабочий код, включил себе в частичный cui. Цитата:
Макросов, и вообще ничего внешнего дополнительного не треба... Подшивка - диалог публикации - одно/многолистовой-pdf. Либо вкладки лайоутов одного dwg (подшивка не треба...), выделение с shift, опубликовать по ПКМ, на встроенный PDF(внешний не катит, задание доп форматов, ищи *.PMP) Последний раз редактировалось perpetule, 03.05.2012 в 00:09. |
||||
|
||||
Можно сделать такое макросом или нужно искать программиста?
Вставить блок в нужную точку, расчленить (внутри солид), и сделать его align (выровнять), при котором точка вставки остается на месте, а указать нужно только вторую точку солида и точку, в которую его нужно довернуть? Уточнение: имеется в виду поворот в пространстве. Потому и align. Последний раз редактировалось АлексЮстасу, 10.06.2012 в 17:10. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ИМХО это можно сделать через палитру инструментов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Ну, да, так и думалось - вставить такой макрос в палитру инструментов. Если такой макрос возможен.
Вставить блок, так понимаю: ^C^C_insert "block_name";\;;; А как расчленить при вставке - уже не знаю. Потом можно добавить _align, но как вместо первой точки - которую и первой точки - куда задать точку вставки блока? Да и откуда _align узнает, что выравнивать нужно именно этот вставленный элемент? Последний раз редактировалось АлексЮстасу, 10.06.2012 в 01:22. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Блок закинь на палитру, потом на инструменте правый клик - и устанавливай свойства. Там все понятно (просто сейчас нет никакой возможности сделать скриншоты).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Может быть кто подскажет, как сделать расчленение блока при вставке в макросе? Последний раз редактировалось АлексЮстасу, 10.06.2012 в 16:14. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А запрос угла поворота - не то?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
|
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Код:
но не масштабировать, то можно обойтись без _align. Добавлено: Последние посты прочитал после написания своего. АлексЮстасу, раз надо _align, лучше приложить файл и показать там какую точку вслед за какой этому "элайну" скармливать, не то можно долго гадать. Или хотя бы объяснить порядок действий при _aline: какие точки уже известны (как базовая точка вставки блока), а какие надо спросить у юзера. Добавлено 2: И еще может захотеться повтор всех процедур по enter, пробелу или правой кнопке мыши... Ведь может, правда? Не всегда охота тянуться снова к кнопке. Надо сразу определиться. Последний раз редактировалось skkkk, 10.06.2012 в 17:17. |
|||
|
||||
Цитата:
Нужно вставить 3D тело (для простоты - цилиндр) с поворотом в пространстве вдоль известной 3D полилинии. Из панели тело можно вставить блоком с последующим расчленением - это уже мне давно kpblc объяснил. Да, повтор может захотеться По крайней мере, может захотеться научиться его делать. |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Алекс Юстасу, лучше dwg, потому как неясно на скрине, где базовая точка вставки блока. Как я понимаю, Первая исходная точка для _align у нас - это точка вставки блока, она же его базовая точка, - она спрашивается у пользователя при вставке блока. Вторая исходная точка находится в плоскости цилиндра? Где именно? Ее можно, наверняка, рассчитать математически или геометрически, упразднив один клик. Первая целевая точка и Вторая целевая точка - похоже, что это две любые точки на 3D полилинии, т.е в идеале лучше у пользователя попросить не указать две точки, а выбрать полилинию? И, судя по всему, в опциях _align'a надо ответить Нет на вопрос Масштабировать...? .
Тогда лучше лисп, ну или макролисп, - это как больше по душе. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ИМХО надо искать тему "Программистам на заметку" - там были варианты программной вставки блока.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Действия видятся примерно так: 1. Указываю точку, туда вставляется блок. 2. Указываю точку блока, которую нужно поворачивать. 3. Указываю точку, в которую нужно повернуть. 4. Блок поворачивается относительно точки вставки. 5. Блок разбивается. Указывать линию, вдоль которой нужно выравнивать блок, не общее решение, т.к. такой линии может не быть. Повтор команды тоже под вопросом, т.к. большинство команд Автокада работает без него. Хотя, сам по себе повтор - очень экономит время-силы. Про Ваш макрос можно невеже узнать? ^C^C_-insert;"block_name";_s;1;_r;0;\_rotate;_l;;(getvar "lastpoint");_R;(getvar "lastpoint");\\_explode;_l; Что такое _s после имени блока, что такое _l после поворота и разбиения? Про getvar боюсь даже спрашивать |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Ну раз
и есть мечта а также то предлагаю остановится на макролиспе. Тут несколько иной синтаксис, но разобраться несложно. Определяем нашу новую функцию: Код:
Код:
"1" - величина масштаба _R - _rotate - поворот, он пока у нас нулевой ("0") pause - это как в макросах слэш "\", то есть пауза программы, ожидание ответа пользователя Так вот. Мы вставили блок. Теперь надо его "отЪэлайнить" . Продолжаем посылать челобитные в командную строку: Код:
"" - пустой ввод, enter, правая кнопка мыши (getvar "lastpoint") - эта конструкция позволяет получить координаты последней фигурирующей точки, а мы помним, что определили ее в pause при выборе точки вставки блока. Ведь помним, да? Добавив еще пару запросов точек со своими подсказками да эксплоудик, плюс непосредственный запуск созданной нами команды, получим что-то вроде Код:
|
|||
|
||||
Цитата:
Удалось осилить и Ваше разбиение объекта, и Ваше запоминание последней точки и последнего элемента. Звездочка в начале - для самоповтора макроса. И аж два варианта: для вставки 3D модели с ориентацией ее в пространстве вдоль ее оси, и для вставки 3D модели с ориентацией ее в пространстве вдоль произвольно указанной оси. Макрос для вставки 3D модели с нужным разворотом в пространстве с использованием метода Хмурого - через назначение UCS: Код:
2. указываем вторую точку направления (оси Z ucs), она же точка вставки, 3. уже развернутый блок сам разбивается, 4. возвращается мировая система координат. А есть способ вернуть не мировую, а ту систему координат, которая была до запуска макроса? Но для общего случая нужно все-таки ALIGN, т.к. 3D модели могут быть сделаны уже с каким-то наклоном: Код:
2. указываем точку, за которую нужно повернуть, 3. указываем точку, в которую нужно повернуть, 4. блок сам разбивается. Последний раз редактировалось АлексЮстасу, 13.06.2012 в 20:24. |
||||
|
||||
Заблудился в трех соснах, подскажите, плз!
Нужно выбрать блок из списка, а потом вызвать align. Пишу: Код:
Что неправильно? Добавлено при проверке в 2008: этот макрос сработает в 2008 только после добавления точки с запятой перед _align! Вставка точек перед командами ничего не меняет. Если в моем русифицированном 2012 вместо _.insert в макросе написать ВСТАВИТЬ, то окно вставки блоков тоже не вызывается! Если использовать макролисп Код:
Если в 2012 в макросе ничего, кроме Код:
Последний раз редактировалось АлексЮстасу, 15.06.2012 в 18:16. |
||||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Приветствую. Можно ли оформить в макрокоманду вот такую цепочку.
Например: в таблице в графе позиция, вставляю поле, поле ссылается на объект мультивыноска. Вставить поле-категория полей объекты -объект - тип объекта - выбрать объект - содержимое. Тоже самое для атрибута блока, только там всесто "содержимого", нужно выбрать "значение". Т.е. после вставки поля, нажал кнопку макроса, выбрал объект-цель. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop: Astares, а можно поподробнее после "Приветствую"?
Это я к тому, что лучше бы чётче формулировать мысли, точнее сказать, алгоритм действий понимать и правильно объяснить. Можно и своими словами, но последовательно и обстоятельно, примерно так (жирным запросы в командной строке): Цитата:
А во-первых, по-моему, это сделать макрокомандами нельзя. Я бы посоветовал обратиться к поиску по словам, допустим, поле таблица и в какой-либо подходящей теме задать лисповедам уже ОСОЗНАННЫЙ вопрос и получить ПРАВИЛЬНУЮ помощь или узнать причину, по которой таковая невозможна Добавлено: Offtop: Только вот "объект-цель" всё же придется выбирать сначала, а уж потом ячейку, в которую вставляется поле, ссылающееся на "объект-цель". Да и целью тут, как я понял из описания задачи, является ячейка, а вовсе не мультивыноска, которая является исходным объектом (в противоположность целевому). В процессе алгоритмизации (осмысления условия задачи) важно не путать понятия, которые почти всегда идут на поводу у логики и здравого смысла. "Почти" - потому что бывают глюки, а обходные пути с логикой бывают в сомнительных отношениях Последний раз редактировалось skkkk, 27.06.2012 в 04:51. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Пишу в данной теме, так как проблема с макросом который взял отсюда.
^C^C^P_.-purge;_a;;_n;_.-purge;_a;;_n;_.-purge;_r;;_n;_.audit;_y;_.-scalelistedit;_r;_y;_e;_.-purge;_a;;_n; Вводная: Работал на Акад 2011, русский, 32 бита, вин ХР. Макрос работал, все нормально. Перешел на Акад 2012, русский, 64 бита вин 7. И макрос стал работать как то странно. Провел эксперимент. (Лог эксперимента с пометками в приложении) Открываю чистый чертеж. Делаю Аудит, все в порядке. Вставляю пару блоков с палитры инструментов, удаляю их, делаю Аудит, все в порядке. После этого сразу запускаю макрос, выдается сообщение "Обнаружены ошибки программы, рекомендуется сохранить чертеж и перезапустить программу". После этого делаю Аудит, он находит около 30 ошибок. Т.е. получается макрос наделал ошибок в чертеже. Вот и не понятно как это так. Откуда ошибки в чертеже взялись, до запуска макроса Аудит ничего не находил. УПД: В 2011 32 ХР, также после макроса появляются ошибки. Просто не выводится сообщение "Обнаружены ошибки программы, рекомендуется сохранить чертеж и перезапустить программу". Итак резюме: Если все исправить аудитом, после него будет 0 ошибок. Запускаем макрос, после него аудит, эти ошибки опять появляются, так можно до бесконечности. КРЫС помоги, я у тебя этот макрос взял. )) Последний раз редактировалось Astartes, 26.09.2012 в 13:53. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Возможности скачать и проверить файл нет, поэтому "навскидку": в блоках есть атрибуты, для которых слой в описании блока не "0"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
И с недавних пор (последний месяц - не больше) после моего макроса в моем Акад 2012, русский, 64 бита вин 7 стало появляться такое же окно об ошибках программы. Общего в наших макросах "audit;_y". Что за засада? Радует, что Автокад при этом не падает. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Ну как я и предполагал - атрибуты лежат на слоях, отличных от "0". об этой ошибке достаточно давно Андрей Бушман где-то говорил.
Выход: отредактировать блоки так, чтобы атрибуты лежали на слое "0". Или мириться с подобными сообщениями.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Кулик Алексей aka kpblc, Так, а почему стандартный Аудит ничего плохого не видит в атрибуте на слое "0", а макрос видит. Т.е. выбор либо пользоваться стандартным Аудит или пользоваться макросом, но атрибуты переводить на слой "0"?.
Второе, есть блоки без атрибутов, а таже самая история. Завтра на работу приду, выложу файл. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Обрати внимание: ошибки аудит выдает сразу после _.purge. Значит, ошибка в алгоритме работы _.purge. Можно поиграться с порядком очистки: сначала, например, блоки, потом слои, а потом уже все остальное + аудит.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Проведите Audit вручную, с опцией "не исправлять ошибки" и посмотрите по логу командной строки что за ошибки.
У меня было такое в автокаде 2010, при проверке чертежа выскакивала именно такое окно с ошибкой. Посмотрел по логу Audita - не нравилась переменная DIMPOST. После смены текущего размерного стиля ошибка пропала. |
||||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Do$, Вот сделал по вашему. Какаято проблема со слоями. Наверное это и есть о чем Алексей говорил. Атрибуты не на "0".
Команда: _AUDIT Исправить все обнаруженные ошибки? [Да/Нет] <Н>: Проверка заголовка Проверка таблиц Проверка объектов, проход 1 Проход 1: проверено объектов: 300 Проверка объектов, проход 2 Проход 2: проверено объектов: 200 AcDb2dVertex(2A2) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2A3) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2A4) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2A5) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2AF) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B0) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B1) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B4) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B5) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B6) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2B7) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2C3) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2C4) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2C5) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2C6) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D0) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D1) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D2) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D5) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D6) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D7) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDb2dVertex(2D8) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbBlockReference(30F) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbBlockReference(30F) не восстановлен. AcDbAttribute(310) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(310) не восстановлен. AcDbAttribute(311) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(311) не восстановлен. AcDbAttribute(312) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(312) не восстановлен. AcDbAttribute(313) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(313) не восстановлен. AcDbAttribute(318) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(318) не восстановлен. AcDbSequenceEnd(31D) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbSequenceEnd(31D) не восстановлен. AcDbBlockReference(31E) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbBlockReference(31E) не восстановлен. Проход 2: проверено объектов: 300 AcDbAttribute(33D) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(33D) не восстановлен. AcDbAttribute(33E) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(33E) не восстановлен. AcDbAttribute(33F) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(33F) не восстановлен. AcDbSequenceEnd(340) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbSequenceEnd(340) не восстановлен. AcDbBlockReference(341) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbBlockReference(341) не восстановлен. AcDbAttribute(342) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(342) не восстановлен. AcDbSequenceEnd(343) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbSequenceEnd(343) не восстановлен. AcDbAttribute(34B) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(34B) не восстановлен. AcDbAttribute(34C) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(34C) не восстановлен. AcDbAttribute(34D) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(34D) не восстановлен. AcDbAttribute(34E) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(34E) не восстановлен. AcDbAttribute(353) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(353) не восстановлен. AcDbAttribute(378) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(378) не восстановлен. AcDbAttribute(379) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(379) не восстановлен. AcDbAttribute(37A) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(37A) не восстановлен. AcDbAttribute(37D) Неверный слой eWasErased $AUDIT-BAD-LAYER AcDbAttribute(37D) не восстановлен. Проверка блоков Проверено блоков: 1 Всего найдено ошибок: 46, исправлено: 0 |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Приветствую. Вот http://forum.dwg.ru/showpost.php?p=397211&postcount=227 взял хороший лиспик. Удлинить/укоротить линию в две стороны одновременно. Вот только работает лисп в системе координат World. Можно ли сделать так чтобы лисп работал в любой системе координат?
|
|||
|
||||
"фигуру" - это 3Д тело? Скорее всего тогда нужна не макрокоманда, а программа. Т.е., скорее всего, нужно в тему программирования.
|
||||
|
||||
Регистрация: 09.10.2012
Калининград
Сообщений: 7
|
Написал "фигуру", т.к. она может быть произвольной по форме. 2D. Смотрите в приложении, что нужно. Без проставления размеров, естественно.
|
|||
|
||||
В макросе сначала сделайте _boundary - создайте замкнутый контур, а потом _offset на 0.15. А чтобы "низ" офсетился на 0.12 - это к программисту, по-моему.
|
||||
|
||||
Уважаемые, подскажите, пожалуйста, есть ли возможность сделать команду, при которой в открывающемся окне печати было бы уже проставлено количество экземпляров 2 (3 и тп)?
То есть чтобы при печати из модели большого количества листов не требовалось каждый раз проставлять вручную количество экземпляров. Или для этого не требуется макрокоманда и это делается в настройках?
__________________
Что нам стоит дом построить, нарисуем будем жить!!! |
||||
|
||||
геодезист Регистрация: 21.03.2009
Санкт-Петербург
Сообщений: 67
|
Здравствуйте, помогите с макросом: вставляется блок с единственным атрибутом (берется из Z блока), выбирает его, ждет ввода положения Z, после делает регенерацию и превращает атрибуты в текст.
Цитата:
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Для начала почини burst, который в оригинале not good. Поищи по этому слову лисп от VVA
|
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Для выполнения стыковок и врезок одной детали с другой (например труб) писал макросы но поскольку без лисп-функций не обойтись, написал лиспы.
delt - для стыковки одной трубы к другой без отверстий. delt2 - для для пристыковки трубы в прорезанное отверстие. delt3 - для пристыковки трубы к трубе с отверстием равным внутреннему диаметру первой трубы. В общем реализовал желание делать это двумя кликами - получилось. Я не программист, наверно написано коряво, не судите а если можно поправьте. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Подскажите пожалуйста. Не получается макрокоманда.
Есть лисп по выделению мультивыносок по значению. Нужно: qsel(лисп) -> ввел значение (мультивыноска выделилась) -> _ddedit -> меняю значение на нужное. Написал вот такой код ^C^C_qsel;\;_ddedit;\ , но он не работает. Хотя теже действия последовательно делаю через командную строку все нормально. ЗЫ: Еще вопрос. Как записать команды в макрос ctrl+A и ctrl+F (во время редактирования)? УПД: Нашел правильное сочетание: ^C^C_qsel;\_ddedit. А вот команды для ком. строки в режиме редактирования "выделить все" и "редактировать поле" не нашел Последний раз редактировалось Astartes, 12.12.2012 в 05:49. |
|||
|
||||
Регистрация: 18.01.2013
Киев
Сообщений: 4
|
Уважаемые форумчане! Так как в макрокомандах только начал разбираться и не могу найти ошибку в следующем макросе ^C^CКонтур;Д;К;Н;Список; (русский автокад).Суть в том чтобы после команды контур открывался список с его свойствами. Так как у меня Автокад 2011 LT применять лисп не могу!!!
|
|||
|
||||
конструктор машиностроитель Регистрация: 14.05.2007
Новосибирск
Сообщений: 893
|
Цитата:
__________________
Из честолюбия или чувства долга не может родиться ни чего ценного. А. Эйнштейн |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Команда _boundary требует предварительного выбора. Можно попробовать так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.01.2013
Киев
Сообщений: 4
|
^C^C_.-boundary;_a;_b;_n;_p;\;_.properties;_select;_last
Спасибо за быстрый ответ НО кнопка не совсем работает, после выбора объекта все кабы зацикливается и просит ввести параметры с начала! Суть задачи чтобы не обводить полилинией объекты из отрезков и т.п.(чтоб узнать площадь) а выбрать узнаваемый контур после чего выводятся его свойства. Извините если не совсем ясно объясняю |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Сначала надо выбрать объекты, потом уже запускать макрос.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.01.2013
Киев
Сообщений: 4
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
pickadd = ?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.01.2013
Киев
Сообщений: 4
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
roaa, попробуй поставить peditaccept в 0 и снова запусти макрос. Получишь на выходе ошибку.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Тьфу, блин, переклинило Поставь в 1.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
И так попробывал, и сяк...ошибок не возникает...команда отрабатывает свое полностью...Дома на 13 каде проверю.
Проверил. Все в норме...работает. Последний раз редактировалось roaa, 22.02.2013 в 20:46. |
|||
|
||||
Прошу помощи в реализации макроса динамического блока (ДБ).
Есть файл "dwgRele_03.dwg" с единственным блоком "Rele_N" Напомню, что имя файла и имя блока должны быть разными, иначе AutoCAD выдаст ошибку: "Блок ... ссылается сам на себя". После вставки в чертеж по кнопке вставляется простой блок с именем "dwgRele_03" из чертежа "dwgRele_03.dwg" содержащий ДБ "Rele_N". Блок "dwgRele_03" нужно расчленить чтобы он "превратился" в ДБ "Rele_N". Других путей я не знаю. ДБ вставляется в чертежи по кнопке с макросом: Код:
Но есть одно "волосатое НО"... При повторном нажатии идет значительная задержка вставки блока (минута) при этом в командной строке пишет: "Повторное определение блока Rele_N пропущено.", AutoCAD виснет на минуту, потом отвисает и вроде как работает как обычно дальше. Экспериментами удалось обнаружить, что проблемы тормозов проявляют себя только если в чертеже нет вхождения блока dwgRele_03. т.е. если макрос написать так: Код:
Поэтому может кто подскажет как реализовать такое: 1. Вставляем блок по старому макросу с удалением блока "dwgRele_03" Код:
Код:
Код:
Offtop: Перелопачивал свои блоки... нашел блок с именем "dwgRU" - Выравниватель
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 26.02.2013 в 11:58. |
||||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Shoorup, когда-то напарывался на файл в котором описание динамики блока было описано непосредственно в самом файле, а не в реакторе блока. После вставки его как блока получался динамический блок. Вот только не могу вспомнить где это видел.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
zenon, спасибо за наводку!
Почему-то сразу до этого не додумался. Нужно описывать ДБ не отдельным блоком в чертеже, а заходить в редактор блоков и выбирать там <Текущий чертеж> и там все описывать. Ну а макрос простая вставка блока. Код:
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 26.02.2013 в 15:54. |
||||
|
||||
Помидорка Регистрация: 03.02.2012
Сообщений: 135
|
Люди, а как в макрос записать путь к блоку в DWG-файле?
Мой блок Т1 определен в файле tables_draw_new в папке d:\st_functions\add_st. Я прописываю в макрос команду Код:
Код:
ps: (двойные слэши "\\" пробовал, не катит) Что же я не так делаю?
__________________
Боишься - не делай. Делаешь - не бойся. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Попробуй обратные слеши.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Помидорка Регистрация: 03.02.2012
Сообщений: 135
|
Код:
Код:
АП: Попробовал вариант ^C^C_-insert;"d:\st_functions\add_st\tables_draw_new.dwg";\T1;;;_.explode;_last Акад сначала запросил имя блока: Код:
Потом он мне построчно просил ввести путь и вставил блок, причем вручную пришлось добивать параметры вставки. Полный код из ком.строки: Код:
__________________
Боишься - не делай. Делаешь - не бойся. Последний раз редактировалось Xara, 27.02.2013 в 13:35. |
|||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
Цитата:
Почитайте http://forum.dwg.ru/showthread.php?t=55898 |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Inventor_S, макросом - никак. Только лиспом. Offtop: Чтоб не оффтопить тут, ответил в наиболее близкой по смыслу теме
|
|||
|
||||
Подскажите пожалуйста, как бы сделать, чтобы вызывалась команда filter, но без диалога, с настройками на выбор объектов с цветом 131?
__________________
Грызи гранит науки. Не можешь грызть - соси! |
||||
|
||||
Регистрация: 06.06.2007
Il
Сообщений: 87
|
Цитата:
А можно было бы здесь выделить несколько параметров у примивов? 1. line center 2 2. line continue 3. dim
__________________
Пьер был светский человек и поэтому мочился духами. |
|||
|
||||
Цитата:
Та же проблема. Если после _explode ничего делать не нужно, то макрос работает нормально. А если после него что-то нужно еще сделать, то _explode не выполняется, и далее соответственно. Правда, это для Автокадов 2006-2008. В 2012 удается победить. Но у людей - участников процесса - есть только 2006-2008. Моя задача: разметить полилинию блоками в виде поперечных полилиний, разбить эти блоки, чтобы на пересечениях выбранных полилиний расставить точки. Мой макрос: Код:
POLYPOINT - команда расстановки точек на всех пересечениях указанных полилиний к программке из http://forum.dwg.ru/showpost.php?p=1108065&postcount=37 Если убрать это "\POLYPOINT", то в Акадах 2006-2008 _explode выполняется. А полностью - нет. Последний раз редактировалось АлексЮстасу, 19.06.2013 в 16:04. |
||||
|
||||
Цитата:
Код:
И эти "другие" линии пользователю нужно выбрать вручную. Красная - размечаемая (_measure) линия. Никогда б не догадался, что после "_p" нужно вставить аж четыре ";"! Последний раз редактировалось АлексЮстасу, 19.06.2013 в 16:20. |
||||
|
||||
Цитата:
Т.е. места пересечений непредсказуемы массивами или т.п. |
||||
|
||||
Пастух Регистрация: 16.07.2012
Питер
Сообщений: 318
|
Вставка блоков по вершинам полилинии. Вдруг кому пригодится.
Код:
Просто тыкаете в точки а автокад вам все сам рисует. Последний раз редактировалось ProPeller, 25.06.2013 в 09:01. |
|||
|
||||
Цитата:
На последней поворотной точке draworder не сработал - столб под линией. На самой последней точке столб не нарисовался. И при повторном вызове упорно начинает с последней точки уже нарисованной ЛЭП или любого другого последнего элемента. А так - здорово Последний раз редактировалось АлексЮстасу, 25.06.2013 в 16:15. |
||||
|
||||
Пастух Регистрация: 16.07.2012
Питер
Сообщений: 318
|
Цитата:
Насчет последнего столба, привык добавлять одну лишнюю точку и удалять лишний сегмент, и два ненужных блока. В общем эти мелкие действия с лихвой компенсируются вырученным временем на отрисовку этих элементов по отдельности |
|||
|
||||
Регистрация: 02.09.2013
Сообщений: 1
|
ПОМОГИТЕ разобраться...
Стоит задача - организовать автонумерацию в autocad 2013 LT. как я понимаю в нем LISPa НЕТ! 1. было найдено решение в виде макроса автонумерации *^c^c_text;_m;\;;$M=$(getvar,USERI1);_setvar;USERI1;$(+,1,$(getvar,USERI1)) но тут невозможно ввести суфикс и префикс для нумерации. 2. Также было найдено в сети решение для нумерации для autocad LT // Symphony Interactive Inc. // // Auto text enumerator tool for AutoCAD LT // // Create a new tool or menu item and copy/paste the following diesel code to it: // // Please feel free to contribute/improve this code! // // Clone this mercurial repository: http://[email protected] *^C^C$M=$(if,$(=,$(getvar,USERI2),1),setvar;USERI2;0;-attedit;;;;;\;v;r;$(getenv,Prefix)$(getvar,USERI1)$(getenv,Suffix);N;setvar;USERI2;1;setvar;USERI1;$(+,1,$(getvar,USERI1)),setenv;Prefix;\setenv;Suffix;\setvar;USERI1;\setvar;USERI2;1) Помогите разобраться, как это работает? и работает ли вообще? и можно ли адаптировать второй макрос для нумерации текстовой переменной с суффиксом и префиксом ...БЕЗ LISPA.... |
|||
|
||||
Регистрация: 09.04.2011
Сообщений: 60
|
часто нужно проставить размер кратно какому-то числу (следующего вида 11х200=2200, так вот следующий макрос можно для этого использовать). Для этого нужно предварительно ввести modemacro, затем шаг, вызвать макрос, выбрать два объекта и размер проставится в таком виде.
Ну и конечно нужно заранее выбрать нужный размерный стиль. Макрос: ^C^C_line;'cal;p1=nea;\\'cal;p2=per;\\;_erase;_last;;_dist;'cal;p1;\'cal;p2;\_dimaligned;'cal;p1;\'cal;p2;\текст;$m=$(rtos,$(/,$(*,$(getvar,distance),$(getvar,dimlfac)),$(getvar,modemacro)),2,0)х$m=$(getvar,modemacro)=<>; Последний раз редактировалось Bestoloch, 05.09.2013 в 11:55. |
|||
|
||||
Вводная часть. Чертежи для для печати сформированы в пространстве листа. Ширина чертежа 297, т.е. при печати на 610 бумаге помещается парочка одинаковых чертежей. Левый нижний угол чертежа в пространстве листа лежит в координатах 0,0. Чтобы дублировать полностью все что относится к оформлению (там помимо видового экрана, штампика и оформительских надписей используюся wipeout-ы) сделал простенький макрос, который выбирает все что имеется в пространстве листа и копирует от точки с координатами 0,0 к точке с координатами 0,297.
^C^C_ai_selall _copy 0,0 0,297 |
||||
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 379
|
Макрос не подскажу, но могу предложить альтернативный вариант. Можно добавить команду на панель быстрого доступа и перенести ее на 1й слот. Активировать последовательным нажатием alt,1.
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
А так-же ответ на него? |
|||
|
||||
Предположу что автор выключает растр выставляя значение "Show image" в "No", а хочет чтобы была кнопочка которая бы при нажатии на нее делала это не заставляя открывать окно свойств. Думаю что макросом тут не отделаться, т.к. это свойство каждого рисунка в отдельности и нужно делать программу которая бы шерстила файл на предмет наличия в нем растровых картинок и меняла бы им свойства (в идеале в виде переключателя on/off).
Для себя данную задачу решил следующим образом - растр помещаю на специальный слой и двумя макросами его включаю/выключаю. ^C^C_-layer _on;АРХИВ_РАСТР;; ^C^C_-layer _of;АРХИВ_РАСТР;; Таким же образом поступил и с внешней ссылкой ^C^C_-XREF;_R;Объект ^C^C_-XREF;_U;Объект где Объект - имя ссылки. Оба решения оправдывают себя только в том случае если вн.ссылка или набор растров в чертеже одна(ин). |
||||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
Vova
Прошу прощения за недостаточно очевидную формулировку вопроса, off меня поправил Цитата:
off Цитата:
Если реализовать выборочное отключение/включение растров ("Show image" в "No"/"Yes"), мне кажется было бы удобно для работы с "временной подложкой".
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Цитата:
Мой вариант (подсмотрено у Raster Design) Макрос Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Так у imageframe 3 значения 0,1,2. Можно же с помощью Diesel выражений сделать переключатель по значениям. Взяв за образец $M=$(if,$(eq,$(getvar,UCSFOLLOW),0),UCSFOLLOW 1,UCSFOLLOW 0). Или там какие-то подводные камни?
|
||||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
VVA
Дело здесь не в _imageframe, т.к. требуется скрыть не рамки растров, а их содержимое. Попробую пояснить с помощью принтскрина. Включены растры "основной подложки" и "временной подложки",показ верхнего и нижнего "временных растров" отключен, среднего включен (в свойствах "Показ изображения">"Да"). Далее см. пост 597.
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
Нет, это не выход, т.к. при одновременном показе всех растров перемещение на передний не избавялет от перегруженности чертежа информацией (при включенной прозрачности фона), ведь растры "временной положки" могут накладываться друг на друга. Если прозрачность фона отключена, возникнут неудобства с выбором растров, которые находятся внизу, не говоря уже о том, что "основная подложка" будет постоянно проваливаться под непрозрачный растр.
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Имена слоев сделать с префиксом типа Растр_1, Растр_2, в Менеджере слоев добавить фильтр по имени Растр* и инвертировать его. Таким образом служебные растровые слои не будут путаться в выпадающем списке. На каждом растре пару-тройку номеров расположить чтобы всегда было понятно какую кнопку нажимать чтобы выключить слой (хотя тут можно и layoff использовать).
Включать все растры скопом можно через диспетчер состояния слоев. Сохранить включенное состояние всех нужных слоев и написать макрос который будет вызывать это состояние (покопаться в параметрах команды -layer). Последний раз редактировалось off, 29.10.2013 в 14:02. |
||||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
off, вот вы вернулись к тому с чего начали, в немного видоизменённом варианте. Однако идея с включением/отключением слоёв мне не подходит, потому я и задал свой вопрос в теме по обсуждению макросов, но всё равно спасибо
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Неоднократно появляется на форуме боязнь расплодить слои. Несколько их десятков считается очень чем-то страшным. На самом деле никаких проблем нет. В наших чертежах встречается и тысяча слоев, если чертеж делается на чужой подоснове куда в свою очередь вставлена всякая всячина. Моих собственных слоев всегда больше сотни и это нормально. Главное правильно их обозвать для кучного группирования
|
|||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
Согласен с вами, файл над которым сейчас работаю (попутно и возникла идея задать вопрос на форуме) в данный момент содержит 110 слоёв. Однако лучшие результаты работы достигаются там, где идёт выбор способа решения задачи, в каждом конкретном случае оптимальные решения могут отличаться.
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Цитата:
Цитата:
Первый код был опубликован здесь LISP. Растры.Управление выгрузкой/загрузкой/удалением путем указания точки внутри контура Я архив выкладывал на старом autolisp.ru. Порылся в своих заначках, выкладываю здесь Вожможные макросы Код:
ptImageUnload - выгружает растры, внутрь которых тыкнули ptImageReload - загружает растры, внутрь которых тыкнули ptImageReloadUnload - выгружает загруженные и наоборот ptImageReloadUnload - удаляет растр
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Программа перенесена сюда
Последний раз редактировалось gomer, 02.11.2013 в 17:01. |
|||
|
||||
gomer, попробовал код. Работает. Включает/выключает. А можно его как-то на одну кнопку повесить?
Тестировал в первом попавшемся файле и вдруг обнаружил что некоторые растры не выключаются - пригляделся поближе - они оказались в блоке. |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Вообще-то Slot это как-бы щель, узкий проем (в полу) и подобное. Автокадовская HELP показывает: slots
The spaces to install circuit breakers in an electrical panel (Это потому что мой автокад MEP, поэтому в нем как раз про электричество). Ну или, по-русски, место в эл. щитке для установки автомата. Гнездо подругому. То есть данный термин мало подходит к кнопке на панели инструментов. Думаю, приложенная тобой инструкция является самоделкой и автор сам придумал термин Слот, чего многие форумчане могут и не знать |
|||
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 379
|
Цитата:
Спасибо. Запомнил. Впредь буду более внимателен к терминам. И чтоб сообщение не было офтопом, задам давно интересующий меня вопрос: "Можно ли написать макрос, которых активирует операцию "Отразить" в динамическом блоке". Пример: Выделяешь выноску, жмешь кнопку, она зеркалится. Чтоб не надо было курсор наводить. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Это было в его первой инкарнации, когда его только создал admin. Ссылка вниpзу на caduser'е. датирована 26.09.2006
PS >gomer, Цикл Код:
Код:
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 30.10.2013 в 14:15. |
||||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
VVA, спасибо большое, подгрузил менюшку из поста 609 - выгрузка/загрузка растров работает, но только при:
Цитата:
art_rrc, воспользовался вашим советом, получилось просто отлично! Спасибо вам! Если бы только эту кнопку на обычную панель перетащить, было бы вообще здорово.
__________________
Каждая система стремится к равновесию. Последний раз редактировалось Агент СмиТ, 30.10.2013 в 15:56. |
|||
|
||||
Цитата:
Цитата:
Можно Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Выбрать все, преобразовать в список, пройтись по списку и оставить только те, у которых vla-get-imagevisibility = :vlax-false
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 571
|
Цитата:
Код:
__________________
cadtools |
|||
|
||||
TararykovDG, Ну или нажать F1 и найти в хэлпе соответствующую dxf группу
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Если кому интересно, выложил свою версию обработки изображений здесь
|
|||
|
||||
Инженер-конструктор Регистрация: 03.07.2009
МО
Сообщений: 19
|
Проставляет размер и автоматически начинает строить цепочку размеров от него:
^C^C^P(defun C:dimBulKonst () (vl-cmdf "_dimlinear" pause pause pause "_dimcontinue"));dimBulKonst Устанавливает ПСК, проставляет размер от ПСК и автоматически начинает строить цепочку размеров от него (удобно для простановки размеров 3D): ^C^C^P(defun C:PSKdimBulKonst () (vl-cmdf "_ucs" "_o" pause "_dimlinear" "@" pause pause "_dimcontinue"));PSKdimBulKonst |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
BulKonst, это не макросы, а лисп-функции, записанные внутрь макроса. В LT работать не будут.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-конструктор Регистрация: 03.07.2009
МО
Сообщений: 19
|
Цитата:
Код:
Код:
Для возможности быстрого повтора см. #628 |
|||
|
||||
Как в макросе выполнить после черчения полилинии какое-то действие? Не важно какое - разбить, сделать офсет или пр. У меня либо полилиния не чертится, либо следующее действие не выполняется
Для примера, допустим, нужно начертить полилинию, и ее разбить. Пишу: Цитата:
А так: Цитата:
Перепробовал массу вариантов "прокладок" между _PLINE и следующим нужным действием - почему-то не получается. Кстати, на всех 32-х страницах этой темы поиск не показывает ни одной "_PLINE"!
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 379
|
Доброго времени суток. Боюсь, что для макрокоманды, это невыполнимая задача (скорей всего, но не факт). Дело в том, что символ "\" предусматривает указание одной точки на экране. А количество точек (если полилиния не является типовой) нам заранее неизвестно. Так например макрос "^C^C_PLINE;\\\\;_EXPLODE;_L;" - будет замечательно работать, но только для полилиний, состоящих СТРОГО из 4х вершин.
|
|||
|
||||
Цитата:
Нашел здесь от VVA близкий вариант для создания замкнутых полилиний с закрашиванием их площадей: Цитата:
Только как теперь избавиться от обязательного замыкания? И как сделать описание нужной второй команды не внутри этого лиспа, а после него, вне него. Некоторые команды из лиспа не проходят. Последний раз редактировалось АлексЮстасу, 01.02.2014 в 20:28. |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Была сходная задача: нарисовать контур из полилинии после чего он автоматом закрашивался штриховкой. Полилиния могла иметь разное количество вершин, вот здесь
Я решил задачу применением того что никто из форумчан не повторил, а именно Action Recorder. С тех пор на форуме такие страшные слова не проскакивали. Но кто делает макросы, для них не составит труда, потому что процесс сходный. В теме найдешь код. Думаю, и твоя задача может решиться без лиспа |
|||
|
||||
Кода почему-то не нашел. (Там, кстати, 12 страниц).
В конечном итоге мне нужно создать несколько панелей инструментов или палитр, содержащих наборы нужных действий и настроек вычерчиваемых элементов. Но, к своему удивлению, уперся в почти нереализуемость макросами самого простого - pline+еще операция.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Попробуй в но. 96. Но сначала прочитай текст сообщения, который определяет порядок действий, обрати внимание что надо переименовать файл
Кстати, сама тема про конкурс мне кажется, была очень интересной, она зацепила много народу. Увы, сейчас таких нет |
|||
|
||||
В приложенном к тому #96 файле 82 страницы! И я совсем не понимаю, что там написано, кроме "pline", да и то найдено поиском Ворда, потому что знал что искать. Т.е. подправить в случае чего как?
И как вставить в пользовательское меню (в палитры) эти "аксьены"? Если бы мне удалось соорудить макросы для черчения полилиний+другие действия, и подобные нужные макросы, то был бы один файл палитры или несколько палитр. Если же удастся вставить в палитры эти Action, то будут файлы палитр + еще файлы Action. Что неизбежно скажется на передаче этих палитр пользователям. Конкретно для моей задачи мне использование Action пока не видится - кажется громоздким и потенциально ненадежным. Собственно, макросы и лиспы тем и хороши, что ими можно управлять самим, и использовать разным способом, в т.ч. из палитр.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Пытаюсь в макросе
Цитата:
Автокад ругается, что не может вызвать команду из ADS или AutoLISP. Цитата:
Цитата:
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 17.10.2009
Сообщений: 1,108
|
Если это макрос то переменные переключаются просто в лоб: ^C^C_cmddia;0;
cmddia - "Controls the display of the In-Place Text Editor for the LEADER and QLEADER commands." Цитата:
|
|||
|
||||
Цитата:
Если оконный режим выключить cmddia, то ADEATTACHDATA срабатывает. Хоть так: ^C^C_CMDDIA;0;_.adeattachdata;имя_ОД;_a;_n;_l;;_CMDDIA;1;, хоть так: ^C^C(command "_cmddia" "0")_.adeattachdata;имя_ОД;_a;_n;_l;; (command "_cmddia" "1") . Суть в том, что это действие (ADEATTACHDATA) нужно выполнить в макросе, в котором сначала чертится полилиния. А полилинию из макроса нормально начертить только из лиспа. Про это в #632, в здесь от VVA и пр. Соответственно, прошу помощи именно в лиспе для запуска команды Autocad Map 3D - ADEATTACHDATA. Чтобы можно было вставлять в макросы с черчением полилиний или т.п. Сейчас не получается, пишет: Цитата:
Последний раз редактировалось АлексЮстасу, 04.02.2014 в 16:16. |
||||
|
||||
Нерешаемая задача?
Черт с ним, с Map 3D. Может быть так: как в макросе после лиспа типа (progn(setvar "CMDECHO" 1)(command "_pline" pause)(while (= (getvar "CMDACTIVE") 1)(command pause))(vla-put-Closed (vlax-ename->vla-object (entlast)) :vlax-true)) от VVA или т.п. выполнить обычные консольные команды? Не встраивать действия внутрь лиспа (поскольку из него не все запускается), а записать после него? У меня такие команды воспринимаются как параметры для команд из лиспа, а не как команды, которые нужно выполнить после.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Попробуй нечто типа
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Спасибо! Но вопрос немного в другом.
Скрупулезно старый лисп VVA я не проверял, но в целом, допустим, он устраивает. Вопрос не только и не столько в подходящем лиспе. Вопрос в том, как в одном макросе после лиспа выполнить консольную команду? Или - как завершить выполнение лиспа, чтобы сработала команда послеработы лиспа? Дописать после лиспа перед командой что-нибудь вроде ;_ end of progn?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
АлексЮстасу, консольная команда и так сработает: (command "_.-layer" "_create" и т.д. Вопрос, насколько я понял, был в обработке команды, имеющей только режим диалогового окна. Я тебе пример и показал (тот факт, что я использовал _.arrayclassic, на принцип не влияет никоим образом).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Например, после ^C^C(progn(setvar "CMDECHO" 1)(command "_pline" pause)(while (= (getvar "CMDACTIVE") 1)(command pause))(vla-put-Closed (vlax-ename->vla-object (entlast)) :vlax-true)) (command "_EXPLODE" "_L") Разбивание не производится, а пишется: Цитата:
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 12.02.2014 в 16:41. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
АлексЮстасу, во-первых, у тебя не проверяется корректность срабатывания команды _.pline. Во-вторых, ты сравниваешь cmdactive с 1, а я с 0. Попробуй прогнать либо #642, либо такой:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Вопрос сейчас не только про лисп... Или в первую очередь не про сам лисп. Вопрос про то, как в одном макросе соединить лисп и консольные команды. Не вызвать лиспом команду, не встроить в лисп команду, а выполнить в макросе сначала лисп, а потом, после, независимо от лиспа выполнить команду?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Почему нет?
Для меня это путь был бы самым простым. В том числе и потому, что лиспера, разбирающегося в Map 3D здесь пока не обнаружилось, а команды Map 3D из этих лиспов не идут: Цитата:
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 12.02.2014 в 18:56. |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Потому, что нельзя объять необъятное и не стоит делать плохо, когда можно сделать хорошо. А во=вторых, чтобы нарисовать замкнутый контур из отрезков не обязательно рисовать полилинию замыкать ее, а потом разбивать, достаточно просто нарисовать отрезки и замкнуть последний
|
|||
|
||||
Цитата:
Замкнутый контур, контур из отрезков, рисование полилиний, разбивание и пр. - это лишь примеры. Для простоты. Без конкретного смысла. О чем я с первого своего сообщения на эту тему писал. Не столько прошу помощи написать мне лиспы или макросы, сколько прошу научить, как это писать, чтобы работало. В частности, как собирать макросы из готовых, допустим, лиспов и команд вертикального приложения.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 12.02.2014 в 20:17. |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
просто поймите, что макросы не предназначены выполнять всю рутинную работу за вас, это делают приложения на разных языках, а макросы просто склеивают это воедино или выполняют мелкие операции, как-то ткнуть пару опций в команде или засветить пимпочку в менюшке
|
|||
|
||||
Посмотрите - ровно такую задачу и решаю: соединить, например, черчение полилинии с каким-то действием над ней. Как раз для макроса.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Цитата:
А вне лиспа эти команды срабатывают.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 13.02.2014 в 01:59. |
||||
|
||||
Намекните что-нибудь.
Уже раза три здесь писал, что, например, на Map 3D команду _.adeattachdata;имя_ОД;_a;_n;_l;; или (command "_.adeattachdata" "имя_ОД" "_a" "_n" "_l") пишется: Цитата:
Это если ее вставить в лисп VVA вместо штрихования: ^C^C(progn(setvar "CMDECHO" 1)(command "_pline" pause)(while (= (getvar "CMDACTIVE") 1)(command pause))(vla-put-Closed (vlax-ename->vla-object (entlast)) :vlax-true)(command "_-bhatch" "_P" "_SOLID" "_S" (entlast) "" "")) Например, так: ^C^C(progn(setvar "CMDECHO" 1)(command "_pline" pause)(while (= (getvar "CMDACTIVE") 1)(command pause))(vla-put-Closed (vlax-ename->vla-object (entlast)) :vlax-true)(command "_.adeattachdata" "Apron" "_a" "_n" "_l")) или ^C^C(progn(setvar "CMDECHO" 1)(command "_pline" pause)(while (= (getvar "CMDACTIVE") 1)(command pause))(vla-put-Closed (vlax-ename->vla-object (entlast)) :vlax-true)((command "_cmddia" "0")(command "_.adeattachdata" "Apron" "_a" "_n" "_l")(command "_cmddia" "1"))) то неизменно сообщают: Цитата:
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
И из тех, и из этого лиспа:
Цитата:
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 16.01.2013
Сообщений: 11
|
Offtop: (По мотивам обнуления координаты z)
Написал для AUTOCAD LT 2009 Работает также и в AUTOCAD LT 2011 Корректно работает только для однострочных текстов -------------------------------------------------------------------------------------------------------------------------------------------- Кнопки на палитру находятся здесь http://dwg.ru/dnl/12625 Подробный разбор макроса смотрите здесь http://forum.dwg.ru/showpost.php?p=1...&postcount=672 Offtop: Добавил комментарий по просьбе АлексЮстасу Выравнивание однострочных текстов по X Указать точку выравнивания, выбрать только текстовые объекты (можно рамкой) Код:
Указать точку выравнивания, выбрать только текстовые объекты (можно рамкой) Код:
Последний раз редактировалось Stroit'el, 01.03.2014 в 23:53. Причина: правка оформления |
|||
|
||||
Stroit'el - круто!
Я не столько про действия макросов (действуют), сколько про неведомые мне возможности, в них использованные. Одни циклы меня серьезно впечатляют. Правда, мне в этих макросах мало что понятно. Можно их прокомментировать? Что в них что? Например, что такое "userr1", что такое "_id"? И т.д.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 27.02.2014 в 03:06. |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Переменные ORTHOMODE и POLARMODE - не оно? Хоть напрямую прописывать имя переменной в макрос, хоть функцией setvar. Если нужно менять режимы во время выполнения команды, то название переменной в макросе предваряется апострофом. Надеюсь, правильно понял вопрос.
Добавлено: Пока писал ответ, вопрос уже исчез, получилось, будто я невпопад вообще что-то написал... Вопрос был в том, можно ли из макросов управлять режимами ОРТО и Отслеживания. Последний раз редактировалось skkkk, 27.02.2014 в 03:32. |
|||
|
||||
Пардон, я уже до этих переменных добрался - сразу не заметил их. И потому изменил свой вопрос.
Но про эти переменные и их применение тоже спасибо - ключевые моменты я не знал.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Offtop: Тем более удалить, что номер его - ужас, ужас, ужас
Все-таки не POLARMODE, а AUTOSNAP (+РЕЖИМРИС) == 8 отвечает за включение/отключение полярного отслеживания? Еще открытие для меня - этот плюс перед +РЕЖИМРИС! бывает и с плюсом?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
А POLARMODE==1 мне нужна для включения полярного отслеживания "от последнего сегмента".
Только вот привязки куда-то ичезли, хотя в настройках они включены! По умолчанию AUTOSNAP у меня был 39. Когда вместо своей AUTOSNAP==8 ставлю AUTOSNAP в 39, то привязки восстанавливаются. Т.е. как и установить и полярное отслеживание, и чтобы работали привязки одновременно?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Да, похоже, дело в том, что значения AUTOSNAP не просто выставляются, а плюсуются. Если установил просто 8, то будет без привязок. А если взять текущее значение (у меня было 39) и прибавить 8 (т.е. будет 47), то одновременно будет и полярное, и привязка.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
Цитата:
|
|||
|
||||
Регистрация: 16.01.2013
Сообщений: 11
|
Цитата:
Сам макрос смотрите http://forum.dwg.ru/showpost.php?p=1...&postcount=662 Задача заключается в том, чтобы запомнить точку выравнивания, и затем по этой точке выровнять однострочные тексты, для этого используем переменную userr1. Идея выравнивания навеяна интересной макрокомандой обнуления координаты z. ------------------------------------------------------------------------------------------------------------------------------------------------------------------ userr1; - пользовательская переменная, ; - здесь, - подтверждение в ответ на запрос команды 0; ввод числа 0 - обнуление userr1, ; - здесь, - заканчивает работу команды _id; ввод команды id - получение координаты точки с чертежа, ; - здесь, - подтверждение ввода (аналог нажатия ENTER). \userr1; - после указания точки на чертеже присваиваем новое значение переменной userr1, которое получим с помощью координатного фильтра калькулятора командной строки, \ - ввод. Далее, userr1 - вызов команды присвоения значения переменной, ; - переход к получению значения (аналог нажатия ENTER). 'cal;rxof(@);\;; - 'cal - прозрачный вызов калькулятора командной строки, rxof - фильтр по координате х, @ - координаты последней точки, которые хранятся в памяти программы AUTOCAD, точка эта была указана вначале работы макроса (использовалась команда _id). _select;$M=$(if,$(getvar,cmdactive),\,) - выбор текстов в любом порядке, с учетом активности команды select (используется переменная cmdactive в выражении Дизель). Посмотрите примечание по этому поводу. _move;_pr;;1e99,0,0;;;_pr;;-1e99,0,0;;;_pr;; - перемещаем тексты по координате x в бесконечность (1e99) и затем возвращаем обратно (-1e99) по координате х в точку 0, здесь: _pr - предыдущий набор выбора. Команда перемещения снова вызывается по ";" (соответствует нажатию ENTER). Разделитель для ввода значений координат - запятая. 'cal;xof([$m=$(getvar,userr1),0,0]);; - перемещение текстов из точки 0 в точку, которая была указана (точка выравнивания), обратите внимание на квадратные скобки для ввода координат ------------------------------------------------------------------------------------------------------------------------------------------------------------------ PS. $m=$(getvar,userr1) - выражение на языке ДИЗЕЛЬ (в autocade LT есть очень удобный язык программирования ДИЗЕЛЬ и великолепный язык макрокоманд, спасибо разработчикам за то, что это у нас есть...) http://exchange.autodesk.com/autocad...30d6b-7b3c.htm \ - ввод в ответ на запрос команды, использование которого очень интересно тем, что, например, позволяет ввести какую-либо другую команду и затем указать объекты, таким образом возможно осуществлять комбинацию различных команд _ нижнее подчеркивание позволяет использовать англоязычные команды в локализованных версиях AUTOCAD (не используется для переменных). Есть замечательная книга Владимира Света "Язык макрокоманд и создание кнопок" http://dwg.ru/dnl/3480. *Примечание Ограничение использования данного макроса для всех объектов, кроме текстов, заключается в том, что макрос "плющит" такие объекты, например, отрезки становятся нулевой длины, поэтому рекомендуется использовать данный макрос только для текстов. Второй макрос работает аналогично. Спасибо за проявленный Вами интерес. Спасибо дорогому ФОРУМУ dwg.ru. Последний раз редактировалось Stroit'el, 02.03.2014 в 00:43. |
|||
|
||||
Можно ли в макросе запомнить текущее состояние параметров черчения (цвет, слой, вес, тип линий, ширину, масштаб типа линий), а также значение параметров черчения (AUTOSNAP), а после выполнения каких-то действий восстановить их?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
В макросе - нет (ну или использовать USER*-переменные. А там наверняка возникнет проблема с обратным восстановлением значений).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Если нельзя или не стоит командами, то, значит, программно?
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 04.03.2014 в 16:51. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Переменных USER* не так уж и много - 5 целых, 5 строковых и 5 действительных. При этом некоторые хранятся в чертеже, некоторые - нет.
Теперь смотри: слой (clayer) - строковое значение, хранить в USERS# цвет (cecolor) - опять строковое. Опять USERS# вес (celweight) - целое, с возможностью отрицательных. USERI# тип (celtype) - строка, USERS# масштаб типа линии (celtscale или ltscale) - двойной точности, USERR# Пока системных переменных немного, все хорошо, можно запомнить, где что лежит и как называется. А теперь добавь сюда, например, osmode (целое), autosnap (целое), - и очень быстро ты упрешься в то, что переменные USER* кончились ----- добавлено через ~3 мин. ----- Придется (по идее) либо писать лиспы, либо еще каким-то образом извращаться (и я даже догадываюсь каким )
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Если для совсем-совсем-совсем тупых - как, например, переменной USERS1 присвоить значение clayer в макросе? Пишу, допустим: ^C^CUSERS1;CLAYER; - присваивает не значение CLAYER, а строку "CLAYER". Или (собезьянничал): ^C^C(setvar "USERS1" CLAYER) - ругается: ошибка: Настройка переменной AutoCAD отвергнута: "USERS1" nil. Или (тоже собезьянничал): ^C^C(setq USERS1 (getvar "CLAYER")) - не ругается, но и не присваивает ничего. Или (еще собезьянничал): ^C^C$USERS1=$(getvar,CLAYER) - тоже не ругается, и ничего не присваивает.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Пишу без када, поэтому критика не принимается
^C^Cusers1;$(getvar,clayer); ^C^C(setvar "users1" (getvar "clayer")); P.S. Поищи функцию универсального обработчика ошибок (уж поминали такие вещи миллион раз)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
тоже присваивает почему-то "0". Активный слой совсем-совсем не "0".
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
|||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
Цитата:
Если мы упираемся в необходимость изменения системных переменных, лучше программно, только если AutoCAD не LT. Цитата:
|
||||
|
||||
Цитата:
Попробовал вставить в отдельную кнопку - работает! Спасибо. Жаль, что пробовать макрос на кнопке неудобно, дольше, чем в палитре. Вы как макросы проверяете? Но как же быть, если я планирую использовать эти макросы в палитрах? И не подскажете, что такое $M?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Дополнительно: http://autolisp.ru/2009/09/13/error-catch/
Цитата:
А надо ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
А что делать, если нужно определить параметры черчения нескольких сотен объектов? Для ускорения черчения и исключения ошибок назначения параметров. Нужно меню объектов, где для каждого объекта все прописано.
Есть готовые альтернативы Tool Palette?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я про то, что макросы в палитрах лучше не использовать. Это неэффективно. Я бы делал ставку на лисп-приложения - они и гибче будут, и проще в поддержке (естественно, при соблюдении некоторых условий).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
С лиспами в #631-661 уперся в тупик. Нужно, чтобы можно было после черчения полилиний и пр. выполнять команду Autocad Map 3D, а из лиспа она не запускалась. Или я ее не умею правильно готовить.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Приветствую. Кто сможет помочь.
Хоть это и не макрос, но был выложен в этой теме. Вот лисп для быстрого выделения мультивыносок по диапазону. Скажите что нужно поменять, чтобы также по диапазону выделялся мтекст? Пробовал в коде MULTILEADER заменить на MTEXT или MULTITEXT, но не лисп не работает. Код:
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Astartes, а "диапазон" - это что? Применительно к MTEXT.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Кулик Алексей aka kpblc, Тоже что и для мультивыносок.
Диапазон чисел (числовые значения мтекста). В спецификации номера позиций забиты мтекстом. Если стандартным методом. то КвикСелект-Мтекст-Содержимое-Оператор (поиск с глобальными символами) - Значение [0-9],[0-9][0-9]. В общем все тоже самое что и для мвыносок, только нужно чтобы выбирался мтекст.
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Кхм... А как бы учесть вариант принудительного форматирования текста?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Кулик Алексей aka kpblc, Если это ко мне вопрос то я не знаю.
А как он учтен в вышевыложенном лиспе для мвыноски? Ведь мвыноска это по сути тот же мтекст. Или нет?
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Как сделать обработку в макросе и предварительно выбранного, и выбранного после запуска макроса?
Например, нужно заменить типы линий на непрерывный (не важно на какой): ^C^C_chprop;_lt;Continuous;; - заменит типы линий у предварительно выбранного. Если нет предварительно выбранного, то не сработает. ^C^C_chprop;\;_lt;Continuous;; - заменит типы линий только у одного элемента, выбранного после вызова макроса . Для предварительно выбранного не сработает. ^C^C_chprop;\\;_lt;Continuous;; - заменит типы линий только у двух элементов, выбранных после вызова макроса, или у всех элементов, выбранных рамкой. Для предварительно выбранного не сработает. Как делается это нормально - чтобы для обработки выбрать все нужное как до, так и после запуска?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Ну да, работает. Что то подумалось что выделение должно сняться.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Спасибо!
Вы писали не командами, а на лиспе (?), потому что написать чисто макрос, учитывающий выбор и до, и после, нельзя?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 17.12.2013
Сообщений: 13
|
День добрый всем.
Помогите как сделать команду _Spline;\_ai_draworder _Back сплайн спрашивает только 1 точку и переходит к выбору объекта для опускания на задний план Как сделать так чтоб сплайн чертился а по завершению опускался назад даже может и _last |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Gti Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121
|
Доброго дня всем!
Помогите пожалуйста доработать макрос объединения ячеек таблицы в строке: Код:
__________________
Каждая система стремится к равновесию. |
|||
|
||||
Регистрация: 06.03.2013
Сообщений: 34
|
Добрый день. Столкнулся с проблемой.
Есть замкнутый контур, состоящий из отрезков. Мне необходимо его (контур) превратить в полилинию и перенести её на текущий слой. Я написал макрос: ^C^C_pedit;\;Д;\;;_laycur;_last; Макрос не работает. После объединения в полилинию команда _pedit не прирывается. Помогите, пожалуйста, решить проблему. |
|||
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
Спасибо, то что искал. Последнее время кому то нравится устанавливаь углы в градусы/минуты/ сек. Их потом при необходимости вводить не очень удобно, в десятичных удобнее. Просто добавил в макрос сохранениея, и теперь сохранив всё установилось как нужно.
|
|||
|
||||
Целью создания макроса было создание нескольких кнопок для оперативной печати листов формата А4, А3 на заданном принтер и сохранение в PDF. В качестве виртуального принтера PDF используется PDFCreator, в качестве реального принтера струйник WF-7010 (возможна печать А3 и А4). Принтер имеет некоторые особенности, с которыми пришлось бороться.
Введение: Основой макроса является команда -plot. Команда имеет большое количество параметров, чтобы не запутаться с ними и нужен xls файл. Основными являются: -Формат бумаги -PC3 файл -Ориентация листа (Portrait/Landscape) 1. Создаем *.pc3 для каждого принтера, который вы планируете использовать, изменяем если требуется поля печати (в pdf обязательно выставлять в 0, для реальных принтеров все зависит от их возможностей печатать без полей). При изменении полей, ограничении списка выводимых форматов создается pmp файл. Желательно также как и с pc3 придерживаться какой-то системы в их наименовании. 2.Определяемся с наименованиями форматов бумаги. В PDFCreator форматы называются просто A3, A4. В реальном принтере могут быть варианты, так у моего принтера формат А4 именуется так A4 (210 x 297 mm) . 3.Определяемся с ориентацией листа. Выполнив пункты 1-3 открываем файл xls и вносим в соответствующие ячейки ваши данные. В нижней строчке все параметры с помощью функции СЦЕПИТЬ объединяются в одну строку, которая и будет макросом. Выполняем Копировать-Вставить значения и вставляем строчку в соседнюю ячейку. Теперь в этой ячейке содержится нужный нам текст, который вставляется на кнопку или в инстр.палитру. (лучше сначала вставить в палитру, на время отладки, а потом уже переносить на панель в виде кнопки). Полученный макрос будет иметь примерно такой вид: Код:
Код:
Часть кода Код:
После выполнения этих муторных действий вы получите набор кнопок с помощью которого можно быстро напечатать несколько листов, не заморачиваясь на выставления параметров печати. Для всего остального есть листы или мощные проги типа той, которую развивает bargool или платной программы, которая печатает с использованием блоков/рамок. В приложении иконки для кнопок и экселевский файл, упрощающий написание макроса. В файле все параметры и команды на английском с _. Что касается борьбы с принтером WF-7010 - у него есть два лотка, первый соответственно для А4, второй для А3. Автоматом он не выбирает какую брать бумагу, поэтому пришлось задавать это явно и создавать по pc3 файлу для каждого формата. К тому же оказалось что пользовательские форматы листов можно добавлять только для первого лотка (хотел создать форматы А3 и А4 вместо А4(297x210 mm) и A3 (11***in). |
||||
|
||||
В дополнение к #711.
Макрос для печати последней конфигурации: для англ.версии ^C^C_-plot _N;Model;previous plot;;_N;_N;_Y; для русской версии ^C^C_-plot _N;Model;Предыдущая печать;;_N;_N;_Y; Повторяет печать с последними настройками. |
||||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Код:
http://forum.dwg.ru/showpost.php?p=330892&postcount=123
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Напиши лисп, гарантируй его загрузку.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Она уже работает. Это не макрокоманда, а нормальное описание Lisp-функции.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 28.01.2013
Минск
Сообщений: 379
|
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
|
|||
|
||||
Регистрация: 11.12.2013
Сообщений: 9
|
Приветствую.
Стоит конкретная задача преобразовать содержимое dxf в другой вид. Прилагаю исходный и конечный файлы. Моя последовательность действий приведена ниже. Что из этого можно выполнить макросами, а что нет? Можно ли одним или несколькими макросами с перерывами на манипуляции вручную? Еще не всю тему прочел, и вообще только учусь. Прошу ткнуть носом, где читать про каждый конкретный случай (если есть такой). Автокад 2010 рус, но файлы формата акад2004 если это важно. формат - стиль текста STANDART был txt.shx - стал win_eskd.shx- применить - закрыть формат - отображение точек - круг с точкой размер 0.25 в абсолютных единицах формат - единицы чертежа - десятичные, 0.000, метры, Град/Мин/Сек, 0d00'00", общие создать слой - PI_OT0 создать слой - PI_ST0 создать текстовый стиль SHRFT - win_eskd.shx, высота 0.95, коэф. сжатия 0.85, угол наклона 15d быстрый выбор - все полилинии - удалить быстрый выбор - весь текст с цветом 0,0,255 - переместить в слой PI_OT0 и поменять стиль на SHRFT, высота 1, цвет по слою, положение Z=0 быстрый выбор - все точки - положение Z=0 - переместить в слой PI_ST0 быстрый выбор - слой подписи точек - стиль STANDART сдвинуть слой PI_OT0 влево на 0.5 вверх на 0.3 сдвинуть слой подписи точек влево на 1.2 очистить - удалить все - все Еще дополнение можно ли на одну кнопку повесить замораживание и размораживание одного слоя? А то у меня две кнопки ^C^C_-layer;_freeze;NAD_M0;; Заранее спасибо |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Цитата:
Системные переменные pdmode, pdsize Команда _.-units, системные переменные lunits, aunits, luprec, auprec, insunits, insunitsdefsource, insunitdeftarget Команда _.-layer Команды, по-моему, нет (кроме _.qselect, у которой есть только диалоговый режим работы). Решается лиспом / vba / .NET / arx Сдвинуть слой невозможно. Только объекты слоя. Попробуй заблокировать все слои, кроме нужного, потом _.select _all и команда _.move Тут что запрашивается? _.-purge, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.12.2013
Сообщений: 9
|
Почему-то файлы не приложились к предыдущему сообщению, ну, впрочем, они и не нужны.
Спасибо за помощь. Получилось это: первая часть ^C^C'_.zoom _e;_.-style STANDARD win_eskd.shx;0;0.85;;;;_.-style SHRFT win_eskd.shx;0;0.85;15;;;lunits 2;aunits 1;luprec 3;auprec 3;insunits 6;insunitsdefsource 6;pdmode 32;pdsize 0.25;_.-layer;Н;PI_OT0;;_.-layer;Н;PI_ST0;;flatten;_all;;n; вторая часть вручную быстрым выбором раскидываю по слоям и меняю стили текстов, _change _chprop этими командами можно как то? и и третья часть _-layer;_freeze;*;;_-layer;Р;Подписи точек;;_move;_all;П;-1.2,0;;_-layer;_freeze;*;;_-layer;Р;PI_OT0;;_move;_all;П;-0.8,0.2;_-layer;Р;*;; про то, что сдвинуть слой это действительно я коряво написал ну и _.-purge;итд Где посмотреть перевод всех команд рус и англ акада? Чтобы не использовать русские буквы _.-layer;Н [Новый] или _-layer;Р [Разморозить], _move;_all;П, итд. Чем отличается пробел от ввода и от ; в макросе? Минус как я понял, чтобы не выводить диалоговое окно если оно есть. До книги язык макрокоманд еще не дошел, но скоро дойду. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Советую поставить английскую локализацию и на ней ставить эксперименты
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Насчет перевода в виде списка "англ-рус" в одном месте не знаю, но можно смотреть в английской справке, а если трудности с переводом возникнут, то подглядывать в русскую.
|
|||
|
||||
сп. САПР, архитектор Регистрация: 25.05.2008
Санкт-Петербург
Сообщений: 116
|
__________________
"лучше" или "хуже" - понятия относительные |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Не могу понять в чём дело.
^C^Cusers1;$m=$(Getvar,Clayer);_Clayer;Выноски;_Line;\\;_Clayer;$m=$(Getvar,users1); По идее в конце должен возвращаться слой, активный до начала выполнения макроса. На практике же, слой принимает ПРЕДЫДУЩЕЕ значение переменной Users1. В чем соль? ----- добавлено через ~4 мин. ----- Ах да, Автокад 2015 рус Последний раз редактировалось RNB, 25.02.2015 в 09:47. |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Спасибо! Можно даже чуть короче
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Макросом - по-моему, никак.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Можно, но не нужно. В моем случае слой создается. Поэтому код будет работать даже в чертежах где нет этого слоя.
Это лисп нужен. А вообще есть ведь tool palettes, там на кнопках можно слой задать.
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Жаль. Ну что ж, давно хотел взяться за лисп. "Валера, настало твоё время"
----- добавлено через ~11 мин. ----- Цитата:
Цитата:
----- добавлено через ~4 ч. ----- Цитата:
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Отлично! Спасибо! Я уже сделал, но по сравнению с этим - через .... Добавлю обработчик ошибок и буду радоваться
Последний раз редактировалось Кулик Алексей aka kpblc, 26.02.2015 в 15:45. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Так ведь в статусной строке выводится соответствующий переключатель, нет?
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
На кнопку мыши? А лиспы поддерживаются (т.е. AutoCAD не LT)? Если да, то можно поставить такое:
Код:
Код:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
|
|||
|
||||
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
|
Возвращаясь к теме...все таки не очень удобно что быстрые свойства не сразу закрываются при отключении QPMODE, про какие настройки говорил Гомер, я не понял...я установил эту панельку, поигрался, ничего подходящего не нашел.
|
|||
|
||||
Товарищи, подскажите, можно ли создать такой макрос чтоб при вызове команды _dist переменная DYNMODE принимала значение 2, а после завершения команды снова обнулялась?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Offtop: Можно. Создавай
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Konstruktiv54, ну не люблю я макросы, я лиспы предпочитаю писать и использовать. Это для меня проще, быстрее и устойчивее.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ACAD2014, только что проверил код переключения:
Код:
То же, но с подсветкой последнего выбранного элемента: Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 31.01.2007
Новосибирск
Сообщений: 1,040
|
Столкнулся с проблемой, что этот лисп работает только в последнем открытом документе. Альт+табом перекючаешься на другой файл, и выпадает ошибка что-то там command mismatch.
Вернулся к коду из 742, только добавил в него деселект. все заработало так как надо )) Код:
что-то я хрень какую-от написал )) хотя сам макрос и работает! нашел гдд-то на форуме, что setvar "pickfirst" 0 отменяет селекцию и применил, но с этим "pickfirst" 0 работать вообще не удобно! подскажите как отменить селекцию элементов по окончании функции. Ну вроде бы выкрутился вот так...не знаю в чем смысл но работает как надо ) Код:
Последний раз редактировалось Konstruktiv54, 09.04.2015 в 20:46. |
|||
|
||||
Объект Xline строится по по произвольному отрезку/полилинии, с поворотом в указанной точке на произвольный угол (не работает по примитивам блока и arx объектов сторонних навесок на автокад).
В ком строку RUS/ENG Прямая Угол Б _XLINE _ANG _REFERENCE Макросы на кнопку RUS/ENG ^C^CПРЯМАЯ;Угол;Б;/; ^C^C_XLINE;_ANG;_REFERENCE;/;
__________________
tc71 |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Сначала определи, что такое "исходные координаты".
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.07.2014
Сообщений: 55
|
|
|||
|
||||
Регистрация: 05.11.2014
Сообщений: 978
|
Цитата:
Создайте блок в котором координатамы его центра x=100 y=100, а сам блок вставьте в чертеж в 0,0,0. При вставке этого чертежа блока он вставится так как надо. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
... И работает только в русской версии AutoCAD.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Для выравнивания (всех) атрибутов (а также обеих текстов) служит стандартная команда Express Torient (Text orientation). Атрибут передвигается грипсой, если он не заблокирован). Проще создать алиас для Torient, например, TT, и избежать таким образом лишней кнопки. Если, конечно, часто приходится выравнивать не все атрибуты у блока, тогда макрос зарулит
|
|||
|
||||
Регистрация: 15.10.2013
Сообщений: 30
|
Доброго дня, товарищи!
Часто приходится работать с чертежами коллег и настраивать листы для дальнейшей печати (многие оформляют чертежи в листах, но не настраивают печать как положено). Я написал небольшой макрос: выделяет весь чертеж (все видовые экраны, рамки и т.д.), указываем левый нижний угол форматки листа и все перемещается на настроенную область листа (соответственно левый нижний угол форматки переносится в точку с координатами 0,0). ^C^Cdynmode;-3;_.zoom;_e;_move;_all;;\0,0;dynmode;3;_.zoom;_e; Может кто подскажет как усовершенствовать макрос (или решить это лиспом) так, чтоб левый нижний угол форматки указывался не вручную, а автоматически (точка с наименьшими координатами) |
|||
|
||||
Регистрация: 25.10.2008
Сообщений: 91
|
А мне понравилась программа "РЕВЕРС" Кириллова Дмитрия, она сама собирает все форматки и выводит на печать, хоть с модели, хоть с листа. Да стоит копейки.
|
|||
|
||||
Мостовик-затейник Регистрация: 25.02.2006
Москва
Сообщений: 76
|
Всем привет.
Очень нужен макрос, или скорее всего лисп, который бы подсчитывал количество неиспользуемых масштабов аннотаций, и при превышении определённого адекватного количества (например 100), чистил бы их командой (command "_-scalelistedit" "_d" "*" "_e"). Чтобы не задавали вопросы в стиле "а зачем так надо", и "почему именно так надо", опишу проблему. В проектном институте на сервере выложены файлы с коммуникациями и есть сводный план сетей, который ссылками собирает эти файлы. В некоторых файлах содержится по 15-17 тысяч масштабов аннотаций, и вместо 2-3 секунд на подключение такого файла как ссылки тратится 1,5-2 минуты (засекал). Если таких файлов много, то сводник грузится неимоверно долго. Многие видимо отключили запрос автокада про большое количество масштабов аннотаций и их не чистят. Так же есть люди, которые пользуются аннотативными объектами со своими масштабами, поэтому вариант лиспа с полной очисткой масштабов и создания новых категорически не годится. Просто чистить неиспользуемые масштабы аннотаций тоже нельзя, так как некоторые используют эти масштабы для видовых окон. Ещё вариант: как-то (не знаю как) включить в автокаде автоматическую очистку при большом количестве масштабов аннотаций, но там тоже засада, автокад в таком случае сбрасывает список масштабов на стандартный, а этого делать нельзя. Последний раз редактировалось Mitek, 22.04.2016 в 14:40. |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Цитата:
|
|||
|
||||
Мостовик-затейник Регистрация: 25.02.2006
Москва
Сообщений: 76
|
Цитата:
Как это сделать ручками я и так знаю. Мне нужен лисп для автоматического исполнения его на 600 компах! Алексей Кулик, VVA, где вы? Помогите, очень надо |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
|
|||
|
||||
Мостовик-затейник Регистрация: 25.02.2006
Москва
Сообщений: 76
|
RNB, вы умеете внимательно читать посты? В самом первом посте я написал, что этот макрос (точнее я указал команду (command "_-scalelistedit" "_d" "*" "_e"), что по сути одно и то же), нужно выполнять при условии, что количество масштабов превышает определенное адекватное количество (например 100), иначе ничего не выполнять!
Как узнать количество масштабов аннотаций в чертеже с помощью лиспа? |
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
... И работает только в текущем документе.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Мостовик-затейник Регистрация: 25.02.2006
Москва
Сообщений: 76
|
Ну да. А этот лисп грузится через acaddoc.lsp в каждый открываемый документ на каждом компьютере Так что этого пока вполне достаточно.
Offtop: P.S. На всякий случай, в теме http://adn-cis.org/forum/index.php?topic=709.0 тоже я (Подшиваленко Дмитрий). |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Помогите составить макрокоманду. Надо:
1. Установить размерный стиль. 2. Запустить команду параллельного размера. 3. После выбора начала первой и второй выносных линий, выбрать опцию "Текст", и ввести значение, размерного текста. 4. Выбрать положение размерной линии. 5. К полученному размеру применить команду "Размер, наклон" (_dimedit;_o) и наклонить на -30 градусов. У меня получилось только первых 2 пункта: ^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned; Понял что надо добавить паузу для ручного ввода, а потом продолжить макрос, но как не знаю. Книгу "Язык макрокоманд" скачал и начала читать, но решение надо сегодня, боюсь не успею прочесть)) окончание макрокоманды будет _dimedit;_o;\;-30; Вот серединку бы добавить. Последний раз редактировалось 99xt1, 06.05.2016 в 10:15. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Значение текста из макроса не получится ввести.
Попробуй так: Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
нефтепереработка Регистрация: 17.11.2009
Мозырь, Республика Беларусь
Сообщений: 77
|
Всё отлично, благодарю.
----- добавлено через ~2 мин. ----- Цитата:
Вот так вроде ^C^C-dimstyle;_restore;ISOTEXT-1;_dimaligned;\\_text;\\_dimedit;_o;_Last;;-30; |
|||
|
||||
Регистрация: 25.05.2016
Сообщений: 111
|
Здравствуйте уважаемые специалисты! Прошу помощи. Решил попытать удачу и создать простой макрос для команды повернуть с базовой точкой выглядит он так
Код:
У меня получилось только предварительно выбрав объект вызываю команду, задаю базовую точку, 1 точка опорного отрезка, 2 точка опорного отрезка и поворачиваю. Последний раз редактировалось Кулик Алексей aka kpblc, 28.07.2016 в 10:05. |
|||
|
||||
Регистрация: 06.11.2013
Сообщений: 78
|
Электрик по образованию, при рисовании планов использую вот такие макросы:
1)*^C^C_fillet;Радиус;0.8;;_Polyline; -- Скругляет углы полилинии, начальнику нравится что кабель поворачивает плавно, мне тоже нравится 2)*^C^C_fillet;Радиус;0;;_Polyline; -- действие противоположное первому, применяю при изменении трассы кабеля 3)^C^CПСК;НН;С -- сохранить ПСК с указанием имени (новую ПСК обычно задаю командой Объект (^C^C_ucs _ob )) 4)^C^C_Plan;Текущая; -- поворачивает вид оператора в соответствии с текущей ПСК |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Макросы надо создавать на инструментальной палете, и тогда не придется "скакать". Тестировать их становится легче чем лиспы
----- добавлено через ~19 мин. ----- Пока не устаканилась трасса лучше рисовать ее одиночными полилиниями или даже отрезками (!?). Для этого поищи лисп от Profan, кaжется, нзывается Poliline-1. Если соединять их командой из Express Exfillet (вместо Fillet) то скругления также останутся не связанными с прилегающими прямыми. Зато затем все окончательно соединить легко командой Join. Если-же изначально не использовать полилинии а только отрезки и дуги но хочется иметь конечный результат в виде полилиний то команда Join легко превратит все соединенное в полилинию, если первый отрезок превратить в полилинию командой Pedit. Это мало кто знает, но, кажется, работает не во всех автокадах |
|||
|
||||
Цитата:
Без проверок, новый вид макроса Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 25.05.2016
Сообщений: 111
|
Цитата:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Клаус, на эту тему (скругление смежных отрезков) есть примитивный лиспик, он может обработать сразу много полилиний. Чтобы вернуть обратно скругления, надо назначить радиус равным нулю.
Цитата:
Цитата:
Я хотел было вспомнить про выражения на языке Delphi для макросов, как более близкие к этому языку и способные работать в LT версиях, но твой вариант оказался "качественнее", я совсем забыл про эту собачку. |
|||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Чем-же рисовать. полилиниями или отрезками? Я сторонник отрезков, если нет необходимости выделять всю трассу для просмотра или задавать толщину. Во всяком случае, пока делается чертеж и если трасса сложная и их много, и они пресекаются. Ведь в процессе создания чертежа обычно маршрут трасс меняется. Крайним случаем такого чертежа, где миллион линий и все они пересекаются является электрич. схема. Пока ее сформируешь, сотни и сотни раз отрезки перерисовываются, идут другим маршрутом и грипса на середине сегмента полилинии мало поможет. Если в конце черчения, когда все устаканилось.все отрезки превратить в полилинии (кстати, это легко и быстро делает команда Join, даже примененная к чистым отрезкам) то и в этом случае возможны коллизии, если схема в полилиниях а не в отрезках. Ведь обычно вскоре последуют изменения, которые может делать другой сотрудник, менее продвинутый. Он все повзрывает. SKKKK, если будешь в наших краях, конечно, встретимся и поговорим, и даже примем на грудь |
|||
|
||||
Цитата:
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Насколько я помню историю схемных пересечений то она выглядела так: при царе горохе и в СССР до 60х- 70х годов пересечения в схемах согласно рисовательному госту осуществлялось разрывом с дугой, что давало понять что эл. контакта в месте пересечения нет. Затем гост упростили: дугу убрали но разрыв оставили. И, наконец, в очередном новом госте убрали и разрыв. Поскольку все схемные пересечения обычно осуществляются под прямым углом, разночтений - есть ли контакт не возникало, а карандашное черчение значительно упростилось. В США гостов на рисование нет, что вызывает недоумение на форуме. Рисовали согласно традициям начальников. Когда я делал свою первую схему, уже в автокаде, на образцах увидел разрывы. Поначалу и я делал разрывы, а потом понял что многократное изменение конфигурации схемы, перенос ранее нарисованных отрезков, составляющих линию- фидер требует много доп. работы. И я вспомнил последний советский гост неразрывных пересечений и стал так рисовать. Начальству понравилось, и это стало традицией в нашей компании, а также в тех, куда попадали мои чертежи. Чужие схемы видел разные, по всем трем вариантам. Наши легко читаются и отслеживаются в автокаде несколькими кликами от начала до конца. Для того чтобы трасса прослеживалась малым количеством кликов (в пределе одним, если сделать ее полилинией) надо кроме того сделать некоторое количество "хитрых" блоков того оборудования, которое нанизано на линию. Именно тогда я и изобрел блок с маскировкой, который получил широкое распространение на форуме. Но автокад иногда капризничает и опускает блоки с вайпаутом вниз, под линию. Отдать файл - чертеж в чужие руки небезопасно Поэтому не надо перебарщивать, стараясь непремено не разрывать свои трассы, добиваясь одного клика для выделения. На всякий случай я имею макрос, поднимающий весь слой, на котором размещены блоки с вайпаутом наверх, сделанный на базе команды... ХХХХ. Предлагаю умельцам создать такой макрос здесь Последний раз редактировалось Vova, 08.08.2016 в 00:28. |
|||
|
||||
Регистрация: 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 Взрывает все штриховки на чертеже |
|||
|
||||
Можно в макросе после вычерчивания полилинии задать ее замыкание? Closed? Пробую - не получается.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
При рисовании полилинии заранее неизвестно количество кликов, так что макрос вряд ли решит эту задачу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
То есть это обычная команда но перенесенная на смд. кнопку Для замыкания надо нажать "С". Видимо ты хотел чтобы макрос почувствовал нажатие на начало полилинии, и она замкнулась. Наверное, можно реализовать эту идею и в макросе, если бы он запомнил координаты начала полилинии и, придя сюда последним кликом замкнул ее, а потом удалил последнй отрезок равный 0. Но для этого надо использовать выражения лиспа, а, может быть и калькулятора (без лиспа). В моей книге Язык макрокоманд... Калькулятор использовался, но в автокадах после 2002 там, в калькуляторе, что-то сбоило. Как в современных не знаю. Мне кажется, я реализовывал подобную идею через Action Recorder Там полилиния с неизвестным заранее количеством точек замыкалсь и покрывалась штриховкой. Посмотри тему по ключевому слову Action Recorder И тогда мы с тобой "утрем нос" самому Кулику который считает этот рекордер ерундой. (Шутка, Алексей) |
|||
|
||||
В данный момент я пытаюсь понять, какие параметры в макросах из Tool Pallettes могут оказаться в принципе. Лиспы в макросах при этом я, конечно, игнорирую - в них может же быть что угодно.
Если говорить о хотениях, то для замыкания я бы хотел, чтобы при черчении полилинии после Esc или Enter ей придавался признак Closed. А не как сделано сейчас - вводишь Closed, и она сразу замыкается.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Признаться, я мало что понимаю. Причем здесь Tool Palettes? Или ты нашел некую особенность в кнопке на палитре в отличие от обычной кнопки? И что за ESC, Это ^С в макросе или реальное нажатие на кнопку на клаве?
Об'ясни что ты хочешь или напиши неработающий макрос |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Могу предложить лиспик, но надо бы знать: замыкаться она должна несмотря на то, как отстоят друг от друга первая и последняя точки или только в том случае, если они совпадают?
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,960
|
|
|||
|
||||
Мне нужно было понять, если я возьму кем-то когда-то как-то сделанную Tool Palette, будет ли там описано, в том числе, и Closed. Например, средствами макросов. Т.е., если я правильно понял, то замыкания/не замыкания описаны не будут, если говорить об обычных макросах, без лисп-выражений.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,960
|
Цитата:
----- добавлено через ~4 мин. ----- зависит от конкретной задачи и реализации) |
|||
|
||||
Регистрация: 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 - как я понимаю несколько иная функция, по крайней мере, на сколько я помню, кнопки с выбором начинали работать только через нее |
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
...помогите плиз, нужен макрос на добавление контура к штриховке; (акад2015 рус)
^C^C_-HATCHEDIT;\Д В - работает, но запрашивает лишний запрос Код:
...я замыкаю через редактирование: _pedit _close _exit Последний раз редактировалось Linkshunter, 23.11.2016 в 15:54. |
|||
|
||||
Регистрация: 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] Проверять не стану, но навскидку, макрос будет таким (ну или типа такого): Код:
|
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
Цитата:
Команда: _-HATCHEDIT Выберите объект штриховки: Задайте параметр штриховки [Неассоциативная/сТиль/Свойства/поРядок прорисовки/Добавить контуры/Удалить контуры/Восстановить контур/свяЗать/Отдельные штриховки/Исходная точка/Аннотативный/Цвет штриховки/сЛой/Прозрачность] <Свойства>: _AD Укажите внутреннюю точку или [Выбор объектов]: _S Выберите объекты: _S Выберите объекты: найдено: 1 Выберите объекты: Укажите внутреннюю точку или [Выбор объектов]: макрос типа ^C^C_-HATCHEDIT;\_AD;_S;\\;; делает то, что мне надо, но только с двумя последовательно выбранными контурами(по числу обратных слэш в конце) Последний раз редактировалось Linkshunter, 24.11.2016 в 14:49. Причина: добавил |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не пойму, что делает этот макрос. Точнее эта опция "Добавить контуры". У меня она ничего не добавляет. Чего-то я не догоняю. Догадываюсь, что речь идет о контурах не в виде полилинии, а о ручках по контурам штриховки при ее (полилинии) отсутствии. Но сколько не тыкаю в эти штриховки, не могу сообразить, о чем речь. Может, дело пойдет, если приложить к посту файл с примером - что есть и что надо?
|
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
Цитата:
На второй гифке стандартная работа команды без макроса вручную Последний раз редактировалось Linkshunter, 24.11.2016 в 19:16. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
А я на картинке увидел, как к существующим контурам (полилиниям) добавляются новые штриховки
Я так понял, проблема решилась в итоге? |
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
все верно, тогда корректно сработает на добавлении одного контура(один клик мыши по одной полилинии, а ежели более одного или выбрать рамкой - то доп.запрос выйдет.Макрос заранее не знает,какое количество контуров планируется добавить )
|
|||
|
||||
Регистрация: 25.05.2016
Сообщений: 111
|
Здравствуйте, прошу прощения если поставил вопрос не корректно. Решил написать простой макрос для перемещения объектов в точку 0,0,0. Так как опыта в написании у меня маловато то особо не получилось) Макрос работает только с 1 объектом, при выделении объектов рамой он просто переносит их на отрезок от начала координат до координаты самого объекта. Так же не работает если сначала выделить объект а потом вызывать команду. Подскажите пожалуйста в чем проблема и как ее решить.
Код:
Все разобрался. Выбираем объекты. Вызываем команду. Задаем базовую точку и все. Код:
|
|||
|
||||
Регистрация: 15.10.2013
Сообщений: 30
|
Лисп был опубликован в этой теме:
Цитата:
при запросе [1-18] выделяются выноски с позицией 1 и 8; при запросе [7-23] выделяются выноски с позицией 7 и 3; при запросе [20-36] выделяются выноски с позицией 1,3,6 и т.д. Autocad 2015 64 Может кто-то сможет подсказать как исправить... Последний раз редактировалось betonolom, 09.01.2017 в 14:08. Причина: добавлено вложение |
|||
|
||||
Регистрация: 17.01.2014
Сообщений: 97
|
Подскажите, как правильно задать макрос, чтобы он подгружал файл LSP, если функция не выполняется? Если команду нужно выполнить, но эта команда отсутствует, я вешаю на кнопку следующий макрос:
Код:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Насколько я помню, у команды _.checkstandards нет режима ком.строки. Так что макросом не получится.
P.S. Решения по обработке стандартов, кажется, на форуме были
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.05.2016
Сообщений: 111
|
Здравствуйте! Нужен совет и попутно Ваша помощь. Для быстрого составления спецификаций применяю извлечение данных их созданных мной динамических блоков, интересует как можно сделать расстановку блоков быстрее.
Для начала опишу свой алгоритм работы: 1. Построение аксонометрической схемы (не в масштабе); 2. Гидравлический расчет трубопроводов; 3. Нанесение диаметров на аксонометрическую схему; А вот сейчас пошла работа с блоками 4. Расстановка блоков с указанием их диаметра. Применяю такие блоки как отвод, переход, шаровой кран и т.д. 5. Извлечение данных. 6. После извлечения составление спецификации. В приложенном файле 1 блок отвода для примера. Думаю будет удобнее создать макрос для вставки блоков, который будет повторяться пока я не отменю команду. Макрос я сделал. Интересует можно ли за счет макросов сделать и извлечение данных уйти от лишних движений, или работа с диалоговыми окнами в макросах не возможна? Так же интересует Ваше мнение по данному способы составления спецификаций, может есть лучше и быстрее. Файл: выполняю в автокаде 2014, сохранил в 2004 Созданный мной макрос для вставки блока Код:
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
а сам? попробовать не хочешь?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 06.11.2013
Сообщений: 78
|
помощь утопающим--дело рук самих утопающих.
Спасибо за совет, прям вдохновился и сразу всё понял. гуд. Zenon, если есть желание помочь, то сбрось пожалуйста годные ссылки на темы по вводу в Lisp и на темы где рассмотрены похожие вопросы. Буду благодарен. Спасибо.
__________________
Читайте интернет -- там всё написано! |
|||
|
||||
Цитата:
а это уже другая ветка... макросами не решить. а по поводу блокировки слоя изучай _-Layer в командной строке, правила написания макросов не такие уж и сложные.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 23.09.2015
Сообщений: 146
|
Цитата:
_-LAYER;Р;Слой;А;Слой;;_CHPROP;\;_LA;Слой;;_-LAYER;Б;Слой;_F;Слой;; Вместо "Слой" вписываешь нужный. Работа в русской версии AutoCad, т.к. некоторый команды английские не знаю. Из минусов - выбор вручную и по одному. Думаю, знающие поправят.
__________________
Проекты СС |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
Здравствуйте, форумчане!
Следующий алгоритм рутинной работы хочется заменить нажатием одной кнопки: - быстрый выбор всех размеров; - порядок прорисовки на передний план; - быстрый выбор всех блоков; - порядок прорисовки на передний план; - быстрый выбор всех мультивыносок; - порядок прорисовки на передний план. Нужен именно такой порядок. Почитав форумы понял что QSELECT через макрос не сделать (возможно не правильно понял). Языком лиспа не владею. Может кто подскажет примером или советом? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Попробуй использовать _selectsimilar
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
Цитата:
ТЕКСТПЕРПЛАН - аннотации - ^C^C^P_texttofront _a ^P только выноски - ^C^C^P_texttofront _l ^P только размеры - ^C^C^P_texttofront _d ^P только тексты - ^C^C^P_texttofront _t ^P штриховки на задний план HATCHTOBACK и т.п. ЗЫ: если работать по слоям, есть классная программа от lee-mac http://lee-mac.com/layerdraworder.html |
|||
|
||||
Инженер-проектировщик Регистрация: 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,772
|
boretskiy.a, в макросах можно обойтись без command, setvar etc. И ты забыл про локализацию ACAD. Теоретически должно быть так:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Пытаюсь сделать мультивыноску с определенным текстом в виде макроса (чтобы повесить на кнопку и в два клика проставлять одинаковые надписи). Вроде все просто: команда, два пользовательских выбора на экране (положение стрелки + положение текста), далее enter.
Записал так: Код:
Сейчас использую тоже самое, но записанное через рекордер операций. Работает, но немного подглючивает, макросом как мне кажется более стабильно должно работать. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,960
|
Immortal_6666, будет интересно - статья от Алексея Кулика.
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,960
|
Цитата:
----- добавлено через ~11 мин. ----- хотя ошибся: для такого порядка в статье - нуль получается Цитата:
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
В виде лиспа мне знаний не хватает. Да и просто интересно, где я ошибаюсь в макросе, т.к. задача вроде примитивная... П.С. А есть какая-то веская причина, почему так не любят "командные методы"? Я не против лисп, просто зачем изобретать каждый раз велосипед... В лисп всегда надо предусмотреть все события, все варианты, кучу всего прописать, часто "лишнего", т.к. "а вдруг что-то пойдет не так". А зачастую нужна просто последовательность обычных команд. По сути предложить программе нажать кнопки за пользователя. Я почему макросы такие люблю - вот повесил его на палитру, в свойствах указал в какой слой помещать, для некоторых инструментов можно сразу стиль указать и готово. В а лиспе пришлось бы описывать создание стиля, создание слоя и т.п. Я-то очень хочу в нем разобраться. Но часто получается, что это микроскоп, которым при каждом удобном случае предлагают забивать гвозди... И чтобы сделать примитивную вещь нужно ну очень много всего знать, что ставит в тупик, т.к. даже не знаешь, как подступиться к задаче. Последний раз редактировалось Immortal_6666, 02.01.2018 в 13:19. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
----- добавлено через ~1 мин. ----- engngr, спасибо огромное!!!! Я ведь пробовал менять направление слэшей... и не помогало. А Ваш код скопировал - и работает. Еще раз спасибо за ответ по делу!!! |
|||
|
||||
сети Регистрация: 03.11.2008
Московия*
Сообщений: 5,763
|
|
|||
|
||||
вольный копейщик Регистрация: 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 строки и теми, где поля. Про поле я еще могу понять, что это может быть сложно программно. Но про вторую строку, кажется, что должно быть просто решение, вроде управляющего символа для перевода на новую строку. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
Код данного поля такой: %<\AcVar CustomDP.тест>% Если я копирую эту строку в любой текст, вставляется поле. Разве это не связь? Она вполне конкретная. Но скормить эту строку выноске программно у меня не получается. Хотя руками через ctrl+v работает. По-моему чистая конкретика, а не абстракция. Аналогично с переносом - в мтексте это \P Но конструкция (command "_MLEADER" pause pause "Текст\PТекст") уже не работает. Последний раз редактировалось Immortal_6666, 02.01.2018 в 16:48. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Цитата:
Хм.. а не работает она именно с кнопки. А если скопировать весь код в кс, то работает. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,960
|
Лог:
Цитата:
|
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
Сергей812, это да, такое я уже сам попробовал. Работает конечно. Просто мне-то как раз уйти хотелось от внешних файлов. Странно, что без отдельного файла не хочет... это загадка для меня. Видимо, в файле загружает весь код, потом выполняет, а если сразу на кнопку, то по посимвольно интерпретирует.
В любом случае, спасибо большое за ответы! Последний раз редактировалось Immortal_6666, 02.01.2018 в 18:35. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Immortal_6666, тут должна сработать следующая последовательность:
1. Создаём выноску с любым текстом, можно пустую: "". 2. Назначаем ей текстовую строку: Код:
Но есть в таком примитивном подходе большой минус. Если пользователь по каким-то причинам отменит создание выноски, то строка назначится последнему созданному в чертеже объекту, если он, конечно, текстовый. Это плохая программа получится. До тех пор, пока vl-cmdf возвращал T в случае успешного завершения и nil в противном случае, такую проверку было устроить легко при помощи if. Но (вроде) с 2012-й (или с 15-й) версии vl-cmdf возвращает не пойми что, и такую проверку сделать нельзя. Надо предварительно перед созданием выноски запоминать последний примитив и перед назначением выноске строки проверять, добавился ли объект или нет, и если да, то модифицировать ему строку. Есть функции от VVA mip:mark для установки метки и вторая (название не помню, но они вместе), которая проверяет, добавлялись ли объекты после установки метки. Последний раз редактировалось skkkk, 03.01.2018 в 16:11. |
|||
|
||||
вольный копейщик Регистрация: 03.11.2010
Сообщений: 132
|
skkkk, я попытался вот так:
Код:
----- добавлено через ~7 мин. ----- Не знаю, важно ли это. Но если посмотреть код поля этих решеток, то у них название свойства с маленькой буквы, а у родного поля -с большой. Хотя в коде, большая стоит. Возможно причина, в проблемах с кодировкой! У меня первая буква подменяется на т со штрихом сверху... правлю в NotePad++ - может он виноват. С кодировкой разобрался, но не помогло. Также, заметил что в коде поля пропадает \, добавил еще 1, получилось так: Код:
----- добавлено через ~4 мин. ----- Ура! Заработало! Более простым методом: Код:
Спасибо всем, кто участвовал в обсуждении!!! Последний раз редактировалось Immortal_6666, 03.01.2018 в 17:50. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Immortal_6666, в качестве бреда
последовательность
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
сети Регистрация: 03.11.2008
Московия*
Сообщений: 5,763
|
Пока наткнулся: https://forum.dwg.ru/showpost.php?p=303625&postcount=89
|
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Попробуйте (setq txt (round(getvar "AREA")))
|
|||
|
||||
Цитата:
^C^C^P_.area;_Object;\^C(setq txt (/(getvar "AREA")1e6)(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) 2 знака после запятой ^C^C^P_.area;_Object;\^C(setq txt (atof(rtos(getvar "AREA")2 2))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) |
||||
|
||||
сети Регистрация: 03.11.2008
Московия*
Сообщений: 5,763
|
У вас скобок перебор, а в коде макрокоманды наоборот.
Цитата:
^C^C^P_.area;_Object;\^C(setq txt (atof(rtos(getvar "AREA")2 2)))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) |
|||
|
||||
|
||||
|
||||
Регистрация: 24.05.2012
Сообщений: 15
|
|
|||
|
||||
|
||||
|
||||
Регистрация: 29.03.2018
Сообщений: 35
|
[quote=koMon;1733509]Д.д.б.)
^C^C^P_.area;_Object;\^C(setq txt (rtos(getvar "AREA")2 2))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ)[/ А можно как-то сделатъ чтобы в конце единицы показывал ? Спасибо, класная штука ----- добавлено через ~4 мин. ----- А вот так же проставитъ длину полилини можно? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
думаю можно так
^C^C^P_.area;_Object;\^C(setq txt (strcat(rtos(getvar "AREA")2 2)" Единицы"))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) и так, возможно ^C^C^P_.list;;\^C(setq txt (strcat(rtos(getvar "PERIMETER")2 2)" Единицы"))(graphscr)(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) |
||||
|
||||
Регистрация: 29.03.2018
Сообщений: 35
|
Цитата:
На линию почему-то не проставляет ее длину |
|||
|
||||
площадь или длину?
Для ПОЛИЛИНИИ и др. примитивов, для которых команда List считает периметр! В остальных случаях последний посчитанный периметр. ^C^C^P_.list;_si;\^C(graphscr)(setq txt (strcat(rtos(getvar "PERIMETER")2 2)" Единицы"))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) |
||||
|
||||
Цитата:
^C^C^P_.area;_Object;\^C(setq txt (strcat(rtos(*(getvar "AREA")1e-6)2 2)" кв.м"))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) длина ^C^C^P_.list;_si;\^C(graphscr)(setq txt (strcat(rtos(*(getvar "PERIMETER")1e-3)2 2)" м"))(princ "Укажите точку")(command "_text" pause "" "" txt)(princ) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Это в LT работать не будет - используются лисповые конструкции.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 09.09.2017
Гомель
Сообщений: 19
|
Подскажите, пожалуйста, как макрокомандой можно изменить текстовый стиль и масштаб аннотаций, запустить лисп, а после завершения его работы вернуть текстовый стиль и масштаб аннотаций на установленные по умолчанию? Пробовал по-всякому, в командной строке либо ничего, либо - слишком много аргументов.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Запоминаешь значения системных переменных, устанавливаешь нужные, выполняешь лисп, восстанавливаешь исходные значения переменных. В чем вопрос-то?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 09.09.2017
Гомель
Сообщений: 19
|
Кулик Алексей aka kpblc, вопрос в переключении текстового стиля. Ввожу (setvar"TEXSTYLE""493_P131"), в командной строке - Настройка переменной AutoCAD отвергнута: "TEXSTYLE" "493_P131". AutoCAD 2015.
----- добавлено через ~16 мин. ----- Прошу прощения, вопрос снят. Ошибся в названии переменной. ----- добавлено через ~1 ч. ----- Прописал так: ^C^C(setvar"CANNOSCALE""2:1");^C^C(setvar"TEXTSTYLE""493_P131");^C^C_TXTCNTR; ^C^C(setvar"TEXTSTYLE""492_Bm_431");^C^C(setvar"CANNOSCALE""2:1"); Поодиночке вроде все срабатывает, а вместе - не срабатывает лисп. Подскажите, пожалуйста, в чем загвоздка? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
TXTCNTR, интересно - что это такое, откуда взято и что делает?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 09.09.2017
Гомель
Сообщений: 19
|
Одна из команд лиспа Text_on_Line.fas, взято на форуме Геодезист.ru. Сначала рисуется замкнутый контур, затем команда запуска,пишешь текст, указываешь контур и текст размещается по центру контура.http://geodesist.ru/threads/gr-my-lisp-apps.70144/
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Это не lsp, а fas. Исходников нет, и что и когда там запрашивается - разбираться не хочу. Посмотри в книге В.Света, как в макросах обрабатываются запросы данных у пользователя.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
*^C^C_select;\_torient;_Pr;;0;_move;_Pr;;@;установка поворота текста на заданное значение и перемещение (в данном случае - установка в ноль).
Использовал для оформления топографической съемки. При выполнении макроса есть один лишний клик - избавиться от него не удалось. p.s. используется команда из ExpressTools. |
||||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Есть кнопка с выпадающими из нее другими кнопками. Все мои самодельные кнопки расположены с левой стороны правого (из двух) монитора и всегда на прошлом компе раскрывались вправо, то есть на поле своего монитора. При переходе на новый комп кнопки стали вылетать влево, то есть на поле чужого (левого) монитора. Что неудобно. Кто-нибудь сталкивался с таким?
Есть еще одно обстоятельство. Левый монитор является главным по отношению к правому. Может быть кнопки стремяться к главному? Windows-10. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ИМХО к макрокомандам это не имеет никакого отношения. Графическая область ACAD'а где находится? На главном?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
То aka kpblc> На этих кнопках находятся макрокоманды. Поэтому в этой теме теперь как-бы к месту. Все остальные команды автокада, уже давно в рибонах. Автокады находятся на обеих экранах.
То engngr> Если перетащить кнопки на правый край, из них выдвигаются вложенные кнопки влево, то есть на поле своего экрана. Но я привык держать их на левой стороне... |
|||
|
||||
Регистрация: 20.04.2011
Сообщений: 397
|
Ребят, прошу помощи. Нужен макрос, в котором для выбранных объектов обрабатывалась бы команда _massprop.
Среди выбранных объектов имеются солиды и регионы. Нужно получить результат деления. Значения Volume (объем солидов) поделить на значение Area (площадь регионов). Прикладываю тестовый пример. Должно получится 300. Последний раз редактировалось gumel, 11.04.2019 в 11:56. |
|||
|
||||
Регистрация: 07.07.2019
Сообщений: 6
|
Доброго всем дня! Пожалуйста, подскажите, как найти в Автокаде макрос команды, которой нет на кнопке или в меню? Интересует команда DIMLAYER, хочу попробовать на ее основе сделать аналогичную для выносок, но в списке команд Costomize Interface ее нет.
|
|||
|
||||
Регистрация: 20.06.2019
Сообщений: 1
|
Так ведь DIMLAYER вроде как системная переменная, а не команда, поэтому ее там инет
|
|||
|
||||
Регистрация: 07.07.2019
Сообщений: 6
|
Так вроде написала... Хочу сделать команду, которая задавала бы слой по умолчанию для выносок и мультивыносок, чтобы она работала также, как системная переменная DIMLAYER (так как почему-то на выноски та не действует). В макросах и лиспах я не бум-бум, потому решила, что проще всего будет найти макрос этой команды и поменять в нем что-нибудь, если пойму - что. Наверное, я слишком просто это себе представляла, но изучать программирование из-за одной удобной фишки как-то времени не хватает. Нашла такой вот макрос: *^C^C_mleader;\\Ваш текст;_change;_l;;_p;_la;Примечание;; он должен создавать выноску в нужном слое (точнее, переносить в него созданную), но там есть текст по умолчанию. Если его убрать, будет работать вот такая аброкадабра? *^C^C_mleader;\_change;_l;;_p;_la;; Боюсь даже пробовать, так как не знаю, как вернуть потом все назад, то есть чтобы другой переменной выноски снова создавались в текущем слое. Если это не очень сложно, можете подсказать, как такое сделать?
|
|||
|
||||
Регистрация: 07.07.2019
Сообщений: 6
|
|
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Припоминаю, я писал статью на эту тему, и может даже так быть, приведенный в цитате макрос мой. (правда, млидеров тогда еще не было, но обычные конечно были). Но не могу найти на сайте раздела "статьи", или что-то в этом роде. Подскажите пож. |
|||
|
||||
Engineer Регистрация: 05.09.2003
New-York
Сообщений: 10,288
|
Цитата:
Если вы ее (статью) освоите, не так страшно окажется не только подредактировать готовый макрос, но и создать свой. |
|||
|
||||
Регистрация: 07.07.2019
Сообщений: 6
|
|
|||
|
||||
Регистрация: 25.10.2019
Сообщений: 5
|
Добрый день. Необходимо вставить в выноски с различными текстами в конце из буфера обмена текст одинаковый.
Какой символ необходимо использовать для клавиши <end> записывая команду? Так - ^C^C_textedit;_end;_paste - при выборе выноски только курсор в тексте появляется. Как правильно написать? Спасибо |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Offtop: ощущение возникло, будто словом обмолвился с богатырём русским Код:
На всякий случай: Как использовать лисп, опубликованный на форуме Последний раз редактировалось skkkk, 21.02.2020 в 16:42. Причина: (vl-load-com) |
|||
|
||||
а не удобнее ли будет визуализировать сдержимое буфера обмена, вставив его, например, в диалог?
|
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
koMon, не знаю. ТЗ получилось весьма лаконичное и размытенькое - я как понял, так и сделал. Может, ты понял как-то иначе. Просто никак не возьму в толк: зачем диалог туда вплетать? Обычно, если человек хочет чего-то куда-то вставить, он предварительно это откуда-то копирует. Скопировал фрагмент текста откуда угодно, вызвал команду - и вставляй во всё подряд сколько влезет. А так еще дополнительные нажатия на закрытие диалога. Но что-то мне подсказывает, что фигню ты вряд ли посоветуешь.
Поэтому, хоть ни фига и не понял, но очень интересно. ----- добавлено через ~5 мин. ----- А вот то, что тексты сейчас захочется скопом выбирать - это уж наверняка |
|||
|
||||
skkkk, а если скопировал в буфер не всё, например. накопировал всё это добро, а потом где-то оно вылезет...
|
||||
|
||||
так-то оно конечно и будет) но поскольку суть сводится с прилеплению к текстам выносок какого-то аппендикса, который каким-то образом окажется в буфере, но имхо я бы сделал так:
1. простейший диалог с редактируемой строкой и кнопкой выбора выносок 2. пастим в строку диалога буфер, проверяем чего там на пастили 3. выбираем выноски 4. лепим аппендикс |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Offtop:
Цитата:
Предлагаю подождать фидбэка. Может, вообще уже человек выполнил работу и ему уже не нужно. А мы тут блин, разводим обсуждение, к тому же - оффтопим. Если будет потребность, можно продолжить, заодно и попросить тему отделить |
|||
|
||||
|
||||
|
||||
Регистрация: 20.04.2011
Сообщений: 397
|
Добрый день! Возможно ли сделать переименование блока при клике по нему? Или это уже из области Лиспа?
В чертеже имеется добрая сотня блоков со своеобразными именами. Хотелось бы переименовать большинство. Rename работает но уж очень неудобно пользоваться. Заранее благодарен. |
|||
|
||||
Регистрация: 20.04.2011
Сообщений: 397
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
gumel, забыл "_" перед -rename.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 11.06.2010
Москва
Сообщений: 1,446
|
Коллеги, подскажите по макрокоманде. Можно ли записать в макрокоманду повторно ранее указанную вручную точку?
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
lastpoint?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 11.06.2010
Москва
Сообщений: 1,446
|
Вот так?
Код:
Обрывается на _lastpoint и просит ввести точку или ключевое слово. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я просто с макросами совсем уже не дружу много лет. А если попробовать @?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
_lastpoint -> (getvar 'lastpoint)
|
||||
|
||||
Инженер Регистрация: 11.06.2010
Москва
Сообщений: 1,446
|
Спасибо. Видимо это правильный ответ. Получилось вот так
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Brain Murder, все ж попробуй использовать @
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер Регистрация: 11.06.2010
Москва
Сообщений: 1,446
|
Вроде по всякому пробовал. Куда @ то пришить ^C^C_AstM4CommDetCrHeightKote;\\\_-insert;lvl_sym;_lastpoint;;;_.explode;_last;_.-purge;_all;;_n;?
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Brain Murder, а каким образом AstM4CommDetCrHeightKote получает точку? может определить её предварительно и передать в AstM4CommDetCrHeightKote и далее?
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
gumel, поиск игнорируем? https://dwg.ru/cse?q=%D0%BF%D0%BE%D0...BE%D0%BD%D0%B0
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,985
|
Цитата:
|
|||
|
||||
Регистрация: 06.04.2014
Сообщений: 29
|
Раньше можно было сделать массив и после этого построить линии вдоль которой размножить объекты, в том числе и линию под углом к главным осям. Сейчас можно это сделать так: _.arrayclassic, потом нажать на кнопочку "указать угол поворота массива". Как это вписать в макрокоманду?
|
|||
|
||||
Регистрация: 29.03.2017
Сообщений: 3
|
Доброго времени суток уважаемые однофорумчане!
Подскажите, пожалуйста, как мне добиться следующего результата: необходимо вставить несколько одинаковых блоков, притом так, чтобы, в чертеже, они были расчленены. Что написал я: ^C^C^_-вставить;ИМЯ_БЛОКА;\;;; Данная команда позволяет мне вставить один нерасчлененнный блок Чтобы зациклить, что логично, я добавил следующее: *^C^C^_-вставить;ИМЯ_БЛОКА;\;;; И тут я наткнулся на проблему того, что не знаю команду чтобы можно было расчленить все вставленные мной блоки. Конечно можно привести эту команду к виду примерно такому: *^C^C^_-вставить;ИМЯ_БЛОКА;\;;;_расчленить;последний;;, после чего повторять команду, но это не то, потому что мне необходимо вставить много блоков, хотелось бы выполнять действие, как говориться одной кнопкой. Буду рад советам, заранее благодарю |
|||
|
||||
*^C^C._-insert;ИМЯ_БЛОКА;_e;_y;\;;;
|
||||
|
||||
Регистрация: 29.03.2017
Сообщений: 3
|
К сожалению данный вариант не работает. Он делает возможным изменить масштаб и угол поворота, но не расчленяет вставленный блок
----- добавлено через ~18 мин. ----- Еще один момент который я недорассказал, из-за него как раз вся проблема. Для данной операции я сделал отдельную кнопку на панели, и когда вводишь команду вручную, то расчленение происходит, а через кнопку - нет |
|||
|
||||
Почему бы просто не повесить этот блок на палитру и в свойствах на палитре указать "Расчленять"-"Да"?
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
обязан работать, потому что команда -insert имеет среди своих опций опцию расчленить. я также повесил его на кнопку и проверил работоспособность. поскольку макрос есть краткая форма записи командных действий, проверьте его на примере команды с консоли, вводя опции и проверяя работу команды. если команда позволит вставить в точке расчленённый блок, то и правильно записанный макрос сможет это сделать.
Последний раз редактировалось koMon, 25.02.2021 в 11:43. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Макросом? Вряд ли.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
мож так?
Код:
но Цитата:
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 22.04.2021 в 13:25. Причина: все 102 будет собирать |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
doctorraz, сугубо ИМХО - ориентироваться на наличие словарей так себе идея. Они могут быть и у обычных блоков, только аннотативных. Или вообще у динамических массивов, как мне кажется.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
согласен, тем более проверил эту конструкцию в нано работает в АК нет(((
----- добавлено через ~8 мин. ----- да есть, но как мне кажется дин массив, это тоже дин блок... или нет? у массива (102 . "{ACAD_REACTORS") ============= все жэж так ищет (ssget "_X" '((0 . "insert")(102 . "{ACAD_XDICTIONARY"))) только как для автокада оформить пары кодов, шоб лопал ----- добавлено через ~7 мин. ----- да, значит только перебор
__________________
Мастерская СПДС Последний раз редактировалось doctorraz, 22.04.2021 в 14:00. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
С точки зрения программиста - да. А вот с точки зрения пользователя - вопрос. Я как-то разгонял по этому вопросу: https://autolisp.ru/2021/02/11/primi...tivnyj-massiv/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Макросом - вряд ли.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-проектировщик Регистрация: 17.01.2023
Москва
Сообщений: 6
|
Дорого времени суток, уважаемые форумчане!
Я долго пытаюсь разобраться с Diesel в Autocad. Не могу найти мануалов для чайников, коим я и являюсь. Везде подразумевается уже какое-то понимание в написании кода. Если есть что-нибудь такое, поделитесь пожалуйста. А сама потребность достаточно проста. Я пытаюсь привязать видимость блока к переменной "если" т.е, у меня есть блок ответвителя магистрального, есть два атрибута: затухание по верхнему и по нижнему диапозону. Мне надо чтобы при выборе видимости блока, значение затуханий менялось. пример: если "видимость1" то "3,8" , если "видимость2" то "4". Насколько это реально сделать в Diesel? может я не там ищу совсем? Заранее спасибо за потраченное время! С Уважением к Вам и Вашему делу, Максим. |
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
|
|||
|
||||
Инженер-проектировщик Регистрация: 17.01.2023
Москва
Сообщений: 6
|
Все облазил! абсолютно. Простите за мою не осведомлённость. Если у Вас не займет много времени, сможете как для глупого человека объяснить? я нашел где располагается видимость в свойстве блока в поле. Но хоть убейте, не могу найти где задать условие. Если вы имеете ввиду просто в каждом виде добавлять новые атрибуты, то это мне не совсем подходит. У меня подсчеты в формуле в поле слетают тогда. Я привязываюсь полем помимо данных внутри блока, еще и к внешним данным.
|
|||
|
||||
Инженер-проектировщик Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 723
|
|
|||
|
||||
Проектирование мостов Регистрация: 29.01.2014
Новосибирск
Сообщений: 433
|
Цитата:
Если после просмотра появятся точечные вопросы, пишите в личку, чем смогу - помогу. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Добрый день.
Возможно ли записать макросом следующую последовательность действий. Командой _-pdfattach вставить ПДФ, путь C:\DO\ДО.pdf, указать номер страницы, в координаты 0,0, масштабный коэффициент 25.4, угол поворота - без поворота. Написал свой вариант, но что-то не работает. Если последовательно вводить с ком строки, то все норм. Но коде ниже прерывается на указании пути. ^C^C_-pdfattach;"C:\DO\ДО.pdf";\;\0,0;; Попробовал разные варианты, но так и не добился результата.
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Пока не получается пройти дальше указание пути.
Команда: _-pdfattach Путь к файлу PDF, который требуется внедрить: "C: Путь можно прописать как-то?
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Котло- и реакторостроение Регистрация: 25.02.2010
Барнаул
Сообщений: 807
|
Да. Понял. В путях надо косую черту ставить /
Пинок помог. ^C^C_-pdfattach;C:/DO/ДО.pdf;\0,0;25.4;;
__________________
AutoCad 2011 -> AutoCad 2013 |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
Цитата:
В этой теме было 2 макроса (удаление размеров с выбором), но не совсем то, что нужно: Код:
Код:
Код:
Получилось так: Код:
Код:
Последний раз редактировалось Ingpro, 06.03.2024 в 15:02. |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
Команда: СОП
СОПРЯЖЕНИЕ Выберите первый объект или [оТменить/полИлиния/раДиус/оБрезка/Несколько]: Код:
но сопряжения создаются только для двух пар линий... 1. Как изменить макрос, чтобы сопряжения выполнялись для нескольких (больше двух) пар линий? 2. Если до запуска этого макроса выполнить сопряжение радиусом 20 (например), то макрос делает сопряжение этим же радиусом 20, а не 0. Как это можно подправить? Спасибо... |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Так вроде эта команда работает только на пары элементов...
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
Пытаюсь загнать в макрос построение круга по двум точкам (2Т), с указанием расстояния (оно же диаметр) до второй точки.
Не получается указать расстояние до второй точки . ACad просит ввести расстояние (Вторая конечная точка диаметра круга)... Код:
Код:
|
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
и не получится, откуда ACAD знает куда надо откладывать указанное расстояние.
PS кроме расстояния нужно еще и направление!
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
Здорово! Спасибо, engngr! Если бы ещё зациклить процесс, было бы супер...
engngr, поясните, пожалуйста, это: \@0, что означает если -400 заменить на 400, круг строится вверх. А если надо влево или вправо, нужно изменить \@0,??? Зациклить можно добавив *: Последний раз редактировалось Ingpro, 11.03.2024 в 20:02. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
В.Свет, "Язык макрокоманд". Есть в Download
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
@ "Данный символ вставляется, если нужно ввести относительные координаты точки. Координаты вводят в последовательности X,Y,Z через запятую, например @10,20 — это смещение на 10 по оси X и на 20 по оси Y относительно предыдущей указанной точки (если Z=0, его не указывают). Тогда как абсолютные координаты, например: 10,20 отсчитываются от нуля системы координат".
Но как это работает в макросе ^C^C_.circle _2p \@0,-400 не могу понять... Что нужно поставить вместо 0 в \@0,-400, чтобы круг построился влево? Последний раз редактировалось Ingpro, 11.03.2024 в 20:01. |
|||
|
||||
сети Регистрация: 03.11.2008
Московия*
Сообщений: 5,763
|
Цитата:
Это относительные (от последней точки) координаты x,y. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мои динамические блоки | 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 |