BYLAYER и ByLayer

Автор Тема: BYLAYER и ByLayer  (Прочитано 6794 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн BearDyuginАвтор темы

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
BYLAYER и ByLayer
« : 22-12-2021, 19:51:28 »
В общем вот таким методом получал всегда например список типов линий чертежа
Код - Auto/Visual Lisp [Выбрать]
  1. (vlax-for item  (vla-get-Linetypes
  2.                           (vla-get-activedocument (vlax-get-acad-object))
  3.                         )
  4.            (setq Line_Type_name_list
  5.                   (cons (vla-get-name item)
  6.                         Line_Type_name_list
  7.                   )
  8.            )
  9.          )
Потом находил текущий тип линии
Код - Auto/Visual Lisp [Выбрать]
  1. (setq Line_Type (getvar "CELTYPE"))
  2.  
И находил позицию текущего в общем списке
Код - Auto/Visual Lisp [Выбрать]
  1. (vl-position Line_Type Line_Type_name_list)
И работало это без проблем. А тут пользователь скидывает чертёж где это не работает. Оказалось в базе чертежа записано заглавными BYLAYER BYBLOCK, а (getvar "CELTYPE") возвращает ByLayer и  ByBlock
Я конечно стал теперь текущий брать от туда же как и список всех, и теперь норм.
Код - Auto/Visual Lisp [Выбрать]
  1. (setq Line_Type  (vla-get-name (vla-get-ActiveLinetype acdoc)))
Но вопрос остался, это глюк AutoCAD, или нормальная ситуация?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: BYLAYER и ByLayer
« Ответ #1 : 22-12-2021, 20:26:02 »
Но вопрос остался, это глюк AutoCAD, или нормальная ситуация?
Это нормальная ситуация. Более того очень рекомендую сравнивать наименования (блоков, типов линий, слоев, etc.) приведенные к одному регистру.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: BYLAYER и ByLayer
« Ответ #2 : 22-12-2021, 20:49:36 »
А вот как можно получить вместо ByLayer значение BYLAYER:



А вот произвольное имя так присвоить нельзя.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение