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

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

Нахождение расстояния между точками на чертеже

Ответ
Поиск в этой теме
Непрочитано 23.08.2010, 09:03
Нахождение расстояния между точками на чертеже
Макс_Кунгур
 
Регистрация: 10.12.2008
Сообщений: 122

Добрый день! Столкнулся с такой задачей. Есть чертеж с множеством точек (около 100). Нужно при помощи языка LISP найти расстояния от одной точки, которую ты укажешь на чертеже, до всех остальных точек. Результат с расстояниями должен вывестись в текстовый файл или в таблицу Excel.
Как найти расстояние между 2-мя точками, я знаю. А вот как до всех точек, пока не разобрался. Подскажите, пожалуйста, как решить данную задачу.
Просмотров: 18175
 
Непрочитано 02.09.2010, 18:56
#61
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Жжешь,
Кароч, мне твое мнение по барабану
Юзер без тебя разберется
рано или поздно - безусловно - только боюсь, не последний раз ты код переписываешь
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 03.09.2010, 08:18
#62
Макс_Кунгур


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


CB, потестировал твой последний лисп, вроде бы все хорошо, но твои расстояния не совпадают с расстояниями Олег (jr.). Н-р: у тебя 10Э06 -> 9гЭ06 42.09, а у Олег (jr.) - 38.3214. По твоему лиспу у меня такой результат получается:

ТОЧКА 10Э06
10Э06 -> 9Э05 28.17
10Э06 -> 9бЭ06 28.82
10Э06 -> 9аЭ06 36.62
10Э06 -> 9гЭ06 42.09
10Э06 -> 9Э06 45.45
10Э06 -> 35 49.95
10Э06 -> 15Э06 50.46
10Э06 -> 9вЭ06 56
10Э06 -> 7Э06 57.32
10Э06 -> 12Э06 65.08
10Э06 -> 11Э06 85.91
10Э06 -> 14Э06 87.12
10Э06 -> 13Э06 87.56
10Э06 -> 34 118.66
10Э06 -> 4Э04 392.42
10Э06 -> 1Э04 392.58
10Э06 -> 5Э04 437.12
10Э06 -> 2Э04 438.07
ТОЧКА 11Э06
11Э06 -> 13Э06 21.82
11Э06 -> 12Э06 35
11Э06 -> 9вЭ06 35.5
11Э06 -> 9Э06 45.09
11Э06 -> 34 46.36
11Э06 -> 9аЭ06 53.07
11Э06 -> 35 53.67
11Э06 -> 15Э06 55.22
11Э06 -> 14Э06 57.96
11Э06 -> 7Э06 61.78
11Э06 -> 9бЭ06 64.39
11Э06 -> 9Э05 65.36
11Э06 -> 9гЭ06 69.86
11Э06 -> 10Э06 85.91
11Э06 -> 4Э04 453.19
11Э06 -> 1Э04 458.33
11Э06 -> 5Э04 498.46
11Э06 -> 2Э04 502.65
.................................
Вывод мне нравится, только лишь бы расстояния правильные были. Но я проверить это не могу, потому что кроме координат точек у меня данных нет. У тебя координата z учитывается в нахождении расстояния?
И еще вопрос: если у меня на рисунке в дальнейшем будут построены границы и поверхности по этим точкам с изолиниями, программа сможет посчитать расстояния?

Последний раз редактировалось Макс_Кунгур, 03.09.2010 в 08:31.
Макс_Кунгур вне форума  
 
Непрочитано 03.09.2010, 09:15
#63
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Выводы делай сам...
Код:
[Выделить все]
Command: (entget (car (entsel)))
Select object: ((-1 . <Entity name: 40072818>) (0 . "MTEXT") (330 . <Entity 
name: 40070cf8>) (5 . "26B") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . 
"0") (62 . 1) (100 . "AcDbMText") (10 483912.0 6.37368e+006 0.0) (40 . 2.0) (41 
. 0.0) (71 . 4) (72 . 5) (1 . "№ 10Э06\\P\\P149.5") (7 . "Standard") (210 0.0 
0.0 1.0) (11 1.0 0.0 0.0) (42 . 11.6667) (43 . 8.66667) (50 . 0.0) (73 . 1) (44 
. 1.0))

Command: (entget (car (entsel)))
Select object: ((-1 . <Entity name: 400727b8>) (0 . "MTEXT") (330 . <Entity 
name: 40070cf8>) (5 . "267") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . 
"0") (62 . 1) (100 . "AcDbMText") (10 483918.0 6.37364e+006 0.0) (40 . 2.0) (41 
. 0.0) (71 . 4) (72 . 5) (1 . "9гЭ06\\P\\P132.1") (7 . "Standard") (210 0.0 0.0 
1.0) (11 1.0 0.0 0.0) (42 . 8.66667) (43 . 8.66667) (50 . 0.0) (73 . 1) (44 . 
1.0))

