Page 40 - AutoLISP и Visual LISP в среде AutoCAD
P. 40

2.17. СПРАВОЧНЫЕ ТАБЛИЦЫ


                      Информация о слоях, типах линий, видах, гарнитурах шрифтов, блоках,
                  пользовательской системе координат, размерных стилях и видовых экранах
                  AutoCad хранит в справочных таблицах. Для работы с ними предусмотрены
                  функции tblnext и tblsearch,  которые  просматривают  таблицу  и  выдают
                  содержащуюся в ней информацию.


                      (tblnext имя_таблицы [первый])
                      Первым  аргументом является  строковая  константа  имени  таблицы.
                  Допустимые имена таблиц – "LAYER",  "LTYPE"  "VIEW",  "STYLE",
                  "BLOCK", "UCS", "DIMSTYLE", "VPORT".
                      Функция tblnext возвращает следующее вхождение в указанную таблицу.
                  Если  аргумент         первый присутствует  и  не  равен nil,  чтение  таблицы
                  начинается с начала. Если вхождений в таблицу нет, возвращается nil. Если
                  вхождение найдено, возвращается список кодов и значений типа DXF.


                  Пример:
                  (tblnext "LAYER")
                  ; ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "CONTINUOUS"))
                  (tblnext "LAYER")
                  ; ((0 . "LAYER") (2 . "OSI") (70 . 64) (62 . 1) (6 . "CENTER2"))
                  (tblnext "LAYER")
                  ; ((0 . "LAYER") (2 . "OTHER") (70 . 64) (62 . 7) (6 . "CONTINUOUS"))
                  (tblnext "LAYER")
                  ; ((0 . "LAYER") (2 . "STRICH") (70 . 64) (62 . 2) (6 . "DASHED"))

                      (tblsearch имя_таблицы символ [следующий])
                      Если  аргумент следующий присутствует  и  не  равен nil, точка  входа
                  tblnext изменяется  так,  чтобы  следующий  вызов tblnext возвращал  точку
                  входа, следующую за возвращённой.
                      Пример:
                  (tblsearch "LAYER" "0" t)
                  ; ((0 . "LAYER") (2 . "0") (70 . 0) (62 . 7) (6 . "CONTINUOUS"))
                  (tblnext "LAYER")
                  ; ((0 . "LAYER") (2 . "OSI") (70 . 64) (62 . 1) (6 . "CENTER2"))























                                                                                                             39
   35   36   37   38   39   40   41   42   43   44   45