明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: rocking2008

[源码] 求指教个DCL的问题

[复制链接]
 楼主| 发表于 2022-2-9 14:42 | 显示全部楼层
lee50310 发表于 2022-2-9 13:04
ok,有空我再看看!

其实我的意思是:
1、通过DCL上勾选A选项,实现加载A代码;DCL上勾选B选项,实现加载B代码;
2、通过DCL上勾选,        则加载C代码,   DCL上不勾选,      则不加载C代码;

以上2个功能,DCL和LSP中分别如何修改。
回复

使用道具 举报

发表于 2022-2-9 16:07 | 显示全部楼层
直接去弄个dcl对话框生成器就行啦。
回复

使用道具 举报

发表于 2022-2-9 20:38 | 显示全部楼层
(defun getdate (/  lst_str str file f get_date dcl_id datalst)
        (setq lst_str '(
                "test:dialog {"
                ;":radio_column {"
                "   :radio_button {key = \"key1\" ;label = \"上方标注说明\" ;}"
                "   :radio_button {key = \"key2\" ;label = \"下方标注说明\" ;}"
                ;"}"
                ":toggle {key = \"key3\" ;label = \"是否生成\" ;}"
                "ok_cancel;"
                "}"
                )
        )
        (setq file (vl-filename-mktemp "DclTemp.dcl"))
        (setq f (open file "w"))
        (foreach str lst_str        (princ "\n" f)(princ str f))
        (close f)
        (defun get_date ()(mapcar 'get_tile(list "key1" "key2" "key3" "..." "...")))
        (new_dialog "test" (setq dcl_id (load_dialog  file)))
        (action_tile "accept" "(setq datalst(get_date))(done_dialog 1)")
        (setq dd (start_dialog))
        (unload_dialog dcl_id)
        (vl-file-delete file);删除临时dcl文件       
        datalst
)
;以上为对话框功能
(defun c:tt5 ( / datalst)
        (setq datalst(getdate));对话框取得数据
        (cond
                ;以下根据对话框输出结果添加代码
                ((= (car datalst) "1");如果DCL上选择“key1上方标注说明”
                        (setq pt2(polar pt (+ ang (* 0.5 pi)) (* size20170516 1.2)))
                        (setq pt1(polar pt (+ pi ang (* 0.5 pi))  (* size20170516 1.2)))
                )
                ((= (cadr datalst) "1");如果DCL上选择“key2下方标注说明”
                        (setq pt1(polar pt (+ ang (* 0.5 pi)) (* size20170516 1.2)))
                        (setq pt2(polar pt (+ pi ang (* 0.5 pi))  (* size20170516 1.2)))
                )
                ((= (caddr datalst) "1");如果DCL上选择“key3打钩”
                        .....
                )
                ((= (caddr datalst) "0");如果DCL上选择“key3不打钩”
                        .....
                )
                (t nil)
        )
)
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-7 23:16 , Processed in 0.254705 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表