更改自定义的对话框
你好我为dcl制作的autolisp有问题/困难。我对autolisp知之甚少,我不知道如何通过autolisp实现我想要的,并且可能需要代码方面的帮助。
lisp dcl需要执行以下操作:
1.使用lisp打开dcl时,需要自动导入自定义特性的值(请参见dwg中的dwgprops custom tap或dwg中的图片)。起初,值可以为空。
2、在对话框中填充或更改值。
3.在dwgprop中按OK更新值
任何帮助都很好
作为附件:项目。dcl,项目。lsp和Pdata。图纸
Ps;我使用字段,因此de lisp可能不会完全删除和替换自定义属性
所以不是名称,只有(更新)值。否则,字段可能会更改为####
Pdata。图纸
项目DCL
项目lsp 我对绘图属性没有任何经验,但可以快速搜索:
http://adndevblog.typepad.com/autocad/2012/12/visual-lisp-example-for-controlling-drawing-properties-with-vla-setcustombyindex-and-similar-methods.html
http://adndevblog.typepad.com/autocad/2012/08/lisp-example-for-setting-and-getting-drawing-properties.html
http://www.cadtutor.net/forum/showthread.php?87345-使用LISP填充图形特性字段
也许你可以找到一些可以学习的方法。
gr.Rlx 看到那些脚印。仍然不知道如何使用dcl作为用户界面使lisp工作。
最好是有人可以修改lisp代码,以便将2个自定义道具的值导入/导出到dcl。
(或使用dcl对此主题更为具体的示例代码)
实际dcl更大,编辑框、弹出列表等更多。随着前两个自定义道具的工作,我可能会与其余的管理。
在此期间,我仍将尝试自己做这件事。如果我成功了,我会立即发帖。 这里有一个关于dcl的非常好的链接
http://web2.airmail.net/terrycad/Tutorials/MyDialogs.htm
祝你的应用好运
gr.Rlx 这就是按键添加值所需的全部内容:
(defun _add:custom:value (key val)
;; Tharwat 31.08.2015;;
(vla-setcustombykey (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) key val)
(princ)
)
用法:
(_add:custom:value "Project" "1")
对于多个键和值:
(mapcar '_add:custom:value '("Project" "Status") '("1" "2nd Draft"))
请注意正确写入密钥名称,以避免函数发出错误消息。 @塔尔瓦特:
值“1”或“2nd draft”是变量。也可以通过“233”和“第三稿”或“8540”和“最终稿”。因此,如果之前在对话框“1”或“2nd draft”中填写了您的代码,我会在对话框中将其更改为“233”和“3rd draft”或任何内容,它会自动更改dwgprops自定义选项卡中的值?
如果是变量,则应如下所示,并且应为字符串:
(mapcar '_add:custom:value (list key1 key2) (list variable1 variable2))
顺便说一句,我找到了这个代码。工作,但我如何添加这个在Lisp程序从第一篇文章。代码用作命令行界面。我需要它在dcl接口中。因此,如果我在文本框中调用dcl behind项目,就会得到来自custom prop选项卡的值。就像在命令行中一样
(defun C:Getprop ()
(setqsi (vla-Get-SummaryInfo (vla-Get-ActiveDocument (vlax-Get-Acad-Object))))
(vla-GetCustomByKey si"Project" 'pval)
(princ pval)
)
如果在对话框中我有机会需要这个?
(vla-SetCustomByKeysi "Project" "New Value")
这样,新条目将作为customprops中的值导出回?
只是不知道如何把这一切放在一起 你找到的代码和我的相比有什么新的地方? 试试这个快速程序。
(defun c:test (/ id status _add:custom:value v1 v2)
;; Tharwat 01.09.2015 ;;
(if (and (< 0 (setq id (load_dialog "Project.dcl")))
(new_dialog "Project" id)
)
(progn
(defun _add:custom:value (key val)
(vla-setcustombykey
(vla-get-summaryinfo
(vla-get-activedocument (vlax-get-acad-object))
)
key
val
)
(princ)
)
(setq
Status (list "1st draft" "2nd draft" "3rd draft" "Final")
)
(start_list "Status")
(mapcar 'add_list Status)
(end_list)
(action_tile
"accept"
"(if (/= (setq v1 (get_tile \"Project\")) \"\") (_add:custom:value \"Project\" v1))
(if (setq v2 (get_tile \"Status\")) (_add:custom:value \"Status\" (nth (atoi v2) Status)))
(done_dialog)"
)
(action_tile "cancel" "(done_dialog)")
(start_dialog)
(unload_dialog id)
)
(if (< 0 id)
(unload_dialog id)
)
)
(princ)
)(vl-load-com)
页:
[1]
2