乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 69|回复: 19

[编程交流] 命令计数

[复制链接]

23

主题

132

帖子

112

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 18:51:02 | 显示全部楼层 |阅读模式
有人有一个lisp例程来计算autocad会话中使用的命令吗?我曾尝试使用google,但我发现一个例程在acad 2006之前可用,在Civ3d 2008上不可用。
 
提前感谢您提供的任何帮助。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 18:56:38 | 显示全部楼层
为什么对这样的命令感兴趣?你能不能适应你发现的与软件一起工作的常规?
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-5 19:00:18 | 显示全部楼层
只是为了好玩。使用LookCount命令查看命令计数。它仅适用于标准AutoCAD命令。可以添加Lisp、arx、vba命令计数。
 
  1. (defun CmdCount()
  2. (vl-load-com)
  3. (if(not cmdcount:reactor)
  4.    (setq cmdcount:reactor
  5.    (vlr-Command-Reactor nil
  6.      '((:vlr-commandEnded . CmdCountReaction))
  7.      )
  8.   cmdcount:count 0)
  9.    ); end if
  10. (princ)
  11. ); end of c:cmdcount
  12. (defun CmdCountReaction(Reac Arg)
  13. (setq cmdcount:count(1+ cmdcount:count))
  14. (princ)
  15. ); end of CmdCount
  16. (defun c:LookCount()
  17. (if cmdcount:count
  18.    (alert
  19.      (strcat "\nCommands number = "
  20.       (itoa cmdcount:count))
  21.      ); end alert
  22.    ); end if
  23. (princ)
  24. ); end of LookCount
  25. (CmdCount)
回复

使用道具 举报

23

主题

132

帖子

112

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 19:02:48 | 显示全部楼层
你好
我正在寻找的目的是帮助我向老板提出一个关于如何提高生产力的建议。我想向他展示一下,只要投入少量的时间,我们就能提高生产力。这是我们目前非常缺乏的一件事,因此任何提案都必须代表我好好研究。
回复

使用道具 举报

23

主题

132

帖子

112

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 19:04:02 | 显示全部楼层
嗨,阿斯米,
 
谢谢,但这个例程似乎只对使用的命令进行计数。我需要的东西,也将列出使用的命令和频率。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 19:09:05 | 显示全部楼层
谢谢你把事情弄清楚一点。看起来您已经修改了原始请求,而不仅仅是计算。
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-5 19:12:30 | 显示全部楼层
 
