Вывод результата вычислений в окне DCL? - Страница 4
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вывод результата вычислений в окне DCL?

Вывод результата вычислений в окне DCL?

Ответ
Поиск в этой теме
Непрочитано 03.09.2015, 14:35
Вывод результата вычислений в окне DCL?
Pavel_GP
 
Инженер-гидрограф
 
г.г. Ленинград
Регистрация: 15.09.2011
Сообщений: 170

Здравствуйте.
Собрал для себя программку, но есть проблемы, подскажите плз.:
Вопрос: Результаты вычислений не отображаются в диалоговом окне, окно закрывается после нажатия кнопки "Вычислить", как исправить?
Спасибо.
P.S. После выбора точки, пропадает значение в графе "Введите параллель".
Код:
[Выделить все]
 RAD : dialog {
label = "xxx";
: column {
: edit_box {
label="Ââåäèòå ïàðàëëåëü, xx.xxxxx°:";
key="fgs";
edit_width = 12;}
}
: row {
 : boxed_column {
	  label = "Ïåðâàÿ òî÷êà";

	: button {
	label = "Âûáðàòü òî÷êó";
	key = "P1";
	edit_width = 12;
	fixed_width = true;
	mnemonic = "Â";
	}

	: edit_box {
	key = "eb1";
	label = "&X1:";
        edit_width = 15;
	fixed_width = true;
	       	   }

	: edit_box {
	key = "eb2";
	label = "&Y1:";
        edit_width = 15;
	fixed_width = true;
	       	   }

}
: column {
 : paragraph {
        label = "Ðåçóëüòàò âû÷èñëåíèé";
        children_alignment = centered;
        width = 50;
        : text { key = "ln1"; }
        : text { key = "ln2"; }
      }
   }
 }

: row {
        fixed_height = true;
        alignment = top;
        spacer;
         : button {
          key    = "accept";    
          label  = "Âû÷èñëèòü";   
          is_default = true;
          height = 3;      
        }
 : button {
          key       = "cancel";
          label     = "Çàêðûòü";
          is_cancel = true;       
          height    = 2;
        }
        }

      : column {
        fixed_height = true;
        alignment = bottom;
        : text {  label = "xxx";  alignment=right;}
        spacer;
      }

}//dialog

Прошу прощения рус/яз не отображается...

Вложения
Тип файла: lsp RAD.lsp (3.2 Кб, 47 просмотров)

__________________
AutoCAD Civil 3D 2012г. 32-разрядная.

Последний раз редактировалось Pavel_GP, 03.09.2015 в 15:01.
Просмотров: 16395
 
Непрочитано 04.10.2015, 18:59
#61
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


А что функции преобразований как локальные не сделал?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 05.10.2015, 13:05
#62
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Если закинуть их в локальные они перестают работать.
Перенес
Код:
[Выделить все]
 
