| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Неправильный порядок замены шрифтов (font substitution) .shx

Неправильный порядок замены шрифтов (font substitution) .shx

Ответ
Поиск в этой теме
Непрочитано 11.11.2010, 22:40 #1
Неправильный порядок замены шрифтов (font substitution) .shx
Ax3
 
Programming, automation, CADs, GISs. "Теплоком"
 
Россия, Санкт-Петербург
Регистрация: 02.02.2007
Сообщений: 306

Привет, братья по каду.

пре-скриптум.
Знаю, что тем по шрифтам на форуме много, но честно, нет возможности их просмотреть. Поюзал поиск по слову "substituting" - решения не нашел.

Проблема слудующая.
У большей части пользователей все нормально. У отдельных пользователей некоторые шрифты (в частности mipgost.shx, bm431.shx), использованные в чертежах, заменяются при открытии этих чертежей шрифтом из переменной FONTALT (то есть чаще всего шрифтом simplex.shx).

Окружение проблемы (что я успел выяснить).
1. Это НЕ проблема чертежей. Один и тот же чертеж открывается на одних компах нормально, на других - с заменой использованных шрифтов на simplex.shx (или другой указанный в FONTALT).
2. Это НЕ проблема версии када. И в 2008-м, и в 2009-м с одним и тем же чертежом на одних компах все нормально, на других - замена.
3. Это НЕ проблема наличия соответствующего пути доступа. У всех пользователей в списке путей поддержки присутствует папка \\server\...\Шрифты, в которой сложены шрифты .shx, не входящие в стандартный комплект када. И большинство шрифтов из этой папки у ВСЕХ пользователей подгружаются нормально.
По этому пункту я сейчас проверяю два предположения:
1) Влияет ли порядок перечисления путей поддержки в настройках
2) Не возникает ли конфликт из-за одновременного использования двух папок со шрифтами (одна стандартная кадовская ...\Program Files\AutoCADxxx\Fonts, другая корпоративная \\server\...\Шрифты)
Ни 1), ни 2) пока не подтверждаются, но пока это не 100%.
4. Это НЕ проблема карт шрифтов. У всех пользователей FONTMAP и acad.fmp как минимум стандартные кадовские, туда никто никогда не лез (хотя этот момент я завтра перепроверю).

Самое интересное. Когда на проблемных кадах выставил FONTALT ="." (ну то есть пустое), шрифты (все имеющиеся!) стали нормально подгружаться. То есть шрифты ЕСТЬ и ДОСТУПНЫ! За каким лядом кад их меняет при непустом FONTALT - не могу понять. К сожалению, оставить пустое значение в FONTALT нельзя, так как в рабочей документации (полученной из внешнего мира) присутствует много разных шрифтов, и не все они есть в корпоративной папке со шрифтами (пока), поэтому автоподстановка simplex.shx вместо реально отсутствующих шрифтов очень важна. И еще после отключения FONTALT пару раз при открытии чертежей наблюдал сообщения об отсутствии описаний таких-то форм.

И еще. На одном компе попробовал в acad.fmp добавить строчку "mipgost;mipgost.shx" - все равно строчка отработала только после отключения FONTALT (очень забавно было видеть "substituting [mipgost.shx] for [mipgost.shx]"), что явно противоречит порядку замены шрифтов, описанному в справке:
Font substitution
File extension
.shx
First mapping order
Use font mapping table
Second mapping order
Use font defined in text style
Third mapping order
Use FONTALT
Fourth mapping order
Prompt for new font

То есть по каким-то причинам не нравятся каду некоторые имеющиеся .shx-ы, и он их упорно отказывается использовать, пока не отключишь FONTALT.

Только что вспомнил, что в той же корпоративной папке со шрифтами были когда-то сложены и одноименные .ttf-ы в надежде, что они там никому не будут мешать. Завтра проверю, не влияет ли это. Но даже если влияет - почему только на некоторых компах?

Есть еще предположение, что в текстах, использующих эти проблемные shx-ы, могут присутствовать символы, которых в сопоставленных shx-ах просто нет, и поэтому кад пытается искать более подходящие шрифты, чем назначенные в соответствующих текстовых стилях. но как это проверить - не знаю.

В общем вопрос-то в следующем. Поделитесь, плз, своими предположениями, какие еще могут быть причины возникновения описанной ситуации.
Буду благодарен за любые, даже из области фантастики, предположения.

П.С.
Завтра выпуск проекта, поэтому от меня надо кровь из носу чтоб утром все у всех заработало как надо... Потому что шрифт mipgost, например, используется в штампе. И обвинений в срыве сроков сдачи проекта в свой адрес ох как не хочется...

