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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp_code

Lisp_code

Ответ
Поиск в этой теме
Непрочитано 15.07.2007, 19:36
Lisp_code
Holon
 
CNC
 
Israel
Регистрация: 07.07.2007
Сообщений: 302

Programka rabotala,a potom perestala rabotat' potom vdrug opjat' nachala rabotat' potom ee vubilo, voobchem rabota programki nestabil'na vot code:

Код:
[Выделить все]
(defun Ord_tab (/ ret_value1 dcl_id what_next on_ed2 on_ed1 txt_new txt f f_man f_use f_new_coun list_sys_var sys_var)
  (defun ok_tab	(/)
     (vl-load-com) 
(setq list_sys_var '( "osmode" "CMDECHO" "BLIPMODE"  ))       
(setq sys_var (mapcar 'getvar list_sys_var)) 
  
  (setvar "osmode" 0) 
  (SETVAR "CMDECHO" 0)          
  (SETVAR "BLIPMODE" 0)          

					;(setq f (open "u:\\lisp\\new.tst" "r"))
					;(setq txt (read-line f))
					;(close f)
					;(setq txt_new (+ (atoi txt) 1))
					;(setq f_new (open (strcat "u:\\lisp\\" (itoa txt_new) ".tst") "a"))
					;(write-line (itoa txt_new) f_new)
					;(close f_new)
					;(setq f (open "u:\\lisp\\new.tst" "w"))
					;(write-line (itoa txt_new) f)
					;(close f)
					;(setq f (open "u:\\lisp\\new.tst" "r"))
					;(setq txt (read-line f))
					;(close f)
					;(command "style" "" "" "200" "1" "" "" "" "" "text" "400,1500" "0" txt)
					;(alert txt )
    (setq f (open "u:\\lisp\\Orders\\Ord_counter.tst" "r"))
    (setq txt (read-line f))
    (close f)
    (setq txt_new (+ (atoi txt) 1))
    (setq ret_value1 (list (list "ed1" on_ed1) (list "ed2" on_ed2)))

  )
  (setq dcl_id (load_dialog "u:\\lisp\\Orders\\ord_tab.dcl"))
  (if (not (new_dialog "dd_edit" dcl_id))
    (exit)
  )
					;(set_tile "edit2" "øôé ùôéøà")
  (set_tile "edit2" (strcat (itoa txt_new)))
  (set_tile "edit1" "îñôø äæîðä")
  (setq	on_ed1 "îñôø äæîðä"
	on_ed2 (itoa txt_new)		;"øôé ùôéøà";(itoa txt_new)
  )
  (setq what_next 8)
  (while (< 2 what_next)
    (action_tile "edit1" "(setq on_ed1 $value)")
    (action_tile "edit2" "(setq on_ed2 $value)")
    (action_tile "accept" "(done_dialog 1) (ok_tab)")
    (setq what_next (start_dialog))
  )

  (unload_dialog dcl_id)
  ret_value1


					;(("ed1" "12345") ("ed2" "5002")) 
					;(setq y1 (car ret_value1))       ;(("ed1" "12345")
					;(setq y2 (cadr ret_value1))      ;("ed2" "5002")
					;(setq y3 (caddr ret_value1))     ; nil
					;(setq y4 (cadar ret_value1))     ;"12345"
					;(setq y5 (caar ret_value1))      ;"ed1"
					;(setq y6 (cdar ret_value1))      ;("12345")
					;(setq y7 (cddr ret_value1))      ;nil
					;(setq y8 (caadr ret_value1))     ;"ed2"
					;(setq y9 (caaddr ret_value1))    ;nil
					;(setq y10 (cdr ret_value1))      ;(("ed2" "5002"))
					;(setq y11 (cdddr ret_value1))    ;nil
					;(setq y2 (cadr(cadr ret_value1)));"5002"

  (setq	f_use (open (strcat "u:\\lisp\\Orders\\Ord_Users\\"
			    (cadar ret_value1)
			    ".tst"
		    )
		    "a"
	      )
  )
  (write-line (cadr (cadr ret_value1)) f_use)
  (close f_use)
  (setq	f_man (open (strcat "u:\\lisp\\Orders\\Ord_manufact\\"
			    (cadr (cadr ret_value1))
			    ".tst"
		    )
		    "a"
	      )
  )
  (write-line (cadr (cadr ret_value1)) f_man)
  (close f_man)




  (setq f_new_coun (open "u:\\lisp\\Orders\\Ord_counter.tst" "w"))
    (write-line (itoa txt_new) f_new_coun)
    (close f_new_coun)
  (mapcar 'setvar list_sys_var sys_var)
)
fai'l DCL prilagaetsja:


Код:
[Выделить все]
// á÷ùä ìàùåø îñ' äæîðä
dd_edit : dialog {
label = "á÷ùä ìàùåø îñ' äæîðä";
fixed_height = true;
: edit_box { key = "edit1"; value = "0"; fixed_height = true; alignment = center; label = "äæîðú ì÷åç"; } 
: edit_box { key = "edit2"; value = "0"; fixed_height = true; alignment = center; label = "äæîðú ééöåø"; } 
: row {
ok_button;
cancel_button;
}
}
Просмотров: 5038
 
Автор темы   Непрочитано 17.07.2007, 14:28
#21
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Проблема с управлением DCL все остальное работает и прописывает отлично,
Код:
[Выделить все]
(defun Ord_tab (
;;;		/          basepath   cntfile    dclfile    dcl_id     fcount     f_man 
;;;                f_use      manupath   on_ed1     on_ed2     supppath   txt_new    userpath 
               ) 
  (setq basepath "c:\\lisp\\Orders\\" 
        supppath (strcat basepath "Support\\") 
        userpath (strcat basepath "Ord_Users\\") 
        manupath (strcat basepath "Ord_manufact\\") 
        cntfile  "Ord_counter.tst" 
        dclfile  "ord_tab.dcl" 
  ) 
;;;  (if (and
	(setq fcount (open (strcat basepath cntfile) "r")) 
;;;           (setq dcl_id (load_dialog (strcat supppath dclfile))) 
;;;           (new_dialog "dd_edit" dcl_id) 
;;;      ) 
;;;    (progn
      (setq txt_new (1+ (atof (read-line fcount)))) 
           (close fcount) 
           (setq on_ed1 "number order" 
                 on_ed2 (rtos txt_new 2 0) 
           ) 
;;;           (set_tile "User" on_ed2) 
;;;           (set_tile "Order" on_ed1) 
;;;           (action_tile "Order" "(setq on_ed1 $value)") 
;;;           (action_tile "User" "(setq on_ed2 $value)") 
;;;           (if (= 1 (start_dialog)) 
;;;             (progn
	       (setq f_use (open (strcat userpath on_ed1 ".tst") "a")) 
                    (write-line on_ed2 f_use) 
                    (close f_use) 
                    (setq f_man (open (strcat manupath on_ed2 ".tst") "a")) 
                    (write-line on_ed1 f_man) 
                    (close f_man) 
                    (setq fcount (open (strcat basepath cntfile) "w")) 
                    (write-line on_ed2 fcount) 
                    (close fcount) 
;;;             ) 
;;;           ) 
;;;           (unload_dialog dcl_id) 
;;;    ) 
;;;  ) 
)
фаил DCL находится в каталоге support, и есще один вопрос при обращении к DCL файилу

Код:
[Выделить все]
 (action_tile "accept"...........)
необязательно?


DCL файл
Код:
[Выделить все]
// Number Order&Number User 
dd_edit :dialog { 
   label = "Number Order&Number User"; 
   : edit_box { 
      key = "Order"; 
      label = "Number Order"; 
      } 
   : edit_box { 
      key = "User"; 
      label = "Number User"; 
      } 
   : row { 
      ok_cancel; 
      } 
   }
Holon вне форума  
 
Непрочитано 17.07.2007, 15:28
#22
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Holon
Проблема с управлением DCL все остальное работает и прописывает отлично,
Не понял, так проблема ещё остаётся или нет? А если остаётся, то какая?

Цитата:
Сообщение от Holon
есще один вопрос при обращении к DCL файилу

Код:
[Выделить все]
 (action_tile "accept"...........)
необязательно?
Абсолютно лишнее - по умолчанию, (start_dialog) возвращает 1 при закрытии диалога кнопкой "OK", 0 - если "Cancel". Есть и другие варинты управления, но для подобного диалога они совершенно излишни.
Alaspher вне форума  
 
Автор темы   Непрочитано 17.07.2007, 16:12
#23
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Да проблема осталась программа возвращает nil непроизводя никаких действий DCL окно непоявляется на экране вообще

1 form loaded from #<editor "C:/lisp/Lisp_code.LSP">
_$ (Ord_tab)
nil
_$


Command: (Ord_tab)
nil

Command: (Ord_tab)
nil

Command: (Ord_tab)
nil

Command: 'VLIDE
Command:
Holon вне форума  
 
Непрочитано 17.07.2007, 17:21
#24
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


А ты точно запускаешь листинг из поста №10? То, что в посте №21, работать, естественно не может.
Alaspher вне форума  
 
Автор темы   Непрочитано 17.07.2007, 17:29
#25
Holon

CNC
 
Регистрация: 07.07.2007
Israel
Сообщений: 302


Большее спасибо банальная ошибка

ord_tab.dcl.dcl
Holon вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp_code

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск