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

Вернуться   Форум 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:
Просмотров: 482000
 
Непрочитано 19.06.2013, 16:02
1 | #581
skkkk


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


Так?
Код:
[Выделить все]
^C^C_measure;\_b;поперечник;_y;40;_xplode;_p;;;;_selectsimilar;_p;;POLYPOINT;
Только одного не пойму: почему не расставить блоки-точки таким же образом (_measure), а потом взорвать. Или еще лучше: сразу включить в описание блока "поперечник" объект - точку?
skkkk вне форума  
 
Непрочитано 19.06.2013, 16:06
#582
АлексЮстасу

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Так?
Код:
[Выделить все]
^C^C_measure;\_b;поперечник;_y;40;_xplode;_p;;;;_selectsimilar;_p;;POLYPOINT;
Только одного не пойму: почему не расставить блоки-точки таким же образом (_measure), а потом взорвать. Или еще лучше: сразу включить в описание блока "поперечник" объект - точку?
Уря! Получилось! В небольшой модификации (без selectsimilar)^
Код:
[Выделить все]
^C^C_measure;\_b;поперечник;_y;40;_xplode;_p;;;;POLYPOINT;
Точки нужно вставить на пересечениях не только размеченной линии, но и других указанных линий. Которые в общем случае находятся на неодинаковых расстояниях от размеченной линии. И их не одинаковое количество, разная длина и т.п.
И эти "другие" линии пользователю нужно выбрать вручную.
Красная - размечаемая (_measure) линия.

Никогда б не догадался, что после "_p" нужно вставить аж четыре ";"!
Миниатюры
Нажмите на изображение для увеличения
Название: Расставить_поперечники_вдоль_красной_линии.png
Просмотров: 141
Размер:	10.7 Кб
ID:	105910  Нажмите на изображение для увеличения
Название: Вставить_точки_в_пересечения_линий.png
Просмотров: 150
Размер:	13.5 Кб
ID:	105911  

Последний раз редактировалось АлексЮстасу, 19.06.2013 в 16:20.
АлексЮстасу вне форума  
 
Непрочитано 20.06.2013, 09:53
#583
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Глядя на приведенный пример, imho напрашивается применить массив по траектории (_arraypath)
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Непрочитано 20.06.2013, 15:45
#584
АлексЮстасу

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


Цитата:
Сообщение от pan Посмотреть сообщение
Глядя на приведенный пример, imho напрашивается применить массив по траектории (_arraypath)
В общем случае линии выглядят примерно как на картинке здесь.
Т.е. места пересечений непредсказуемы массивами или т.п.
Миниатюры
Нажмите на изображение для увеличения
Название: Вставить_точки_в_пересечения_линий_общий.png
Просмотров: 151
Размер:	9.2 Кб
ID:	106005  
АлексЮстасу вне форума  
 
Непрочитано 21.06.2013, 14:08
#585
Conan_w

Инженер-проектировщик
 
Регистрация: 16.05.2007
Мурманск
Сообщений: 79
<phrase 1=


Одновременное выключение слоёв (кроме активного).
Код:
[Выделить все]
^C^C_.-layer;_of;*;;;
... и включение.
Код:
[Выделить все]
^C^C_.-layer;_of;*;;;
__________________
Нащяльника,мая AutoCAD паставиль,инсталя сделаль,сапускаю, а она ажамбех пашамбе эшельбе шайтанама!
Conan_w вне форума  
 
Непрочитано 21.06.2013, 14:21
#586
skkkk


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


Почему оба макроса одинаковы?
А чем не нравятся команды _layiso и _layon?
skkkk вне форума  
 
Непрочитано 25.06.2013, 08:49
#587
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Вставка блоков по вершинам полилинии. Вдруг кому пригодится.
Код:
[Выделить все]
*^C^C_line ;\;_ucs _ob _l;_pedit _l _y _j _all;;;_draworder _l;;;_insert имя_блока_назад @;;;0,0;_draworder _l;;;_insert имя_блока_центр 0,0;;;;_draworder _l;;;_insert имя_блока_вперед 0,0;;;;_ucs;;
В моем случае например это разного рода столбы с направленными от них стрелками

Просто тыкаете в точки а автокад вам все сам рисует.
Миниатюры
Нажмите на изображение для увеличения
Название: 2013-06-10_170334.png
Просмотров: 173
Размер:	3.4 Кб
ID:	106230  

Последний раз редактировалось ProPeller, 25.06.2013 в 09:01.
ProPeller вне форума  
 
Непрочитано 25.06.2013, 15:54
#588
АлексЮстасу

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


