|
AutoCAD. Поворот группы объектов относительно центра каждого из объектов?
|
Количество просмотров - 6837
(ссылка на эту тему)
|
|
|
MIP
|
Объекты вращаются вокруг центра последнего выбранного примитива. Нижеприведенный код вращает выбранные объекты вокруг относительно центра прямоугольника, описанного вокруг каждого объекта (defun c:srot (/ ERRCOUNT MAXPT MINPT MIPT MNPT MXPT OBJSET VLAOBJ PTLST XLST YLST) (vl-load-com) (if(not srot:ang)(setq srot:ang (* pi 0.5))) (setq oldAng srot:ang srot:ang(getangle (strcat"\nSpecify rotation angle <"(angtos srot:ang)">: ")) ); end setq (if(null srot:ang)(setq srot:ang oldAng)) (setq errCount 0 ptLst '() ); en setq (princ "\n§§§ Select objects or press Enter to Quit. §§§") (if (not(setq objSet(ssget "_I"))) (setq objSet(ssget)) ); end if (sssetfirst) (while objSet (setq objSet (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr(ssnamex objSet))))) (foreach obj objSet (vla-GetBoundingBox obj 'MinPt 'MaxPt) (setq mnPt(vlax-safearray->list MinPt) mxPt(vlax-safearray->list MaxPt) miPt (polar mnPt (angle mnPt mxPt)(* 0.5 (distance mnPt mxPt))) ) (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-rotate (list obj(vlax-3D-Point miPt)srot:ang))) (setq errCount(1+ errCount)) ) ); end foreach (if(/= 0 errCount) (princ(strcat "\n" (itoa errCount) " objects were on locked layer! ")) ); end if (princ "\n§§§ Select objects or press Enter to Quit. §§§") (setq objSet(ssget)) ); end while (princ) ); end of c:srot
|
Инженер (Минск, Беларусь)
|
|
|
Walek
Участник форумов
Сейчас отсутствует
|
Спасибо огромное! Очень полезная вещь. А не подскажите как на нее кнопку сделать. Т.е. какая команда на кнопку должна быть?
|
Проектировщик (Москва, Россия)
|
|
|
Д м и т р и й
|
Объекты вращаются вокруг центра последнего выбранного примитива. Нижеприведенный код вращает выбранные объекты вокруг относительно центра прямоугольника, описанного вокруг каждого объекта А куда этот код вводить если не секрет? А то я в автокаде не видел ещё работу с макросами
|
Главный специалист (Минск, Беларусь)
|
|
|
Walek
Участник форумов
Сейчас отсутствует
|
В блокнот нужно вставить текст и изменить расширение на .lsp, потом подгрузить.
|
Проектировщик (Москва, Россия)
|
|
|
Д м и т р и й
|
блокнот нужно вставить текст и изменить расширение на .lsp, потом подгрузить. Я так понял в корневую папку с автокадом? А как эту функцию потом вызвать?
|
Главный специалист (Минск, Беларусь)
|
|
|
Walek
Участник форумов
Сейчас отсутствует
|
У меня под такие програмки отдельная папка. Которую я добавил в пути доступа к вспомогательным файлам. Далее идет в сервис- приложения-указываем на созданный файл и нажимаем загрузить.
в командной строке прописываем _srot и крутим;)
|
Проектировщик (Москва, Россия)
|
|
|
Д м и т р и й
|
У меня под такие програмки отдельная папка. Которую я добавил в пути доступа к вспомогательным файлам. Далее идет в сервис- приложения-указываем на созданный файл и нажимаем загрузить.
в командной строке прописываем _srot и крутим;) Сделал как вы говорили: 1. Скопировал текст и пересохранил с разрешением .LSP 2. В настройках добавил путь к папке с сохраннёным файлом. Как показано на рис. 3. Перзапустил автокад Ввожу функцию _srot в коммандной строке, но ничего не работает. Пишет что неизвестная команда
|
Главный специалист (Минск, Беларусь)
|
|
|
Walek
Участник форумов
Сейчас отсутствует
|
После этого действия: сервис- приложения-указываем на созданный файл и нажимаем загрузить. Было написано, что файл успешно загружен? У меня он тоже что то автоматически не хочет грузится. Приходится каждый раз его вручную подгружать.
|
Проектировщик (Москва, Россия)
|
|
|
Д м и т р и й
|
После этого действия: сервис- приложения-указываем на созданный файл и нажимаем загрузить. Было написано, что файл успешно загружен? У меня он тоже что то автоматически не хочет грузится. Приходится каждый раз его вручную подгружать. Я скороо буду ругаться на свой автокад благим матом ![[стена] [стена]](https://www.proektant.org/Smileys/default/dash2.gif) Открываю подменю сервим, а вот вкладки приложения там нет...
|
Главный специалист (Минск, Беларусь)
|
|
|
Walek
Участник форумов
Сейчас отсутствует
|
В командной строке введите _appload.
|
Проектировщик (Москва, Россия)
|
|
|
Д м и т р и й
|
Я лучше дома вечером попробую, а то рабочий автокад и тут пишет "неизвестная комманда" - а еще лицензия называется ![[грусть] [грусть]](https://www.proektant.org/Smileys/default/sad.gif)
|
Главный специалист (Минск, Беларусь)
|
|
|
Aleksei
Участник форумов
Сейчас отсутствует
|
MIP, огромное спасибо за облегчение работы!
|
Инженер (Санкт-Петербург, Россия)
|
|
|
|