mayi369 发表于 2005-5-19 11:22:00

我写的圆的参数化程序 但是不正确 麻烦修改 我是新手 请多关照

我写的圆的参数化程序 但是不正确 麻烦修改 我是新手 请多关照


毕业设计呢


真难呀


谁有关于夹具方面的原程序               拜求了


mayi369 发表于 2005-5-19 11:27:00

这是DCL对话框


但是运行后显示错误


说是文件过早结束


不懂


       


       


yuan:dialog{<BR>               label="绘制圆";<BR>               initial_focus="X";<BR>               :row{<BR>                                               :image{width=30;<BR>                                                               height=8;<BR>                                                               key="img_cr";<BR>                                                               color=-2;<BR>                                                       }<BR>                               :boxed_column{<BR>                                                               label="几何数据";<BR>                                                               :edit_box{label="圆心X(mm):";                                       //指定助记符为X<BR>                                                                                                                                                       edit_width=8;<BR>                                                                                                                                                       key="X";<BR>                                                                                                                                                       value="50";<BR>                                                                                                                                               }<BR>                                                               :edit_box{label="圆心Y(mm):";                                       //指定助记符为Y<BR>                                                                                                                                                       width=8;<BR>                                                                                                                                                       mnemonic="Y";<BR>                                                                                                                                                       key="Y";<BR>                                                                                                                                                       value="50";<BR>                                                                                                                                               }<BR>                                                               :edit_box{label="半径R(mm):";                                       //指定助记符为R<BR>                                                                                                                                                       width=8;<BR>                                                                                                                                                       mnemonic="R";<BR>                                                                                                                                                       key="R";<BR>                                                                                                                                                       value="10";<BR>                                                                                                                                               }<BR>                                                                       }<BR>                                                       ok_cancel;<BR>               }


       


       


;下面是LSP程序       才学的 有不对的地方 别笑我


       


       


(defun act()                                       ;定义获取对话框中编辑框值的子函数<BR>                                                                       (setq x (atof (get_tile "X")))                                                       ;从控件"X"得到值并赋给变量"x"<BR>               (setq y (atof (get_tile "Y")))                                                       ;从控件"Y"得到值并赋给变量"y"<BR>               (setq r (atof (get_tile "R")))                                                       ;从控件"R"得到值并赋给变量"r"<BR>                                                               )<BR>                                                       (defun c:circ(/ x y r id x1 y1 )<BR>               (setq sdt 0)<BR>               (setq id (load_dialog "C8-3"))                                                               ;装入DCL文件<BR>               (if(&lt; id 0) (exit))                                                                                                                                                       ;如果装入失败则退出<BR>               (setq X 50.0 Y 50.0 R 25.0)                                                                                       ;设变量初值<BR>               (if (not (new_dialpg "yuan" id)) (exit));启动对话框<BR>               (setq x1 (dimx_tile "img_cr"))                                                               ;测图象宽<BR>               (setq y1 (dimy_tile "img_cr"))                                                               ;测图象高<BR>               (start_image "img_cr")                                                                                                                               <BR>               (slide_image 0 0 x1 y1 "circ")                                                               ;填写图象内容<BR>               (end_image )                                                                                                                                                                                                               ;图象结束<BR>               (set_tile "X" (rtos X 2 2))                                                                                       ;设控件X Y R初值<BR>               (set_tile "Y" (rtos Y 2 2))                                                                                       ;将覆盖DCL文件控件的value属性<BR>               (set_tile "R" (rtos R 2 2))


               ;当“OK”按钮被按时,调用act函数,然后退出对话框<BR>               (action_tile "accept" "(act) (done_dialog 1)")<BR>               ;当"cancel"按钮被按时,退出对话框<BR>               (action_tile "cancel" "(done_dialog -1)")


               (setq sdt (start_dialog))                                                                                                                               ;显示对话框,获得对话框推出时的状态<BR>               (unload_dialog id)                                                                                                                                                                                       ;卸载对话框<BR>               (if (&gt; sdt 0)<BR>                                               (command "circle" (list x y) r)                                               ;画圆<BR>                               ) ;end if<BR>               (princ)<BR>        )       


       


;希望不吝赐教,xiexie<BR>

chendong 发表于 2007-4-12 09:31:00

<p>DCL对话框OK_CANCEL上一行加一个}</p><p>lisp程序中new_dialpg写错,应为new_dialog。</p>

vladimirputin 发表于 2023-2-10 09:17:53

谢谢分享啊,正需要的。
页: [1]
查看完整版本: 我写的圆的参数化程序 但是不正确 麻烦修改 我是新手 请多关照