qcw911 发表于 2011-2-17 13:25:19

如何将DCL写入LISP中呢?

如题
请大家在这里讨论!

lenlenq 发表于 2011-2-20 19:04:33

用(write-line)
   (read-line)
可做

NetBee 发表于 2011-2-21 22:41:23

1、静态DCL文件:在编译为VLX时加入DCL资源文件就OK了。
2、动态DCL文件:在LSP中专门设置写临时DCL文件的函数,然后再调用该DCL文件。

xhq1954425 发表于 2011-2-22 07:41:08

学习一下,支持!

redcat 发表于 2011-2-23 15:28:41

本帖最后由 redcat 于 2011-2-23 15:32 编辑

拿去吧
(defun makedcl (str_lst / dclfile fileID dclHandle)
(setq      dclfile      (vl-filename-mktemp nil nil ".dcl")
      fileID      (open dclfile "w")
) ;_ 结束setq
(cond
    ((= (type str_lst) 'str)
   (write-line str_lst fileID)
    )
    ((= (type str_lst) 'list)
   (foreach n str_lst (write-line n fileID))
    )
) ;_ 结束cond
(close fileID)
(setq dclHandle (load_dialog dclfile))
(vl-file-delete dclfile)
dclHandle
) ;_ 结束defun

(defun dcl2str (/ dclfile fileID str_lst str)
(if (setq dclfile (getfiled "请选择DCL文件" "c:/program files/AutoCAD 2004/support/" "dcl" 8))
    (progn (setq fileID         (open dclfile "r")
               str_lst '()
         ) ;_ 结束setq
         (while (setq str (read-line fileID))
             (setq str_lst (cons str str_lst))
         ) ;_ 结束while
         (close fileID)
         (reverse str_lst)
    ) ;_ 结束progn
) ;_ 结束if
) ;_ 结束defun

xhq1954425 发表于 2011-2-24 05:11:40

功夫太浅!没系统学过对话框,就没弄明白5楼的怎么用,str_lst是什么参数?能给个用法说明或示例吗?

非常谢谢!

先进者 发表于 2012-2-16 17:37:54

redcat 发表于 2011-2-23 15:28 static/image/common/back.gif
拿去吧

请教怎么使用,可否做个简单说明

huqibing518 发表于 2012-5-15 20:56:08

要好好学习一下

辉/:) 发表于 2012-10-20 00:32:21

先收藏。在学习
页: [1]
查看完整版本: 如何将DCL写入LISP中呢?