明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1067|回复: 5

[已解答] visual lisp菜鸟,求助各位大神

[复制链接]
发表于 2015-12-27 17:59:05 | 显示全部楼层 |阅读模式
搬运书本上的编码,但是执行时不会显示对话框,怎么回事
  1. (defun c:dia5a()
  2.   (setvar "cmdecho" 0)           ;防止命令执行的过程显示
  3.   (dcl_dia5a)                    ;调用dcl_dia5a子程序
  4.   (prin1)                        ;防止nil
  5.   )
  6. (defun dcl_dia5a()
  7.   (setq dcl_id (load_dialog "dia5a"))     ;载入DCL文件
  8.   (new_dialog "dia5a" dcl_id)             ;启动新的dialog对话框dia5a
  9.   (set_tile "edit_p" (rtos (getvar "plinewid")))
  10.   (set_tile "edit_f" (rtos (getvar "filletrad")))
  11.   (set_tile "edit_t" (rtos (getvar "textsize")))
  12.   (set_tile "edit_s" (rtos (getvar "savetime")))
  13.   (action_tile "accept" "(ok_dia5a)(done_dialog l)")
  14.   (start_dialog)                          ;将控制权交给DCL
  15.   )
  16. (defun ok_dia5a()
  17.   (setvar "plinewid" (atof (get_tile "edit_p")))
  18.   (setvar "filletrad" (atof (get_tile "edit_f")))
  19.   (setvar "textsize" (atof (get_tile "edit_t")))
  20.   (setvar "savetime" (atof (get_tile "edit_s")))
  21.   )
  22.    


  1. dia5a:dialog{
  2.   label="AutoCAD绘图默认值设定";
  3.   :edit_box{
  4.     label="pline宽度";
  5.     key="edit_p";        //key值=>DCL对象名称
  6.     edit_width=6;
  7.     }
  8.   :edit_box{
  9.     label="fillef半径";
  10.     key="edit_f";        //key值=>DCL对象名称
  11.     edit_width=6;
  12.     }
  13.   :edit_box{
  14.     label="text字高";
  15.     key="edit_t";        //key值=>DCL对象名称
  16.     edit_width=6;
  17.     }
  18.   :edit_box{
  19.     label="自动保存时间";
  20.     key="edit_s";        //key值=>DCL对象名称
  21.     edit_width=6;
  22.     }
  23.   ok_cancel;
  24.   }





发表于 2015-12-27 18:24:20 来自手机 | 显示全部楼层
dcl是否单独的文件
dcl是否cad支持路径下
 楼主| 发表于 2015-12-27 19:56:25 | 显示全部楼层
masterlong 发表于 2015-12-27 18:24
dcl是否单独的文件
dcl是否cad支持路径下

dcl和lsp是分开写的,支持路径怎么讲
 楼主| 发表于 2015-12-27 20:02:00 | 显示全部楼层
masterlong 发表于 2015-12-27 18:24
dcl是否单独的文件
dcl是否cad支持路径下

我执行时就是appload,加载dia5a.lsp,然后在命令行输入dia5a,什么都没显示出来
发表于 2015-12-27 21:50:58 | 显示全部楼层
(setq dcl_id (load_dialog "dia5a"))
应为改为:
(setq dcl_id (load_dialog DCL文件完整路径名)) 。
例如:dia5a.dcl存于e:\Lisp程序\DCL文件夹中,则为(setq dcl_id (load_dialog "e:\\Lisp程序\\DCL\\dia5a.dcl"))
 楼主| 发表于 2015-12-27 22:25:10 | 显示全部楼层
yshf 发表于 2015-12-27 21:50
(setq dcl_id (load_dialog "dia5a"))
应为改为:
(setq dcl_id (load_dialog DCL文件完整路径名)) 。

原来是这样啊,谢谢大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-21 01:11 , Processed in 0.165929 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表