|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как облегчить рутинную работу подсчета координат?
Оросительные системы
Регистрация: 02.07.2010
Сообщений: 166
|
||
Просмотров: 3713
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
А в заголовке темы название и версию ПО не указать?
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Загружаем данные в Access с такой структурой:
таблица.1 n(номер точки) x y Данные от оси n(номер точки на оси) n2(номер точки на поперечнике) L Z or(орентация - слева или справа, используй boolean) Первую таблицу надо объединить саму с cабой n=n+1 Потом полученную таблицу объединить с данными по оси P.S. Если хочешь подробно - скинь данные (в количестве несколько 10 строк) |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
Тяжёлый случай:
1. Координаты X < 0 ??? 2. Пикет 1+000.00 !!! - надо писать 1000, потом: "Формат ячеек..."\"(все форматы)" в "Тип:" пишем "0+000.00" - в итоге в ячейке число и отображается как надо. =ЗНАЧЕН(ЗАМЕНИТЬ(E2;2;1;"")) 3. Как рассчитать последнюю точку? P.S. Откуда у тебя такие странные данные? |
|||
![]() |
|
||||
Оросительные системы Регистрация: 02.07.2010
Сообщений: 166
|
Да, они реальные.
Вы правы, просто я забыл об этом, S для нее равно S для предпоследней точки. А формулы подсчета координат меняется на X=X1+L*(Y2-Y1)/S и Y=Y1-L9X2-X1)/S, т.е для последней точки формула меняется и как это учесть в запросе? Данные нормальные, а что именно не нравится?. X<0 потому, что объект находится на ближнем востоке. ![]() |
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
1. В геодезии X не может быть < 0, в данном случае наверно неверно выбрана проекция.
2. Обычно с поля приходят данные в виде угол и расстояния, не может быть прямого угла, разве что в виде исключения или сразу координаты. А эти данные видно уже вторичные. Последний раз редактировалось trir, 22.02.2011 в 05:34. |
|||
![]() |
|
||||
Оросительные системы Регистрация: 02.07.2010
Сообщений: 166
|
trir, за Ваш труд конечно спасибо, но давайте доведем дело до конца. Дело в том, что у вас Запрос1 в столбце S1 возвращает значения РК из таблицы points начиная с id2 и в итоге получилось 30 строк вместо 31. По условиям задачи тут мы должны получить те же 31 строк, но S1 (т.е. РК) должен сдвинутся на одну строку вверх, тогда последняя строка у нас получается пустой и в нее должна записаться та же запись, что и в 30-й строке. Если не очень понятно, пожалуйста еще раз просмотрите условия задачи. С уважением, rassom
|
|||
![]() |
|
||||
Оросительные системы Регистрация: 02.07.2010
Сообщений: 166
|
Да, теперь Запрос1 получился как надо. Есть небольшое уточнение, сам только сейчас заметил, у нас получился в Запрос1 в 31-й строке столбца S2 значение S1 30-й строки. А надо было, чтобы в 31-й строке каждый из S1 и S2 повторяли свои значения из 30-й строки. Я думаю, что тепер это сделать легче, помогите пожалуйста.
|
|||
![]() |
|
||||
Оросительные системы Регистрация: 02.07.2010
Сообщений: 166
|
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
А зачем?
1. Используя abs - то есть модуль, нам совершенно не важен порядок S1 и S2 2. Условие S1 < S2 "разворачивает" формулы для расчёта nx, ny Ха, хорошенькие исходные данные: 0+557.05 : 0+557.04 1+519.91 : 1+519.84 Можно обойтись без "Orent", если принять, что для точек слева L<0 Новый запрос2: Код:
Последний раз редактировалось trir, 27.02.2011 в 04:59. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите как сделать программку для подсчета координат и расстояний | Velik84 | Программирование | 12 | 02.06.2009 22:01 |
Помощь по Лире | Серега М | Лира / Лира-САПР | 52 | 28.05.2007 02:47 |
управление системой координат Автокад из Делфей | Владимир В | Программирование | 12 | 27.04.2005 09:54 |