|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ну, я бы не сказал, что "уравнение простое" - может, я просто не стал особо сильно вникать. А те "сложности", что были добавлены, лично для меня преследуют прежде всего одну цель: структурировать код. Хоть немного. В "САПР на базе..." этому подходу очень много посвящено - больше половины книги, если не ошибаюсь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Тут я с Pavel_GP согласен. Это первая светлая мысль из его головы... kpblc, признайся, что с халтурил, просто перенес диалог в лисп, а все болячки кода так и остались. А раз так, то какой смысл в этом?
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Почти все - но я поставил доп.обработки nil-значений при вычислениях. Чтобы убрать все болячки, код надо переписывать чуть больше, чем целиком. Я думаю, что пусть лучше автор сам этим займется (да и после твоего кода пытаться что-то сделать - бесперспективняк полнейший
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
Всем привет.
1. gomer. проверил твою работу, всё отлично - как всегда ты любишь краткость и компактность. Есть вопрос: В примере руководства от Полещука (стр. 289), где описывается временный выход из ДО, а именно использована функция done_dialog с аргументом 3, который автоматически становиться возвращаемым значением функции start_dialog. Ты проделал работу по своему усмотрению. Значит временный выход можно достичь разными способами? 2. aka kpblc, твоя обработка работает в старом режиме, при выборе новой точки, слетает значение "fgs". Всем принимавшим участие, внесенный свой вклад в развитие мне нужной программки Огромное спасибо!!! Ну на этом моя работа не заканчивается, я не зря назвал программу RAD (расчет азимута и расстояния). Поэтому продолжение следует. Буду выкладывать свои результаты, для вашей оценки и рассмотрения, и конечно подмоги в нелегком труде. ![]() Планы: 1. Добавить выбор двух точек и их результаты перевода. 2. Добавить формулы расчетов Азимута и Расстояния и выводы их результатов.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Прошу прощения, что лезу вперед батьки. Если мне не изменяет память для done_dialog зарезервировано три значения -1 - аварийное закрытие окна, 0 - по Esc, 1 - по Enter.
Предлагаю повысить дуракоустойчивость кода дополнив на 151 строке (action_tile "fgs_rad" "(kont $value $key 0 'nil 't)") где kont Код:
Последний раз редактировалось trushev, 15.09.2015 в 16:52. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
Цитата:
----- добавлено через ~3 мин. ----- Цитата:
![]() trushev напиши для чего нужна твоя функция?, применение ее к моей программе. спс. ----- добавлено через ~2 ч. ----- # Откорректировал формулы перевода, можно работать в разных полушариях. За основу брал обработку от qomer. Да теперь выбор двух точек. Код:
Код:
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 15.09.2015 в 08:54. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Вместо Код:
И вообще я под этой программой не подписывался, мне дорога моя репутация... |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
gomer, Никоем образом не думал подвергнуть критике Ваш код. Понятно, написан на скорую руку, лишь бы работал. Не настаиваю на своей затее. Согласен что защищать в этом случае нужно и координаты. Либо для координат предусмотреть блокировку полей или вводить их в text_part. согласен "info" не помешает.
----- добавлено через ~5 мин. ----- Pavel_GP, Исправил ошибку в (action_tile "fgs_rad" (kont $value $key 0 'nil 't)). Функция предназначена для контроля введенных в поле edit_box значений. В случае ввода не цифровых данных или числа более n выводит сообщение об ошибке и подсвечивает поле с ошибкой. При желании может быть дополнена блокировкой клавиши "Вычислить". Последний раз редактировалось trushev, 15.09.2015 в 08:35. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
1. trushev Сегодня протестирую, посмотрю, спс за труд.
![]() 2. gomer ты опять за своё. ![]() ![]() ![]() ![]() ----- добавлено через ~29 мин. ----- 3. trushev запустил твой код. срабатывает при запуске программы "Обращение к функции не предусмотрено! СПРАВКА" Ошибка: деление на нуль., программа закрывается.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 15.09.2015 в 09:34. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Цитата:
(action_tile "fgs_rad" (kont $value $key 0 'nil 't)) $value - считывает текущее значение поля edit_box и всегда должно быть STR. Что подается на вход функции ? |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
Real, опять голову ломать, кто-то халтурил..., и что мне делать с этой бедой..., только не понять, в edit_box летят строковые значения
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 15.09.2015 в 12:04. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
что написать, ты меня вводишь в тупик
----- добавлено через ~7 мин. ----- Почему ругается непонятно: После запуска программы в edit_box летят значения Код:
Код:
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
После запуска программы или функции kont?
Смотри lsp #46 на строке 364 (set_tile "fgs_rad" (rtos dfg_rad)) выполняется присвоение полю текущего значения dfg_rad. Если на пустую 369 строку вставить (action_tile "fgs_rad" (kont $value $key 0 'nil 't)), то при редактировании поля (вводе другого значения) будет выполняться контроль корректности введенного значения. При переходе к другому полю (клавише) $value считает введенное значение поля "fgs_rad", $key считает имя ключа - "fgs_rad", 0 - допускаемое минимальное значение поля "fgs_rad", 'nil - разрешен ввод только цифровых данных, 't - при ошибке сообщение не блокируется. Если в поле будет введен не цифровой символ, или число менее 0 появится информационное сообщение об ошибке и подсветится введенное в поле "fgs_rad" ошибочное значение. Функция должна быть описана в lsp. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
в п.#49 я писал о том, что вылетает ошибка до редактирования, сразу после запуска [с твоей строки (action_tile "fgs_rad" (kont $value $key 0 'nil 't))], смысл работы твоего кода понятен. Но если бы в edit_box подавалось бы не текстовое значение, он бы сразу ругнулся. А у меня подается текст.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 15.09.2015 в 15:49. |
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
Спс. всё заработало.
![]() Просьба если не трудно: доделать свой код , а именно внести проверку на точку (.) Код:
спс. ----- добавлено через ~2 ч. ----- Вставил Расчёт Азимута (в прямом и обратном направлениях) Код:
Код:
Спс. trushev вставил его код на проверку введённых данных. Пысы: С вычислением расстояния могут возникнуть трудности, буду преодолевать их.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 16.09.2015 в 16:53. |
|||
![]() |
|
||||
Регистрация: 12.01.2015
Сообщений: 261
|
Цитата:
|
|||
![]() |
|
||||
Инженер-гидрограф Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170
|
Всем Привет.
Закончил работать над своей программой, выкладываю ее конечный результат, дописал расчёт расстояния. Если администрация не против могу выложить ее в готовые программы. Буду ждать от Вас ответа. Код:
Код:
Спасибо большое Всем кто помогал мне в её реализации. ![]() ![]() Пысы: Кто будет ей пользоваться прошу обратить внимание на 2 и 3 строку кода .lsp
__________________
AutoCAD Civil 3D 2012г. 32-разрядная. Последний раз редактировалось Pavel_GP, 05.10.2015 в 13:04. Причина: удалил из локальных в rpk (x1 x2 y1 y2) |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ваши сканы, наша обработка и перевод в DJVU. | Armin | Поиск литературы, чертежей, моделей и прочих материалов | 3866 | 02.04.2025 09:21 |
Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций) | Red Nova | LISP | 666 | 07.06.2023 14:00 |