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

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

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

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

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

Выкладываю 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:
Просмотров: 451429
 
Непрочитано 09.11.2011, 12:26
#461
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


^C^C^P(defun c:atback () (vl-cmdf "_ai_draworder" "_back") (princ));atback;
конструкция проверена не единожды. ругается именно vl-cmdf (пробовал и с command) на "_ai_draworder... ругается не только в тексте макроса, но и из ком строки.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 09.11.2011, 12:41
#462
Profan


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


А если так попробовать:
Код:
[Выделить все]
^C^C^P(defun c:atback () (ai_draworder "_back") (princ));atback;
Profan вне форума  
 
Непрочитано 09.11.2011, 12:50
#463
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


как ни странно работает... неужели ai_draworder - лисповская функция?..
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 09.11.2011, 12:51
#464
Profan


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


Конечно. Все команды с префиксом ai - лисповские.
Существует специальный файл ai_utils.lsp.

Последний раз редактировалось Profan, 09.11.2011 в 13:29.
Profan вне форума  
 
Непрочитано 21.11.2011, 13:47
#465
migel123


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


Друзья, други, товарищи, коллеги, добрые люди, жители форума и все все все кто слышит меня даже из других галактек!!!!
Перейду сразу к делу! В автокаде, в режиме орто линия не ведется параллельно точки привязки, а непосредственно привязывается к этой точке если щелкать по этой точке. Я чертил в архикаде, там иначе, в компасе тоже так, как мне надо, (хотя компас мне не нравится). может надо прописать макрос или изменить настройки. Я прочитал переписку данной темы, нашел много мне нужного, но это последний вопрос который не дает мне покоя. Привожу схему:

http://files.mail.ru/PT1AWE?t=1
Не ясно почему в режиме орто линия как то может пойти под любым углом, если щелкать в нужную точку привязки. Програмный вариант типа попасть в точку привязки и немного отойти от нее меня не устраивает, это тормозит темп работы.
Заранее извиняюсь если задал глупый вопрос и заранее благодарю за проявленное понимание и помощь.
migel123 вне форума  
 
Непрочитано 21.11.2011, 22:46
#466
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,481
Отправить сообщение для maratovich с помощью Skype™


Есть такая засада в каде, тоже сначала (после компаса) не понимал, потом привык. Привязки срабатывают и ставят конец отрезка к ближайшей точке.
maratovich вне форума  
 
Непрочитано 21.11.2011, 22:47
#467
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от maratovich Посмотреть сообщение
Привязки срабатывают и ставят конец отрезка к ближайшей точке.
Вообще-то это зависит от настроек привязок. Лично у меня привязка "ближайшая" срабатывает тогда и только тогда, когда мне это надо. В остальных случаях работает другой набор.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2011, 23:30
#468
forMA


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


При построении такой "строго" ортогональной прямой выключать привязки нафиг вручную или макросом.
forMA вне форума  
 
Непрочитано 22.11.2011, 00:18
#469
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,818
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Лично у меня привязка "ближайшая" срабатывает тогда и только тогда, когда мне это надо
Не поделитесь настройками?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 22.11.2011, 01:18
#470
skkkk


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


Offtop:
Цитата:
Сообщение от migel123 Посмотреть сообщение
Друзья, други, товарищи, коллеги, добрые люди, жители форума и все все все кто слышит меня даже из других галактек!!!!
Перейду сразу к делу!
Хорошо что сразу к делу.... А то предчувствуется пятый том "Войны и мира"
skkkk вне форума  
 
Непрочитано 22.11.2011, 02:22
#471
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Cfytrr Посмотреть сообщение
Не поделитесь настройками?
Это какими? osmode (лично мои предпочтения!) = 503; ну и плюс временное включение нужных привязок через Ctrl+Правый клик
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.02.2012, 11:47
#472
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Граждане, подскажете. Можно ли сделать макрокомаду типа. Быстрый выбор - мультивыноска - содержимое - поиск по глобальным значениям - [ввести нужное значение]?
Astartes вне форума  
 
Непрочитано 13.02.2012, 08:27
#473
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Быстрый выбор не повесить на макрос, т.к. эта команда только через диалоговое окно работает. Можно с помощью лиспа выкрутиться, если не автокад не LT.
Do$ вне форума  
 
