乐筑天下

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

[编程交流] dcl启动

[复制链接]

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-5 18:08:35 | 显示全部楼层 |阅读模式
大家好,
我在绘图中启动一个dcl版本时遇到问题。当lsp功能运行时,AfraLISP版本启动得很好。然而,下面给出的Terrycad版本并不能很好地工作,尽管单独测试时会创建一个对话框。看来terrycad版本最终会带来更好的像素控制,以提供更好的外观。原因是什么?。以下是两个文件:
 
  1. cl_settings : default_dcl_settings { audit_level = 3; }
  2. //---------------------------------------------------------------------------------------------------------
  3. // MyFirst
  4. //---------------------------------------------------------------------------------------------------------
  5. MyFirst : dialog {
  6. label = " Hello World";
  7. spacer;
  8. : text {
  9.    label = "This is my first dialog.";
  10.    alignment = centered;
  11. }
  12. spacer;
  13. ok_only;
  14. }//MyFirst
  15. (defun c:MyFirst (/ Dcl_Id%)
  16. (princ "\nMyFirst")(princ)
  17. ; Load Dialog
  18. (setq Dcl_Id% (load_dialog "MyFirst.dcl"))
  19. (new_dialog "MyFirst" Dcl_Id%)
  20. ; Dialog Actions
  21. (start_dialog)
  22. ; Unload Dialog
  23. (unload_dialog Dcl_Id%)
  24. (princ)
  25. );defun c:MyFirst

 
是否有一种方法可以使对话框在运行lisp后显示?。
 
我的最终目标是为下面显示的对话框提供更好的外观:
 
提前感谢
190838cmrfhruhr3r05h3p.jpg
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:13:15 | 显示全部楼层
嗨,亲爱的,我不知道我是否明白你想要什么
 
 
你可以启动一个dcl,然后在你启动对话框之后,什么都不做(启动对话框),然后退出lisp程序,但这有什么意义呢?你想要一个浮动状态窗口吗?也许一张桌子就可以了?(不过我自己从来没有用过/做过一个,你知道,从来没有找到它的用途,不是我在工作中使用的东西)
 
 
你说的是对话的布局?
 
我将使用2行,每行包含4列,1列用于文本,1列用于编辑框,1行用于文本,1行用于编辑框。这样你所有的盒子都对齐了。或者可以使用1行4列。
 
Gr.Rlx
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-5 18:16:22 | 显示全部楼层
你好,rlx,
关于我的目标,你的第一句话是正确的。我希望在运行lisp后出现一个对话框,如下图所示,而不是什么都没有:
190840wsbf5cd85cj1sacu.png
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-5 18:21:12 | 显示全部楼层
rlx,
我的第二个目标是继续学习TerryCad课程,这样我就可以很好地展示我在第一篇帖子中的对话。正如你所看到的,文本框的方向有点错位,使其看起来很凌乱。在TerryCad的课程中,他们似乎教会了如何更好地控制像素;正如你们所知,所有的屏幕都是由像素组成的。也许我应该直接去他们的网站提出这个问题。
顺致敬意,
芦荟
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:21:37 | 显示全部楼层
DCL是否设置为两个装箱列?可能对齐=居中;正确使用。
 
而不是什么都没有(提醒“heellooo”)
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-5 18:26:04 | 显示全部楼层
比加尔,
是的,当(警报“helloo”)插入到lisp中时,会出现“helloo”,但是我试图从dcl中获得“helloo world”。至于dcl(对于一个箱形柱),我认为有如下所示的轻微改进,但不是100%。可能是一种视错觉:
 
谢谢
190841mlk9gpz9cnz9kgqe.png
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:28:04 | 显示全部楼层
您可能会对编辑框使用标签选项。我的意思是,将它们留空,并在单独的列中使用:text。这样,所有文本都可以具有相同的对齐方式。编辑框同上。您还可以对列/编辑框使用(子项)fixed\u width=true。
 
Gr.Rlx
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:33:24 | 显示全部楼层
 
我不认为你想用lisp做什么,创建一个类似可固定对话框的东西。为此,你需要。Net、VBA或类似的东西(我认为)。虽然很多年前我用C语言做过一些编程,但我认为这是数字sm。自那以后,情况有所改善,但它仍然比visual lisp更复杂。也许Visual Studio和autocad库是一种可行的方法。
 
http://usa.autodesk.com/adsk/servlet/index?id=18162650&siteID=123112
 
gr.Rlx
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

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

