求助
下面的代码哪里出错,显示不了对话面板框框,高手可以帮忙修改一下;=======================================DCL
dcl:dialog {
label = "列表框示例" ;
:list_box {
height = 10 ;
key = "klist" ;
label = "词库选单" ;
width = 30 ;
}
:edit_box {
key = "wordstr" ;
label = "词库" ;
}
spacer_1;
ok_cancel;
}
;=============================================LSP
(defun c:dcl ()
(setvar "cmdecho" 0)
(setq word_list '("亚洲"
"中国"
"北京"
"天津"
"上海"
"广州"
"重庆"
"四川"
"河南"
"郑州"
"开封"
"武汉"
"河北"
"江西"
"甘肃"
)
)
(dcl_dcl)
(prin1)
)
(defun dcl_dcl ()
(setq dcl_id (load_dialog "dcl"))
(new_dialog "dcl" dcl_id)
(start_list "klist")
(mapcar 'add_list word_list)
(end_list)
(action_tile "klist" "(sub_klist $value)")
(action_tile "accept" "(ok_dcl) (done_dialog 1)")
(setq dd (start_dialog))
(if (= dd 1)
(progn
(setvar "cmdecho" 1)
(command "text" pause 0 wordstr)
(setvar "cmdecho" 0)
)
)
)
(defun sub_klist (vvs)
(set_tile "wordstr" (nth (atoi vvs) word_list))
)
(defun ok_dcl ()
(setq wordstr (get_tile "wordstr"))
)
不显示面板,应该就是缺少dcl面板文件。 再见熊猫衣服 发表于 2019-12-25 10:40
不显示面板,应该就是缺少dcl面板文件。
哦 你可以帮我修改一下吗 我的CAD 2007就不行 他们就可以 foer123 发表于 2019-12-25 10:52
哦 你可以帮我修改一下吗 我的CAD 2007就不行 他们就可以
楼主提供的源代码,测试可以啊,院长的测试了吗?下面代码仅把dcl放到lsp中了,没有别的改动
(defun c:dcl()
(setvar "cmdecho" 0)
(setq word_list '("亚洲"
"中国"
"北京"
"天津"
"上海"
"广州"
"重庆"
"四川"
"河南"
"郑州"
"开封"
"武汉"
"河北"
"江西"
"甘肃"
)
)
(dcl_dcl)
(prin1)
)
(defun dcl_dcl (/ make-dcl)
;;; (setq dcl_id (load_dialog "dcl"))
(defun make-dcl(/ lst_str str file f)
(setq lst_str
'(
"dcl:dialog { "
" label = \"列表框示例\" ; "
" :list_box { "
" height = 10 ; "
" key = \"klist\" ; "
" label = \"词库选单\" ; "
" width = 30 ; "
" } "
" :edit_box { "
" key = \"wordstr\" ; "
" label = \"词库\" ; "
" } "
" spacer_1; "
" ok_cancel; "
"}"
)
)
(setq file (vl-filename-mktemp "DclTemp.dcl"))
(setq f (open file "w"))
(foreach str lst_str
(princ "
" f)
(princ str f)
)
(close f)
file
);_make-dcl
(setq dcl_id (load_dialog (setq dcl_file (make-dcl))))
(if(findfile dcl_file)(vl-file-delete dcl_file)) ;;;删除临时文件,加载完即可删除
(new_dialog "dcl" dcl_id)
(start_list "klist")
(mapcar 'add_list word_list)
(end_list)
(action_tile "klist" "(sub_klist $value)")
(action_tile "accept" "(ok_dcl) (done_dialog 1)")
(setq dd (start_dialog))
(if (= dd 1)
(progn
(setvar "cmdecho" 1)
(command "text" pause 0 wordstr)
(setvar "cmdecho" 0)
)
)
)
(defun sub_klist (vvs)
(set_tile "wordstr" (nth (atoi vvs) word_list))
)
(defun ok_dcl ()
(setq wordstr (get_tile "wordstr"))
)
Kye 发表于 2019-12-25 20:31
楼主提供的源代码,测试可以啊,院长的测试了吗?下面代码仅把dcl放到lsp中了,没有别的改动
谢谢 我把你的和我的做一个对比看一下哪里没有做对
页:
[1]