(setq pt1 (getpoint "\nМтекст 10Э06: "))
=> (483912.0 6.37368e+006 0.0)

(setq pt2 (getpoint "\nМтекст 9гЭ06: "))
=> (483918.0 6.37364e+006 0.0)

(setq a (distance pt1 pt2))
=> 38.3214

(setq b (- 149.5 132.1))
=> 17.4

(sqrt (+ (* a a) (* b b)))
=> 42.0867

(rtos 42.0867 2 2)
=> "42.09"
CB вне форума  
 
Непрочитано 03.09.2010, 09:25
#64
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Макс_Кунгур, почитал тему, стало очень любопытно...
Зачем все эти вычисления? Точнее, что нужно в конце?
Может сразу нужно вычислить триангуляцию, например по Делоне или полигоны Вороного? По сути, запрошенные вычисления - направленный граф, те. вычисления, не зависимо от конечной задачи, избыточны.
В предложенном задании, надо создать таблицу расстояний от точки до всех остальных и таблиц по количеству точек, сортировку в таблицах, сделать по расстоянию до остальных. Очень похоже на данные по триангуляции. Я упомянул о графе не зря - значительно быстрее будет вычислить в первой таблице расстояние от первой точки до всех, кроме первой, во второй, от второй до всех, кроме первой и второй, в третьей, от третьей до всех, кроме первой, второй и третьей. Вычислений меньше, данных столько же, использовать в будущем, еще проще.

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

Удачи!
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 03.09.2010, 09:42
#65
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Макс_Кунгур, почитал тему, стало очень любопытно...
Зачем все эти вычисления? Точнее, что нужно в конце?
Может сразу нужно вычислить триангуляцию, например по Делоне или полигоны Вороного? По сути, запрошенные вычисления - направленный граф, те. вычисления, не зависимо от конечной задачи, избыточны.
В предложенном задании, надо создать таблицу расстояний от точки до всех остальных и таблиц по количеству точек, сортировку в таблицах, сделать по расстоянию до остальных. Очень похоже на данные по триангуляции. Я упомянул о графе не зря - значительно быстрее будет вычислить в первой таблице расстояние от первой точки до всех, кроме первой, во второй, от второй до всех, кроме первой и второй, в третьей, от третьей до всех, кроме первой, второй и третьей. Вычислений меньше, данных столько же, использовать в будущем, еще проще.

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

Удачи!
Я еще не удивлюсь как вдруг выяснится, что координата Z
хранится во второй строчке Mtext'a
Просто удивительно, когда человек имеет такое
количество постов на форуме, а вопросы задавать как-то
не очень...
И вот целая толпа уже неделю решает плевую проблему...
Ну...ваще
Олег (jr.) вне форума  
 
Непрочитано 03.09.2010, 09:55
#66
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


А чего удивляться - про это уже было сказано...
Цитата:
Сообщение от CB Посмотреть сообщение
О как!
Оказывается здесь точки в пространстве, а не в плоскости...

1 484304.0 6373696.0 144.9 1Э04
2 484349.2 6373694.2 130.9 2Э04
3 484303.3 6373661.0 134.9 4Э04
4 484348.4 6373662.6 149.2 5Э04
Цитата:
Сообщение от Макс_Кунгур Посмотреть сообщение
Извините, забыл сказать, что координату z (т.е. 3-й столбец 144,9 130,9 134.9 149.2) надо ОБЯЗАТЕЛЬНО в расчеты брать!!!
CB вне форума  
 
Непрочитано 03.09.2010, 10:02
#67
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от CB Посмотреть сообщение
А чего удивляться - про это уже было сказано...
Мне лично это сказано не было и я умываюсь отседа
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 03.09.2010, 12:44
#68
Макс_Кунгур


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


CB, все понял. спасибо огромное. твой лисп мне очень помог.
Макс_Кунгур вне форума  
 
Непрочитано 03.09.2010, 22:01
#69
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


С учетом значений текста как координаты Z

~'J'~
Вложения
Тип файла: lsp mpex.LSP (3.6 Кб, 51 просмотров)
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нахождение расстояния между точками на чертеже

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расстояния между компенсаторами тепловых сетей proekt_mep Отопление 10 29.05.2012 14:17
Определение высот рельефа по близлежащим точкам dextron3 Программирование 21 10.11.2011 13:14
Расстояние между проемами в соседних пожарных отсеках (блокированные жилые дома) Koliabek Пожарная безопасность 11 13.05.2009 11:17
Расстояние между видами на чертеже Сеченов Разное 14 09.02.2009 15:50
Как определить расстояние между 2 точками по spline? Хотабыч Программирование 5 22.01.2006 15:33