north911 发表于 2008-6-11 16:32:00

请教关于OPENDCL问题

<p>在dcl控制程序中运行到自定义程序时出现这个错误:&nbsp; 错误 : invalid AutoCAD command: nil</p><p>哪位指教一下</p>

north911 发表于 2008-6-13 09:23:00

<p>这里没有人用OPENDCL吗?</p>

夜未眠 发表于 2008-6-13 09:36:00

<p>告诉你了啊,CAD没有这个命令</p>

hicoffee 发表于 2008-6-13 15:10:00

你不把程序贴上来怎么帮你看?我用的时候没发现这个错误。

north911 发表于 2008-6-14 22:10:00

本帖最后由 作者 于 2008-6-14 22:11:50 编辑 <br /><br /> <font size="2">(defun c:pls()<br/>&nbsp; (vl-load-com)<br/>&nbsp; (dcl_project_load "plus")<br/>&nbsp;&nbsp;(if (not (dcl_Form_IsActive plus_plus))<br/>&nbsp;&nbsp;&nbsp; (dcl_Form_Show plus_plus)<br/>&nbsp; )<br/>)<br/>(defun c:plus_plus_btnp_OnClicked () <br/>&nbsp; (setq pt1 (getpoint " insert point1"))<br/>&nbsp; (setq pt2 (getpoint " insert point2"))<br/>&nbsp; (setq x1 (car pt1))<br/>&nbsp; (setq x2 (car pt2))<br/>&nbsp; (setq y1 (cadr pt1))<br/>&nbsp; (setq y2 (cadr pt2))<br/>&nbsp; (dcl_Control_SetText plus_plus_text1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (itoa (fix (dist1 x1 y1 x2 y2))))<br/>)<br/>(defun dist1(x1 y1 x2 y2 / )<br/>&nbsp; (setq tt (sqrt (+ (* (- x2 x1) (- x2 x1)) (* (- y2 y1) (- y2 y1)))))<br/>&nbsp; (eval 'tt)<br/>)</font><br/>这么简单一个东西,不知道什么原因就是不算

caoyin 发表于 2008-6-15 16:19:00

本帖最后由 作者 于 2008-6-15 16:21:52 编辑 <br /><br /> <p>你的窗体类型是什么?</p><p><font size="2">c:plus_plus_btnp_OnClicked </font><font size="3">好像是在图形界面执行的函数定义,能否执行 </font><font size="2">dcl_Control_SetText?</font></p><p><font size="3">是否需要回到对话框界面在执行??</font></p>

north911 发表于 2008-6-16 08:50:00

窗体是Modeless,不是<font size="2">dcl_Control_SetText的问题,是这个dist1(x1 y1 x2 y2&nbsp;)自定义的函数不运行,不知道怎么回事<br/></font>

carrot1983 发表于 2008-6-16 13:08:00

本帖最后由 作者 于 2008-6-16 13:22:32 编辑 <br /><br /> <p>这个也太汗了吧。。。这么求距离?</p><p>(defun c:pls ()<br/>&nbsp; (if (setq fn (findfile "plus.odcl"))<br/>&nbsp;&nbsp;&nbsp; (dcl_PROJECT_LOAD fn)<br/>&nbsp; )<br/>&nbsp; (if (and (setq pt1 (getpoint " insert point1"))<br/>&nbsp;&nbsp;&nbsp; (setq pt2 (getpoint pt1 " insert point2"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (not (dcl_Form_IsActive plus_plus))<br/>&nbsp;(dcl_Form_Show plus_plus)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>)</p><p>(defun c:plus_plus_btnp_OnClicked ()<br/>&nbsp; (setq dis (distance pt1 pt2))<br/>&nbsp; (dcl_Control_SetText<br/>&nbsp;&nbsp;&nbsp; plus_plus_text1<br/>&nbsp;&nbsp;&nbsp; (rtos dis 2 3)<br/>&nbsp; )<br/>)<br/></p><p><br/></p><p>粗略修改了一下</p><p></p>

north911 发表于 2008-6-16 14:52:00

本帖最后由 作者 于 2008-6-16 14:54:51 编辑 <br /><br /> <p>楼上的大哥,我的目的不为求距离,我是想知道为什么不执行自定义的函数或程序。</p><p>或者说在c:plus_plus_btnp_OnClicked ()这个里面为什么不执行自定义的函数或程序。</p>

north911 发表于 2008-6-16 15:02:00

caoyin发表于2008-6-15 16:19:00static/image/common/back.gif你的窗体类型是什么?c:plus_plus_btnp_OnClicked 好像是在图形界面执行的函数定义,能否执行 dcl_Control_SetText?是否需要回到对话框界面在执行??

<p>不需要回到对话框界面执行</p><p>我是在对话框里面输入几个参数,点击按钮之后执行一些操作,其中有用参数画图的自定义函数,当程序运行到自定义函数时就出错,不知道是怎么回事</p>
页: [1] 2
查看完整版本: 请教关于OPENDCL问题