铜币
265
发表于 2022-7-5 18:34:02 | 显示全部楼层
你好,rlx,
这是上述对话框的dcl。
 
  1. aloy1 : dialog {
  2. label = "Partially Full Pipe Flow Calculations - S.I. Units" ;
  3. : column {
  4. : row {
  5.        : text {label = "Inputs:";}
  6.       
  7.        : text {label = "                           Calculations:";}
  8. }
  9. : row {
  10.          : text {label = "Pipe Size, (mm)   = ";}
  11.          : edit_box {key = eb11; width = 3; fixed_width = true; value = "0000"; alignment = "Right";}
  12.          
  13.          
  14.          : text {label = "Depth of flow,(mm) = ";}
  15.          : edit_box {key = eb12; width = 3;fixed_width = true; value = "0000"; alignment = "Right";}
  16.          
  17.          
  18.   }
  19.   : row {
  20.          
  21.          : text {label = "Manning's n     (full), = ";}
  22.          : edit_box {key = eb21; width = 5; value = "0.000"; alignment = "Right";}
  23.          : text {label = "    Central Angle, rad.        = ";}
  24.          : edit_box {key = eb22; width = 4; value = "0.00"; alignment = "Right";}
  25. }
  26. : row {
  27.         : text {label = "Flow, Q (l/s)         = ";}
  28.         :edit_box {key = eb31; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}
  29.         : text {label = "Full bore flow, (l/s) = ";}
  30.         :edit_box {key = eb32; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}
  31. }
  32. : row {
  33.          : text {label = "Slope %,         S  = ";}
  34.          : edit_box {key = eb41; width = 4; fixed_width = true; value = "0.00"; alignment = "Right";}
  35.          : text {label = "Full bore vel., m/s = ";}
  36.          : edit_box {key = eb42; width = 4; fixed_width = true; value = "0.00"; alignment = "Right";}
  37. }
  38. : row {
  39.          : text {label = "Calculations:";}
  40. }
  41. : row {
  42.          : text {label = "Radius: mm         =       ";}
  43.          : edit_box {key = eb51; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}
  44.          : text {label = "Cross Sect. Area mm^2: ";}
  45.          : edit_box {key = eb52; width = 8; fixed_width = true; value = "000000.0"; alignment = "Right";}
  46. }
  47.          
  48. : row {
  49.          : text {label = "Wetted peri.mm =";}
  50.          : edit_box {key = eb61; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}
  51.          : text {label = "% pipe full  =";}
  52.          : edit_box {key = eb62; width = 4; fixed_width = true; value = "00.0"; alignment = "Right";}
  53. }
  54. : row {
  55.          : text {label = "Hydra. radi.: mm =  ";}
  56.          : edit_box {key = eb71; width = 5; fixed_width = true;  value = "000.0"; alignment = "Right";}
  57.          : text {label = "Ave. Velocity: m/s";}
  58.          : edit_box {key = eb72; width = 4; fixed_width = true;  value = "0.00"; alignment = "Right";}
  59. }
  60. : row {
  61.          : text {label = "n/nfull                 = ";}
  62.          : edit_box {key = eb81; width = 4; fixed_width = true;  value = "0.00"; alignment = "Right";}
  63.          : text {label = " roughness, n =";}
  64.          : edit_box {key = eb82; width = 5; fixed_width = true;  value = "0.000"; alignment = "Right";}
  65. }
  66. }
  67.          
  68. ok_only;
  69. }

 
 
我明白你的意思。我也很熟悉C#,Java。net等。许多年前,我获得了Java的SUN认证,用它们创建对话框非常容易。我认为有必要与ObjectArx之类的东西进行接口,以在AutoCAD中实现与C#的对话框,这在我看来很混乱。因此,我尝试采用dcl。我有一个数字地形建模与程序本身(dcl&lsp)的对话框,由本论坛的一位贡献者发送给我,这意味着我正在尝试的可以通过dcl完成。
当做
芦荟
芦荟
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 18:39:11 | 显示全部楼层
阿洛伊修斯,
 
我建议您阅读Afralisp上的“嵌套对话框”http://www.afralisp.net/dialog-control-language/tutorials/nesting-dialog-boxes.php.
 
对齐问题的原因是编辑框平铺的宽度不足以放置标签和编辑框。通常的方法是“alignment=right;”,标签左对齐。换句话说,整个编辑图块是右对齐的,但默认情况下,图块内的标签是左对齐的。除非您将fixed_width设置得太小。
 
不确定,但我相信您希望输入值,并在每次更改任何输入时更新计算。按OK后,对话框和程序将退出。这可以通过标准DCL实现
 
然而,正如rlx已经告诉您的那样,真正的浮动窗口是不可能的。
 
ymg公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 19:57 , Processed in 0.582454 second(s), 75 queries .

© 2020-2025 乐筑天下

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