乐筑天下

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

在AutoCAD会话中显示或检查所有定义的命令

[复制链接]

72

主题

738

帖子

75

银币

中流砥柱

Rank: 25

铜币
957
发表于 2018-3-5 10:25:41 | 显示全部楼层

太棒了,非常感谢...
难以置信的把戏...
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2018-3-5 12:09:18 | 显示全部楼层
不错的提示RK。要利用的快速代码:
  1. (defun c:commands ( / :setvars :main )
  2.     ;;==========================================================================
  3.     ;;  Commands.lsp
  4.     ;;--------------------------------------------------------------------------
  5.     ;;  \|//  1.02 2018-03-07
  6.     ;;  |Oo|  © 2018 Michael Puckett Some Rights Reserved.
  7.     ;;  |- |  mp@cadanalyst.org
  8.     ;;--------------------------------------------------------------------------
  9.     ;;  1.01  2018-03-05. MP. Initial code.
  10.     ;;  1.02  2018-03-07. MP. Modularized.
  11.     ;;--------------------------------------------------------------------------
  12.    
  13.     (defun :setvars ( lst )
  14.         ;;  Send a cons-pair or cons-pairs lists of (varname . varvalue).
  15.         ;;  eg (setq restore (ue2-setvars '((CMDECHO . 0)(REGENMODE 0))))
  16.         ;;  Returns original values in the same cons-pair construct.
  17.         ;;  >> ((CMDECHO . 1) (REGENMODE . 1))               
  18.         (mapcar
  19.             (function
  20.                 (lambda ( p / k r )
  21.                     (setq r (cons (setq k (car p)) (vl-catch-all-apply 'getvar (list k))))
  22.                     (vl-catch-all-apply 'setvar (list k (cdr p)))
  23.                     r
  24.                 )
  25.             )
  26.             (if (vl-list-length lst)
  27.                 lst
  28.                 (list lst)
  29.             )
  30.         )
  31.     )
  32.    
  33.     (defun :main ( / restore flag handle stream lst name )
  34.    
  35.         (setq restore
  36.             (:setvars
  37.                '(   (cmdecho     . 0)
  38.                     (logfilemode . 1)
  39.                     (qaflags     . 2)
  40.                 )
  41.             )
  42.         )
  43.         (setq flag (strcat "START CAPTURE: " (rtos (getvar 'cdate) 2 8)))
  44.         (princ (strcat "\n" flag))
  45.         (command ".arx" "_commands")
  46.         (setq handle (open (getvar 'logfilename) "r"))
  47.         (while (setq stream (read-line handle))
  48.             (setq lst (cons stream lst))
  49.         )
  50.         (close handle)
  51.         
  52.         (:setvars restore)
  53.    
  54.         (setq lst (cddr (member flag (reverse lst))))
  55.         (while (eq "" (vl-string-trim " \t\n" (car lst)))
  56.             (setq lst (cdr lst))
  57.         )
  58.         
  59.         (setq
  60.             name   (vl-filename-mktemp "commands.txt")
  61.             handle (open name "w")
  62.         )
  63.         (foreach x lst (princ (strcat x "\n") handle))   
  64.         (close handle)
  65.         
  66.         (startapp "notepad.exe" name)
  67.    
  68.         (princ)
  69.         
  70.     )
  71.    
  72.     (:main)            
  73. )

干杯。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
362
发表于 2018-3-5 12:12:17 | 显示全部楼层
还有可预见的:
  1. (defun c:Vars ( / :pad :matching-vars :get-spec :main )
  2.     ;;==========================================================================
  3.     ;;  Vars.lsp
  4.     ;;--------------------------------------------------------------------------
  5.     ;;  \|//  1.07 2018-03-07
  6.     ;;  |Oo|  © 2018 Michael Puckett Some Rights Reserved.
  7.     ;;  |- |  mp@cadanalyst.org
  8.     ;;--------------------------------------------------------------------------
  9.     ;;  1.01  2018-03-05. MP. Initial code.
  10.     ;;  1.02  2018-03-05. MP. Apply constant width to var name column.
  11.     ;;  1.03  2018-03-05. MP. Use getvar instead of capturing screen; no truncation.
  12.     ;;  1.04  2018-03-06. MP. Improve speed: only initial run abuses the log file.
  13.     ;;  1.05  2018-03-06. MP. Add undocumented vars.
  14.     ;;  1.06  2018-03-06. MP. Flag vars in :undocumented that return nil.
  15.     ;;  1.07  2018-03-07. MP. Fixed a missing local declaration.
  16.     ;;--------------------------------------------------------------------------
  17.     (if
  18.         (null
  19.             (vl-every
  20.                 (function (lambda (x) (eq 'str (type x))))
  21.                 (if (eq 'list (type *getvar-names*)) *getvar-names* '(0))
  22.             )
  23.         )
  24.         ;;  Function get-var-names is defined locally but has and needs global
  25.         ;;  scope. Don't understand why? [tr] Sad! [/tr].
  26.         (defun get-var-names ( / :car-str :unique :undocumented :setvars :main )
  27.             (defun :car-str ( text / lst )
  28.                 (substr
  29.                     (setq text (strcase (vl-string-trim " \t\r\n" text)))
  30.                     1
  31.                     (-  (length (setq lst (vl-string->list text)))
  32.                         (length (member 32 lst))
  33.                     )
  34.                 )
  35.             )
  36.             (defun :unique ( lst / result )
  37.                 (foreach x lst
  38.                     (or
  39.                         (member x result)
  40.                         (setq result (cons x result))
  41.                     )
  42.                 )
  43.                 (reverse result)
  44.             )
  45.             ;;  Thanks to Owen Wengerd & the internet ...
  46.             (defun :undocumented ( )
  47.                '(   "_LINFO"                ;; Returns nil in 2018, may remove.
  48.                     "_PKSER"
  49.                     "_SERVER"
  50.                     "_VERNUM"
  51.                     "ADCSTATE"
  52.                     "AECENABLEASSOCANCHOR"
  53.                     "AECENABLESECTIONCLEANUP"
  54.                     "AECVCOMPAREIGNOREHATCH"
  55.                     "AECVCOMPAREIGNORETEXT"
  56.                     "AECVCOMPARENEWCOLOR"
  57.                     "AECVCOMPAREOLDCOLOR"
  58.                     "AECVCOMPAREUNCHANGEDCOLOR"
  59.                     "APBOX"
  60.                     "AUXSTAT"
  61.                     "AXISMODE"              ;; Returns nil in 2018, may remove.
  62.                     "AXISUNIT"
  63.                     "BS_BITS"               ;; Returns nil in 2018, may remove.
  64.                     "CLEARTYPE"
  65.                     "CPUTICKS"
  66.                     "DBCSTATE"
  67.                     "DBGLISTALL"            ;; Returns nil in 2018, may remove.
  68.                     "EDITDELETIONEFFECT"    ;; Returns nil in 2018, may remove.
  69.                     "ENTEXTS"
  70.                     "ENTEXTS"
  71.                     "ENTMODS"
  72.                     "FILETABVISIBLE"
  73.                     "FLATLAND"
  74.                     "FORCE_PAGING"
  75.                     "FORCE_PAGING"
  76.                     "GLOBCHECK"
  77.                     "ISFLIPARC"
  78.                     "JWDEBUG"               ;; Returns nil in 2018, may remove.
  79.                     "KESDEBUG"              ;; Returns nil in 2018, may remove.
  80.                     "LAZYLOAD"
  81.                     "LAZYLOAD"
  82.                     "LENGTHENTYPE"
  83.                     "MILLISECS"
  84.                     "NFWSTATE"
  85.                     "NODENAME"
  86.                     "NOMUTT"
  87.                     "OPMSTATE"
  88.                     "OSNAPNODELEGACY"
  89.                     "PHANDLE"
  90.                     "POINTCLOUDEVENTLOG"
  91.                     "POINTCLOUDPERFTRACK"
  92.                     "POINTCLOUDPROGRESSIVEUPDATE"
  93.                     "PRESELECTIONEFFECTTEST"
  94.                     "PRESELECTIONNOTIFICATION"
  95.                     "PRODUCT"
  96.                     "PROGRAM"
  97.                     "QAFLAGS"
  98.                     "QAUCSLOCK"
  99.                     "SHORTCUTMENU"
  100.                     "SMJOURNAL"
  101.                     "SMTHREADHOTMODE"
  102.                     "SMUNFIXEDTRANSFORM"
  103.                     "SPACESWITCH"
  104.                 )
  105.             )
  106.             (defun :setvars ( lst )
  107.                 ;;  Send a cons-pair or cons-pairs lists of (varname . varvalue).
  108.                 ;;  eg (setq restore (ue2-setvars '((CMDECHO . 0)(REGENMODE 0))))
  109.                 ;;  Returns original values in the same cons-pair construct.
  110.                 ;;  >> ((CMDECHO . 1) (REGENMODE . 1))               
  111.                 (mapcar
  112.                     (function
  113.                         (lambda ( p / k r )
  114.                             (setq r (cons (setq k (car p)) (vl-catch-all-apply 'getvar (list k))))
  115.                             (vl-catch-all-apply 'setvar (list k (cdr p)))
  116.                             r
  117.                         )
  118.                     )
  119.                     (if (vl-list-length lst)
  120.                         lst
  121.                         (list lst)
  122.                     )
  123.                 )
  124.             )
  125.             (defun :main ( / restore flag handle stream lst )
  126.                 (setq restore
  127.                     (:setvars
  128.                        '(   (cmdecho     . 0)
  129.                             (logfilemode . 1)
  130.                             (qaflags     . 2)
  131.                         )
  132.                     )
  133.                 )
  134.                 (setq flag (strcat "START CAPTURE: " (rtos (getvar 'cdate) 2 8)))
  135.                 (princ (strcat "\n" flag))
  136.                 (command ".setvar" "_?" "*")
  137.                 (setq handle (open (getvar 'logfilename) "r"))
  138.                 (while (setq stream (read-line handle))
  139.                     (setq lst (cons stream lst))
  140.                 )
  141.                 (close handle)
  142.                 (:setvars restore)
  143.                 (setq lst (cdr (member flag (reverse lst))))
  144.                 (while (eq "" (vl-string-trim " \t\n" (car lst)))
  145.                     (setq lst (cdr lst))
  146.                 )
  147.                 (mapcar 'cadr
  148.                     (vl-sort
  149.                         (mapcar
  150.                             (function (lambda (x) (list (strcase x t) x)))
  151.                             (:unique
  152.                                 (append
  153.                                     ;;  add any vars AutoCAD may not normally include
  154.                                     (:undocumented)
  155.                                     (mapcar ':car-str lst)
  156.                                 )
  157.                             )
  158.                         )
  159.                         (function (lambda (a b) (: ")
  160.                     )
  161.                 )
  162.             )
  163.             "*"
  164.             spec
  165.         )
  166.     )
  167.     (defun :main ( / spec vars len name handle )
  168.         (cond
  169.             (   (null (setq vars (:matching-vars (setq spec (:get-spec)))))
  170.                 (princ (strcat "\nNo variables matched pattern '" spec "'."))
  171.             )
  172.             (   (setq
  173.                     len    (1+ (apply 'max (mapcar 'strlen vars)))
  174.                     name   (vl-filename-mktemp "vars.txt")
  175.                     handle (open name "w")
  176.                 )
  177.                 (princ (strcat "Variables matching pattern '" spec "':\n\n") handle)
  178.                 (foreach var vars
  179.                     (princ
  180.                         (strcat
  181.                             (:pad var len)
  182.                             (vl-prin1-to-string (getvar var))
  183.                             "\n"
  184.                         )
  185.                         handle
  186.                     )
  187.                 )
  188.                 (close handle)
  189.                 (startapp "notepad.exe" name)
  190.             )
  191.         )
  192.         (princ)
  193.     )
  194.     (:main)
  195. )

干杯。
回复

使用道具 举报

72

主题

738

帖子

75

银币

中流砥柱

Rank: 25

铜币
957
发表于 2018-3-7 12:16:50 | 显示全部楼层
一如既往的好,迈克尔
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
362
发表于 2018-3-7 12:20:47 | 显示全部楼层

同样!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:30 , Processed in 0.477753 second(s), 60 queries .

© 2020-2025 乐筑天下

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