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

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

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

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

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

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

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


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

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


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

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

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
Просмотров: 448787
 
Непрочитано 31.10.2013, 09:05
#621
Агент СмиТ

Gti
 
Регистрация: 14.01.2010
МО Железнодорожный
Сообщений: 121


Первое, что приходит на ум - быстрый выбор.
Изображения
Тип файла: tif Выбор растра.tif (104.5 Кб, 103 просмотров)
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 31.10.2013, 09:30
#622
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Агент СмиТ Посмотреть сообщение
быстрый выбор
вообще-то я про фильтры ssget
gomer вне форума  
 
Непрочитано 31.10.2013, 09:41
#623
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
Слушайте, а как выбрать только изображения, которые не отображаются?
Выбрать все, преобразовать в список, пройтись по списку и оставить только те, у которых vla-get-imagevisibility = :vlax-false
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.10.2013, 10:10
#624
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 571


Цитата:
Сообщение от gomer Посмотреть сообщение
вообще-то я про фильтры ssget

Цитата:
Сообщение от VVA Посмотреть сообщение
Выбрать все, преобразовать в список, пройтись по списку и оставить только те, у которых vla-get-imagevisibility = :vlax-false
А если сразу так
Код:
[Выделить все]
 (ssget "_X" (list '(0 . "IMAGE") '(-4 . "<NOT") '(-4 . "&") (cons 70 1) '(-4 . "NOT>")))
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 31.10.2013, 16:53
#625
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


TararykovDG, Ну или нажать F1 и найти в хэлпе соответствующую dxf группу
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 02.11.2013, 17:06
#626
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Если кому интересно, выложил свою версию обработки изображений здесь
gomer вне форума  
 
Непрочитано 20.12.2013, 15:13 мои макрокоманды
#627
mateus


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


кто нибудь можете помоч хочу сделать команду "зеркальное отображение, точка привязки-между двумя точками" вроде написл макрос однако неудачно
^C^C;_MIRROR;'_m2P;\\\
mateus вне форума  
 
Непрочитано 20.12.2013, 15:44
#628
BulKonst

Инженер-конструктор
 
Регистрация: 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
BulKonst вне форума  
 
Непрочитано 20.12.2013, 15:48
#629
Кулик Алексей aka kpblc
Moderator

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


BulKonst, это не макросы, а лисп-функции, записанные внутрь макроса. В LT работать не будут.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.12.2013, 16:30
#630
BulKonst

Инженер-конструктор
 
Регистрация: 03.07.2009
МО
Сообщений: 19


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
это не макросы, а лисп-функции, записанные внутрь макроса. В LT работать не будут.
Да пожалуйста:
Код:
[Выделить все]
^C^C_.dimlinear;\\\_.dimcontinue;
Код:
[Выделить все]
^C^C_.ucs;_o;\_.dimlinear;@;\\_.dimcontinue;
Только при быстром повторе (например при нажатии на пробел) будет вызываться последняя команда в макрокоманде (в данном случае _.dimcontinue).
Для возможности быстрого повтора см. #628
BulKonst вне форума  
 
Непрочитано 31.01.2014, 21:23
#631
АлексЮстасу

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


Как в макросе выполнить после черчения полилинии какое-то действие? Не важно какое - разбить, сделать офсет или пр. У меня либо полилиния не чертится, либо следующее действие не выполняется
Для примера, допустим, нужно начертить полилинию, и ее разбить.
Пишу:
Цитата:
^C^C_PLINE;\;_EXPLODE;_L;;
- не чертит.
А так:
Цитата:
^C^C_PLINE;;_EXPLODE;_L;;
- не разбивает.
Перепробовал массу вариантов "прокладок" между _PLINE и следующим нужным действием - почему-то не получается.
Кстати, на всех 32-х страницах этой темы поиск не показывает ни одной "_PLINE"!
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 31.01.2014, 21:46
#632
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Как в макросе выполнить после черчения полилинии какое-то действие? Не важно какое - разбить, сделать офсет или пр. У меня либо полилиния не чертится, либо следующее действие не выполняется
Доброго времени суток. Боюсь, что для макрокоманды, это невыполнимая задача (скорей всего, но не факт). Дело в том, что символ "\" предусматривает указание одной точки на экране. А количество точек (если полилиния не является типовой) нам заранее неизвестно. Так например макрос "^C^C_PLINE;\\\\;_EXPLODE;_L;" - будет замечательно работать, но только для полилиний, состоящих СТРОГО из 4х вершин.
art_rrc вне форума  
 
Непрочитано 01.02.2014, 18:09
#633
АлексЮстасу

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


Цитата:
Сообщение от art_rrc Посмотреть сообщение
Боюсь, что для макрокоманды, это невыполнимая задача (скорей всего, но не факт). Дело в том, что символ "\" предусматривает указание одной точки на экране. А количество точек (если полилиния не является типовой) нам заранее неизвестно. Так например макрос "^C^C_PLINE;\\\\;_EXPLODE;_L;" - будет замечательно работать, но только для полилиний, состоящих СТРОГО из 4х вершин.
Последнее я уже прочувствовал.
Нашел здесь от 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) "" ""))
Если заменить закрашивание (command "_-bhatch" "_P" "_SOLID" "_S" (entlast) "" "") на, например, разбивание (command "_EXPLODE" "_LAST"), то все получается.
Только как теперь избавиться от обязательного замыкания? И как сделать описание нужной второй команды не внутри этого лиспа, а после него, вне него. Некоторые команды из лиспа не проходят.

