ADN Club > AutoLisp / VisualLISP и DCL
Установление прозрачности примитивам
Алексей Кулик:
Доброго всем и с наступившим.
Понадобилось мне тут поиграться с прозрачностью примитивов (пока растры и маски не рассматриваю). В принципе задача, казалось бы, не должна вызывать проблем: через свойство EntityTransparetion устанавливать нужное значение - и все. Но при попытке установить прозрачность ПоСлою или ПоБлоку требуется указывать свойство с учетом локализации AutoCAD.
Т.е. для английской версии сработает только
--- Код - Auto/Visual Lisp [Выбрать] ---(vla-put-entitytransparency ent "ByLayer")(vla-put-entitytransparency ent "ByBlock")А для русской версии соответственно
--- Код - Auto/Visual Lisp [Выбрать] ---(vla-put-entitytransparency ent "ПоСлою")(vla-put-entitytransparency ent "ПоБлоку")Понятно, что можно попытаться изменить соответствующим образом 440-ю DXF группу, но для прозрачности "ByLayer" она отсутствует, а код вида
--- Код - Auto/Visual Lisp [Выбрать] ---(entmod (vl-remove-if (function (lambda (x) (= (car x) 440))) (entget (vlax-vla-object->ename ent)) ) ;_ end of vl-remove-if ) ;_ end of entmodсрабатывать отказывается. Эксперименты проводил в AutoCAD 2014 x64 + SP1.
Собственно вопрос - как можно установить прозрачность "ByLayer", забывая про локализацию AutoCAD?
Похоже, продолжительные каникулы все-таки разжижают мозги :)
Александр Ривилис:
Для BYLAYER: группа 440 отсутствует
Для BYBLOCK: группа 440 равна 16777216
Как-то так у меня получилось.
Алексей Кулик:
Да, это я понял. Мне не удается для примитива, у которого была установлена прозрачность (к примеру, "5"), установить прозрачность "ПоСлою" - т.е. убрать 440-ю группу. Через ActiveX это делается на ура, но хочется забыть про локализацию :(
Александр Ривилис:
А я попробовал заменить значение группы 440 на 0 и получил BYLAYER, при этом группа 440 исчезла, т.е. повторный (entget) её не возвращает. Проверял в AutoCAD 2014 SP1 x64 и 2015 SP2 x64
Алексей Кулик:
Отлично, спасибо! :) Вот бы в жизни не подумал, что подобное может срабатывать ;)
Навигация
Перейти к полной версии