Тема: не могу считать значение из :popup_list

Есть диалог:

d3:dialog { label="Информация о кабеле";key="titl";
         :edit_box {label="Старая длина ";key="num";edit_width=7;is_enabled=false;}
         :text {label="Масштаб";}
         :popup_list {key="mas";list="1:100\n1:75\n1:50\n1:200\n1:500\n1:1000\n1:2000";}
         :edit_box {label="Добавка на подъёмы(спуски)[м]";key="dob";edit_width=7;}
         :edit_box {label="Коефициент(добавка 6%)";key="kof";edit_width=7;value="0.06";}
         ok_cancel;
       }

А вот кусок лисповского файла:

(new_dialog "d3" namber)
  (set_tile "num" (vl-bb-ref 'kab))
  (action_tile "accept"
                "(progn
                (setq mash (get_tile \"mas\"))
                (setq metr (get_tile \"dob\"))
                (setq koef (get_tile \"kof\"))
          (done_dialog))"
    )
(action_tile "cancel"
          "(progn
          (done_dialog) (quit))")
(start_dialog)
(unload_dialog namber)

Переменной mash в итоге присваивается значение "0", а не значение из popup_list.

Re: не могу считать значение из :popup_list

> Sanek
Переменной mash возвращается номер строки в списке popup_list
Описание DCL хорошо у Н.Полещука в книге "Visual LISP и секреты адаптации AutoCAD" 2001

Re: не могу считать значение из :popup_list

> Alan
У меня есть эта книга, номер выбраной строки получить могу, а вот как извлечь нужную строку, точнее не знаю откуда её считать

Re: не могу считать значение из :popup_list

Добавляем после вызова диалога две строчки

(setq lst(list "1:100" "1:75" "1:50" "1:200" "1:500" "1:1000" "1:2000"))
(setq mash(nth (atoi mash) lst))

Alan посоветовать книгу - это не ответ.

Re: не могу считать значение из :popup_list

;-----------------------------------------------------
; функция возвращает текст из списка текстов по номеру
(defun mk_list ( readlist displist / count item retlist )
 (setq count 1)
 (while (setq item (read readlist))
        (setq retlist (cons (nth item displist) retlist))
        (while (and (/= " " (substr readlist count 1))
                    (/= "" (substr readlist count 1))
               )
               (setq count (1+ count))
        )
        (setq readlist (substr readlist count))
 )
 (car (reverse retlist))
 )

Re: не могу считать значение из :popup_list

> Sanek
Вы спросили:

Переменной mash в итоге присваивается значение "0", а не значение из popup_list.

Я ответил:

Переменной mash возвращается номер строки в списке popup_list

Править Ваш текст не хотелось, я дал Вам только решение, описанное в книге.
Я же Вас как-то приглашал в гости, заходите - поправим тексты, между нами 300м.
------------------
Я не знаю чему равно число Пи, но я знаю, где это можно посмотреть.