明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 727|回复: 3

[源码] 给对话框中的数据备份

[复制链接]
发表于 2015-9-11 21:44 | 显示全部楼层 |阅读模式
(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
   )


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

本帖被以下淘专辑推荐:

  • · 学习|主题: 95, 订阅: 7
发表于 2015-9-11 21:56 | 显示全部楼层
可以将数据存储在注册表中!
(setenv "MyApp\\key1" val1)
(setenv "MyApp\\key2" val2)
...
读取数据:
(setq val1 (setenv "MyApp\\key1"))
(set_tile "qd" val1)
(setq val2 (setenv "MyApp\\key2" ))
...
 楼主| 发表于 2015-9-13 15:39 | 显示全部楼层
Gu_xl 发表于 2015-9-11 21:56
可以将数据存储在注册表中!
(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了
 楼主| 发表于 2015-9-13 15:43 | 显示全部楼层
Gu_xl 发表于 2015-9-11 21:56
可以将数据存储在注册表中!
(setenv "MyApp\\key1" val1)
(setenv "MyApp\\key2" val2)

没有其它办法吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-28 08:56 , Processed in 1.475469 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表