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:
А вот произвольное имя так присвоить нельзя.
Навигация
Перейти к полной версии