Цитата:
Сообщение от ProPeller Посмотреть сообщение
Вставка блоков по вершинам полилинии. Вдруг кому пригодится.
Код:
[Выделить все]
*^C^C_line ;\;_ucs _ob _l;_pedit _l _y _j _all;;;_draworder _l;;;_insert имя_блока_назад @;;;0,0;_draworder _l;;;_insert имя_блока_центр 0,0;;;;_draworder _l;;;_insert имя_блока_вперед 0,0;;;;_ucs;;
В моем случае например это разного рода столбы с направленными от них стрелками

Просто тыкаете в точки а автокад вам все сам рисует.
Прописал свои блоки - сработало, когда имена блоков взял в ковычки Наверное, для моих имен со скобками так требуется.
На последней поворотной точке draworder не сработал - столб под линией. На самой последней точке столб не нарисовался.
И при повторном вызове упорно начинает с последней точки уже нарисованной ЛЭП или любого другого последнего элемента.
А так - здорово

Последний раз редактировалось АлексЮстасу, 25.06.2013 в 16:15.
АлексЮстасу вне форума  
 
Непрочитано 25.06.2013, 16:35
#589
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Прописал свои блоки - сработало, когда имена блоков взял в ковычки Наверное, для моих имен со скобками так требуется.
На последней поворотной точке draworder не сработал - столб под линией. На самой последней точке столб не нарисовался.
И при повторном вызове упорно начинает с последней точки уже нарисованной ЛЭП или любого другого последнего элемента.
А так - здорово
Все верно, есть мелкие недостатки. К сожалению на уровне макросов я не имею представления как от них избавиться. Для себя привычку выработал, перед тем как новую линию начинаю рисовать, сперва рисую отрезок с конечной точкой в начале планируемой линии и тут же его удаляю, после чего вызываю макрос и понеслась =))
Насчет последнего столба, привык добавлять одну лишнюю точку и удалять лишний сегмент, и два ненужных блока. В общем эти мелкие действия с лихвой компенсируются вырученным временем на отрисовку этих элементов по отдельности
ProPeller вне форума  
 
Непрочитано 02.09.2013, 15:32
#590
dedadeda


 
Регистрация: 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://si_hg@hg.symphonyinteractive....-lt-enumerator

*^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....
dedadeda вне форума  
 
Непрочитано 05.09.2013, 11:50
#591
Bestoloch


 
Регистрация: 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.
Bestoloch вне форума  
 
Непрочитано 28.10.2013, 12:40
#592
off

геодезист
 
Регистрация: 11.11.2006
Ростов-на-Дону
Сообщений: 95
<phrase 1= Отправить сообщение для off с помощью Skype™


Вводная часть. Чертежи для для печати сформированы в пространстве листа. Ширина чертежа 297, т.е. при печати на 610 бумаге помещается парочка одинаковых чертежей. Левый нижний угол чертежа в пространстве листа лежит в координатах 0,0. Чтобы дублировать полностью все что относится к оформлению (там помимо видового экрана, штампика и оформительских надписей используюся wipeout-ы) сделал простенький макрос, который выбирает все что имеется в пространстве листа и копирует от точки с координатами 0,0 к точке с координатами 0,297.
^C^C_ai_selall _copy 0,0 0,297
off вне форума  
 
Непрочитано 28.10.2013, 17:04
#593
Агент СмиТ

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


Кто нибудь может подсказать макрос на кнопку отключения/включения "отображения изображения"?
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 28.10.2013, 20:41
#594
art_rrc


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


Цитата:
Сообщение от Агент СмиТ Посмотреть сообщение
Кто нибудь может подсказать макрос на кнопку отключения/включения "отображения изображения"?
Макрос не подскажу, но могу предложить альтернативный вариант. Можно добавить команду на панель быстрого доступа и перенести ее на 1й слот. Активировать последовательным нажатием alt,1.
art_rrc вне форума  
 
Непрочитано 28.10.2013, 23:43
#595
Vova

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


Цитата:
Сообщение от Агент СмиТ Посмотреть сообщение
Кто нибудь может подсказать макрос на кнопку отключения/включения "отображения изображения"?
Кто-нибудь понял вопрос? (кроме art_rrc)
А так-же ответ на него?

Цитата:
Сообщение от art_rrc Посмотреть сообщение
Макрос не подскажу, но могу предложить альтернативный вариант. Можно добавить команду на панель быстрого доступа и перенести ее на 1й слот. Активировать последовательным нажатием alt,1.
Vova на форуме  
 
Непрочитано 29.10.2013, 00:56
#596
off

геодезист
 
Регистрация: 11.11.2006
Ростов-на-Дону
Сообщений: 95
<phrase 1= Отправить сообщение для off с помощью Skype™


