liushuangx 发表于 2006-6-12 13:34:00

[求助]对话框数据类型的问题

<P>;titi.lsp</P>
<P>(defun xd-SSMAP (func ss / n)<BR>&nbsp; (if (eq 'PICKSET (type ss))<BR>&nbsp;&nbsp;&nbsp; (repeat (setq n (fix (sslength ss))) ; fixed<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (apply func (list (ssname ss (setq n (1- n)))))<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; )<BR>)</P>
<P><BR>(defun loaddlg()<BR>&nbsp; (setq dcl_id (load_dialog"jisuan.dcl"))<BR>&nbsp; (if (not(new_dialog "jisuan" dcl_id)) (exit) )<BR>&nbsp; (mode_tile "kkuan" 2)<BR>&nbsp; <BR>&nbsp; <BR>&nbsp; (action_tile "accept"&nbsp; "(setto2)(done_dialog)")<BR>&nbsp; <BR>&nbsp; (start_dialog)<BR>&nbsp; (unload_dialog dcl_id)<BR>)</P>
<P>(defun setto2()</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; (setq kk (atof (get_tile "kkuan"))) <BR>&nbsp;&nbsp;&nbsp;&nbsp; (setq hh (atof (get_tile "ggao")))<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>)</P>
<P>;;求选择集的线长度<BR>(defun c:tt (/ ss d kk hh)<BR>&nbsp; (vl-load-com)<BR>&nbsp; (loaddlg)<BR>&nbsp; (setq d 0.)<BR>&nbsp; (if (setq ss (ssget))<BR>&nbsp;&nbsp;&nbsp; (xd-ssmap '(lambda (e)<BR>&nbsp;&nbsp; (setq d<BR>&nbsp;&nbsp;&nbsp;(+ d<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-curve-getdistatparam e (vlax-curve-getendparam e))<BR>&nbsp;&nbsp;&nbsp;)<BR>&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss<BR>&nbsp;&nbsp;&nbsp; )<BR>&nbsp; )</P>
<P>&nbsp;(setq d (* d kk))<BR>&nbsp;(setq d (* d hh))<BR>&nbsp;(princ "\n所选体积 = ")<BR>&nbsp;(princ d)<BR>&nbsp;(princ)<BR>)</P>
<P>这段代码在对话框中取得数据进行计算,get_tile得到的是字符串吧,我用atof转化成实型数据,但是还是说参数类型错误如下:</P>
<P>错误: 参数类型错误: stringp nil</P>
<P>各位能不能帮帮忙解决一下 </P>

ZZXXQQ 发表于 2006-6-12 23:52:00

这行错了(setq d 0.);???<BR>
页: [1]
查看完整版本: [求助]对话框数据类型的问题