明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hao3ren

[源码] 面板源码

    [复制链接]
发表于 2019-4-24 14:00:14 | 显示全部楼层
664571221 发表于 2018-8-3 15:07
能否然按空格继续执行命令,而不是跳回面板

不要用c:命令       用sendkey的方法
发表于 2019-4-24 14:06:17 | 显示全部楼层
1291500406 发表于 2019-4-24 14:00
不要用c:命令       用sendkey的方法

能不能搞一个
发表于 2019-4-24 14:08:50 | 显示全部楼层
本帖最后由 1291500406 于 2019-4-24 19:15 编辑

  • (cond
  •       ((= 0 dd) (setq Loop nil))
  •       ((= 2 dd) (setq Loop nil) (bb_key  "drawline "))
  •           ((= 3  dd)(setq Loop nil) (bb_key  "plot "))
  •             )
   

(vl-load-com)
(defun bb_key(key)(vla-sendcommand (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) key)(princ))

一页一百,28页
2800按键管理界面

file:///C:/Users/必强电脑/AppData/Roaming/Tencent/Users/1291500406/TIM/WinTemp/RichOle/C%7DMBXX75D86%7D~N%25%021]G$1.png


本帖子中包含更多资源

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

x
发表于 2019-6-20 20:09:40 | 显示全部楼层
  1. (setq lst '(("钢筋书写"
  2.              ("钢筋结钩" "xyp-gjg")
  3.              ("另类镜像" "lljx")
  4.              ("板筋处理" "bjcl ")
  5.              ("动态板筋" "dtbj")
  6.             )
  7.             ("注筋标注"
  8.              ("注筋排版" "zjpb")
  9.              ("注筋左置 " "zjzz")
  10.              ("注筋移位 " "zjyw")
  11.              ("改图层名 " "gtcm")
  12.             )
  13.             ("桩基网架"
  14.              ("桩基承台 " "zjct")
  15.              ("桩基统计 " "zjtj")
  16.              ("平板网架 " "pbwj")
  17.              ("曲线桁架 " "qxhj")
  18.             )
  19.             ("编辑处理"
  20.              ("改粱编号" "glbh")
  21.              ("梁宽校对" "lkjd")
  22.              ("梁柱修剪" "lzxj")
  23.              ("井字梁 " "xyp-jzl")
  24.             )
  25.            )
  26. )
  27. ;;(dcl-load lst)
  28. (defun dcl-load        (lst         /         make-dcl         do_buttion
  29.                  dclid         dd         i         loop         lst1         lst2
  30.                  m         n2         tt
  31.                 )
  32.   (defun do_buttion (tt)
  33.     (if        (= (eval (read (strcat "(type c:" tt ")"))) 'subr)
  34.       (eval (read (strcat "(c:" tt ")")))
  35.       (vl-cmdf tt)
  36.     )
  37.   )
  38.   (setq lst1 (mapcar 'car lst))
  39.   (defun make-dcl (lst / dcla dclb dclc dcld i lst2 m)
  40.     (setq dcla
  41.            (list "my_dialog:dialog{label = \"防迷你菜单\";")
  42.     )
  43.     (setq i 0)
  44.     (setq dclb (list ":row{:boxed_column{label = \"【菜单分组】\";"))
  45.     (foreach n lst1
  46.       (setq dclb
  47.              (append
  48.                dclb
  49.                (list
  50.                  (strcat
  51.                    ":button{label=\""
  52.                    n
  53.                    "\";key = \"butt"
  54.                    (itoa i)
  55.                    "\";vertical_margin=none;vertical_margin=none;}"
  56.                  )
  57.                )
  58.              )
  59.       )
  60.       (setq i (1+ i))
  61.     )

  62.     (setq lst2 (cdr (assoc (nth 0 lst1) lst)))
  63.     (setq dclc (list "}:boxed_column{"))
  64.     (setq m 0)
  65.     (foreach n1        lst2
  66.       (setq dclc
  67.              (append
  68.                dclc
  69.                (list
  70.                  (strcat
  71.                    ":button{label=\""
  72.                    (car n1)
  73.                    "\";key = \"but"
  74.                    (itoa m)
  75.                    "\";vertical_margin=none;vertical_margin=none;}"
  76.                  )
  77.                )
  78.              )
  79.       )
  80.       (setq m (1+ m))
  81.     )
  82.     (setq dcld
  83.            (list
  84.              "}}:button{label=\"关闭\";key=\"cancel\";is_cancel=true;width=10;fixed_width=true;alignment=centered;}}"
  85.            )
  86.     )
  87.     (append dcla dclb dclc dcld)
  88.   )
  89.   (new_dialog
  90.     "my_dialog"
  91.     (setq dclid (dcl-write (make-dcl lst)))
  92.   )
  93.   (setq loop t)
  94.   (while loop
  95.     ;|
  96.     (setq i 0)
  97.     (repeat (length lst1)
  98.       (action_tile
  99.         (strcat "butt" (itoa i))
  100.         (progn (setq lst2 (cdr (assoc (nth i lst1) lst))
  101.                      m          0
  102.                )
  103.                (foreach        n2 lst2
  104.                  (set_tile (strcat "but" (itoa m)) (car n2))
  105.                  (action_tile
  106.                    (strcat "but" (itoa m))
  107.                    (progn
  108.                      (setq tt (cadr (nth m lst2)))
  109.                      (do_buttion tt)
  110.                    )
  111.                  )
  112.                  (setq m (1+ m))
  113.                )
  114.         )
  115.       )
  116.       (setq i (1+ i))
  117.     )|;
  118.     (setq dd (start_dialog))
  119.     (cond
  120.       ((= 0 dd) (setq Loop nil))
  121.     )
  122.   )
  123.   (unload_dialog dclid)
  124. )
  125. (defun dcl-write (lst / dcl_file file str dcl_id dcl-name)
  126.   (setq dcl_file (vl-filename-mktemp nil nil ".dcl"))
  127.   (setq file (open dcl_file "w"))
  128.   (foreach str lst (write-line str file))
  129.   (close file)
  130.   (setq dcl_id (load_dialog dcl_file))
  131.   (vl-file-delete dcl_file)
  132.   dcl_id
  133. )
  134. 没法完成了,看下
回复 支持 1 反对 0

使用道具 举报

发表于 2019-7-17 22:19:50 | 显示全部楼层
学习一下,谢谢
发表于 2020-2-17 02:09:47 | 显示全部楼层
1291500406 发表于 2019-4-24 14:08
  • (cond
  •       ((= 0 dd) (setq Loop nil))
  •       ((= 2 dd) (setq Loop nil) (bb_key[/backc ...

  • 请教一下顶部的时间和底部的名言是怎么做的?方便发个源码学习一下吗
    发表于 2020-7-1 10:01:28 | 显示全部楼层
    支持,很给力
    发表于 2020-8-24 13:08:09 | 显示全部楼层
    1291500406 发表于 2019-4-23 18:10
    把一个数字改掉151改成1~255之间的数

    大佬,这个面板源码能奉献下不
    回复 支持 0 反对 1

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-11-22 16:48 , Processed in 0.178865 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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