Цитата:
Сообщение от Vova Посмотреть сообщение
Кто-нибудь понял вопрос?
Предположу что автор выключает растр выставляя значение "Show image" в "No", а хочет чтобы была кнопочка которая бы при нажатии на нее делала это не заставляя открывать окно свойств. Думаю что макросом тут не отделаться, т.к. это свойство каждого рисунка в отдельности и нужно делать программу которая бы шерстила файл на предмет наличия в нем растровых картинок и меняла бы им свойства (в идеале в виде переключателя on/off).

Для себя данную задачу решил следующим образом - растр помещаю на специальный слой и двумя макросами его включаю/выключаю.
^C^C_-layer _on;АРХИВ_РАСТР;;
^C^C_-layer _of;АРХИВ_РАСТР;;

Таким же образом поступил и с внешней ссылкой
^C^C_-XREF;_R;Объект
^C^C_-XREF;_U;Объект
где Объект - имя ссылки.
Оба решения оправдывают себя только в том случае если вн.ссылка или набор растров в чертеже одна(ин).
off вне форума  
 
Непрочитано 29.10.2013, 09:23
#597
Агент СмиТ

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


Vova
Цитата:
Сообщение от Vova Посмотреть сообщение
Кто-нибудь понял вопрос? (кроме art_rrc)
А так-же ответ на него?
Прошу прощения за недостаточно очевидную формулировку вопроса, off меня поправил
Цитата:
Сообщение от off Посмотреть сообщение
Предположу что автор выключает растр выставляя значение "Show image" в "No"
ответ art_rrc я тоже не понял, т.к. не представляю где в автокаде находится "1й слот" и что это такое
off
Цитата:
Сообщение от off Посмотреть сообщение
Думаю что макросом тут не отделаться, т.к. это свойство каждого рисунка в отдельности и нужно делать программу которая бы шерстила файл на предмет наличия в нем растровых картинок и меняла бы им свойства (в идеале в виде переключателя on/off).
Вся соль в том, что бы не плодить количество слоёв (в файле итак присутствуют пару десятков растров по слоям). Я помещаю несколько растров на один слой для однократной работы с ними (например оцифровки отдельных элементов) и поочерёдно каждый растр включаю и отключаю. Далее эти растры переношу в скрытый слой, либо вообще удаляю, посему нет необходимости "шерстить" весь файл и отключать все растры в нём.
Если реализовать выборочное отключение/включение растров ("Show image" в "No"/"Yes"), мне кажется было бы удобно для работы с "временной подложкой".
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
 
Непрочитано 29.10.2013, 09:31
#598
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Агент СмиТ Посмотреть сообщение
Кто нибудь может подсказать макрос на кнопку отключения/включения "отображения изображения"?
Цитата:
Сообщение от Vova Посмотреть сообщение
Кто-нибудь понял вопрос?
Предположу что речь идет о рамке изображения (команда _imageframe)
Мой вариант (подсмотрено у Raster Design)
Макрос
Код:
[Выделить все]
^C^C^P(imageframe);^P
Код
Код:
[Выделить все]
(defun imageframe ( / FLAG DICT )
  ;;;Включает / отключает контур растра
  (if (setq DICT (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))
    (progn
      (and
        (setq FLAG (assoc 70 DICT))
        (entmod (subst (cons 70 (boole 6 (cdr FLAG) 1))
                       FLAG
                       DICT
                       )
                )
        (command "_.regen")
        )
      )
    (progn
      (command "_imageframe" 0)
      (while (> (getvar "CMDACTIVE") 0) (command))
      )
    )
 (princ)
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.10.2013, 09:46
#599
off

геодезист
 
Регистрация: 11.11.2006
Ростов-на-Дону
Сообщений: 95
<phrase 1= Отправить сообщение для off с помощью Skype™


Так у imageframe 3 значения 0,1,2. Можно же с помощью Diesel выражений сделать переключатель по значениям. Взяв за образец $M=$(if,$(eq,$(getvar,UCSFOLLOW),0),UCSFOLLOW 1,UCSFOLLOW 0). Или там какие-то подводные камни?
off вне форума  
 
Непрочитано 29.10.2013, 10:25
#600
Агент СмиТ

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


VVA
Цитата:
Сообщение от VVA Посмотреть сообщение
Предположу что речь идет о рамке изображения (команда _imageframe)
Дело здесь не в _imageframe, т.к. требуется скрыть не рамки растров, а их содержимое. Попробую пояснить с помощью принтскрина. Включены растры "основной подложки" и "временной подложки",показ верхнего и нижнего "временных растров" отключен, среднего включен (в свойствах "Показ изображения">"Да"). Далее см. пост 597.
Миниатюры
Нажмите на изображение для увеличения
Название: Врем. подложка.gif
Просмотров: 113
Размер:	55.0 Кб
ID:	115207  
__________________
Каждая система стремится к равновесию.
Агент СмиТ вне форума  
Ответ
Вернуться   Форум 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