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

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

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

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

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

Выкладываю 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:
Просмотров: 482613
 
Непрочитано 27.04.2012, 11:25
#501
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Помогите доработать макрос по заданию цвета.

Пока используется такой макрос:

Код:
[Выделить все]
*^C^C_change;\;_p;_c;5;;
Но у него есть недостаток. Если промазать мимо объекта то необходимо заново указать, что мне нужно изменить цвет на синий.
Как сделать чтобы можно было объекты выбирать и рамкой и выбором на объекте?

Вообще нужно сделать так:
Если на чертеже есть выбранные объекты, то при нажатии на кнопку сменить цвет.
(Что-то типа
Код:
[Выделить все]
^C^C_change;_p;_c;5;;
)
Если не выбрано, то выбирать объекты и после нажатия Enter сменить цвет.
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 27.04.2012 в 11:40.
Shoorup вне форума  
 
Непрочитано 27.04.2012, 11:56
#502
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 428


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Если на чертеже есть выбранные объекты, то при нажатии на кнопку сменить цвет.
^C^C_chprop;_c;5;;
ытя вне форума  
 
Непрочитано 27.04.2012, 12:32
#503
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Помогите доработать макрос по заданию цвета.
^C^C_select;\^C^C_change;_p;;_p;_c;5;;
невыделены объекты - выход по ПКМ
выделены - левая кнопка мыши (ЛКМ)
roaa вне форума  
 
Непрочитано 27.04.2012, 14:04
#504
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


roaa, Спасибо! То что нужно!
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 27.04.2012, 18:49
#505
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Помогите доработать макрос по заданию цвета.
то же, но с выбором цвета
^C^C_select;\^C^C_change;_p;;_p;_c;(acad_colordlg 1);;
roaa вне форума  
 
Непрочитано 27.04.2012, 19:57
#506
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


roaa, а зачем еще ^C^C? Макросы работают и без них:
Код:
[Выделить все]
^C^C_select;\_change;_p;;_p;_c;5;;
^C^C_select;\_change;_p;;_p;_c;(acad_colordlg 1);;
Profan вне форума  
 
Непрочитано 27.04.2012, 22:00
#507
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Profan Посмотреть сообщение
roaa, а зачем еще ^C^C? Макросы работают и без них:
странно, но без этого команда не работает с выбранными объектами
roaa вне форума  
 
Непрочитано 02.05.2012, 21:44
#508
Никита Ремизов


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


Здравствуйте! пытался создать макрокоманду на основе команды _plot для перевода черетежей в pdf, но столкнулся с проблемой при задании названия файла - каждый раз приходится вбивать вручную. Возможно ли чтобы файл получаемый на выходе получал название листа из которого была произведена печать? саму макрокоманду смогу выложить чуть позже, но в ней ничего важного/сложного.

И еще один вопрос пытался сделать макрокоманду для выбора предыдущих выбранных объектов, но _select;_previous;; - не работает, хотя когда просто вводишь команды через командную строку - всё ок. В чем загвоздка?
Никита Ремизов вне форума  
 
Непрочитано 02.05.2012, 22:27
#509
roaa

ОПС
 
Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128


Цитата:
Сообщение от Никита Ремизов Посмотреть сообщение
макрокоманду для выбора предыдущих выбранных объектов
^C^C(command "_.Select" "_p" "")(sssetfirst nil (ssget "_p"))
roaa вне форума  
 
Непрочитано 02.05.2012, 22:52
#510
Никита Ремизов


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


Цитата:
Сообщение от roaa Посмотреть сообщение
^C^C(command "_.Select" "_p" "")(sssetfirst nil (ssget "_p"))
не работает
"лишняя закрывающая скобка на входе"
Никита Ремизов вне форума  
 
Непрочитано 02.05.2012, 23:21
#511
skkkk


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


Цитата:
Сообщение от Никита Ремизов Посмотреть сообщение
Возможно ли чтобы файл получаемый на выходе получал название листа из которого была произведена печать?
Возможно, но содержимое макроса будет зависеть от того *.pc3 файла, который используется для распечатки в *.pdf, а точнее, от тех опций, которые он запросит. В первом приближении макрос будет выглядеть где-то так
Код:
[Выделить все]
^C^C(command "_-plot" "_N" "" "" "DWG To PDF" (strcat (getvar "ctab") ".pdf") "_Y" "_Y")
.
Код:
[Выделить все]
(command "_-plot"
    "_N"; Выполнить детальное задание конфигурации?
    ""; Имя листа или [?] <Лист 1>
    ""; Имя набора параметров листа
    "DWG To PDF"; Имя устройства вывода
    (strcat (getvar "ctab") ".pdf"); Имя файла pdf
    "_Y"; Сохранить изменения параметров листа [Да/Нет]?
    "_Y"; Перейти к печати [Да/Нет]?
)

Это я использовал файл DWG To PDF.pc3 (прилагается). В каждом конкретном случае нужно поработать с командной строкой и посмотреть, что нужно скормить на каждый запрос и затем подставить в макрос. (getvar "ctab") - возвращает имя активного листа.
Ограничения:
1. Будет печататься только текущий лист (активный). Но это похоже то, что нужно.
2. Файл *.pdf сохранится в текущей папке. Если надо другую, добавить в strcat строку с адресом (strcat "C:\\Папка\\" (getvar "ctab") ".pdf")
3. Если файл *.pdf с таким именем уже существует в этой папке (например, захочется нажать эту кнопку на данном листе еще раз), - макрос не сработает, вернее сработает неверно - имя файлу будет присвоено "_Y". В общем, надо допиливать, но информации к действию, думаю пока должно хватить
Цитата:
Сообщение от Никита Ремизов Посмотреть сообщение
макрокоманду для выбора предыдущих выбранных объектов
LISP. Повтор предыдущего выбора элементов. Там несколько вариантов: макросы, лисп - можно выбрать по душе.
Вложения
Тип файла: rar DWG To PDF.rar (1.3 Кб, 88 просмотров)
skkkk вне форума  
 
