Доброго всем и с наступившим.
Понадобилось мне тут поиграться с прозрачностью примитивов (пока растры и маски не рассматриваю). В принципе задача, казалось бы, не должна вызывать проблем: через свойство EntityTransparetion устанавливать нужное значение - и все. Но при попытке установить прозрачность ПоСлою или ПоБлоку требуется указывать свойство с учетом локализации AutoCAD.
Т.е. для английской версии сработает только
(vla-put-entitytransparency ent "ByLayer")
(vla-put-entitytransparency ent "ByBlock")
А для русской версии соответственно
(vla-put-entitytransparency ent "ПоСлою")
(vla-put-entitytransparency ent "ПоБлоку")
Понятно, что можно попытаться изменить соответствующим образом 440-ю DXF группу, но для прозрачности "ByLayer" она отсутствует, а код вида
(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?
Похоже, продолжительные каникулы все-таки разжижают мозги