Последний раз редактировалось АлексЮстасу, 01.02.2014 в 20:28.
АлексЮстасу вне форума  
 
Непрочитано 01.02.2014, 21:28
#634
Vova

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


Была сходная задача: нарисовать контур из полилинии после чего он автоматом закрашивался штриховкой. Полилиния могла иметь разное количество вершин, вот здесь
Я решил задачу применением того что никто из форумчан не повторил, а именно Action Recorder. С тех пор на форуме такие страшные слова не проскакивали. Но кто делает макросы, для них не составит труда, потому что процесс сходный. В теме найдешь код.
Думаю, и твоя задача может решиться без лиспа
Vova вне форума  
 
Непрочитано 01.02.2014, 23:31
#635
АлексЮстасу

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


Цитата:
Сообщение от Vova Посмотреть сообщение
Action Recorder. В теме найдешь код.
Кода почему-то не нашел. (Там, кстати, 12 страниц).
В конечном итоге мне нужно создать несколько панелей инструментов или палитр, содержащих наборы нужных действий и настроек вычерчиваемых элементов. Но, к своему удивлению, уперся в почти нереализуемость макросами самого простого - pline+еще операция.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 02.02.2014, 16:43
#636
Vova

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Кода почему-то не нашел. (Там, кстати, 12 страниц).
Попробуй в но. 96. Но сначала прочитай текст сообщения, который определяет порядок действий, обрати внимание что надо переименовать файл
Кстати, сама тема про конкурс мне кажется, была очень интересной, она зацепила много народу. Увы, сейчас таких нет
Vova вне форума  
 
Непрочитано 03.02.2014, 00:56
#637
АлексЮстасу

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


Цитата:
Сообщение от Vova Посмотреть сообщение
Попробуй в но. 96.
В приложенном к тому #96 файле 82 страницы! И я совсем не понимаю, что там написано, кроме "pline", да и то найдено поиском Ворда, потому что знал что искать. Т.е. подправить в случае чего как?
И как вставить в пользовательское меню (в палитры) эти "аксьены"?
Если бы мне удалось соорудить макросы для черчения полилиний+другие действия, и подобные нужные макросы, то был бы один файл палитры или несколько палитр.
Если же удастся вставить в палитры эти Action, то будут файлы палитр + еще файлы Action. Что неизбежно скажется на передаче этих палитр пользователям.
Конкретно для моей задачи мне использование Action пока не видится - кажется громоздким и потенциально ненадежным.
Собственно, макросы и лиспы тем и хороши, что ими можно управлять самим, и использовать разным способом, в т.ч. из палитр.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 04.02.2014, 03:27
#638
АлексЮстасу

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


Пытаюсь в макросе
Цитата:
^C^C(command "_cmddia" "0") (command "_.ADEATTACHDATA" "od_1" "_a" "_n" "_l") (command "_cmddia" "1")
описать лисп-выражением команду Autocad Map 3D - ADEATTACHDATA.
Автокад ругается, что не может вызвать команду из ADS или AutoLISP.
Цитата:
Команда: (command "_cmddia" "0") nil
Команда: (command "_.ADEATTACHDATA" "od_1" "_a" "_n" "_l")
Не удалось вызвать команду из ADS или AutoLISP.
Внутренняя ошибка.Неизвестная команда "OD_1". Для вызова справки нажмите F1.
Неизвестная команда "A". Для вызова справки нажмите F1.
Неизвестная команда "N". Для вызова справки нажмите F1.
Неизвестная команда "L". Для вызова справки нажмите F1.
nil
Команда: (command "_cmddia" "1") nil
cmddia здесь для насильственного отключения оконного вида, т.к. маповская команда на знак тире "-" не реагирует, и пишет
Цитата:
Неизвестная команда "-ADEATTACHDATA".
Как правильно записать в лисп-выражении команду Autocad Map 3D?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 04.02.2014, 12:35
#639
twilight


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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
cmddia здесь для насильственного отключения оконного вида,
Если это макрос то переменные переключаются просто в лоб: ^C^C_cmddia;0;

cmddia - "Controls the display of the In-Place Text Editor for the LEADER and QLEADER commands."

Цитата:
т.к. маповская команда на знак тире "-" не реагирует, и пишет
Если команда не умеет в безоконном режиме, то и работать в нем она не научится, хоть ей монитор выключай.
twilight вне форума  
 
Непрочитано 04.02.2014, 15:38
#640
АлексЮстасу

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


Цитата:
Сообщение от twilight Посмотреть сообщение
Если это макрос то переменные переключаются просто в лоб: ^C^C_cmddia;0;
Если команда не умеет в безоконном режиме, то и работать в нем она не научится, хоть ей монитор выключай.
В лисп-выражении тоже в лоб. Или по лбу.
Если оконный режим выключить 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. Чтобы можно было вставлять в макросы с черчением полилиний или т.п.
Сейчас не получается, пишет:
Цитата:
Не удалось вызвать команду из ADS или AutoLISP.
Так понимаю, что именно из-за того, что это команда Autocad Map 3D. Или я там еще что-то неверно написал?

Последний раз редактировалось АлексЮстасу, 04.02.2014 в 16:16.
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Мои макрокоманды

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки Shoorup Динамические блоки 2713 21.04.2011 23:34
Повторение выполнения макрокоманды по циклу. КАК? Kostinok AutoCAD 12 05.12.2007 15:40
Мои проекты Vova Разное 10 08.10.2007 23:18
Мои палитры инструментов на соседний компьютер Pave1 AutoCAD 4 27.06.2006 09:45