乐筑天下

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

[编程交流] 关于DCL的一个问题

[复制链接]

7

主题

25

帖子

18

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:54:12 | 显示全部楼层 |阅读模式
大家好,大师和传奇,我现在正在通过Afralisp学习DCL。net和一些autodesk论坛主题。从他们的示例中,DCL文件与LSP文件配对工作。
 
例如,我有一个DCL和它的配对LSP文件,它的功能只是收集名称、一些数字、位置(和任何其他数据)。是否有任何其他LSP例程可以使用DCL上存储/输入的数据?如果是,怎么做?我只是不知道。
 
再次感谢。更强大!
回复

使用道具 举报

6

主题

49

帖子

42

银币

初来乍到

Rank: 1

铜币
32
发表于 2022-7-5 16:09:26 | 显示全部楼层
只要不进行本地化,存储在变量中的任何值都是可用的。我所有的对话框都使用opendcl,它更快、更灵活。
 
使用Tapatalk从my Pixel XL发送
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:27:09 | 显示全部楼层
您可以从lisp代码动态创建DCL文件,加载并启动对话框,然后收集所需输入并关闭对话框并擦除临时DCL文件。
举个例子:
 
  1. (defun C:test ( / dcl des dch dcf rtn )
  2. ;; Example to create DCL on-the-fly and gather input(s)
  3. ;; Modified version, original by: Lee Mac
  4. (defun *error* ( msg )
  5.    (and (< 0 dch) (unload_dialog dch))
  6.    (and (eq 'FILE (type des)) (close des))
  7.    (and (eq 'STR (type dcl)) (findfile dcl) (vl-file-delete dcl))
  8.    (and msg (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\nError: " msg)))) (princ)
  9. ); defun *error*
  10. (and
  11.    (setq dcl (vl-filename-mktemp nil nil ".dcl"))
  12.    (setq des (open dcl "w"))
  13.    (princ
  14.      (strcat
  15.        "test : dialog"
  16.        "{ label = "Get String";"
  17.        "  : column"
  18.        "  { children_alignment = centered;"
  19.        "    : text { value = "Your input: "; }"
  20.        "    : edit_box { key = "eb"; edit_width = 26; }"
  21.        "  }"
  22.        "  spacer_1; ok_cancel;"
  23.        "}"
  24.      ); strcat
  25.      des
  26.    )
  27.    (not (setq des (close des)))
  28.    (< 0 (setq dch (load_dialog dcl)))
  29.    (new_dialog "test" dch)
  30.    (action_tile "eb" "(setq rtn $value)")
  31.    (= 1 (setq dcf (start_dialog)))
  32.    (princ rtn)
  33. ); and
  34. (*error* nil) (princ)
  35. ); defun C:test
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:52:02 | 显示全部楼层
与Grr一样,这里也有用于列表选择检查的动态DCL示例。com我有一个1 2 3输入值dcl,这里的事情是你提供的短信请求,另一个是一个无限版本的123只限于一个实际的屏幕限制。
 
  1. ; this is all that is needed for a 3 value request 2 lines of code
  2. ; its version 2 as it also has default values so you can just go OK
  3. (if (not AH:GETVAL3)(load "getvals3"))
  4. (ah:getval3 "Enter Hor scale" 5 4 "100" "Enter Ver Scale" 5 4 "50" "Enter Dec places" 5 4 "2")

165415ssnfpfgvoofgrrmr.jpg
GETVALS3.lsp
回复

使用道具 举报

7

主题

25

帖子

18

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 17:04:13 | 显示全部楼层
你好,大师dan113,Grrr和BIGAL!再次感谢您的见解,感谢您总是在我的帖子中回答我的问题。我会尽力消化这些东西。
 
dan113,
我目前正在阅读opendcl的教程。祝我好运。呵呵呵呵
 
再次感谢各位大师
 
谨致问候,
罗素
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 19:43 , Processed in 1.049196 second(s), 75 queries .

© 2020-2025 乐筑天下

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