明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8005|回复: 28

[基础] dcl小面板

[复制链接]
发表于 2019-12-20 13:30:36 | 显示全部楼层 |阅读模式
本帖最后由 296715530 于 2019-12-20 14:42 编辑

函数什么的大部分看不懂,刚玩DCL两天,弄了个小面板瞎玩,太复杂的就不会了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

代码够麻烦吧?!  发表于 2019-12-20 14:03
发表于 2019-12-20 21:19:31 | 显示全部楼层

;; dcl格式代码示意
  1. (defun c:tt () ; tt(CAD小秘书)
  2.   (defun main-pro () (princ))
  3.   (xyp-initSet '(k1 k2 k3) '("1" "0" "0"))
  4.   (setq Dlst '(("" "方式" ":boxed_radio_row{")
  5.                ("k1" "常用" "radio")
  6.                ("k2" "专用" "radio")
  7.                ("k3" "其他" "radio")
  8.                "}"
  9.                ("" "常用" ":boxed_row{")
  10.                ":column{"
  11.                ("bu1" "按钮1" "button" "(c:abc1)")
  12.                ("bu2" "按钮2" "button" "(c:abc2)")
  13.                ("bu3" "按钮3" "button" "(c:abc3)")
  14.                ("bu4" "按钮4" "button" "(c:abc4)")
  15.                "}"
  16.                ":column{"
  17.                ("bu5" "按钮5" "button" "(c:abc5)")
  18.                ("bu6" "按钮6" "button" "(c:abc6)")
  19.                ("bu7" "按钮7" "button" "(c:abc7)")
  20.                ("bu8" "按钮8" "button" "(c:abc8)")
  21.                "}"
  22.                "}"
  23.               )
  24.   )
  25.   (if (= (xyp-Dcl-Init Dlst "【CAD小秘书】" t) 1)
  26.     (main-pro)
  27.   )
  28.   (princ)
  29. )




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

院长厉害  发表于 2019-12-20 21:44
回复 支持 3 反对 0

使用道具 举报

 楼主| 发表于 2019-12-20 14:18:57 | 显示全部楼层

;主程序(常用)
(vl-load-com)
(defun c:qq (/ fname fn x dclid lin)
       (setq fname (vl-filename-mktemp nil nil ".dcl" ))
       (setq fn (open fname "w" ))
       (foreach x '(



                     "  agtckz : dialog{"
                     "  label=\"CAD小秘书by296715530\";"
                     

        ":radio_column {"
     
        ":row {"

        ":radio_button {key = \"9\" ;label =\"常用\" ;value = "1";width=10;mnemonic = "q";}"
        ":radio_button {key = \"10\" ;label =\"专用\" ;width=10;}"
        ":radio_button {key = \"11\" ;label =\"其他\" ;width=10;}"
       " }"
       " }"


                     "     :row{"
                     "     :boxed_column{"
                     "     label=\"常用\";"
                     "     :row{"
                     "      :button{key=\"1\";label=\"按钮1\";width=10;mnemonic ="o";}"
                     "      :button{key=\"2\";label=\"按钮2\";width=10;}"
                     "     }"

                     "     :row{"
                     "      :button{key=\"3\";label=\"按钮3\";width=10;}"
                     "      :button{key=\"4\";label=\"按钮4\";width=10;}"
                     "     }"
                     
                     "     :row{"
                     "      :button{key=\"5\";label=\"按钮5\";width=10;}"
                     "      :button{key=\"6\";label=\"按钮6\";width=10;}"
                     "     }"

                     "     :row{"
                     "      :button{key=\"7\";label=\"按钮7\";width=10;}"
                     "      :button{key=\"8\";label=\"按钮8\";width=10;}"
                     "     }"

                     "     }"
                     "     }"

                     "cancel_button;"

                     "}"

              );end ;endlist
              (princ x fn)
              (write-line "" fn)
       );end foreach
       (close fn)
       (setq fn (open fname "r" ))
       (setq dclid (load_dialog fname))
       (while (or (eq (substr (setq lin (vl-string-right-trim "\" fn)" (vl-string-left-trim "(write-line \"" (read-line fn)))) 1 2) "//" ) (eq (substr lin 1 (vl-string-search " " lin)) "" ) (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9) " : dialog" ))))
       (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)

       (action_tile "1" "(done_dialog 1)" )
       (action_tile "2" "(done_dialog 2)" )
       (action_tile "3" "(done_dialog 3)" )
       (action_tile "4" "(done_dialog 4)" )
       (action_tile "5" "(done_dialog 5)" )
       (action_tile "6" "(done_dialog 6)" )
       (action_tile "7" "(done_dialog 7)" )
       (action_tile "8" "(done_dialog 8)" )
       (action_tile "9" "(done_dialog 9)" )
       (action_tile "10" "(done_dialog 10)" )
       (action_tile "11" "(done_dialog 11)" )

   

       (action_tile "cancel" "(done_dialog 0)" )
       (setq re (start_dialog))
       (cond
              ((= re 1) (GL:1))
              ((= re 2) (GL:2))
              ((= re 3) (GL:3))
              ((= re 4) (GL:4))
              ((= re 5) (GL:5))
              ((= re 6) (GL:6))
              ((= re 7) (GL:7))
              ((= re 8) (GL:8))
              ((= re 9) (c:qq))
              ((= re 10) (c:yx_zy))
              ((= re 11) (c:yx_qt))


       );end cond
       (unload_dialog dclid)
       (close fn)
       (vl-file-delete fname)
       (princ)
)


