zwq8629 发表于 2023-8-2 19:35:22

参数类型错误: stringp #<FILE internal>

参数类型错误: stringp #<FILE internal>

!!!(大师们哪里不对)


(defun c:KL(/ dcl_id getdata1911 re );
(or ll (setq ll "100"))
(or kk (setq kk "200"))
        (or ff (setq ff "2"))
        (or ww (setq ww "2"))
(defun getdata1911()
    (setq ll(get_tile "ll"))
    (setq kk(get_tile "kk"))
                (setq ff(get_tile "ff"))
                (setq ww(get_tile "ww"))
        )
(if (= (setq dcl_id (load_dialog (make-dclCS991))) 0)(progn(alert "\n无法显示对话框!")(exit)))
(if(not (new_dialog "dllC" dcl_id))(progn(alert "\n无法显示对话框!")(exit)))
(set_tile "ll" ll)
(set_tile "kk" kk)
(set_tile "ff" ff)
        (set_tile "ww" ww)
(action_tile "accept" "(getdata1911)(done_dialog 1)")
(action_tile "cancel" "(getdata1911)(done_dialog 0)")
(setq re (start_dialog))
(unload_dialog dcl_id)
(if (= re 1)
                (get_jxhy_data912 (atof ll)(atof kk)(atof ff)(atof ww) ))
(princ)
)
(defun make-dclCS991(/ lst_str str file f)
(setq lst_str '(
                                                                       "dllC:dialog"
                                                                       "{ // start dcl"
                                                                       "label = \"自用\";"
                                                                       ":column{"
                                                                       ":row{:edit_box{label=\"材料长度: \";key=\"ll\"; edit_width=10;}}"
                                                                       ":row{:edit_box{label=\"材料宽度: \";key=\"kk\"; edit_width=10;}}"
                                                                       ":row{:edit_box{label=\"材料间距: \";key=\"ff\"; edit_width=10;}}"
                                                                       ":row{:edit_box{label=\"零件间距: \";key=\"ww\"; edit_width=10;}}"
                                                                       "}"
                                                                       ":row{"":button{label=\"确定(&Q)\";key=\"accept\";is_default=true;height=3;}"                                                        ":button{label=\"取消(&C)\";key=\"cancel\";is_cancel=true;height=3;}""}"
                                                                       "fixed_width=true;"
                                                                       "alignment=left;"
                                                                       "} // end dll" ;结尾
                                                               )
        )
(setq file (vl-filename-mktemp "DclTemp.dcl"))
(setq f (open file "w"))
(foreach str lst_str
                (princ "\n" f)
                (princ str f)
        )
(close f)
;;返回
file
)

飞雪神光 发表于 2023-8-2 19:55:59

换个电脑试试

jun353835273 发表于 2023-8-2 20:45:50

直接加载 不是用的是用生成

zwq8629 发表于 2023-8-2 22:06:43

飞雪神光 发表于 2023-8-2 19:55
换个电脑试试

错误: 参数类型错误: stringp nil

换了是这样的

zwq8629 发表于 2023-8-2 22:07:57

jun353835273 发表于 2023-8-2 20:45
直接加载 不是用的是用生成

谢谢,我试试

飞雪神光 发表于 2023-8-2 22:09:43

那就奇怪了stringp #<FILE internal> 这个看起来是路径的错误 就是可能电脑不让写入文件我电脑是能正常运行

jun353835273 发表于 2023-8-2 22:11:34

本帖最后由 jun353835273 于 2023-8-2 22:15 编辑

zwq8629 发表于 2023-8-2 22:06
错误: 参数类型错误: stringp nil

换了是这样的
换了要改代码,不用生成,你那个有可能是缓存路径不让你写文件。
比如这句 (setq file (vl-filename-mktemp "DclTemp.dcl"))
改成 (setq file "D:\\DclTemp.dcl")


也或者是你没有加载库文件
(VL-LOAD-COM)在程序的开头加一个,因为你用了vl函数,单步调试就能发现问题。


zwq8629 发表于 2023-8-3 08:58:47

jun353835273 发表于 2023-8-2 22:11
换了要改代码,不用生成,你那个有可能是缓存路径不让你写文件。
比如这句 (setq file (vl-filename-mkt ...

参数类型错误: stringp #<FILE internal>

还是这样报错

zwq8629 发表于 2023-8-3 09:00:24

飞雪神光 发表于 2023-8-2 22:09
那就奇怪了stringp # 这个看起来是路径的错误 就是可能电脑不让写入文件我电脑是能正常运行

好像是跟其他插件有冲突,我把其他加载的都取消了,这个插件就可以用:'(

飞雪神光 发表于 2023-8-3 09:47:51

zwq8629 发表于 2023-8-3 09:00
好像是跟其他插件有冲突,我把其他加载的都取消了,这个插件就可以用

make-dclCS991 这个有同名的函数吧
页: [1] 2
查看完整版本: 参数类型错误: stringp #<FILE internal>