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

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

Как определить направление выдавливания Region, зная вектор нормали.

Ответ
Поиск в этой теме
Непрочитано 04.10.2023, 15:52 #1
Как определить направление выдавливания Region, зная вектор нормали.
Сидор Лютый
 
Инженер кадастровый
 
Москва
Регистрация: 27.04.2010
Сообщений: 28

Выдавливаю произвольно расположенный в пространстве (не параллельный ни одной из плоскостей МСК) Region для получения 3D-тела. Выдавливание всегда происходит в направлении нормали, которая у региона Read-only.
Если мне нужно выдавить регион в направлении какой-то конкретной точки, с какой осью МСК нужно сравнить вектор нормали региона, чтобы получить направление (знак) выдавливания?
Просмотров: 1147
 
Непрочитано 05.10.2023, 07:56
#2
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,705


Выдавить в направлении точки невозможно. Направление можно указать двумя точками.
При этом вектор направления определяется направляющими косинусами к глобальным осям координат (т.е. нужны проекции единичного отрезка направления на оси X, Y и Z).
nickname2019 вне форума  
 
Автор темы   Непрочитано 05.10.2023, 12:56
#3
Сидор Лютый

Инженер кадастровый
 
Регистрация: 27.04.2010
Москва
Сообщений: 28


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Выдавить в направлении точки невозможно. Направление можно указать двумя точками.
Ну я как бы подразумеваю две точки. Первая - геометрический центр региона, вторая - некая произвольная точка вне его плоскости..

Цитата:
Сообщение от nickname2019 Посмотреть сообщение
При этом вектор направления определяется направляющими косинусами к глобальным осям координат (т.е. нужны проекции единичного отрезка направления на оси X, Y и Z).
Вопрос был как раз в том, как это сделать технически. Ну вот получили мы вектор направления (пусть он не перпендикулярен плоскости региона, но это не должно помешать) И как из этого вектора получить знак для выдавливания?

Подспудно тут возник вроде бы легкий вопрос, как на VBA переключиться из активной ПСК в МСК не используя SendCommand? В коллекции UserCoordinateSystems МСК нет.
Сидор Лютый вне форума  
 
Непрочитано 05.10.2023, 15:19
#4
Кулик Алексей aka kpblc
Moderator

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


В качестве бреда: взять точку, к которой хочешь строить выдавливание, ее координаты преобразовать в ОСК региона. Получаешь вектор от центроида до транспонированной точки - вот тебе и знак выдавливания (мне так кажется).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.10.2023, 14:06
#5
Сидор Лютый

Инженер кадастровый
 
Регистрация: 27.04.2010
Москва
Сообщений: 28


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В качестве бреда: взять точку, к которой хочешь строить выдавливание, ее координаты преобразовать в ОСК региона. Получаешь вектор от центроида до транспонированной точки - вот тебе и знак выдавливания (мне так кажется).
Алексей, может расскажешь простыми словами, что есть ОСК?
За время попыток разобраться с системами координат, ОСК для меня осталась самой непонятной.. Вот устанавливаю я на один конец линии начало координат и выравниваю одну ось вдоль этой линии - это ОСК или нет? Как ее получить, каким критериям должна удовлетворять - непонятно. Описание в хелпе - какой-то непонятный набор слов.. Что-то связанное с плоскими полилиниями..
Сидор Лютый вне форума  
 
Непрочитано 06.10.2023, 14:57
#6
Кулик Алексей aka kpblc
Moderator

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


ОСК = Система координат объекта. Грубо говоря, хранится в 210-й DXF группе. А так, как ты рассказываешь, ты создаешь ПСК - пользовательскую систему координат.
Попробуй выполнить нечто типа
Код:
[Выделить все]
 (entmakex '((100 . "AcDbEntity") (0 . "LWPOLYLINE")
  (67 . 0)
  (410 . "Model")
  (8 . "0")
  (100 . "AcDbPolyline")
  (90 . 8)
  (70 . 0)
  (43 . 0.0)
  (38 . 653.696)
  (39 . 0.0)
  (10 2889.66 9350.91)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 0.0)
  (91 . 0)
  (10 2619.73 6534.24)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 0.0)
  (91 . 0)
  (10 8556.29 5920.49)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 0.0)
  (91 . 0)
  (10 7360.76 11095.7)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 0.0)
  (91 . 0)
  (10 13746.3 9456.33)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 0.0)
  (91 . 0)
  (10 13635.7 13334.7)
  (40 . 0.0)
  (41 . 0.0)
  (42 . -1.30542)
  (91 . 0)
  (10 18847.1 12087.4)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 1.14134)
  (91 . 0)
  (10 24007.3 10106.6)
  (40 . 0.0)
  (41 . 0.0)
  (42 . 1.07291)
  (91 . 0)
  (210 -0.366822 -0.27502 0.88871)
 ))
В пустом чертеже и посмотри на результат - увидишь раскорячившуюся в пространстве полилинию. Вот у нее своя система координат, никак не связанная с МСК / ПСК.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 06.10.2023 в 16:24.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.10.2023, 16:19
#7
Сидор Лютый

Инженер кадастровый
 
Регистрация: 27.04.2010
Москва
Сообщений: 28


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вот у нее своя система координат, никак не связанная с МСК / ПСК.
Что-то через ком.строку не срабатывает код..
А где хранятся эти относительные координаты и относительно какой точки они задаются?
Если смотреть любую полилинию через окно свойств, координаты вершин там в МСК.
Сидор Лютый вне форума  
 
Непрочитано 06.10.2023, 16:24
#8
Кулик Алексей aka kpblc
Moderator

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


А, я когда копировал, 0-ю группу по запарке снес. Вроде бы подправил, но проверить сейчас не смогу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как определить направление выдавливания Region, зная вектор нормали.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить серию и марку колонн rerla Поиск литературы, чертежей, моделей и прочих материалов 1 21.04.2021 17:09
Как определить ветровую нагрузку при напрвлении ветра под углом Dmitry_Z Прочее. Архитектура и строительство 3 16.01.2019 10:52
Как определить профиль усиления металлической балки.. fyzest Металлические конструкции 4 10.04.2018 13:00
Как надежно определить, что в x64 системе выполняется 32х разрядный Acad. Pastor Программирование 6 08.09.2010 17:17
Определение нормали в точке на поверхности сферы Circul Программирование 7 01.03.2010 23:10