{Добавлено_2010.11.12_11.15.31}
Убрал все .ttf-ы из папки \\server\...\Шрифты, перепроверил установку (кое-где переустановил) .ttf-ов в системе (через Панель управления-Шрифты удалить/установить) - не помогло.
Кстати заметил, что и установленный в системе bm431.ttf тоже подменяется FONTALT-ом:
Код:
[Выделить все]
Substituting [simplex.shx] for [Bm431].
Substituting [simplex.shx] for [bm431.shx]
Содержимое acad.fmp (FONTMAP=%appdata%\Autodesk\...\acad.fmp):
Код:
[Выделить все]
cibt;CITYB___.TTF
cobt;COUNB___.TTF
eur;EURR____.TTF
euro;EURRO___.TTF
par;PANROMAN.TTF
rom;ROMANTIC.TTF
romb;ROMAB___.TTF
romi;ROMAI___.TTF
sas;SANSS___.TTF
sasb;SANSSB__.TTF
sasbo;SANSSBO_.TTF
saso;SANSSO__.TTF
suf;SUPEF___.TTF
te;TECHNIC_.TTF
teb;TECHB___.TTF
tel;TECHL___.TTF
{Добавлено _2010.11.12_17.49.46}
И еще одно подозрение родилось. Кажется, вся катавасия началась после установки всем пользователям одной очень полезной программки, которой потребовалось добавить путь поддержки в настройках када. Shx-ов по этому новому пути никаких нет, но все-таки, может, это как-то повлияло. Или список путей поддержки слишком большой стал (в настоящий момент 13 штук, половина из них довольно длинные, самый длинный 129 символов). Завтра проверю.
Пока пришлось-таки поотключать всем FONTALT.
Также прошерстил все пути поддержки на предмет дублирования shx-ов, поудалял дублирующиеся. Вроде в паре случаев помогло (причем только в 2008-м каде) (хотя нет уверенности, что именно это помогло), но в целом проблему не решило.

{Добавлено _2010.11.13_10.02.10}
Поэкспериментировал с путями поддержки. В конечном итоге поудалял все кроме \\server\...\Шрифты - ситуация не изменилась. Так что, видимо, проблема не в количестве путей поддержки и не в самих путях, последняя добавленная программа тут ни при чем.
Поправка по поводу acad.fmp. Без отключения FONTALT внешне отрабатывает, то есть как при загрузке чертежа или вставке блока пишет "substituting [mipgost.shx] for [mipgost.shx]", однако по факту для стиля, использующего mipgost.shx, все равно берет шрифт из FONTALT (simplex.shx в моем случае).

{Добавлено_2010.11.22_14.18.54}
Разобрался.
Просто в папке \\server\...\Шрифты\ я создал еще подпапку, куда складывал bak-и шрифтов. Да не суть важно даже, что я туда складывал - просто само наличие подпапки в папке шрифтов, видимо, сильно смущало AutoCAD. Как только удалил эту подпапку - все вернулось в норму, и FONTALT всем тут же стало можно вернуть в непустое значение.
Приношу свои извинения за подозрения в адрес mipgost.shx и bm431.shx - они ни в чем не виноваты. После устранения проблемы они прекрасно подгружаются и отображаются.

Все, проблема решена.
__________________
На LISPе можно мыслить!

Последний раз редактировалось Ax3, 22.11.2010 в 14:20.
Просмотров: 16937
 
Непрочитано 05.12.2010, 02:13
#2
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


А можно для общего развития узнать зачем нужен файл acad.fmp? Что делается с его помощью? (Должно делаться).
На всякий случай: я работаю только с ttf.

Почему спрашиваю. Только что у меня была проблемка - некоторые шрифты отображались крокозябрами или в одну тонкую линию. До тех пор, пока мне не сказали добавить все используемые шрифты в файл acad.fmp.
Вот это самое "некоторые" меня и озадачивает в первую очередь.
Второе, что озадачивает (может быть и больше всего) - то, что в формате текстовых стилей прямо же уже пишется, какой шрифт брать.
В-третьих, заменять нужно было не один шрифт на другой, а сам на себя, например: bm431;bm431.ttf.
Ну, и в-четвертых - получается, что нужно держать в голове, передавать заказчикам и пр. еще и подготовленный файл acad.fmp.
Или как? Дело в том, что шрифты ttf?
Вложения
Тип файла: rar Шрифты_bm431_d231.rar (10.2 Кб, 589 просмотров)

