Получить оригинальное имя команды

Иногда требуется в локализованной версии AutoCAD узнать "оригинальное" имя команды.

Ничего сложного, уже много раз обсуждалось. Так, чтобы самому не забыть: есть функция getcname:

1
(getcname "отрезок") ; "_LINE"

И так далее :)

Размещено в Новости · Метки: ,



Комментарии

Есть 3 коммент. к “Получить оригинальное имя команды”
  1. tc71 пишет:

    А нельзя ли прикрутить лисп (getcname "nnn") ; "zzz" с сокращением до пользовательского ввода и на кнопку его повесить.

    Т.е. вызов
    вбил команду
    получил перевод

  2. tc71 пишет:

    Есть еще способ
    алгоритм: набираем на клаве "_box", затем жмем Esc, после "Enter", читаем перевод - "ЯЩИК")

  3. Кулик Алексей aka kpblc пишет:

    Прекрасно... Задача обратная - находясь в локализованной версии, не зная оригинального имени команды, вычислить его.

    P.S. Прикрутить лисп можно, почему нет:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    (defun c:getname (/ str cmd)

      (if (= (vla-get-localeid (vlax-get-acad-object)) 1049)
        (if (and (= (type
                      (setq
                        str
                         (vl-catch-all-apply
                           (function
                             (lambda ()
                               (getstring "\nВведите имя команды <Отмена> : ")
                               ) ;_ end of lambda
                             ) ;_ end of function
                           ) ;_ end of vl-catch-all-apply
                        ) ;_ end of setq
                      ) ;_ end of type
                    'str
                    ) ;_ end of =
                 (= (type (setq cmd (vl-catch-all-apply
                                      (function
                                        (lambda ()
                                          (getcname str)
                                          ) ;_ end of lambda
                                        ) ;_ end of function
                                      ) ;_ end of vl-catch-all-apply
                                ) ;_ end of setq
                          ) ;_ end of type
                    'str
                    ) ;_ end of =
                 ) ;_ end of and
          (princ (strcat "\nВведенное имя команды : "
                         str
                         "\nОригинальное имя команды : "
                         cmd
                         ) ;_ end of strcat
                 ) ;_ end of princ
          (princ "\nУказанное имя команды не найдено")
          ) ;_ end of if
        (princ
          "\nYou can't get original command name within not Russian version!"
          ) ;_ end of princ
        ) ;_ end of if
      (princ)
      ) ;_ end of defun

    По старой привычке добавил массу проверок и отловов ошибок :)
    P.S. Код особо не проверял.

Поделитесь своим мнением


Я не робот.