明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3092|回复: 14

快捷键系统一源码

[复制链接]
发表于 2021-11-9 11:13:20 | 显示全部楼层 |阅读模式
本帖最后由 尘缘一生 于 2021-11-11 19:55 编辑

快捷键本坛不少,多少存在不合理的地方,用了点功夫,改写。
进一步:将开发:支持用户定义CAD,其余插件快捷键,保证不冲突的思路在考虑,有好思路了,会更新本帖--》






快捷键做完,自然界面想做成面板,链接如下:

http://bbs.mjtd.com/thread-184354-1-1.html

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

 楼主| 发表于 2021-11-11 19:37:27 | 显示全部楼层
本帖最后由 尘缘一生 于 2021-11-11 21:24 编辑
世井 发表于 2021-11-10 10:22
no function definition: DCL2LISP

不光这个,里面还好几处,这不是关键问题,这就是写DCL的吗,可以换作其他。
请注意,我发的几个函数的作用。外行看热闹,内行才看门道。

  • ;; DCL写进LISP函数---------(一级)------------
  • (defun dcl2lisp (lst_str / str f)
  •   (setq &file (getfilen ".dcl") f (open &file "w"))
  •   (foreach str lst_str
  •     (princ "\n" f)
  •     (princ str f)
  •   )
  •   (close f)
  •   &file ;;返回
  • )
  • ;;卸载DCL,删除临时DCL文件-----(一级)---------
  • (defun slunloaddcl (id /)
  •   (unload_dialog id)
  •   (vl-file-delete &file)
  •   (gc)
  • )
  • ;;取得临时文件名----------(一级)----------
  • ;;exn 扩展名   ".dcl" ".dwg" nil 返回 路径
  • (defun getfilen (exn / &ss sys)
  •   (setq sys (Is64Bit))
  •   (if (wcmatch sys "x64*")
  •     (setq &ss "C:\\Program Files")
  •     (setq &ss "C:\\Program Files (X86)")
  •   )
  •   (if (= &ss nil)
  •     (setq &ss "c:\\windows")
  •   )
  •   (if (/= exn nil)
  •     (while (/= (findfile (setq &file (strcat &ss "\\$" (slsjqs) exn))) nil)
  •       (vl-file-delete &file)
  •     )
  •     (setq &file &ss)
  •   )
  •   &file
  • )
  • ;;判断系统WINDOWS 是否为64位-------(一级)-------------
  • (defun Is64Bit (/ WMI SVR SYS)
  •   (setq WMI (vlax-create-object "WbemScripting.SWbemLocator"))
  •   (setq SVR (VLAX-INVOKE WMI 'ConnectServer))
  •   (vlax-for n (vlax-invoke SVR 'InstancesOf "Win32_ComputerSystem")
  •     (setq SYS (vlax-get n 'SystemType))
  •   )
  •   (vlax-release-object SVR)
  •   (vlax-release-object WMI)
  •   sys  ;;返回系统位数字符串  "x64-based PC"
  • )
  • ;随机数产生器------------(一级)------------------
  • ;;注意:此随机数,不受CAD版本限制,并浩辰,中望OK
  • (defun slrnd (n1 n2 / ra rb nn imin imax imin n3 rn)
  •   (setq ra 66791 rb 17 nn 30) ;随机数函数用的质数
  •   (setq imin (expt 2 31) imax (1- imin)) ;整数的最小数与最大数
  •   (if (> n1 n2) (setq n3 n1 n1 n2 n2 n3)) ;若 n1 > n2 则互换
  •   (setq rn (atoi (substr (rtos (getvar "cdate") 2 7) 14))) ;取种子数
  •   (repeat nn
  •     (setq rn (+ (* rn ra) rb)) ;取随机数
  •     (if (minusp rn) (setq rn (- rn imin))) ;如果是负值则减去最小负数得到正数
  •   )
  •   (setq rn (rem rn imax)) ;取余数
  •   (setq rn (/ rn imax 1.0)) ;转成小数
  •   (setq rn (+ (fix (* rn (1+ (- n2 n1)))) n1)) ;产生指定范围内的随机数
  •   rn
  • )
  • ;; 随机取表中数-------------(一级函数)----------------
  • ;;返回表中字符串
  • (defun slsjqs (/ slsjs numsj)
  •   (setq numsj (slrnd 0 44))
  •   (setq slsjs (list "40" "71" "72" "70" "84" "73" "1" "30" "31" "60" "61" "3" "4" "190" "200" "210" "211" "220" "240" "6" "7" "150" "140" "241"  ;;24个
  •                 "20" "151" "160" "170" "112" "212" "221" "121" "122" "131" "133" "81" "11" "101" "111" "231" "91" "92" "94" "201" "230"))  ;;21个
  •   (setq numstr (nth numsj slsjs))
  •   numstr
  • )

 楼主| 发表于 2021-11-11 21:05:52 | 显示全部楼层
本帖最后由 尘缘一生 于 2021-11-11 21:31 编辑
cghdy 发表于 2021-11-10 09:31
快捷键肯定比鼠标点来的快。你这快捷键工具是专给你的工具箱用的吗。
里面换成你自己的开发与命令即可了。
我工具箱实际不愿意用的,最好的集成,就是TOOBAR, 这可不是好手段,只是无奈。
快捷键,不快,快捷键最少的是不是一个按键,那么按了哪?弹出界面,再点击,2个了吧?多了一个,这怎么能是最快的?当然,如果没有下级,哪能做到一键,能做到一键,就是根本。



请大家注意:燕秀工具的集成。
三领就是受启发,主要采用TOOLBAR ,永远是一点击即可。当然,小的工具,面板什么的,就无所谓了,自己方便即可。

本帖子中包含更多资源

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

x
 楼主| 发表于 2021-11-11 21:11:09 | 显示全部楼层
本帖最后由 尘缘一生 于 2021-11-11 21:20 编辑
panliang9 发表于 2021-11-10 11:27
我有一个EXCEL文件,第一列,快捷键,第二列,命令解释,第三列,对应的程序。还勉强能对付。

对于EXCEL快捷键,最好别用奥,
因为:受制于WORD软件。

凡是涉及的,都不要采用那种源码,会造成你的插件,安装了,会失效,

因为,你怎么知道别人电脑安装没安装WORD?  就是安装了,那个版本?

即便OK了,哪以后哪?各种软件升级了哪?

LISP的最好,别管古老不古老,CAD就是再发展,你觉得会丢弃LISP吗?现在CAD最新2022了吧,就是CAD2040了,会不会丢弃LISP?
发表于 2021-11-9 15:23:32 来自手机 | 显示全部楼层
没有必要,用一个使用前命令和更改后命令就搞定了。
 楼主| 发表于 2021-11-9 15:29:16 | 显示全部楼层
本帖最后由 尘缘一生 于 2021-11-9 23:38 编辑
Myday 发表于 2021-11-9 15:23
没有必要,用一个使用前命令和更改后命令就搞定了。

嗯,目的是,加第三个解释,可以看的明白咋回事,快键键文件后面,无效,就是注解,以便可以文本自编。
关于快捷键,有人喜欢这个,总要,和画图方式有关,有些人画图,总是快捷键,左右开弓。我从来就不记忆啥命令,
但有些人确实记住很多快捷键,没这个,他就不适应,没有鼠标年代过来的人,鼠标有了,不用快捷键,他还不行的。

这是程序会自动生成的2个文件样例


一楼附件已更新

本帖子中包含更多资源

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

x
发表于 2021-11-10 09:31:14 | 显示全部楼层
快捷键肯定比鼠标点来的快。你这快捷键工具是专给你的工具箱用的吗。
发表于 2021-11-10 10:22:01 | 显示全部楼层
no function definition: DCL2LISP
发表于 2021-11-10 11:27:06 | 显示全部楼层
我有一个EXCEL文件,第一列,快捷键,第二列,命令解释,第三列,对应的程序。还勉强能对付。
发表于 2021-11-10 22:37:29 | 显示全部楼层
谢谢楼主分享好程序,现在,手势软件+鼠标按键自定义+编程鼠标,快捷键都很少用了

点评

是的。  发表于 2021-11-11 21:21
发表于 2021-11-10 22:53:41 | 显示全部楼层
第一个文件,下载了,用论坛的修复软件修复后也打不开,第二个可以

点评

可以直接给我联系 QQ:15290049  发表于 2021-11-11 19:38
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:00 , Processed in 0.301611 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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