Последний раз редактировалось АлексЮстасу, 05.12.2010 в 02:34.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 18.12.2010, 12:44
#3
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


Прошу прощения, давно не заглядывал в тему.
в алгоритме подмены шрифтов acad.fmp обрабатывается первым (как следует из справки). Это позволяет сделать принудительную подмену шрифтов. То есть при открытии чертежа в первую очередь выполняется замена шрифтов по файлу acad.fmp. Да, в текстовых стилях прямо указывается, какой шрифт использовать, но acad.fmp позволяет выполнить принудительную подмену.
Да, его надо передавать заказчику, что очень неудобно, и на практике, судя по всему, вообще никто этого не делает.
Если в acad.fmp приходится прописывать замену шрифтов самих на себя - это больше похоже на глюк, подобный моему, и проблему надо решать как-то по-другому, имхо.
Однако в твоем примере прописывается, как я понимаю, принудительная подмена .shx-ов (ну или точнее шрифтов любого формата) на одноименные .ttf-ы. Если эти .ttf-ы установлены в системе пользователя - именно им будет отдаваться предпочтение.
__________________
На LISPе можно мыслить!

Последний раз редактировалось Ax3, 18.12.2010 в 13:05.
Ax3 вне форума  
 
Непрочитано 18.12.2010, 17:10
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Специально перенес все шрифты shx компьютера, названия которых повторяют названия нужных шрифтов ttf, в неведомую Автокаду папку.
Результат тот же. Некоторые шрифты отображаются правильно. Некоторые - крокозябрами (bm431), некоторые заменяются на шрифт, прописанный в FONTMAP (d231).
Но стоит шрифты ttf прописать тавтологически (сами на себя) в acad.fmp, и все отображается нормально.
"Заплатка" работает, но причина непонятна.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 24.12.2010, 12:08
#5
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


Всё-таки мне кажется, что:
1. Без прописанной в acad.fmp замены Автокад пытается использовать .shx-ы для тех стилей, где указано использование .shx-ных шрифтов, несмотря на то, что в системе имеются одноименные .ttf-ы. К чему это приводит? Если .shx-ы не найдены - они заменяются шрифтом, указанным в переменной FONTALT (чаще всего simplex.shx), отсюда и кракозябры.
2. При прописанной в acad.fmp замене Автокад НЕ ПЫТАЕТСЯ ИСКАТЬ .shx-ы, а сразу берет одноименные .ttf-ы, если, конечно, они в системе установлены. У тебя, видимо, установлены, и все тексты отображаются нормально.
То есть причина того, что "заплатка" работает, кажется мне вполне понятной.

Дополнение.
У меня твой чертеж открылся таким образом.
Текст, выполненный стилем Бм-431, отобразился кракозябрами, но когда я в стиле Бм-431 указал использование шрифта bm431.shx старой версии (у меня от называется bm431_2010.11.11) и сделал _.regenall - текст отобразился нормальным. Неувязки с версиями шрифтов и кодировками?? Более того, когда я в стиле Бм-431 указал использование актуального шрифта bm431 - текст остался нормальным.
Текст, выполненный стилем Д-231, открылся сразу нормально, но в нем использован векторный шрифт D231 (то есть шрифт из файла d231.ttf), который у меня в системе не установлен и, я так понимаю, он заменился каким-то другим, похожим на arial (вот тут для меня пока загадка, как Автокад заменяет не найденные векторные шрифты)
Все это при том, что в моем acad.fmp прописано никаких замен, кроме тех, что по умолчанию.
__________________
На LISPе можно мыслить!

Последний раз редактировалось Ax3, 24.12.2010 в 14:45.
Ax3 вне форума  
 
Непрочитано 24.12.2010, 15:20
#6
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Ax3 Посмотреть сообщение
1. Без прописанной в acad.fmp замены Автокад пытается использовать .shx-ы для тех стилей, где указано использование .shx-ных шрифтов, несмотря на то, что в системе имеются одноименные .ttf-ы. К чему это приводит? Если .shx-ы не найдены - они заменяются шрифтом, указанным в переменной FONTALT (чаще всего simplex.shx), отсюда и кракозябры.
Если бы использовался FONTALT, то ведь и кракозябр бы и не было?

Цитата:
Сообщение от Ax3 Посмотреть сообщение
2. При прописанной в acad.fmp замене Автокад НЕ ПЫТАЕТСЯ ИСКАТЬ .shx-ы, а сразу берет одноименные .ttf-ы, если, конечно, они в системе установлены. У тебя, видимо, установлены, и все тексты отображаются нормально.
То есть причина того, что "заплатка" работает, кажется мне вполне понятной.
Это и ест вопрос! Зачем Автокад вообще ПЫТАЕТСЯ ИСКАТЬ .shx-ы, если прописаны .ttf-ы??? Описаны в его же фирменном описании стилей текстов.

