aloy 发表于 2022-7-5 18:08:35

dcl启动

大家好,
我在绘图中启动一个dcl版本时遇到问题。当lsp功能运行时,AfraLISP版本启动得很好。然而,下面给出的Terrycad版本并不能很好地工作,尽管单独测试时会创建一个对话框。看来terrycad版本最终会带来更好的像素控制,以提供更好的外观。原因是什么?。以下是两个文件:
 

cl_settings : default_dcl_settings { audit_level = 3; }
//---------------------------------------------------------------------------------------------------------
// MyFirst
//---------------------------------------------------------------------------------------------------------
MyFirst : dialog {
label = " Hello World";
spacer;
: text {
   label = "This is my first dialog.";
   alignment = centered;
}
spacer;
ok_only;
}//MyFirst

(defun c:MyFirst (/ Dcl_Id%)
(princ "\nMyFirst")(princ)
; Load Dialog
(setq Dcl_Id% (load_dialog "MyFirst.dcl"))
(new_dialog "MyFirst" Dcl_Id%)
; Dialog Actions
(start_dialog)
; Unload Dialog
(unload_dialog Dcl_Id%)
(princ)
);defun c:MyFirst

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

rlx 发表于 2022-7-5 18:13:15

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

aloy 发表于 2022-7-5 18:16:22

你好,rlx,
关于我的目标,你的第一句话是正确的。我希望在运行lisp后出现一个对话框,如下图所示,而不是什么都没有:

aloy 发表于 2022-7-5 18:21:12

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

BIGAL 发表于 2022-7-5 18:21:37

DCL是否设置为两个装箱列?可能对齐=居中;正确使用。
 
而不是什么都没有(提醒“heellooo”)

aloy 发表于 2022-7-5 18:26:04

比加尔,
是的,当(警报“helloo”)插入到lisp中时,会出现“helloo”,但是我试图从dcl中获得“helloo world”。至于dcl(对于一个箱形柱),我认为有如下所示的轻微改进,但不是100%。可能是一种视错觉:
 
谢谢

rlx 发表于 2022-7-5 18:28:04

您可能会对编辑框使用标签选项。我的意思是,将它们留空,并在单独的列中使用:text。这样,所有文本都可以具有相同的对齐方式。编辑框同上。您还可以对列/编辑框使用(子项)fixed\u width=true。
 
Gr.Rlx

rlx 发表于 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

aloy 发表于 2022-7-5 18:34:02

你好,rlx,
这是上述对话框的dcl。
 


aloy1 : dialog {
label = "Partially Full Pipe Flow Calculations - S.I. Units" ;

: column {

: row {

       : text {label = "Inputs:";}
      
       : text {label = "                           Calculations:";}

}

: row {

         : text {label = "Pipe Size, (mm)   = ";}

         : edit_box {key = eb11; width = 3; fixed_width = true; value = "0000"; alignment = "Right";}
         
         
         : text {label = "Depth of flow,(mm) = ";}

         : edit_box {key = eb12; width = 3;fixed_width = true; value = "0000"; alignment = "Right";}
         

         

}

: row {
         

         : text {label = "Manning's n   (full), = ";}

         : edit_box {key = eb21; width = 5; value = "0.000"; alignment = "Right";}

         : text {label = "    Central Angle, rad.      = ";}

         : edit_box {key = eb22; width = 4; value = "0.00"; alignment = "Right";}
}

: row {

      : text {label = "Flow, Q (l/s)         = ";}

      :edit_box {key = eb31; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}

      : text {label = "Full bore flow, (l/s) = ";}

      :edit_box {key = eb32; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}
}

: row {

         : text {label = "Slope %,         S= ";}

         : edit_box {key = eb41; width = 4; fixed_width = true; value = "0.00"; alignment = "Right";}

         : text {label = "Full bore vel., m/s = ";}

         : edit_box {key = eb42; width = 4; fixed_width = true; value = "0.00"; alignment = "Right";}
}

: row {

         : text {label = "Calculations:";}

}

: row {

         : text {label = "Radius: mm         =       ";}

         : edit_box {key = eb51; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}

         : text {label = "Cross Sect. Area mm^2: ";}

         : edit_box {key = eb52; width = 8; fixed_width = true; value = "000000.0"; alignment = "Right";}
}
         

: row {

         : text {label = "Wetted peri.mm =";}

         : edit_box {key = eb61; width = 5; fixed_width = true; value = "000.0"; alignment = "Right";}

         : text {label = "% pipe full=";}

         : edit_box {key = eb62; width = 4; fixed_width = true; value = "00.0"; alignment = "Right";}
}

: row {

         : text {label = "Hydra. radi.: mm =";}

         : edit_box {key = eb71; width = 5; fixed_width = true;value = "000.0"; alignment = "Right";}

         : text {label = "Ave. Velocity: m/s";}

         : edit_box {key = eb72; width = 4; fixed_width = true;value = "0.00"; alignment = "Right";}
}

: row {

         : text {label = "n/nfull               = ";}

         : edit_box {key = eb81; width = 4; fixed_width = true;value = "0.00"; alignment = "Right";}

         : text {label = " roughness, n =";}

         : edit_box {key = eb82; width = 5; fixed_width = true;value = "0.000"; alignment = "Right";}

}

}



         
ok_only;

}


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

ymg3 发表于 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公司
页: [1] 2
查看完整版本: dcl启动