Непрочитано 02.05.2012, 23:57
#512
perpetule


 
Регистрация: 23.09.2008
Волгоград
Сообщений: 805
<phrase 1= Отправить сообщение для perpetule с помощью Skype™


Цитата:
макрокоманду для выбора предыдущих выбранных объектов
http://forum.dwg.ru/showthread.php?t=58728
#11 пост 100% рабочий код, включил себе в частичный cui.

Цитата:
Возможно ли чтобы файл получаемый на выходе получал название листа из которого была произведена печать
Скорее так: Возможно ли чтобы файлЫ получаемыЕ на выходе получалИ названиЯ листОВ из которЫХ была произведена печать
Макросов, и вообще ничего внешнего дополнительного не треба...
Подшивка - диалог публикации - одно/многолистовой-pdf.
Либо вкладки лайоутов одного dwg (подшивка не треба...), выделение с shift, опубликовать по ПКМ, на встроенный PDF(внешний не катит, задание доп форматов, ищи *.PMP)

Последний раз редактировалось perpetule, 03.05.2012 в 00:09.
perpetule вне форума  
 
Непрочитано 09.06.2012, 15:57
#513
АлексЮстасу

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


Можно сделать такое макросом или нужно искать программиста?
Вставить блок в нужную точку, расчленить (внутри солид), и сделать его align (выровнять), при котором точка вставки остается на месте, а указать нужно только вторую точку солида и точку, в которую его нужно довернуть?
Уточнение: имеется в виду поворот в пространстве. Потому и align.

Последний раз редактировалось АлексЮстасу, 10.06.2012 в 17:10.
АлексЮстасу вне форума  
 
Непрочитано 10.06.2012, 00:31
#514
Кулик Алексей aka kpblc
Moderator

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


ИМХО это можно сделать через палитру инструментов.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.06.2012, 01:07
#515
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ИМХО это можно сделать через палитру инструментов.
Ну, да, так и думалось - вставить такой макрос в палитру инструментов. Если такой макрос возможен.
Вставить блок, так понимаю: ^C^C_insert "block_name";\;;;
А как расчленить при вставке - уже не знаю.
Потом можно добавить _align, но как вместо первой точки - которую и первой точки - куда задать точку вставки блока? Да и откуда _align узнает, что выравнивать нужно именно этот вставленный элемент?

Последний раз редактировалось АлексЮстасу, 10.06.2012 в 01:22.
АлексЮстасу вне форума  
 
Непрочитано 10.06.2012, 15:41
#516
Кулик Алексей aka kpblc
Moderator

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


Блок закинь на палитру, потом на инструменте правый клик - и устанавливай свойства. Там все понятно (просто сейчас нет никакой возможности сделать скриншоты).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.06.2012, 15:58
#517
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Блок закинь на палитру, потом на инструменте правый клик - и устанавливай свойства. Там все понятно (просто сейчас нет никакой возможности сделать скриншоты).
Если в палитру вставить именно блок, то для расчленения там есть специальная строка. Но там некуда добавить другие действия. Например, _align. Там ведь нет командной строки для макроса.
Может быть кто подскажет, как сделать расчленение блока при вставке в макросе?

Последний раз редактировалось АлексЮстасу, 10.06.2012 в 16:14.
АлексЮстасу вне форума  
 
Непрочитано 10.06.2012, 16:38
#518
Кулик Алексей aka kpblc
Moderator

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


А запрос угла поворота - не то?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.06.2012, 16:52
#519
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А запрос угла поворота - не то?
Запрос угла поворота - это же в плоскости? А мне нужен _align - чтобы в пространстве.
АлексЮстасу вне форума  
 
Непрочитано 10.06.2012, 17:01
#520
skkkk


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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Вставить блок в нужную точку, расчленить (внутри солид), и сделать его align (выровнять), при котором точка вставки остается на месте, а указать нужно только вторую точку солида и точку, в которую его нужно довернуть?
Если я все верно понял, то
Код:
[Выделить все]
^C^C_-insert;"block_name";_s;1;_r;0;\_rotate;_l;;(getvar "lastpoint");_R;(getvar "lastpoint");\\_explode;_l;
Если
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
его нужно довернуть
но не масштабировать, то можно обойтись без _align.

Добавлено:
Последние посты прочитал после написания своего.
АлексЮстасу, раз надо _align, лучше приложить файл и показать там какую точку вслед за какой этому "элайну" скармливать, не то можно долго гадать. Или хотя бы объяснить порядок действий при _aline: какие точки уже известны (как базовая точка вставки блока), а какие надо спросить у юзера.
Добавлено 2:
И еще может захотеться повтор всех процедур по enter, пробелу или правой кнопке мыши... Ведь может, правда? Не всегда охота тянуться снова к кнопке. Надо сразу определиться.

Последний раз редактировалось skkkk, 10.06.2012 в 17:17.
skkkk вне форума  
Ответ
Вернуться   Форум 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