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

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

Как добавить в полилинию дуги

Ответ
Поиск в этой теме
Непрочитано 19.08.2014, 06:15 #1
Как добавить в полилинию дуги
loginovskiy
 
Регистрация: 31.10.2011
Сообщений: 31

Коллеги, точнее опытные программисты Lispov-цы!!!
Есть полилиния (трасса трубопровода) полученная в Credo. В ней отсутсвуют кривые, участки кривых
представлены в виде коротких сегментов полилинии. Работать с такой трассой плохо, т.к. невозможно
определять элементы кривой используя функции curve. Значит нужно заменить эти сегменты на дуги.
Я думаю, что сначала нужно определить какие сегменты должны попадать под дугу определяя последовательно
для каждых трех точек полилинии радиус и положение центра. Эти параметры должны совпадать (хотя бы примерно).
Вторая задача - перестроить полилинию, включив в нее дуги.

Я бы решил задачку дня за 3-4, но нужно срочно. Буду признателен за совет, ну а уж за готовый код ващще глубочайшую признательность!!!
DWG прилагаю.

Вложения
Тип файла: dwg
DWG 2010
Trassa.dwg (441.0 Кб, 828 просмотров)

Просмотров: 3137
 
Непрочитано 19.08.2014, 06:50
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Проше взять таблицу элементов трассы и строить по ней
trir вне форума  
 
Автор темы   Непрочитано 19.08.2014, 07:23 Не так просто
#3
loginovskiy


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


Не проще потому, что все данные для построения профиля берутся с плана (DWG-файл). В нем "живут" все остальные данные по трассе - ПК, ВУ и пр. Разрывать технологию было бы неверно.
loginovskiy вне форума  
 
Непрочитано 19.08.2014, 08:38
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Civil 3D
trir вне форума  
 
Непрочитано 19.08.2014, 10:20
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Задачка интересная... Самое простое, на мой взгляд, - находить концы и середину участков из коротеньких отрезков. Они, скорее всего, одинаковой длины в пределах одной кривой. Затем, по концам и середине строить дугу.
P.S. Длины отрезков примерно одинаковы (в пределах допуска). И углы между отрезками одинаковы. Я бы от этого отталкивался.
Вложения
Тип файла: dwg
DWG 2010
Trassa.dwg (106.5 Кб, 666 просмотров)
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 19.08.2014 в 10:33.
Do$ вне форума  
 
Непрочитано 19.08.2014, 10:39
#6
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Угу, а потом внезапно клотоида!
trir вне форума  
 
Непрочитано 19.08.2014, 11:41
#7
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Трассы трубопровода по клотоиде? Надо нашим инженерам рассказать
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Непрочитано 19.08.2014, 12:01
#8
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


мда, упустил что это трубопровод. Все равно - зачем мучатся, когда есть вертикалка?
trir вне форума  
 
Непрочитано 19.08.2014, 12:45
#9
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


В PowerCAD есть такая функция
Цитата:
The CP_PLINE2ARC command converts linear segment polylines into arc objects or polyline with arcs.
Вроде у нее есть 30-тидневный триал.
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как добавить в полилинию дуги



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SCAD Office 11.1 Новые возможности EUDGEN SCAD 632 20.02.2013 17:13
Програмка построения дуги по длине хорды и длине дуги b_anton Программирование 11 21.01.2011 06:45
Полилинию разбить на дуги и полилиниии LiSa AutoCAD 9 19.02.2009 10:03
Нужен лисп (добавить вершину в полилинию) Димас LISP 39 04.07.2006 11:08
Дуги в ACAD 2k5 Iam AutoCAD 5 19.05.2005 23:32