(defun C:RAD (/ rpk kont dcl_id step pt1 pt2 dfg_rad x1 y1 x2 y2 dtr deg minu sek)

  (defun dtr (a) (* pi (/ a 180.)))
  (defun deg (r) (/ (* r 180.) pi))
  (defun minu (d) (* (- d (fix d)) 60.))
  (defun sek (m) (* (- m (fix m)) 60.))

  (defun rpk (/	     sfg2... 
теперь работают.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.

Последний раз редактировалось Pavel_GP, 05.10.2015 в 13:36.
Pavel_GP вне форума  
 
Непрочитано 05.10.2015, 19:42
#63
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
Перенес
Именно такой подход я и называю хламом
gomer вне форума  
 
Автор темы   Непрочитано 05.10.2015, 21:46
#64
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Цитата:
Сообщение от gomer Посмотреть сообщение
хламом
я ждал твоего возмущения... жестко и в точку., только не понятно даже и не собираюсь понимать чего твоя персона добивается... как-то по-детски. Тебя что-то беспокоит? Ты не ожидал такого математического решения моей задачи как у меня. И тебе распирает поэтому. В этих вопросов я просто умнее, смирись с этим. Ты в программных кодах шаришь, а я решаю поставленную задачу.
Пысы: для тебя лично повторюсь я НЕ программист!!!
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.

Последний раз редактировалось Pavel_GP, 05.10.2015 в 22:02.
Pavel_GP вне форума  
 
Непрочитано 05.10.2015, 22:42
#65
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
Тебя что-то беспокоит?
Ну, хорошо. Я расскажу еще раз. Однажды ко мне обратился заказчик и попросил сделать программу. Оказалось, что программу уже сделали до меня и выдали на руки заказчику, получив денежку. Возможно даже кто-то из местных. По-крайней мере призрак Полещука в ней бродил. Оказалось так же, что эта программа делала ровным счетом чуть менее, чем ничего. Но зато выглядела она увесисто... Так вот мне бы хотелось, чтоб если даже у меня и увели работу, то эта работа была выполнена качественно. Иначе какой в ней смысл.
Почему локальные функции - хлам? Потому что сегодня ты написал одну программу, завтра вторую, а через год у тебя будет 20 программ, в которых будут 100 одинаковых функций, определенных локально. А потом ты забудешь, что уже определил 20 раз функцию и воспользуешься встроенной, пару раз. А потом ты уже запутаешься в типах данных на входе и выходе и будешь городить еще функции для конвертации одного типа данных в другой и обратно. И наконец у тебя получится нечто подобное bgtools в которой из 150кб кода полезным будет максимум 20-50. При этом у тебя даже элементарной менюшки не окажется, не говоря уже о справке... Но не смотря на то, что ты все сделал правильно, тебе еще понадобится универсальный обработчик ошибок, но и он тебе не поможет. При этом тебе придется минимизировать комментарии, чтоб хоть как-то разобраться в написанном, а без комментариев ты все равно не разберешься. Не пройдет и 5 лет как ты будешь смотреть на свой, родной код, как... ну, в общем исступленно (это я тебе по собственному опыту говорю). А переписывать ты свой код будешь не раз и не два.
Вместо локальных функций в визуал лисп придумали проекты и компиляцию в с отдельным пространством имен. Это даже эффективней, чем создавать функции с "именными" префиксами. Единственный минус - исходники рано или поздно потеряются, но до тех пор много воды утечет...
gomer вне форума  
 
Непрочитано 05.10.2015, 22:48
#66
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


gomer, в данном конкретном случае локальные функции значительно более выгодны, чем глобальные: проект единственный, команда единственная и мусора лишнего вносить не надо. При условии предоставления только vlx / fas без исходников лично я даже смотреть в сторону такой программы не буду - черт его знает, что там нарисовано и как. Вычищать потом замучаешься.

----- добавлено через 37 сек. -----
Pavel_GP, ты бы обновил стартовый пост, указав окончательное решение...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.10.2015, 09:15
#67
trushev


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


Цитата:
Сообщение от gomer Посмотреть сообщение
А переписывать ты свой код будешь не раз и не два.
Полностью согласен. Больше комментировать.
Кроме того,gomer, уже поднимал вопрос: добавить клавишу "Инфо" и посадить на нее описание работы программы.
trushev вне форума  
 
Непрочитано 06.10.2015, 11:24
#68
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
gomer, в данном конкретном случае локальные функции значительно более выгодны, чем глобальные: проект единственный, команда единственная и мусора лишнего вносить не надо. .
Это только сначала "проект единственный", а потом они начнут плодиться. Конечно, какие-то функции, которые никогда нигде больше не понадобятся, надо делать локальными.

Ну а такие, как rtd, dtr, kont, ввод данных и прочие универсальные надо сразу выносить в библиотеку.
А также надо избегать элементарных ошибок. Вот например в коде наивно написано:

Код:
[Выделить все]
        
       (setq pt1 (getpoint "\nУкажите точку: "))
       (setq pt2 (getpoint "\nУкажите вторую точку: " pt1))
Ну, а если пользователь не укажет pt1? Промажет, ESC нажмет и т.п. Он-то имеет право, а программист не имеет права допускать ошибки. Значит нужна проверка ввода - и первой и второй точек. Да и обработка ошибок нужна, чтобы программа могла работать не только в руках автора.
ShaggyDoc вне форума  
 
Непрочитано 06.10.2015, 11:55
#69
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


ShaggyDoc, я же сказал, что "в данном конкретном случае". Я не говорил про потоковую разработку взаимоувязанных функций и команд. Если человек начнет заниматься подобной библиотекой / комплексом / как-хочется-так-и-называй, то вопрос исключения дублирования функционала встанет в полный рост. Но сейчас? Для этой одной задачи? ИМХО смысла нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.10.2015, 15:55
#70
Pavel_GP

Инженер-гидрограф
 
Регистрация: 15.09.2011
г.г. Ленинград
Сообщений: 170


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Pavel_GP, ты бы обновил стартовый пост, указав окончательное решение...
1. Ув. Кулик Алексей aka kpblc стартовый пост не вижу смысла менять, он на свой вопрос получил ответ.
2. Окончательное решение лежит тут http://forum.dwg.ru/showthread.php?t=125631
3. Форумчане опять горячая дискуссия по поводу красоты написания кода, которые на результаты расчетов не вливают. С вашей точки зрения всё правильно глаголите, это ваше программисткое дело, ваш хлеб. Я для своей результат получил. Это уже отходы от темы топика. Создайте топик "с 0 и до релиза программы" и там можно оспаривать.
4. Вставил информацию по Вашим просьбам =)
5. Ув. gomer опять много текста и воды не в тему топика, что-то непонятно хочешь доказать, человеку который далек от программного дела.
6. И главное aka kpblc если с твоей точки зрения моя программа, которая лежит в готовых не актуальна или как-то не профессионально написана (оформлена), в твоей власти её удалить. Я возражать не буду и на профессионализм в вашем деле не претендую. Тему можно закрывать.

Всем спс. До встреч в новых топиках.
__________________
AutoCAD Civil 3D 2012г. 32-разрядная.
Pavel_GP вне форума  
 
Непрочитано 06.10.2015, 20:05
#71
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
Ну, хорошо. Я расскажу еще раз.
Цитата:
Сообщение от trushev Посмотреть сообщение
Полностью согласен.
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А также надо избегать элементарных ошибок.
Как бы всё правильно пишите, но а смысл?
Во-первых, автор уже писал
Цитата:
Сообщение от Pavel_GP Посмотреть сообщение
я НЕ программист!!!
Во-вторых, чаше всё равно все учатся на своих ошибках, пускай так и дольше зато усваивается лучше.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вывод результата вычислений в окне DCL?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сосчитать сумму цифр из отдельных мтекстов (и лисп для подсчета спецификаций) Red Nova LISP 667 18.07.2025 17:09
Ваши сканы, наша обработка и перевод в DJVU. Armin Поиск литературы, чертежей, моделей и прочих материалов 3866 02.04.2025 09:21