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后显示?。
我的最终目标是为下面显示的对话框提供更好的外观:
提前感谢
嗨,亲爱的,我不知道我是否明白你想要什么
你可以启动一个dcl,然后在你启动对话框之后,什么都不做(启动对话框),然后退出lisp程序,但这有什么意义呢?你想要一个浮动状态窗口吗?也许一张桌子就可以了?(不过我自己从来没有用过/做过一个,你知道,从来没有找到它的用途,不是我在工作中使用的东西)
你说的是对话的布局?
我将使用2行,每行包含4列,1列用于文本,1列用于编辑框,1行用于文本,1行用于编辑框。这样你所有的盒子都对齐了。或者可以使用1行4列。
Gr.Rlx 你好,rlx,
关于我的目标,你的第一句话是正确的。我希望在运行lisp后出现一个对话框,如下图所示,而不是什么都没有:
rlx,
我的第二个目标是继续学习TerryCad课程,这样我就可以很好地展示我在第一篇帖子中的对话。正如你所看到的,文本框的方向有点错位,使其看起来很凌乱。在TerryCad的课程中,他们似乎教会了如何更好地控制像素;正如你们所知,所有的屏幕都是由像素组成的。也许我应该直接去他们的网站提出这个问题。
顺致敬意,
芦荟 DCL是否设置为两个装箱列?可能对齐=居中;正确使用。
而不是什么都没有(提醒“heellooo”) 比加尔,
是的,当(警报“helloo”)插入到lisp中时,会出现“helloo”,但是我试图从dcl中获得“helloo world”。至于dcl(对于一个箱形柱),我认为有如下所示的轻微改进,但不是100%。可能是一种视错觉:
谢谢
您可能会对编辑框使用标签选项。我的意思是,将它们留空,并在单独的列中使用:text。这样,所有文本都可以具有相同的对齐方式。编辑框同上。您还可以对列/编辑框使用(子项)fixed\u width=true。
Gr.Rlx
我不认为你想用lisp做什么,创建一个类似可固定对话框的东西。为此,你需要。Net、VBA或类似的东西(我认为)。虽然很多年前我用C语言做过一些编程,但我认为这是数字sm。自那以后,情况有所改善,但它仍然比visual lisp更复杂。也许Visual Studio和autocad库是一种可行的方法。
http://usa.autodesk.com/adsk/servlet/index?id=18162650&siteID=123112
gr.Rlx 你好,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完成。
当做
芦荟
芦荟 阿洛伊修斯,
我建议您阅读Afralisp上的“嵌套对话框”http://www.afralisp.net/dialog-control-language/tutorials/nesting-dialog-boxes.php.
对齐问题的原因是编辑框平铺的宽度不足以放置标签和编辑框。通常的方法是“alignment=right;”,标签左对齐。换句话说,整个编辑图块是右对齐的,但默认情况下,图块内的标签是左对齐的。除非您将fixed_width设置得太小。
不确定,但我相信您希望输入值,并在每次更改任何输入时更新计算。按OK后,对话框和程序将退出。这可以通过标准DCL实现
然而,正如rlx已经告诉您的那样,真正的浮动窗口是不可能的。
ymg公司
页:
[1]
2