;主程序(专用)
(vl-load-com)
(defun c:yx_zy (/ fname fn x dclid lin)
       (setq fname (vl-filename-mktemp nil nil ".dcl" ))
       (setq fn (open fname "w" ))
       (foreach x '(



                     "  agtckz : dialog{"
                     "  label=\"CAD小秘书by296715530\";"
                     



        ":row {"

        ":radio_button {key = \"9\" ;label =\"常用\" ;width=10;}"
        ":radio_button {key = \"10\" ;label =\"专用\" ;value = "1";width=10;}"
        ":radio_button {key = \"11\" ;label =\"其他\" ;width=10;}"
       " }"



                     "     :row{"
                     "     :boxed_column{"
                     "     label=\"专用\";"
                     "     :row{"
                     "      :button{key=\"14\";label=\"按钮9\";width=10;}"
                     "      :button{key=\"15\";label=\"按钮10\";width=10;}"
                     "     }"

                     "     :row{"
                     "      :button{key=\"16\";label=\"按钮11\";width=10;}"
                     "      :button{key=\"17\";label=\"按钮12\";width=10;}"
                     "     }"
                     
                     "     :row{"
                     "      :button{key=\"18\";label=\"按钮13\";width=10;}"
                     "      :button{key=\"19\";label=\"按钮14\";width=10;}"
                     "     }"

                     "     :row{"
                     "      :button{key=\"20\";label=\"按钮15\";width=10;}"
                     "      :button{key=\"21\";label=\"按钮16\";width=10;}"
                     "     }"

                     "     }"
                     "     }"

                     "cancel_button;"

                     "}"

              );end ;endlist
              (princ x fn)
              (write-line "" fn)
       );end foreach
       (close fn)
       (setq fn (open fname "r" ))
       (setq dclid (load_dialog fname))
       (while (or (eq (substr (setq lin (vl-string-right-trim "\" fn)" (vl-string-left-trim "(write-line \"" (read-line fn)))) 1 2) "//" ) (eq (substr lin 1 (vl-string-search " " lin)) "" ) (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9) " : dialog" ))))
       (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)

       (action_tile "14" "(done_dialog 14)" )
       (action_tile "15" "(done_dialog 15)" )
       (action_tile "16" "(done_dialog 16)" )
       (action_tile "17" "(done_dialog 17)" )
       (action_tile "18" "(done_dialog 18)" )
       (action_tile "19" "(done_dialog 19)" )
       (action_tile "20" "(done_dialog 20)" )
       (action_tile "21" "(done_dialog 21)" )
       (action_tile "9" "(done_dialog 9)" )
       (action_tile "10" "(done_dialog 10)" )
       (action_tile "11" "(done_dialog 11)" )  
   

       (action_tile "cancel" "(done_dialog 0)" )
       (setq re (start_dialog))
       (cond
              ((= re 14) (GL:14))
              ((= re 15) (GL:15))
              ((= re 16) (GL:16))
              ((= re 17) (GL:17))
              ((= re 18) (GL:18))
              ((= re 19) (GL:19))
              ((= re 20) (GL:20))
              ((= re 21) (GL:21))
              ((= re 9) (c:qq))
              ((= re 10) (c:yx_zy))
              ((= re 11) (c:yx_qt))

     
       );end cond
       (unload_dialog dclid)
       (close fn)
       (vl-file-delete fname)
       (princ)
)

(defun c:yx_qt () (alert "这一天天的好无聊啊!!!" )  (princ))




 楼主| 发表于 2019-12-20 14:14:56 | 显示全部楼层
代码我不会写,比着葫芦画瓢还是可以的,东拼西凑弄着玩啦,
发表于 2019-12-20 15:36:35 | 显示全部楼层
这个面板,就是论坛里面那个谁,发过的。。。。什么大数据面板。
可以拿过来直接DIY自己的工具箱的。。
发表于 2019-12-20 15:52:03 | 显示全部楼层
296715530 发表于 2019-12-20 14:18
;主程序(常用)
(vl-load-com)
(defun c:qq (/ fname fn x dclid lin)

楼主您好,请问下怎么固定每个按钮的长度呢?
 楼主| 发表于 2019-12-20 16:02:55 来自手机 | 显示全部楼层
再见熊猫衣服 发表于 2019-12-20 15:36
这个面板,就是论坛里面那个谁,发过的。。。。什么大数据面板。
可以拿过来直接DIY自己的工具箱的。。

他那个我加载了没反应
 楼主| 发表于 2019-12-20 16:06:33 来自手机 | 显示全部楼层
qssq 发表于 2019-12-20 15:52
楼主您好,请问下怎么固定每个按钮的长度呢?

;width=10;这个好像是改宽度的,具体的我也不太懂,你可以试试改改,dcl是我弄的,其他函数是论坛找的,我也不懂关联,挨着葫芦画瓢呗
 楼主| 发表于 2019-12-20 21:28:58 | 显示全部楼层
xyp1964 发表于 2019-12-20 21:19
;; dcl格式代码示意

函数有多少行
发表于 2019-12-20 21:33:50 | 显示全部楼层

大约有5k行,可以轻松处理一般的dcl面板。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:26 , Processed in 0.205920 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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