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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как пересчитать параметры круга (дуги) - dxf код 210

Как пересчитать параметры круга (дуги) - dxf код 210

Ответ
Поиск в этой теме
Непрочитано 25.11.2022, 15:39 #1
Как пересчитать параметры круга (дуги) - dxf код 210
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 451

Всем привет!

Имею в модели круг, немного приподнятый над "нулевой плоскостью",
да ещё и слегка повернутый вокруг своей оси (формально выглядит,
как эллипс, но лишь слегка).

Его параметры /группы DXF/: (10 6004.09 -6085.71 325.245) и
(210 -5. 88616e-005 -0.0512612 0.998685)

/цифры реальные/

Нужно "опустить" его на "нулевую" плоскость, чтобы при виде спереди
он выглядел, не как "линза, висящая в воздухе", а как "линза, лежащая
в плоскости X=1, Y=1, Z=0.

Через "свойства" (меняя высоту Z) я его легко опускаю.

Его параметры становятся при этом:
(10 6004.09 -6086.37 312.406) и
(210 -5.88616e-005 -0.0512612 0.998685)

т.е. Z изменилась, но стала не нулевой, а какой-то 312.406

Вопрос: как её вычислить?

С функцией (trans ...) и так и эдак крутился. Идеи закончились.
Кто подскажет?

И да, тему:

https://forum.dwg.ru/showthread.php?...c90o1200236215

видел, конечно.
__________________
Счастливо, Алексей!
Просмотров: 3340
 
Автор темы   Непрочитано 28.11.2022, 12:09
#2
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451


Прикладываю файл, чтобы не так абстрактно оно выглядело.

В идеале - нужно спроектировать дугу и круг на "нулевую" плоскость так,
чтобы при виде "сверху" геометрические размеры не изменились, а при
виде "спереди" всё это безобразие выглядело, как одна линия.

Поэтому - пока - "Шаг 1": опустить их вниз, на плоскость X=1, Y=1, Z=0.
Вложения
Тип файла: dwg
DWG 2013
Висящий круг.dwg (60.1 Кб, 21 просмотров)
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 29.11.2022, 10:02
1 | #3
koMon


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


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
пересчитать параметры круга (дуги)
Код:
[Выделить все]
 
(setq object (vlax-ename->vla-object (car (entsel))))
(vla-put-normal object (vlax-3d-point 0 0 1))
(vla-put-center object (vlax-3d-point (list (car (vlax-get object 'center)) (cadr (vlax-get object 'center)) 0)))
но это будут НЕ проекции круга (дуги) на плоскость X0Y, а их укладка на эту плоскость с выравниванием их нормалей параллельно оси Z.
__________________
K Lisp
koMon вне форума  
 
Автор темы   Непрочитано 29.11.2022, 12:16
#4
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451


Да, конечно - "в лоб" проекции для круга сделать и не получится.
Для этого его в эллипс преобразовывать нужно.
Или в блок с разными масштабами по X и Y.

Да и сама задача у меня странная слегка... Вот и ищу решения с
"приемлемой степенью неточности".

Во! Как раз 3-й строки мне для счастья и не хватало. :-)
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 29.11.2022 в 12:23.
===AAA=== вне форума  
 
Автор темы   Непрочитано 01.12.2022, 12:34
#5
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451


Кстати, а есть стандартные функции, позволяющие выбрать 3D-объекты,
попадающие в некий объём, заданный, скажем, двумя точками
(2 2 10) и (5 5 20) - "вид сверху" ?

Типа (ssget) "рамка" и "секрамка", но только не для плоскости, а в объёме.

Вернее даже не так.

"Отссгетить" чертеж в разных плоскостях не проблема. Полученные наборы
потом можно сравнить и отсечь лишнее или наоборот, объединить их.

Проблема в нехватке точности ssget, т.к. выбор объектов идёт с точностью
"до экранного пикселя" и при плотных чертежах в наборы попадает лишнее.
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 02.12.2022 в 07:03.
===AAA=== вне форума  
 
Автор темы   Непрочитано 13.04.2023, 06:11
#6
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451


Думал, это "разовая акция" - ан нет, задачи подобного плана
возникают снова и снова. Назрела необходимость её решения
"в общем виде".

Итак: есть круг (пока - круг, то там и эллипсы появятся, возможно)
висящий в пространстве в произвольной ориентации. Нужно найти
его проекцию на плоскость при "виде сверху".

Понятно, что это будет эллипс с неким соотношением длинной и
короткой сторон и повернутый относительно своего центра на
некоторый угол в плоскости XY.

Осталось его рассчитать и построить. Математики здесь есть?
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 18.04.2023, 14:49
#7
max4airkin


 
Регистрация: 26.03.2015
Екатеринбург
Сообщений: 382


1. Flatten не поможет?
2. Для построения проекций дуг/окружностей в виде эллипсов см. https://en.wikipedia.org/wiki/Rytz%27s_construction. На русском языке ничего подобного найти не смог.
Сам для себя решал вопрос построения проекций дуг для разных аксонометрических проекций, но дотумкался только до отрисовки дуги ломаной полилинией. Построения Ритца лиспом пока не пробовал сделать
max4airkin вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как пересчитать параметры круга (дуги) - dxf код 210

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из ObjectArx (.Net) вызвать функцию Лисп, передать в нее параметры и получить измененные параметры назад? nickname2019 Программирование 9 16.04.2020 06:16
Обязанность изготовителя указывать параметры в соотвтетствии с ГОСТ Алексей СПБ-САМ Металлические конструкции 1 27.09.2018 09:36
Как добавить в полилинию дуги loginovskiy Программирование 8 19.08.2014 12:45
AutoCAD civil 3D 2012 - параметры перехода из Pulkovo_to_WGS84. Pavel_GP Вертикальные решения на базе AutoCAD 2 30.09.2011 11:05
Програмка построения дуги по длине хорды и длине дуги b_anton Программирование 11 21.01.2011 06:45