tangjunasd58 发表于 2015-9-11 21:44:39

给对话框中的数据备份

(defun c:TSS()

(setvar "osmode" 4533)
   (setvar "cmdecho" 0)
(command "style" "黑体" "黑体" "0" "1" "0" "" "")
      (vl-catch-all-apply
   '(lambda();出错处理
(MX-dcl_te)
(setq layer "编号")(if (not (tblsearch "layer" layer ))
(progn (command "layer" "new" "编号" "s" "编号" "C" 82 "" "L" "Continuous" "" "LW" 0.09 "" "")
))
   (setvar"CLAYER" layer)

(setq qd(read qd)
      zl(read zl)
      )
(setq sxh1 (strcat (vl-princ-to-string qz) (vl-princ-to-string qd)) p1 (getpoint "\n请指定插入点: "))
   (while (/= p1 nil)
   (command "text"p1 h 0 sxh1)
   (setq qd (+ qd zl)
    sxh1 (strcat(vl-princ-to-string qz)(vl-princ-to-string qd))
    p1 (getpoint "\n请指定下一插入点: "))
   )
(vl-file-delete Dcl_File)
(unload_dialog dcl_id)
      ));出错处理
(setvar "cmdecho" 1)

   (princ)
)
(defun MX-dcl_te()
   (setq dcl_id (load_dialog (setq Dcl_File (MX-dclfottext))))
   (new_dialog "text2" dcl_id)
   (set_tile "qz" "1#-")
   (set_tile "qd" "1")
   (set_tile "zl" "1")
   (set_tile "h" "20")
   (action_tile "accept" "(MX-ok_te)(done_dialog 1)")

   (start_dialog)
)
(defun MX-ok_te()
   (setq qz(get_tile "qz"))
   (setq qd (get_tile "qd"))
   (setq zl (get_tile "zl"))
   (setq h(get_tile "h"))
)   
;写dcl
(defun MX-dclfottext()
(setq Dcl_File (vl-filename-mktemp nil nil))
   (setq lujin(vl-filename-directory Dcl_File))
   (setq Dcl_File (strcat lujin "\\递增编号.dcl"))
   (setq file (open Dcl_File "w"))
   (write-line "            text2:dialog{" file)
   (write-line "            label= \"递增编号\";" file)
   (write-line "            :edit_box{label=\"前    缀\";key=\"qz\";edit_width=10;" file)
   (write-line "            }" file)
   (write-line "            :edit_box{label=\"起始编号\";key=\"qd\";edit_width=10;" file)
   (write-line "            }" file)
   (write-line "            :edit_box{label= \"增    量\"; key= \"zl\";edit_width=10;}"file)
   (write-line "            :edit_box{label= \"高    度\"; key=\"h\";edit_width=10;"file)
   (write-line "            }" file)
   (write-line "                ok_cancel;" file)
   (write-line "            }" file)
    (close file)
   Dcl_File
   )


我也是在网上找来的源码,我加入了文子样式跟图层,,,但是对话框中的数据不知道怎么备份,如果有大师能把对话框中的数据能备份就更好了,就不用第二次还要手动输入之前的数据。

Gu_xl 发表于 2015-9-11 21:56:09

可以将数据存储在注册表中!
(setenv "MyApp\\key1" val1)
(setenv "MyApp\\key2" val2)
...
读取数据:
(setq val1 (setenv "MyApp\\key1"))
(set_tile "qd" val1)
(setq val2 (setenv "MyApp\\key2" ))
...

tangjunasd58 发表于 2015-9-13 15:39:57

Gu_xl 发表于 2015-9-11 21:56 static/image/common/back.gif
可以将数据存储在注册表中!
(setenv "MyApp\\key1" val1)
(setenv "MyApp\\key2" val2)


(defun MX-dcl_te()
   (setq dcl_id (load_dialog (setq Dcl_File (MX-dclfottext))))
   (new_dialog "text2" dcl_id)
        (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key1" val1)
      (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key2" val2)
        (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key3" val3)
        (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key4" val4)
(setq val1 (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key1"))
(set_tile "qz" val1)
(setq val2 (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key2"))
(set_tile "qd" val2)
(setq val3 (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key3"))
(set_tile "zl" val3)
(setq val4 (setenv "HKEY_CURRENT_USER\\SOFTWARE\\Autodesk\\MyApp\\key4"))
(set_tile "h" val4)
   (action_tile "accept" "(MX-ok_te)(done_dialog 1)")

   (start_dialog)
)



这样好像不对,对话框弹出就卡死CAD了

tangjunasd58 发表于 2015-9-13 15:43:44

Gu_xl 发表于 2015-9-11 21:56 static/image/common/back.gif
可以将数据存储在注册表中!
(setenv "MyApp\\key1" val1)
(setenv "MyApp\\key2" val2)


没有其它办法吗
页: [1]
查看完整版本: 给对话框中的数据备份