好啊
 
  1. (defun CmdSpy()
  2. (vl-load-com)
  3. (if(not cmdspy:cmdreactor)
  4.    (setq cmdspy:cmdreactor
  5.    (vlr-Command-Reactor nil
  6.      '((:vlr-CommandEnded . CmdSpyReaction))
  7.      ); end vlr-Command-Reactor
  8.   ); end setq
  9.    ); end if
  10. (princ)
  11. ); end of CmdSpy
  12. (CmdSpy)
  13. (defun CmdSpyReaction(Reac Args / cLst)
  14. (if
  15.    (not
  16.      (setq cLst(assoc(car Args)cmdspy:list)))
  17.        (setq cmdspy:list(cons(cons(car Args) 1)cmdspy:list))
  18.        (setq cmdspy:list(subst(cons(car Args)(1+(cdr cLst)))
  19.                                      cLst cmdspy:list))
  20.    ); end if
  21. (princ)
  22. ); end of CmdSpyReaction
  23. (defun c:lookcmdlist()
  24. (if cmdspy:list
  25.    (progn
  26.      (setq cmdspy:list
  27.   (vl-sort cmdspy:list
  28.            '(lambda(a b)(>(cdr a)(cdr b)))))
  29.      (princ "\n====== Command Statistic ======\n")
  30.      (foreach i cmdspy:list
  31. (princ(strcat "\n "(car i)" "))
  32. (repeat(- 25(strlen(car i)))(princ "."))
  33. (princ(itoa(cdr i)))
  34. ); end foreach
  35.      (princ "\n\n========== End Report =========")
  36.      (textscr)
  37.      ); end progn
  38.     (princ "\nNo command history found ")
  39.    ); end if
  40. (princ)
  41. ); end of c:lookcmdlist

 
键入LookCmdList以运行。
 
  1. Command: lookcmdlist
  2. ====== Command Statistic ======
  3. CIRCLE ...................8
  4. LINE .....................5
  5. ELLIPSE ..................2
  6. SETVAR ...................1
  7. ========== End Report =========

 
它只有一个会话报告,只有标准命令。是否要使用开始/结束日期/时间和用户名在图形中保存报告?
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-5 19:13:16 | 显示全部楼层
这不是现成的,但可以很容易地写出来。困难的部分将是你打算如何衡量你所做的事情。如果是我,我不会计算命令数,而是编写一个程序来记录在特定图形上执行X个命令所需的时间。糟糕的是,你打算如何量化自动化将如何改善情况?你几乎需要在适当的位置实现自动化,然后与手动版本进行比较。
回复

使用道具 举报

23

主题

132

帖子

112

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
114
发表于 2022-7-5 19:18:28 | 显示全部楼层
谢谢你,阿斯米,
 
这正是我在mo中寻找的。
 
CmdrDuh,
 
谢谢你的建设性意见。计时在图形上执行x数量的命令需要多长时间对我来说目前是一个不现实的选择。我需要能够说多少更少的命令可以用来做相同的绘图,我需要能够把这作为一个百分比。很明显,不同的用户需要不同的时间来完成一个绘图,而反过来会产生不同的百分比。但这将是未来关于培训提案的考虑事项。
 
再次感谢
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-5 19:19:36 | 显示全部楼层
我认为需要添加总计数器:
 
  1. (defun CmdSpy()
  2. (vl-load-com)
  3. (if(not cmdspy:cmdreactor)
  4.    (setq cmdspy:cmdreactor
  5.    (vlr-Command-Reactor nil
  6.      '((:vlr-CommandEnded . CmdSpyReaction))
  7.      ); end vlr-Command-Reactor
  8.   ); end setq
  9.    ); end if
  10. (princ)
  11. ); end of CmdSpy
  12. (CmdSpy)
  13. (defun CmdSpyReaction(Reac Args / cLst)
  14. (if
  15.    (not
  16.      (setq cLst(assoc(car Args)cmdspy:list)))
  17.        (setq cmdspy:list(cons(cons(car Args) 1)cmdspy:list))
  18.        (setq cmdspy:list(subst(cons(car Args)(1+(cdr cLst)))
  19.                                      cLst cmdspy:list))
  20.    ); end if
  21. (princ)
  22. ); end of CmdSpyReaction
  23. (defun c:lookcmdlist(/ cTot)
  24. (if cmdspy:list
  25.    (progn
  26.      (setq cmdspy:list
  27.   (vl-sort cmdspy:list
  28.            '(lambda(a b)(>(cdr a)(cdr b))))
  29.     cTot(apply '+(mapcar 'cdr cmdspy:list))
  30.     ); end setq
  31.      (princ "\n====== Command Statistic ======\n")
  32.      (foreach i cmdspy:list
  33. (princ(strcat "\n "(car i)" "))
  34. (repeat(- 26(strlen(car i)))(princ "."))
  35. (princ " ")(princ(itoa(cdr i)))
  36. ); end foreach
  37.      (princ(strcat "\n\n TOTAL: "(itoa cTot)))
  38.      (princ "\n\n========== End Report =========")
  39.      (textscr)
  40.      ); end progn
  41.     (princ "\nNo command history found ")
  42.    ); end if
  43. (princ)
  44. ); end of c:lookcmdlist

 
  1. Command: lookcmdlist
  2. ====== Command Statistic ======
  3. INSERT .................... 9
  4. GRIP_STRETCH .............. 4
  5. MOVE ...................... 3
  6. SETVAR .................... 3
  7. LINE ...................... 3
  8. MIRROR .................... 2
  9. CIRCLE .................... 2
  10. COPY ...................... 1
  11. BLOCK ..................... 1
  12. ERASE ..................... 1
  13. +DSETTINGS ................ 1
  14. TOTAL: 30
  15. ========== End Report =========
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 13:45 , Processed in 0.587155 second(s), 83 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表