Непрочитано 13.02.2012, 10:57
#474
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Автокад полный 2011, но лиспа не знаю. ((
Astartes вне форума  
 
Непрочитано 13.02.2012, 14:22
#475
skkkk


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


Знаю только, как без диалогового окна выбрать все мультивыноски (тут, на форуме научили когда-то)
Код:
[Выделить все]
^C^C(defun mfunc(/ selset) (if (setq selset (ssget '((0 . "MULTILEADER")))) (sssetfirst selset selset)));(mfunc);
Как дальше поступить с этим набором - не знаю. И не совсем ясно, что значит "по глобальным значениям"? А после поиска что делать с этой выноской? Выделить? Зумировать? Править?
skkkk вне форума  
 
Непрочитано 13.02.2012, 18:48
#476
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


skkkk, Я мультивыносками проставляю позиции. Иногда требуется выделять диапазон, допустим с 31 позиции до 79. Это делается так. Быстрый выбор-мультивыноска-содержимое-поиск по глобальным символам - [3-7][0-9]. То что делать дальше с выделенными мультивыносками это моя печаль. ))) Смысл в том что нужно выделять несколько диапазонов плюс постоянно ошибаюсь в значениях, приходится каждый раз проделывать всю цепочку выбора заново.
Astartes вне форума  
 
Непрочитано 13.02.2012, 20:05
#477
skkkk


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


Снова не понял про глобальные символы
Цитата:
Сообщение от Astartes Посмотреть сообщение
[3-7][0-9]
Лучше бы файл с примером приложить во избежание бесполезных действий - так обычно быстрее дело идет
skkkk вне форума  
 
Непрочитано 13.02.2012, 20:24
#478
TararykovDG

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


Цитата:
Сообщение от Astartes Посмотреть сообщение
skkkk, Я мультивыносками проставляю позиции. Иногда требуется выделять диапазон, допустим с 31 позиции до 79. Это делается так. Быстрый выбор-мультивыноска-содержимое-поиск по глобальным символам - [3-7][0-9]. То что делать дальше с выделенными мультивыносками это моя печаль. ))) Смысл в том что нужно выделять несколько диапазонов плюс постоянно ошибаюсь в значениях, приходится каждый раз проделывать всю цепочку выбора заново.
Astartes, попробуй так
Код:
[Выделить все]
 
(defun c:qsel()
  (vl-load-com)
  ((lambda(range)
     (if (not (vl-catch-all-error-p range))
       (sssetfirst nil (ssget "_X" (list (cons 0 "MULTILEADER") (cons 304 range))))
       )
     )
    (vl-catch-all-apply 'getstring
      (list t "\nВведите диапазон в формате [начало-конец]: ")
      )
    )
  (princ)
  ); end c:qsel
P.S. В ответ на запрос "Введите диапазон в формате [начало-конец]:" можно будет ввести, наример:
[1-10]
или
[2-6],[12-45]
и т.д.
__________________
cadtools
TararykovDG вне форума  
 
Непрочитано 14.02.2012, 05:10
#479
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


TararykovDG, Спасибо то что нужно.

skkkk, "Поиск по глобальным символам" это оператор в окне быстрого выбора, там же где, =, <, >, <>

Последний раз редактировалось Astartes, 14.02.2012 в 05:46.
Astartes вне форума  
 
Непрочитано 16.02.2012, 08:04
#480
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


При моделировании часто нужно выполнить вычитание при условии сохранения вычитаемого тела.
Для этого соорудил макрос:

Код:
[Выделить все]
 (defun c:delt (/ es1 es2 p1)
  (setq es1(entsel "Выберите тело: ")
        es2(entsel "Выберите тело для вычитания: ")
         p1(getpoint "Укажите любую точку:"))
  (command "_copy" (car es2) "" p1 p1)
    (command "_subtract" (car es1) "" (car es2) "")
  (command "_solidedit" "_body" "_separate" (car es1) "" "" )
  (command "_erase" pause )
  (princ)
  (princ)
)
Порядок работы:
- указываем тело для вычитания,
- указываем вычитаемое тело,
- указываем любую точку,
на случай если вычитаемое тело полое (труба), выполняется разделение и включается команда удаление,
- указываем удаляемые (не нужные) части.
Jonas вне форума  
Ответ
Вернуться   Форум 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