谁帮忙把这程序改下吧?不会呀
(defun dia()(setq return_value (load_dialog "dia.dcl"))
(setq what_next 2)
(while (>= what_next 2)
(setq cnt 1)
(if (null (new_dialog "dia" return_value))
(exit)
);end if
(initial)
(action_tile "key_xzljbz" "(setq ljbz $value) (change1)")
(action_tile "key_xzljdm" "(setq ljdm $value)")
;(action_tile "help" "showhelp")
(setq what_next (start_dialog));
;(if(= what_next 4)(hide))
)
(unload_dialog return_value)
(princ)
)
(defun change1()
(setq m_list (eval(read (strcat "xzlj" xzljbz "_list"))))
(start_list "key_xzljdm")
(mapcar 'add_list m_list)
(end_list)
)
(defun initial()
(setq name '("零件1类" "零件2类"))
(setq xzlj0_list '("零件1_1" "零件1_2"))
(setq xzlj1_list '("零件2_1" "零件2_2"))
(setq xzljbz "-1")
;初始化
(start_list "key_xzljbz")
(mapcar 'add_list name )
;初始化型号
(start_list "key_xzljdm")
(mapcar 'add_list xzlj_list)
(end_list)
(setq xzljbz "0")
)
对话框:
dia:dialog{
label="绘制零件";
:boxed_row{
:column{
:popup_list{
label="零件标准";
key="key_xzljbz";
}
:popup_list{
label="零件代码";
key="key_xzljdm";
}
}
}
ok_cancel;
}
(defun dia()
(setq return_value (load_dialog "dia.dcl"))
(setq what_next 2)
(while (>= what_next 2)
(setq cnt 1)
(if (null (new_dialog "dia" return_value))
(exit)
);end if
(initial)
(action_tile "key_xzljbz" "(setq ljbz $value) (change1)")
(action_tile "key_xzljdm" "(setq ljdm $value)")
;(action_tile "help" "showhelp")
(setq what_next (start_dialog));
;(if(= what_next 4)(hide))
)
(unload_dialog return_value)
(princ)
)
(defun change1()
(setq m_list (eval(read (strcat "xzlj" ljbz "_list"))))
(start_list "key_xzljdm")
(mapcar 'add_list m_list)
(end_list)
)
(defun initial()
(setq name '("零件1类" "零件2类"))
(setq xzlj0_list '("零件1_1" "零件1_2"))
(setq xzlj1_list '("零件2_1" "零件2_2"))
(setq ljbz "-1")
;初始化
(start_list "key_xzljbz")
(mapcar 'add_list name )
(end_list)
;初始化型号
(start_list "key_xzljdm")
(mapcar 'add_list xzlj0_list)
(end_list)
(setq ljbz "0")
)
;(dia)可执行,少了一句(end_list),ljbz和xzljbz、ljdm和xzljdm变量名各保留一个。 xyh 发表于 2012-5-21 16:24 static/image/common/back.gif
(defun dia()
(setq return_value (load_dialog "dia.dcl"))
(setq what_next 2)
(end_list)在哪里加呀
xyh 发表于 2012-5-21 16:24 static/image/common/back.gif
(defun dia()
(setq return_value (load_dialog "dia.dcl"))
(setq what_next 2)
还不行呀?我生成vlx文件执行下来还是错误: no function definition: DIA1, xyh 发表于 2012-5-21 16:24 static/image/common/back.gif
(defun dia()
(setq return_value (load_dialog "dia.dcl"))
(setq what_next 2)
执行下来是 quit / exit abort,怎么弄呀
上面程序在生成vlx文件时会有 “警告: 运行时计算的表达式: (READ (STRCAT "xzlj" LJBZ "_list"))”怎么改啊
. 将
dia:dialog{
label="绘制零件";
:boxed_row{
:column{
:popup_list{
label="零件标准";
key="key_xzljbz";
}
:popup_list{
label="零件代码";
key="key_xzljdm";
}
}
}
ok_cancel;
}
写到文件中并取名为dia.dcl,和lisp程序放在一起,最好在支持文件夹内,贴出的程序已改。 xyh 发表于 2012-5-22 09:03 static/image/common/back.gif
将
dia:dialog{
label="绘制零件";
我再试试看看 xyh 发表于 2012-5-22 09:03 static/image/common/back.gif
将
dia:dialog{
label="绘制零件";
好了,我还想在如“零件1_1" 等时出现一个子对话框,自对化框里将一些参数改变下如长度 ,宽度,高度等输入进去,我找到的都是按钮,那像这样的怎么弄 在dia.dcl中的ok_cancel之前插入
:boxed_column {
label="参数(mm)";
fixed_width=true;
:edit_box {
label="长度L:";
key="L";
edit_width=4;
}
:edit_box {
label="宽W:";
key="W";
edit_width=4;
}
:edit_box {
label="高H:";
key="H";
edit_width=4;
}
}
在lsp的
(action_tile "key_xzljbz" "(setq ljbz $value) (change1)")
(action_tile "key_xzljdm" "(setq ljdm $value)")
插入
(action_tile "L" "(setq L (get_tile \"L\"))")
(action_tile "H" "(setq H (get_tile \"H\"))")
(action_tile "W" "(setq d0 (get_tile \"W\"))")
并修改
(action_tile "key_xzljdm" "(setq ljdm $value) (change2)")
编制change2函数
(defun change2()
;;根据ljdm值作相应处理,显示到编辑框中
;;中间省略
(set_tile "L" l)
(set_tile "W" W)
(set_tile "H" H)
)
页:
[1]
2