明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2614|回复: 8

[求助] 自定义vlx面板。

[复制链接]
发表于 2020-1-10 14:49:03 | 显示全部楼层 |阅读模式
假设我有两个插件“aaa.vlx”(命令aaa),“bbb.vlx”(命令bb1、bb2)。
使用时候,共有三个命令,aaa、bb1、 bb2。
在不改变原有插件的条件下,能不能通过代码执行一个命令“abc”,出现一个自定义面板,
上面有自己定义文字的“按键”,点击后执行原有各自的功能。

本帖子中包含更多资源

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

x
发表于 2020-1-10 16:53:48 | 显示全部楼层
分享一下你的面板源码吗
发表于 2020-1-10 22:20:05 | 显示全部楼层
论坛找个自定义面板,研究下怎么用!我试过了!能实现!
发表于 2020-1-14 10:11:38 | 显示全部楼层
用老迈的面板函数,这个要求太容易了
发表于 2020-1-14 16:54:54 | 显示全部楼层
分享一下面板源码
 楼主| 发表于 2020-1-15 14:44:34 | 显示全部楼层
foer123 发表于 2020-1-14 16:54
分享一下面板源码

我没有源码,那是“贱人工具箱”中“我的贱人”的界面,截图下来做个示意。
发表于 2020-1-15 16:38:33 | 显示全部楼层
这个不难啊,论坛里有就LISP的自定义面板!
  1. (vl-load-com)
  2. (defun c:vf (/ fname fn x dclid lin)
  3.        (setq fname (vl-filename-mktemp nil nil ".dcl" ))
  4.        (setq fn (open fname "w" ))
  5.        (foreach x '(



  6.                      "  agtckz : dialog{"
  7.                      "  label="附加绘图工具";"
  8.                      

  9.         ":radio_column {"
  10.      
  11.         ":row {"

  12.         ":radio_button {key = "91" ;label ="常用" ;value = "1";width=10;mnemonic = "q";}"
  13.         ":radio_button {key = "92" ;label ="专用" ;width=10;}"
  14.         ":radio_button {key = "93" ;label ="其他" ;width=10;}"
  15.        " }"
  16.        " }"


  17.                      "     :row{"
  18.                      "     :boxed_column{"
  19.                      "     label="常用";"
  20.                      "     :row{"
  21.                      "      :button{key="1";label="立面门1";width=10;mnemonic ="o";}"
  22.                      "      :button{key="2";label="立面门2";width=10;}"
  23.                      "      :button{key="3";label="立面门3";width=10;}"       
  24.                            "      :button{key="4";label="立面门3";width=10;}"                                                                                 
  25.                      "     }"

  26.                      "     :row{"
  27.                      "      :button{key="5";label="立面门3";width=10;}"
  28.                      "      :button{key="6";label="立面门4";width=10;}"
  29.                      "      :button{key="7";label="立面门3";width=10;}"
  30.                                                                                  "      :button{key="8";label="立面门3";width=10;}"       
  31.                      "     }"
  32.                      
  33.                      "     :row{"
  34.                      "      :button{key="9";label="天花1";width=10;}"
  35.                      "      :button{key="10";label="天花2";width=10;}"
  36.                                                                                  "      :button{key="11";label="天花2";width=10;}"
  37.                                                                                  "      :button{key="12";label="立面门3";width=10;}"       
  38.                      "     }"

  39.                      "     :row{"
  40.                      "      :button{key="13";label="天花3";width=10;}"
  41.                      "      :button{key="14";label="天花4";width=10;}"
  42.                                                                                  "      :button{key="15";label="天花2";width=10;}"
  43.                                                                                  "      :button{key="16";label="立面门3";width=10;}"       
  44.                      "     }"

  45.                      "     }"
  46.                      "     }"

  47.                      "     :row{"
  48.                                                                                  "      :button{key="94";label="返回主工具";width=10;}"
  49.                      
  50.                                                                             ":button{label="退出"; key ="cancel";is_cancel = true;}"
  51.                      "     }"

  52.                      "}"

  53.               );end ;endlist
  54.               (princ x fn)
  55.               (write-line "" fn)
  56.        );end foreach
  57.        (close fn)
  58.        (setq fn (open fname "r" ))
  59.        (setq dclid (load_dialog fname))
  60.        (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" ))))
  61.        (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)

  62.        (action_tile "1" "(done_dialog 1)" )
  63.        (action_tile "2" "(done_dialog 2)" )
  64.        (action_tile "3" "(done_dialog 3)" )
  65.        (action_tile "4" "(done_dialog 4)" )
  66.        (action_tile "5" "(done_dialog 5)" )
  67.        (action_tile "6" "(done_dialog 6)" )
  68.        (action_tile "7" "(done_dialog 7)" )
  69.        (action_tile "8" "(done_dialog 8)" )
  70.              (action_tile "9" "(done_dialog 9)" )
  71.              (action_tile "10" "(done_dialog 10)" )
  72.        (action_tile "11" "(done_dialog 11)" )
  73.              (action_tile "12" "(done_dialog 12)" )
  74.              (action_tile "13" "(done_dialog 12)" )
  75.              (action_tile "14" "(done_dialog 12)" )
  76.              (action_tile "15" "(done_dialog 12)" )
  77.              (action_tile "16" "(done_dialog 12)" )
  78.        
  79.        
  80.        

  81.        (action_tile "91" "(done_dialog 91)" )
  82.        (action_tile "92" "(done_dialog 92)" )
  83.        (action_tile "93" "(done_dialog 93)" )
  84.              (action_tile "94" "(done_dialog 94)" )
  85.    

  86.        (action_tile "cancel" "(done_dialog 0)" )
  87.        (setq re (start_dialog))
  88.        (cond
  89.               ((= re 1) (C:KM))
  90.               ((= re 2) (GL:2))
  91.               ((= re 3) (GL:3))
  92.               ((= re 4) (GL:4))
  93.               ((= re 5) (C:TH1))
  94.               ((= re 6) (C:TH2))
  95.               ((= re 7) (C:TH3))
  96.               ((= re 8) (GL:8))
  97.                                       ((= re 9) (GL:8))
  98.                                       ((= re 10) (GL:8))
  99.                                       ((= re 11) (GL:8))
  100.                                       ((= re 12) (GL:8))
  101.                                       ((= re 13) (GL:8))
  102.                                       ((= re 14) (GL:8))
  103.                                       ((= re 15) (GL:8))
  104.                                       ((= re 16) (GL:8))
  105.                                  
  106.                                  
  107.                                  
  108.                                  
  109.                                  
  110.                                  
  111.                                  
  112.               ((= re 91) (c:vf))
  113.               ((= re 92) (c:yx_zy))
  114.               ((= re 93) (c:yx_qt))
  115.               ((= re 94) (C:vv))

  116.        );end cond
  117.        (unload_dialog dclid)
  118.        (close fn)
  119.        (vl-file-delete fname)
  120.        (princ)
  121. )

发表于 2020-2-16 13:20:57 | 显示全部楼层
没有问题,可以实现。
发表于 2020-9-7 10:35:03 | 显示全部楼层
首先写面板即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:42 , Processed in 0.198088 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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