Обработал фрагмент чертежа пример2.dwg программой VerticesConnect01.fas, внешние вершины соединились плиниями, но внутри чертежа "каша еще та" (некоторые линии соединяющие углы внутри пересекаются) Если не затруднит обработайте файл test02.dwg программой TotalBoundary, интересно как она с этой кашей справится. Допуск 0.1. Файл test02.dwg прилагается.
К сожалению нет в работе объектов на которых можно было бы потестить вашу программу. А вот у форумчанина SOYZNIK такие объекты есть. Мне кажется его ваша программа заинтересует. Посмотрел файл test02-TBND.dwg и понял, что ваша программа игнорирует полилинии размером менее допуска. Как мне кажется в этом есть "подводный" камень.
Конечно игнорирует! Всё что меньше допуска вырождается в точку. Какой же это камень? Просто с допуском надо "играться" с умом. И отчётливо понимать, что точность создаваемого контура обратно пропорциональна величине допуска. Чем-то надо жертвовать...
Оставим в покое допуск и введем дополнительное понятие - просвет. Можно попробовать заложить в алгоритм программы заполнять просветы и допуск трогать не придется. Но обсуждение вашей программыTotalBoundary лучше продолжить на вашем форуме, да бы не засорять данную тему. Правда раздела посвященного обсуждению программы TotalBoundary я на вашем форуме не обнаружил.
Спасибо огромное!тестирую благодарю за наводку! --- Сообщения объединены, 15 июл 2019, Оригинальное время сообщения: 15 июл 2019 --- ...по мне тоже супер, аналогов наверное и нет для моего частного случая.
Мой вам совет. Если у Вас в чертеже сразу несколько объектов ( например в чертеже пример 2.dwg пять объектов), обрабатывайте программой VerticesConnect01.fas каждый объект по отдельности, бо если Вы выберете рамкой сразу все пять объектов, то скорость работы программы резко замедлится.
SOYZNIK, Написал программу для соединения зазоров между прямоугольниками. Указываете допуск (ширина наибольшего зазора с запасом), выбираете прямоугольники. Бегущие цифры в командной строке соответсвуют количеству отрисованных в зазорах плиний. В конце должно появиться табло "работа окончена". Далее можно для получения границы использовать программу _ECO (для небольших объектов, пост #868) или программу TotalBoundary ( пост #876), для практически любых по размеру объектов.
ivsem, очень круто. спасибо. Единственное объектная привязка выключается на время работы команды (и не включается обратно), но это мелочи.
Вспомнил как в молодости по желдор линиям мерил кривые. А нельзя в вашей программе предусмотреть ввод допустимой минимальной стрелки прогиба? (см.чертеж - синие промеры). Т.е., если стрелка меньше допуска, то хорда не чертится, происходит переход к следующей.
Выполнял несколько раз. Улучшение есть, но всё же концы отрезков (хорд) не сидят на размечаемой линии. :(
Включил максимальную точность в Единицах. Расстоянием измерил расстояние от конца хорды по нормали к кривой (привязки Конточка и Нормаль) Получил восемь нулей после запятой.
Проверил в C3D_2018, всё в порядке. Глюк наблюдается в AC2007. Но! Всё же есть одно но: концы отрезков не совпадают в одной точке (см. красный круг). Впрочем, они и не должны совпадать, даже если интервал составляет половину длины хорды. Хорда - прямая, интервал откладывается по кривой. Прошу прощения за проявленную панику. :)
1958, если Вам нужно что бы конец предыдущей хорды совпадал с началом следующей хорды, сие можно сотворить. Но это будет уже совсем другая программа, бо эта заточена на получение кривой видимости при проектировании дорог. --- Сообщения объединены, 18 июл 2019, Оригинальное время сообщения: 18 июл 2019 --- SOYZNIK, мне кажется форумчанин 1958 подкинул интересную идею ввести в программу для построения кривой видимости (реализовано в Horda03.fas) допуск на стрелку прогиба. Сие позволяет строить хорды только на криволинейных участках. Далее технология получения кривой видимости может быть как показано на картинке. Величину допуска на стрелку прогиба можно подобрать экспериментально.