乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: sanderson

[编程交流] 从LSP调用DCL

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:03:58 | 显示全部楼层
 
我不知道你为什么这么做,但那是你的选择。您所需要做的就是添加“是”或“否”的条件编码,以及它在其余代码中的作用。
 
dcl现在出现了,所以我想你可以从这里开始。如果你卡住了,请再打电话。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:08:38 | 显示全部楼层
 
试试这个。
 
  1. (defun c:ync(/ dcl_ync_id)
  2. (setq dcl_ync_id (load_dialog "ync.dcl"))
  3. (if (not (new_dialog "ync" dcl_ync_id))
  4.    (exit))
  5. (action_tile "Yes"    "(setq cmd ($key)[color=red])[/color](done_dialog)" )
  6. (action_tile "No"     "(setq cmd ($key)[color=red])[/color](done_dialog)" )
  7. (action_tile "Cancel" "(setq cmd ($key)[color=red])[/color](done_dialog)" )
  8. (start_dialog)
  9. (unload_dialog dcl_ync_id)
  10. (command cmd)
  11. )
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:13:35 | 显示全部楼层
在这一点上,你只能靠自己。
我是在帮助DCL,而不是代码应该做什么。
 
也许现在可以用一个新主题重新发布到一个新的线程。
回复

使用道具 举报

10

主题

23

帖子

20

银币

初来乍到

Rank: 1

铜币
44
发表于 2022-7-6 11:13:55 | 显示全部楼层
好的,这是新的独家新闻。我现在使用的不是格式错误的列表,而是糟糕的函数。另外,我如何传回或调用它,以便使用返回的值?这应该可以做到,再次感谢你的帮助!!!
 
命令:(ync)
错误:功能错误:“Yes”
命令:(ync)
错误:错误函数:“否”
命令:(ync)
*取消*
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:21:04 | 显示全部楼层
 
 
 
好的,看看这是不是你想要的。
 
YNC。DCL
 
  1. // ync.dcl
  2. // Dialog box for yes, no, cancel options to be referenced from AutoLISP
  3. //
  4. ync: dialog {
  5.     label = "Save Drawing?";
  6.     : text_part {
  7.       label = "Drawing will be saved to AutoCAD Mechanical 2006 or AutoCAD 2004 depending on profile used... ";
  8.     }
  9.     : row {
  10.      : button { label = "&Yes";  key = "Yes";    is_Yes = true; }
  11.      : button { label = "&No";   key = "No";     is_No = true; }
  12.      : button { label = "&Exit"; key = "cancel"; is_cancel = true;  }
  13.     }
  14.   }

 
 
YNC。lsp
 
  1. (defun c:YNC (/ dcl_ync_id)
  2. (setq dcl_ync_id (load_dialog "ync.dcl"))
  3. (if (not (new_dialog "ync" dcl_ync_id))
  4.    (exit))
  5. (action_tile "Yes"    "(Yes)(done_dialog)")
  6. (action_tile "No"     "(No) (done_dialog) ")
  7. (action_tile "cancel" "(done_dialog)")
  8. (start_dialog)
  9. (unload_dialog dcl_ync_id)
  10. (princ)
  11. )
  12. (defun Yes ()
  13. (princ "You selected Yes.")
  14. (princ)
  15. )
  16. (defun No ()
  17. (princ "You selected No.")
  18. (princ)
  19. )

 
 
当然,您仍然需要提供自己的编码。
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:22:19 | 显示全部楼层
桑德森,
 
我不确定,但尝试从lisp中操作Quit命令可能不可行,但我也不确定。您需要了解如何在“退出”对话框中设置选项卡。此命令似乎无法从命令提示符中回答。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:13 , Processed in 0.748321 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表