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

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

Как повернуть не меняя угол или распределить вдоль линии?

Ответ
Поиск в этой теме
Непрочитано 03.02.2022, 15:32 #1
Как повернуть не меняя угол или распределить вдоль линии?
koui
 
Регистрация: 24.01.2017
Сообщений: 125

имеется множество объектов (не блоки), в т.ч. таблицы. они расположены вдоль горизонтальной оси. нужно расположить их вдоль вертикальной оси, но поворачивать их нельзя - у таблицы нет свойства "Угол поворота", потому таблицы быстро повернуть на угол 0 не выйдет. у кого какие идеи есть?
Просмотров: 1144
 
Непрочитано 03.02.2022, 15:41
#2
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 7,325


вооружиться нужными привязками, запастись терпением
v.psk вне форума  
 
Автор темы   Непрочитано 03.02.2022, 15:50
#3
koui


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


Цитата:
Сообщение от v.psk Посмотреть сообщение
вооружиться нужными привязками, запастись терпением
вообще, решение есть, но оно корявое, мне не нравится. да и требует плагина Arrage.
мы всё поворачиваем на угол -10, затем плагином развигаем и поворачиваем обратно на угол 10. выравниваем по вертикальной оси и раздвигаем на нужное расстояние.
такое решение больше напоминает костыль. есть же способ проще? или нет?

ну и бывают случаи, когда всё это нужно перевернуть. тогда все эти действия придётся делать дважды.
koui вне форума  
 
Непрочитано 03.02.2022, 15:53
#4
v.psk

конструктор
 
Регистрация: 14.08.2014
Псков
Сообщений: 7,325


выравнивание строго по-вертикали?
может всё повернуть и потом каждую крутить обратно....но проще наверное просто перемещать
v.psk вне форума  
 
Непрочитано 03.02.2022, 16:10
#5
Дмитррр

НЛО
 
Регистрация: 09.07.2007
Тутошние мы.
Сообщений: 6,399


Ничего не понял.
Цитата:
Сообщение от koui Посмотреть сообщение
но поворачивать их нельзя - у таблицы нет свойства "Угол поворота"
От того, что у таблицы нет такого свойства, почему её нельзя повернуть командой поворота? У меня таблицы отлично поворачиваются.

Цитата:
Сообщение от koui Посмотреть сообщение
потому таблицы быстро повернуть на угол 0 не выйдет
Поворот на 0 градусов - это отсутствие поворота.
Дмитррр вне форума  
 
Непрочитано 03.02.2022, 17:43
#6
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,809


Цитата:
Сообщение от koui Посмотреть сообщение
у кого какие идеи есть?
использовать лисп
Код:
[Выделить все]
 (defun c:gyro_rotate_90 (/ ss ss_index all_center_list entity)
	(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
	(defun get_bounding_center (entity / left_lower_corner right_upper_corner bb_width bb_center_x bb_center_y)
		(vla-getboundingbox (vlax-ename->vla-object entity) 'left_lower_corner 'right_upper_corner)
		(setq left_lower_corner (vlax-safearray->list left_lower_corner)
			  right_upper_corner (vlax-safearray->list right_upper_corner)
			  bb_center_x (* 0.5 (+ (car right_upper_corner) (car left_lower_corner)))
			  bb_center_y (* 0.5 (+ (cadr right_upper_corner) (cadr left_lower_corner)))
		)
		(list bb_center_x bb_center_y)
	)
	(setq ss (ssget) ss_index -1)
	(repeat (sslength ss)
		(vla-rotate (vlax-ename->vla-object (setq entity (ssname ss (setq ss_index (1+ ss_index)))))
					(vlax-3d-point (last (setq all_center_list (append all_center_list (list (get_bounding_center entity))))))
					(* -1 (* 0.5 pi))
		)
	)
	(command "._rotate" ss "" (list (/ (apply '+ (mapcar 'car all_center_list)) (length all_center_list))  
									(/ (apply '+ (mapcar 'cadr all_center_list)) (length all_center_list))
							  )
							  "90"
	)
	(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
)
koMon вне форума  
 
Автор темы   Непрочитано 03.02.2022, 23:13
#7
koui


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


Цитата:
Сообщение от Дмитррр Посмотреть сообщение
Ничего не понял.

От того, что у таблицы нет такого свойства, почему её нельзя повернуть командой поворота? У меня таблицы отлично поворачиваются.


Поворот на 0 градусов - это отсутствие поворота.
сможешь быстро повернуть 50 таблиц что б они остались на прежнем месте?
Поворот на 0 - имел ввиду свойство "Поворот" приравнять "0".

----- добавлено через ~1 мин. -----
Цитата:
Сообщение от koMon Посмотреть сообщение
использовать лисп
Код:
[Выделить все]
 (defun c:gyro_rotate_90 (/ ss ss_index all_center_list entity)
	(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
	(defun get_bounding_center (entity / left_lower_corner right_upper_corner bb_width bb_center_x bb_center_y)
		(vla-getboundingbox (vlax-ename->vla-object entity) 'left_lower_corner 'right_upper_corner)
		(setq left_lower_corner (vlax-safearray->list left_lower_corner)
			  right_upper_corner (vlax-safearray->list right_upper_corner)
			  bb_center_x (* 0.5 (+ (car right_upper_corner) (car left_lower_corner)))
			  bb_center_y (* 0.5 (+ (cadr right_upper_corner) (cadr left_lower_corner)))
		)
		(list bb_center_x bb_center_y)
	)
	(setq ss (ssget) ss_index -1)
	(repeat (sslength ss)
		(vla-rotate (vlax-ename->vla-object (setq entity (ssname ss (setq ss_index (1+ ss_index)))))
					(vlax-3d-point (last (setq all_center_list (append all_center_list (list (get_bounding_center entity))))))
					(* -1 (* 0.5 pi))
		)
	)
	(command "._rotate" ss "" (list (/ (apply '+ (mapcar 'car all_center_list)) (length all_center_list))  
									(/ (apply '+ (mapcar 'cadr all_center_list)) (length all_center_list))
							  )
							  "90"
	)
	(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
)
позже попробую
koui вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как повернуть не меняя угол или распределить вдоль линии?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Угол между дугой и линии (или две дуги) laziz AutoCAD 7 20.04.2015 16:34
Как в AutoCAD 2014 повернуть в пространстве модели координаты на угол, опрелеляемый 2-мя точками? Португалец AutoCAD 5 18.03.2015 12:52
Выдавливание вдоль линии (VBA) Markiza-2010 Программирование 4 29.03.2010 02:36