ADN Club > Адаптация AutoCAD и вертикальных приложений

Не правильно создаются иконки на инструментальной палитре для блоков

(1/2) > >>

Привалов Дмитрий:
AutoCAD 2010x32
Созданы блоки для оформления планов пожарной безопасности, наподобие:


полилиния-рамка и зеленая штриховка спереди, а белая штриховка сзади.

В чертеже-хранилище блоков все нормально отображается.

При перетаскивании на палитру инструментов часть иконок для блоков создалась нормально, часть явно с нарушенным порядком прорисовки штриховок. т.е. белый квадрат периодически что-нибудь перекрывает на некоторых блоках.
Пробовал обновить иконки блоков
(command "_blockicon" "*") не помогло, при этом в диалоге вставки блоков отображается правильно.

Подозреваю что существует какой-то кэш, т.к. пробовал удалять блок с палитры, закрывать автокад, менять внешний вид блока, менять порядок следования, цвет штриховок, удалять из папки Images в палитре, снова вставлять но он упорно вставляет первое неверное изображение.
Может кто знает как исправить?

Александр Ривилис:
Даже если это баг в AutoCAD 2010, то смысла о нём говорить нет никакого - ему уже 10 лет.
Могу лишь посоветовать переделать сами блоки, так чтобы в них был правильный порядок прорисовки, но без использования DrawOrder (т.е. создать новые блоки и скопировать в них примитивы в нужном порядке).

Привалов Дмитрий:

--- Цитата: Александр Ривилис от 17-04-2019, 23:57:15 ---Могу лишь посоветовать переделать сами блоки, так чтобы в них был правильный порядок прорисовки, но без использования DrawOrder (т.е. создать новые блоки и скопировать в них примитивы в нужном порядке).
--- Конец цитаты ---

Тут кажется 2 проблемы DrawOrder в момент создания иконок и кэширование этих иконок
Я попытался переделать блоки разными способами,  но не вижу изменения в иконках для уже перетащенных в палитру блоков.
Если модифицировать блок, переименовать и перетащить на палитру, то изображение меняется.
AutoCAD похоже их закэшировал, возможно в CUIX закинул, или в какую-то другую папку сегодня искать буду.


--- Цитата: Александр Ривилис от 17-04-2019, 23:57:15 ---Даже если это баг в AutoCAD 2010, то смысла о нём говорить нет никакого - ему уже 10 лет.
--- Конец цитаты ---
Скорее всего это не баг, а не реализованная поддержка порядка прорисовки примитивов в блоке при создании иконок палитры в AutoCAD2010.  Возможно с какой-то версии добавили.

Привалов Дмитрий:

--- Цитата: Александр Ривилис от 17-04-2019, 23:57:15 ---Даже если это баг в AutoCAD 2010, то смысла о нём говорить нет никакого - ему уже 10 лет.
Могу лишь посоветовать переделать сами блоки, так чтобы в них был правильный порядок прорисовки, но без использования DrawOrder (т.е. создать новые блоки и скопировать в них примитивы в нужном порядке).

--- Конец цитаты ---
И все-таки баг 2010. Пол дня убил на тестирование. (((((

1. Смысл говорить есть, т.к. конторы сидят на тех версиях AutoCAD, которые купили. И новые версии, к сожалению, многие купить не в состоянии из-за "особенностей экономики России". А также из-за рисков отсутствия постоянных лицензий и санкций.

2. Первое что сделал проверял как и когда создаются иконки при перетаскивании блока в палитру.
2.1 Берется имя перетаскиваемого блока
2.2 По имени блока AutoCAD берет информацию из DWG файла на диске и создает иконку в папке палитры ToolPalette\Palettes\Images.

Вот тут я и застрял вчера. Иконка создается не из открытого файла! Ранее думал что AutoCAD ругается на состояние чертежа, что изменен и не сохранен, это не так. Он ругается на отсутствие файла на диске или имени блока в файле, на состояние открытого файла ему наплевать. Специально перебирал варианты с переименованием блоков. Т.е. нужно сохранить файл и перетаскивать, тогда все изменения видны.

3. Далее анализировал порядок примитивов в блоке и порядок прорисовки блока.
3.1 При вставке блока из палитры в новый чертеж не копируется порядок прорисовки. Т.е. переделка блоков в данной версии актуальна для блоков, в которых порядок прорисовки важен! Вот тут было бы полезно знать копируется ли в новой версии, и с какой версии AutoCAD копируется порядок прорисовки блоков? Но это я багом не считаю, скорее недоделка.

3.2 А вот собственно и баг 2010! А иконка то создается в обратном порядке следования примитивов в блоке, а не прямом как при вставке и на порядок прорисовки блока ей наплевать. Интересно также, исправлено ли и с какой версии?

4. Быстрый ХУК для 2010 который пришел мне в голову:
4.1 Перестроить с помощью API примитивы блоков в чертеже в соответствии с порядком прорисовки, чтобы не иметь проблем со вставкой.
4.2 Сохранит копию файла.
4.3 Перестроить с помощью API примитивы блоков в чертеже в обратном порядке следования в блоке.
4.4 Перетащить блоки на палитру с правильными иконками.
4.5 Заменить файл обратно из копии.

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

--- Цитата: Привалов Дмитрий от 18-04-2019, 10:34:38 ---1. Смысл говорить есть, т.к. конторы сидят на тех версиях AutoCAD, которые купили. И новые версии, к сожалению, многие купить не в состоянии из-за "особенностей экономики России". А также из-за рисков отсутствия постоянных лицензий и санкций.

--- Конец цитаты ---
Я имел в виду, что если это баг в столь древней версии, то его Autodesk исправлять не будет. Это очевидный факт.

Навигация

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

[#] Следующая страница

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