ADN Club > AutoLisp / VisualLISP и DCL

BYLAYER и ByLayer

(1/1)

BearDyugin:
В общем вот таким методом получал всегда например список типов линий чертежа

--- Код - Auto/Visual Lisp [Выбрать] ---(vlax-for item  (vla-get-Linetypes                          (vla-get-activedocument (vlax-get-acad-object))                        )           (setq Line_Type_name_list                  (cons (vla-get-name item)                        Line_Type_name_list                  )           )         )Потом находил текущий тип линии

--- Код - Auto/Visual Lisp [Выбрать] ---(setq Line_Type (getvar "CELTYPE")) И находил позицию текущего в общем списке

--- Код - Auto/Visual Lisp [Выбрать] ---(vl-position Line_Type Line_Type_name_list)И работало это без проблем. А тут пользователь скидывает чертёж где это не работает. Оказалось в базе чертежа записано заглавными BYLAYER BYBLOCK, а (getvar "CELTYPE") возвращает ByLayer и  ByBlock
Я конечно стал теперь текущий брать от туда же как и список всех, и теперь норм.

--- Код - Auto/Visual Lisp [Выбрать] ---(setq Line_Type  (vla-get-name (vla-get-ActiveLinetype acdoc)))Но вопрос остался, это глюк AutoCAD, или нормальная ситуация?

Александр Ривилис:

--- Цитата: BearDyugin от 22-12-2021, 19:51:28 ---Но вопрос остался, это глюк AutoCAD, или нормальная ситуация?
--- Конец цитаты ---
Это нормальная ситуация. Более того очень рекомендую сравнивать наименования (блоков, типов линий, слоев, etc.) приведенные к одному регистру.

Александр Ривилис:
А вот как можно получить вместо ByLayer значение BYLAYER:



А вот произвольное имя так присвоить нельзя.

Навигация

[0] Главная страница сообщений

Перейти к полной версии