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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Прошу добавить в макрос массового поворота объектов функцию RANDOM

Прошу добавить в макрос массового поворота объектов функцию RANDOM

Ответ
Поиск в этой теме
Непрочитано 24.10.2016, 12:17 #1
Прошу добавить в макрос массового поворота объектов функцию RANDOM
MrBrown
 
ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359

Здравствуйте!
Прекрасный макрос поворота объектов, спасибо за него:
Код:
[Выделить все]
 (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
Прошу помочь: добавьте, пожалуйста рандомную функцию, чтобы макрос выполнялся не для всех заранее выбранных примитивов, а случайным образом.
Причина: если отклонения бетона не превышают норм, заказчик закрывает глаза на конкретные цифры и направления стрелок отклонений в исполнительных схемах бетонирования.
При большом количестве стрелок хорошо бы выделить их все (они у меня на одном слое) и запустить макрос поворота, чтобы он перевернул на 180 не все стрелки, а выбранные случайным образом.
Спасибо
p.s. AutoCAD 2014

Последний раз редактировалось MrBrown, 24.10.2016 в 13:29.
Просмотров: 2431
 
Непрочитано 24.10.2016, 16:11
#2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Если я правильно понял, ситуация такая:
Заказчик оплачивает съемку объекта, а Вы вместо ее выполнения, подсовываете ему случайно сгенерированную липу, т.е. получаете оплату на халяву, при этом просите за Вас написать генератор этой липы, так же на халяву.
Красиво.

ЗЫ.
Тут на сайте много добрых людей, кто ни будь да поможет, а я бы и платно такое писать не стал бы.
Boxa вне форума  
 
Автор темы   Непрочитано 24.10.2016, 17:26
#3
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


Boxa, Offtop: благодарю за участие в моей проблеме, однако в своем вопросе я лишь концентрированно изложил обстановку. Как говорится, итог.
Ситуация, как Вы её представляете, выглядит несколько иначе. Геодезическая съемка у нас проводится в полном объёме. И в присутствии представителя строй.контроля.
А вот оформление ИД требует много времени. Тупо не успеваем со сроками сдачи ИД. Ну и нам пошли навстречу: если в отклонения в норме - рисуйте как хотите, если что-то вне нормы - будьте добры оформить согласование.
Про ситуацию с оплатой съемки объекта умолчу: отдельная тема, которой я, рядовой чертежник, никаким образом не касаюсь. Дай Бог успевать свою работу выполнять.
Я пользуюсь десятком удобных макросов из различных постов форума. Это ведь тоже "нахаляву".
Надеюсь, что Мастера от ЛИСПа мне помогут. Тем более, что вставить несколько строк в существующий код совсем недолго. (Знаю это по себе, только не в AutoCAD, а в Excel, когда помогаю составить нужную формулу).
А если всё мерять на деньги (которых ни я, ни Вы никогда не увидим), даже не зная условий работы другого человека...
p.s. А добрых людей - больше!

Последний раз редактировалось MrBrown, 24.10.2016 в 18:20. Причина: перевод в offtop
MrBrown вне форума  
 
Непрочитано 24.10.2016, 18:08
| 1 #4
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


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

Цитата:
Сообщение от MrBrown Посмотреть сообщение
А если всё мерять на деньги (которых ни я, ни Вы никогда не увидим), даже не зная условий работы другого человека...
Я не мерю все в деньгах, я смотрю на суть ситуации. На выполнение этой работы нужно N часов, с заказчика получено средств за N часов работы, с помощью этого скрипта работа будет выполнена за N/10 часов, т.е. работодатель может еще загрузить чем то работника на 9*N/10 часов, хотя в Вашем случае это время уже было потрачено. Хотите сказать что ситуация не такая?

Собственно суть моих постов в том, что в публичном доступе такое вредно и делать такое нужно в частном порядке, и в частном же порядке решать вопрос с исполнителем.

Последний раз редактировалось Boxa, 25.10.2016 в 06:07. Причина: очипятки
Boxa вне форума  
 
Автор темы   Непрочитано 27.10.2016, 09:22
#5
MrBrown

ПенсионЭр
 
Регистрация: 26.06.2009
Сообщений: 359


Решение найдено. Составил макрос, значительно короче, нежели "SROT".
Но он и выполняет только одну простую функцию:
из выделенных объектов выбирает какие-то случайным образом (точнее, псевдослучайным, но это не важно) и поворачивает их на 180 градусов - каждый вокруг своего центра.
Всем спасибо за участие и просмотры
p.s. А заманчивая это штука - AutoLISP! Просто волшебная Желаю удачи всем волшебникам на этом форуме!
MrBrown вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Прошу добавить в макрос массового поворота объектов функцию RANDOM

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. 1. Выбор объектов "по расширенным данным". 2. Принадлежность точки замкнутому контуру. AlexZh LISP 8 09.06.2022 16:35
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Выбор в автокаде ASЪ AutoCAD 39 26.06.2014 20:19
Lisp Выбор объектов программно Kirill_Ja LISP 2 01.09.2012 18:50
Автоматический выбор объектов в последовательном порядке. Terminator637 AutoCAD 15 31.03.2010 19:54