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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как программно определить точки пересечения ординаты Y объектом при одинаковом X 2-х не пересекающихся объектов?

VBA. Как программно определить точки пересечения ординаты Y объектом при одинаковом X 2-х не пересекающихся объектов?

Ответ
Поиск в этой теме
Непрочитано 30.01.2019, 01:56 #1
VBA. Как программно определить точки пересечения ординаты Y объектом при одинаковом X 2-х не пересекающихся объектов?
Кудахтыч
 
Регистрация: 28.01.2019
Сообщений: 62

А если конкретней, то есть известная точка вставки блока, которая не пересекает полилинию и не лежит на ней (т.е. IntersectWith ничего не даст), нужно определить точки пересечения полилинии с вертикальной ординатой Y проходящей через точку вставки блока.
Задачу можно решить через IntersectWith, если временно построить, а потом удалить вертикальную прямую линию проходящую через точку вставки блока или методом интерполяции по отрезкам полилинии, но всё это костыли, если более простое решение, ведь автокад достраивает штриховой линией будущие пересечки и командой удлинения, можно ли как то это использовать?
Просмотров: 3168
 
Непрочитано 30.01.2019, 09:00
#2
Boxa

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


Более простое решение проходят в школе, когда разбирают график уравнения прямой и взаимное пересечение этих графиков.
Если подзабыли, то вот ссылка: https://ru.wikipedia.org/wiki/Прямая там в середине написаны формулы для составления уравнения прямой по координатам двух точкек, а в конце написано, как по этим уравнениям найти точку пересечения. Думаю логика и направление для поисков понятны и формулы для поиска координат пересечения дуги с прямой Вы найдете сами.
Boxa вне форума  
 
Автор темы   Непрочитано 30.01.2019, 14:31
#3
Кудахтыч


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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Более простое решение проходят в школе, когда разбирают график уравнения прямой и взаимное пересечение этих графиков.
Если подзабыли, то вот ссылка: https://ru.wikipedia.org/wiki/Прямая там в середине написаны формулы для составления уравнения прямой по координатам двух точкек, а в конце написано, как по этим уравнениям найти точку пересечения. Думаю логика и направление для поисков понятны и формулы для поиска координат пересечения дуги с прямой Вы найдете сами.
Да это то я всё знаю вопрос то был в том как обойтись без вычислений с формулами, а просто средствами Автокада всё замутить, так чтобы было проще. Пока реализовал вариант пересечения с лучом, но это костыль, т.к. приходится рисовать и удалять луч, но зато не надо никаких вычислений.
Кудахтыч вне форума  
 
Непрочитано 30.01.2019, 15:28
#4
Boxa

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


Это самый быстрый способ, все остальное будет медленно. Так же могу посоветовать отказаться от COM вообще и от VBA в частности... что позволит существенно ускорить работу программы.
Средствами автокада, только перебором т.к. метод IntersectWith принимает в качестве параметра только один объект, а не их группу.

Для того, что бы несколько ускорить процесс, можно перебирать не все объекты, а только в некоторой выборке... попробуйте зумировать все пространство модели и потом выбрать объекты указав координаты секущей рамки с некоторым допуском...

Последний раз редактировалось Boxa, 30.01.2019 в 15:34.
Boxa вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как программно определить точки пересечения ординаты Y объектом при одинаковом X 2-х не пересекающихся объектов?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Точки пересечения полилинии и блока nolte Программирование 2 19.07.2014 15:40
Точки пересечения линии и области. Веселин Программирование 6 20.05.2014 21:57
Как программно определить, установлен ли SP1 (в частности, ACAD2008) Ax3 Программирование 2 26.07.2010 17:27
Развертка линии пересечения 3D объектов alextv Программирование 3 14.06.2009 19:30
Как определить действительные конечные точки mark AutoCAD 1 05.10.2005 00:06