Цитата:
Сообщение от Ax3 Посмотреть сообщение
Д-231, открылся сразу нормально
Он не открылся нормально, а прочитал буковки, но шрифт-то другой - как раз из FONTALT simplex.shx.

Последний раз редактировалось АлексЮстасу, 24.12.2010 в 15:27.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 08.02.2011, 17:27
#7
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Это и ест вопрос! Зачем Автокад вообще ПЫТАЕТСЯ ИСКАТЬ .shx-ы, если прописаны .ttf-ы??? Описаны в его же фирменном описании стилей текстов.
Думаю, кад ищет .shx-ы только тогда, когда не нашлось в системе .ttf-а, указанного в описании стиля. То есть это говорит о том, что у тебя в системе не установлен .ttf-ный шрифт BM431 и/или D231, но в каде имеется его аналог bm431.shx и /или d231.shx.

Я щас ещё поисследую этот вопрос и отпишусь.
__________________
На LISPе можно мыслить!
Ax3 вне форума  
 
Непрочитано 08.02.2011, 23:04
#8
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Ax3 Посмотреть сообщение
Думаю, кад ищет .shx-ы только тогда, когда не нашлось в системе .ttf-а, указанного в описании стиля. То есть это говорит о том, что у тебя в системе не установлен .ttf-ный шрифт BM431 и/или D231, но в каде имеется его аналог bm431.shx и /или d231.shx.
Как же ж не установлен ttf-ный шрифт BM431? После дополнений в файле acad.fmp и этот BM431, и остальные прекрасно видны.
А shx-вские я же специально убирал в недоступное место - выше я писал.
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 09.02.2011, 09:26
#9
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


Да, верно... Я что-то запутался.
Может, без прописанной тавтологической замены винда подсовывает каду какие-нибудь прокси-шрифты или шрифты, которые считает "похожими"? Например, при определённых условиях у меня D231 открылся буквами, очень (прям совсем очень) похожими на @Arial Unicode MS. Правда, я пока не готов формализовать условия, при которых это произошло.
Ладно, разберёмся :-)
__________________
На LISPе можно мыслить!
Ax3 вне форума  
 
Непрочитано 18.04.2011, 14:36
#10
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от tivoli567 Посмотреть сообщение
Подскажите пожалуйста, как открыть файл SHX. Понятным языком, если возможно. Спасибо.
Никак?
Вроде бы сначала делают текстовый файл SHP, а после его компиляции получается SHX.
АлексЮстасу вне форума  
 
Непрочитано 18.04.2011, 14:59
#11
tivoli567


 
Регистрация: 20.01.2011
Сообщений: 20


А что мне делать тогда?)
Надо сделать смету проекта.. Я не могу открыть его. (первый раз столкнулась с такими файлами)
tivoli567 вне форума  
 
Непрочитано 18.04.2011, 15:02
#12
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


эээ... А как формат файла SHX связан со сметой??? Что, собственно, Вы ждете от этого файла?
АлексЮстасу вне форума  
 
Непрочитано 18.04.2011, 15:08
#13
tivoli567


 
Регистрация: 20.01.2011
Сообщений: 20


ну как, мне надо видеть чертеж, чтобы обсчитать стоимость)
tivoli567 вне форума  
 
Непрочитано 18.04.2011, 15:27
#14
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от tivoli567 Посмотреть сообщение
ну как, мне надо видеть чертеж, чтобы обсчитать стоимость)
1. Найти поиском запрашиваемый файл на компьютере. И при открывании своего файла указать этот SHX.
2. Взять этот SHX у того, кто дал чертеж.
3. Нажать Cancel при запросе этого файла, и чертеж откроется.

SHX - файлы, содержащие описания шрифтов или пользовательских элементов типов линий. Если Вы не укажете никакой файл (Cancel == Отмена), то чертеж Вы благополучно увидите, просто шрифты и типы линий не будут такими, как их создали. Но смете это не помешает, вероятно.
АлексЮстасу вне форума  
 
Непрочитано 18.04.2011, 15:43
#15
tivoli567


 
Регистрация: 20.01.2011
Сообщений: 20


spasibo, poprobuju.
tivoli567 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Неправильный порядок замены шрифтов (font substitution) .shx

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Зашивка" шрифтов (.shx) в dwg-файл deserpent AutoCAD 2 26.01.2010 21:31