找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 829|回复: 2

[求助] [求助]:对我来说是个问题

[复制链接]
发表于 2003-2-6 17:36:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在问个问题…………对我来说是个问题
指定要打开文件的路径语法是什么?如果不在cad的配置路径里面怎么用?
另:想在一个文件里存取两类信息比如名称、编号,然后分别填充在a,b两个列表框里,我现在是打开两个文件存取(怎么优化一下)
(defun c:re_ydth (/        dcl_id     all_lisp_list
  all_blk_list current_line re_ydth indx_2
  indx_3       load_lib     jdcad_lib jdcad_blk
  lib_lisp     lib_str     name list_str
  ai_str       ai_lisp     I:Path
)
  (setq dcl_id (load_dialog "list_path.dcl"))
  (if (not (new_dialog "list_path" dcl_id))
    (exit)
  )
  (setq I:Path "E:/AutoCAD R14/libs")
  (if (not (setq filename (findfile "jdcad.lib")))
    (setq filename "jdcad.lib")
  )
  (if (setq jdcad_lib (open filename "r"))
    (progn
      (setq current_line (read-line jdcad_lib))
      (while (and (/= "" current_line)
  (/= nil current_line)
  (/= ":" (substr current_line 1 1))
     )
(setq current_line (read-line jdcad_lib))
(while current_line
  (setq name (substr current_line 10))
  (setq all_lisp_list (cons name all_lisp_list))
  (setq all_lib_list (cons name all_lib_list))
  (setq current_line (read-line jdcad_lib))
  (while (/= ":" (substr current_line 1 1))
    (setq lib_lisp (cons (read current_line) lib_lisp))
    (setq current_line (read-line jdcad_lib))
  )
  (set (read (strcat "ai_lisp|" name)) (reverse lib_lisp))
  (setq lib_lisp '())
  (setq current_line (read-line jdcad_lib))
  (while
    (and current_line (/= ":" (substr current_line 1 1)))
     (setq current_line (read-line jdcad_lib))
     (< (length all_lisp_list) (getvar "maxsort"))
  )
  (setq all_lisp_list (acad_strlsort all_lisp_list))
)
(start_list "indx_2")
(mapcar 'add_list all_lisp_list)
(end_list)
(set_tile "indx_2" "0")
(close jdcad_lib)
      )
    )
  )
  (if (not (setq filename (findfile "jdcad.blk")))
    (setq filename "jdcad.blk")
  )
  (if (setq jdcad_blk (open filename "r"))
    (progn
      (setq current_line (read-line jdcad_blk))
      (while (and (/= "" current_line)
  (/= nil current_line)
  (/= ":" (substr current_line 1 1))
     )
(setq current_line (read-line jdcad_blk))
(while current_line
  (setq name (substr current_line 10))
  (setq all_blk_list (cons name all_blk_list))
  (setq current_line (read-line jdcad_blk))
  (while (/= ":" (substr current_line 1 1))
    (setq blk_lisp (cons (read current_line) blk_lisp))
    (setq current_line (read-line jdcad_blk))
  )
  (set (read (strcat "ai_lisp|" name)) (reverse blk_lisp))
  (setq blk_lisp '())
  (setq current_line (read-line jdcad_blk))
  (while
    (and current_line (/= ":" (substr current_line 1 1)))
     (setq current_line (read-line jdcad_blk))
     (< (length all_blk_list) (getvar "maxsort"))
  )
  (setq all_blk_list (acad_strlsort all_blk_list))
)
(start_list "indx_3")
(mapcar 'add_list all_blk_list)
(end_list)
(set_tile "indx_3" "0")
(close jdcad_blk)
      )
      (action_tile "up" "(up_down)")
      (mode_tile "up" 3)
      (mode_tile "re_lib" 2)
      (mode_tile "down" 3)
      (start_dialog)
      (unload_dialog dcl_id)
    )
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-6 23:39:07 | 显示全部楼层
你可以用doslib的函数,几句话就解决问题。用lisp写也可以,但麻烦多了,
而且一样要用到doslib或vlisp或其他dos工具的函数。


  1.   blksc : dialog {
  2.   label = "图内块输出到目录--by cy956/020520改" ;
  3.    : row {
  4.       : edit_box {
  5.          key = "a1" ;
  6.          label = "归档目录:" ;
  7.          width = 40 ;
  8.       }
  9.       : button {
  10.          key = "a2" ;
  11.          label = "改目录..." ;
  12.          width = 10 ;
  13.       }
  14.    }
  15.    spacer_1 ;
  16.    : toggle {
  17.       key = "a3" ;
  18.       label = "将无名块改名为“unb-”输出" ;
  19.    }
  20.    : toggle {
  21.       key = "a4" ;
  22.       label = "重名不覆写!去钩则重名重写" ;
  23.    }
  24.    spacer_1 ;
  25.    : row {
  26.       spacer_1 ;
  27.       : button {
  28.          key = "ok1" ;
  29.          label = "手选块输出" ;
  30.          fixed_width = true ;
  31.          width = 10 ;
  32.       }
  33.       : button {
  34.          key = "ok2" ;
  35.          label = "块列表输出" ;
  36.          fixed_width = true ;
  37.          width = 10 ;
  38.       }
  39.       : cancel_button {
  40.          label = "退出块输出" ;
  41.          }
  42.       spacer_1 ;
  43.    }
  44. }



  45. ;;;;;;;;;;;;

  46. (DEFUN c:blksc (/ dcl_id dcl_id i BLKB E EN IN N NAM NAM1 OK-BLKSC S);;;批量图内块输出
  47.   (mapcar 'setvar '("cmdecho""blipmode")'(0 0))
  48.   (IF (> (SETQ dcl_id (LOAD_DIALOG "bbk")) 0)(PROGN
  49.     (IF (NEW_DIALOG "blksc" dcl_id)(PROGN
  50.       (setq path-blksc(if path-blksc path-blksc (getvar "DWGPREFIX"))
  51.             k-blksca3(if k-blksca3 k-blksca3 "1")
  52.             k-blksca4(if k-blksca4 k-blksca4 "1"))
  53.       (set_tile "a1" path-blksc)
  54.       (set_tile "a3" k-blksca3)
  55.       (set_tile "a4" k-blksca4)
  56.       ;;
  57.       (ACTION_TILE "a2" "(setq path-blksc(dos_getdir "选择一个已有目录作为目标目录:" path-blksc))
  58.                          (set_tile "a1" path-blksc)");;更改目录
  59.       (ACTION_TILE "a3" "(setq k-blksca3 $value)")
  60.       (ACTION_TILE "a4" "(setq k-blksca4 $value)")
  61.       
  62.       (ACTION_TILE "ok1" "(setq ok-blksc 1)(done_dialog 1)")
  63.       (ACTION_TILE "ok2" "(setq ok-blksc 0)(done_dialog 1)")
  64.       (ACTION_TILE "cancel" "(setq ok-blksc nil)")
  65.       (START_DIALOG))
  66.       (PROMPT "\n无法显示对话框,请检查!")
  67.     )
  68.     (UNLOAD_DIALOG dcl_id))
  69.     (PRINC (STRCAT "\n无法加载对话框文件blksc.DCL,请检查!"))
  70.   )
  71.   .....
  72. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-9 23:48:28 | 显示全部楼层
关于嵌套对话框(三层)有些函数是有顺序的吗?加了一些程序内容,打开下层对话框是不能关闭上层,不能实现交替显示,请大侠高手指教,我可是初学的菜菜鸟
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 06:49 , Processed in 0.320575 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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