乐筑天下

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

[编程交流] 用于创建对话框和

[复制链接]

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-6 07:49:15 | 显示全部楼层 |阅读模式
AUtoCAD中的各种对话框是如何创建的?。是Lisp程序还是。Net语言。如果是的话。Net如何进入、创建和使用它。提前感谢。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:59:34 | 显示全部楼层
可以从各种来源在AutoCAD中创建或使用对话框。
 
最简单的开始方法是使用DOSLib的对话框功能,因为只需查看帮助文档,加载适用的ARX文件,然后瞧。
 
接下来是学习使用LISP的DCL(或OpenDCL)。标准DCL源于AutoCAD,这意味着您只需要AutoCAD,其中包括VLIDE。
 
具有NET实现了真正的、完整的定制,但是这既需要Visual Studio(Express或Full)、适用于您的版本的AutoCAD ObjectARX SDK,也需要一个重要的学习曲线(如果您还不擅长)。NET技术。
 
HTH公司
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:03:12 | 显示全部楼层
下面是一个示例dcl,它有一些额外的智能。可以更改标题。它以字符串形式返回变量项,加载getval。lsp感谢Alanjt的原创概念。
 
  1. ;; Input  Dialog box with variable title
  2. ;; By BIGAL June 2012
  3. ;; code (ah:getval title)
  4. (defun AH:Getval (title / fo)
  5. (setq fname "C://getval.dcl")
  6. (setq fo (open fname "w"))
  7. (write-line "ddgetval : dialog {" fo)
  8. (write-line " : row {" fo)
  9. (write-line ": edit_box {" fo)
  10. (write-line (strcat "    key = "  (chr 34) "sizze" (chr 34) ";") fo)
  11. (write-line  (strcat " label = "  (chr 34) title (chr 34) ";"  )   fo)
  12. (write-line "     edit_width = 18;" fo)
  13. (write-line "     edit_limit = 15;" fo)
  14. (write-line "   is_enabled = true;" fo)        
  15. (write-line "    }" fo)
  16. (write-line "  }" fo)
  17. (write-line "ok_cancel;}" fo)
  18. (close fo)
  19. (setq dcl_id (load_dialog  "c:\\getval"))
  20. (if (not (new_dialog "ddgetval" dcl_id))
  21. (exit))
  22. (action_tile "sizze" "(setq item  $value)(done_dialog)")
  23. (mode_tile "sizze" 3)
  24. (start_dialog)
  25. ; returns the value of item
  26. )

 
现在做这个Lisp程序
 
  1. (setq title "Please enter something here")
  2. (ah:getval title)
  3. (Princ item)
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:07:49 | 显示全部楼层
对于内置DCL技术,您可以查看AfraLISP的教程。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:15:17 | 显示全部楼层
http://www.lee-mac.com还有一些很棒的教程。
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-6 08:22:56 | 显示全部楼层
谢谢大家;这个论坛真的很有帮助。我会尝试所有建议的方法。我想我会特别注意的。网RenderMan给了我一个建议,说我做的C3D只值0.02美元。我发现它的实现与我在Lisp中尝试的道路路线和纵断面几乎相同,这对我帮助很大。
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-6 08:27:26 | 显示全部楼层
嗨,比格尔,
谢谢你的代码。我需要给出“GetVal”的位置。dcl’,在哪里找到它?。此外,我们需要在lisp?中使用Getstring函数指定对话框的名称?。
当做
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:33:31 | 显示全部楼层
您应该在BIGAL的代码中修复此问题:
  1. (setq fname "C://getval.dcl")
  2. ...
  3. (setq dcl_id (load_dialog "c:\\[s][color=red]acadtemp\\[/color][/s][color=#000000]getval"))[/color]

或:
  1. (setq fname "C:[color=red]\\[/color]getval.dcl")
  2. ...
  3. (setq dcl_id (load_dialog [color=red]fname[/color][color=#000000]))[/color]
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-6 08:41:48 | 显示全部楼层
MSasu,
谢谢,它在DCL中工作
当做
芦荟
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:47:18 | 显示全部楼层
抱歉,更改了代码中的一个“acadtemp”,忘记了另一个试图让它为任何人工作。由于它不断被重写,请将其放在我们的临时目录中,该目录会一直被清理。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:31 , Processed in 0.895451 second(s), 72 queries .

© 2020-2025 乐筑天下

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