用于创建对话框和
AUtoCAD中的各种对话框是如何创建的?。是Lisp程序还是。Net语言。如果是的话。Net如何进入、创建和使用它。提前感谢。 可以从各种来源在AutoCAD中创建或使用对话框。最简单的开始方法是使用DOSLib的对话框功能,因为只需查看帮助文档,加载适用的ARX文件,然后瞧。
接下来是学习使用LISP的DCL(或OpenDCL)。标准DCL源于AutoCAD,这意味着您只需要AutoCAD,其中包括VLIDE。
具有NET实现了真正的、完整的定制,但是这既需要Visual Studio(Express或Full)、适用于您的版本的AutoCAD ObjectARX SDK,也需要一个重要的学习曲线(如果您还不擅长)。NET技术。
HTH公司 下面是一个示例dcl,它有一些额外的智能。可以更改标题。它以字符串形式返回变量项,加载getval。lsp感谢Alanjt的原创概念。
;; InputDialog box with variable title
;; By BIGAL June 2012
;; code (ah:getval title)
(defun AH:Getval (title / fo)
(setq fname "C://getval.dcl")
(setq fo (open fname "w"))
(write-line "ddgetval : dialog {" fo)
(write-line " : row {" fo)
(write-line ": edit_box {" fo)
(write-line (strcat " key = "(chr 34) "sizze" (chr 34) ";") fo)
(write-line(strcat " label = "(chr 34) title (chr 34) ";") fo)
(write-line " edit_width = 18;" fo)
(write-line " edit_limit = 15;" fo)
(write-line " is_enabled = true;" fo)
(write-line " }" fo)
(write-line "}" fo)
(write-line "ok_cancel;}" fo)
(close fo)
(setq dcl_id (load_dialog"c:\\getval"))
(if (not (new_dialog "ddgetval" dcl_id))
(exit))
(action_tile "sizze" "(setq item$value)(done_dialog)")
(mode_tile "sizze" 3)
(start_dialog)
; returns the value of item
)
现在做这个Lisp程序
(setq title "Please enter something here")
(ah:getval title)
(Princ item)
对于内置DCL技术,您可以查看AfraLISP的教程。 http://www.lee-mac.com还有一些很棒的教程。 谢谢大家;这个论坛真的很有帮助。我会尝试所有建议的方法。我想我会特别注意的。网RenderMan给了我一个建议,说我做的C3D只值0.02美元。我发现它的实现与我在Lisp中尝试的道路路线和纵断面几乎相同,这对我帮助很大。 嗨,比格尔,
谢谢你的代码。我需要给出“GetVal”的位置。dcl’,在哪里找到它?。此外,我们需要在lisp?中使用Getstring函数指定对话框的名称?。
当做 您应该在BIGAL的代码中修复此问题:
(setq fname "C://getval.dcl")
...
(setq dcl_id (load_dialog "c:\\acadtemp\\getval"))
或:
(setq fname "C:\\getval.dcl")
...
(setq dcl_id (load_dialog fname)) MSasu,
谢谢,它在DCL中工作
当做
芦荟 抱歉,更改了代码中的一个“acadtemp”,忘记了另一个试图让它为任何人工作。由于它不断被重写,请将其放在我们的临时目录中,该目录会一直被清理。
页:
[1]
2