Как научить acad 2008(2010) понимать text override из acad 2002?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как научить acad 2008(2010) понимать text override из acad 2002?

Как научить acad 2008(2010) понимать text override из acad 2002?

Ответ
Поиск в этой теме
Непрочитано 07.02.2011, 22:16 #1
Как научить acad 2008(2010) понимать text override из acad 2002?
atum
 
Краматорск-Донбасс-Украина
Регистрация: 07.02.2011
Сообщений: 7

Всем добрый вечер!
Есть проблема! Acad 2008 и acad 2010 не понимает значения поля text override размера при открытии чертежей, созданных в acad 2002. Чертежей очень много!!!! Что необходимо сделать?
Помогите!!!
Размер в acad2002

Размер в acad2008

Миниатюры
Нажмите на изображение для увеличения
Название: Размер в acad 2002.png
Просмотров: 476
Размер:	4.6 Кб
ID:	53201  Нажмите на изображение для увеличения
Название: Размер в acad 2008.png
Просмотров: 468
Размер:	4.2 Кб
ID:	53202  

Просмотров: 4080
 
Непрочитано 08.02.2011, 15:56
#2
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


Может проблема со шрифтами? Которые есть в 2002, но нет в 2008?
При загрузке файла в 2008 после загрузки нажать F2. Там ничего нет типа шрифт такой-то не найден, заменен на....???
Тогда поможет загрузка шрифта в 2008.
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Автор темы   Непрочитано 08.02.2011, 17:43
#3
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


Проблем со шрифтами нет.
Дело в том, что acad2002 - acad2007 понимет кодировку, например, показатель степени (допуска в размере) в таком виде в поле text override:
<>`+`0`.`2`5
А acad 2008 не понимает и пишет, то что видит .
В нем кодировка показателя степени (допуска в размере), если проставить размер заново, выглядит следующим образом:
<>{}{\H0.71x;\C3\S\+0.25^;}
Вот в это вся и загвоздка.
Какие у кого есть еще предложения? Помогите!
atum вне форума  
 
Непрочитано 08.02.2011, 19:13
#4
forMA


 
Регистрация: 25.08.2005
Сообщений: 2,556


А в оригинале 2002-ом так было записано: <>\H.71x\S+0.25^ ? Или так: <>{}{\H.71x;\C3\S\+0.25^;} ?
Еще, попробуй перегнать через DXF.
forMA вне форума  
 
Автор темы   Непрочитано 08.02.2011, 21:53
#5
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


В оригинале было как указано выше.
DXF не помог, но буду пробовать еще.
Вот скрин свойств размера из 2002
Миниатюры
Нажмите на изображение для увеличения
Название: свойства размера acad 2002.jpg
Просмотров: 439
Размер:	12.4 Кб
ID:	53343  
atum вне форума  
 
Непрочитано 08.02.2011, 22:39
#6
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


В AutoCAD 2002 в размерах использовался обычный текст, в 2008 - мультитекст. Я на 99.999% уверен, что дело именно в шрифте, в котором символ ` выполнял функцию надстрочного текста. Этот шрифт судя по всему неюникодовый и AutoCAD 2008 работать с ним нормально не будет. Мой совет - писать программу (ObjectARX/LISP/.NET), которая произведет интеллектуальную замену строк в размерах. Другого способа я не вижу.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 09.02.2011, 10:04
#7
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


Александр, спасибо и на этом. Буду думать как воплотить это в жизнь, учитывая, что в программировании я не силен. Но попробую разобраться.
А может еще у кого есть какие варианты?
atum вне форума  
 
Непрочитано 09.02.2011, 11:53
#8
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Попробуй найти файл шрифта, который использовался в AutoCAD 2002. Может всё-таки удастся малой кровью заменой шрифта добиться нужного результата. Но это будут полумеры.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 09.02.2011, 16:09
#9
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


пасиба. Буду пробовать.
atum вне форума  
 
Автор темы   Непрочитано 18.02.2011, 11:52
#10
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


Ура. Этот вопрос я решил, почитав help acad2008. Нашел используемый shx шрифт (он присутствовал и в 2008/2010) и в нем исправил ACCII кодировку символа, по которому проставляется верхний индекс (в данном сучае поставил десятичный код "`" 96 ).
Всем спасиба.
atum вне форума  
 
Непрочитано 18.02.2011, 12:12
#11
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,921


Цитата:
Сообщение от atum Посмотреть сообщение
исправил ACCII кодировку символа
А можно подробнее, пожалуйста?
engngr вне форума  
 
Непрочитано 18.02.2011, 12:52
#12
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от atum Посмотреть сообщение
ACCII
Наверное имелось в виду ASCII.

Последний раз редактировалось Александр Ривилис, 18.02.2011 в 13:01.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 18.02.2011, 20:59
#13
atum


 
Регистрация: 07.02.2011
Краматорск-Донбасс-Украина
Сообщений: 7


Опечатка вышла. Правильно ASCII.
В качестве пояснения приведу боооольшую цитату из мануала по ACAD2008. Сразу скажу, что до меня в редактируемом шрифте, приведенные ниже строки (но с другими цифрами и кодами ASCII) были прописаны кем-то. Хотя там для верхнего индекса указывался другой символ, но acad2002 почему-то нормально понимал символ "`" (почему? Разбираться не стал). Поэтому я поменял только одно значение для верхнего индекса (десятичный код 96 для символа "`"). Всё заработало, поэтому больше ничего не стал менять. И если возникнут проблемы например с нижним индексом, я уже знаю, что надо делать.

Верхние и нижние индексы в SHX-файлах

Для усовершенствования отображения верхних и нижних индексов в текстовых строках нужно внести некоторые изменения в соответствующие файлы описания форм.
SHX-шрифты AutoCAD обладают лишь ограниченными возможностями написания верхних и нижних индексов в текстовых строках. Однако бороться с этим сравнительно просто: нужно внести некоторые изменения в соответствующие файлы описания форм.

Процесс нанесения верхних и нижних индексов проходит в два этапа. Вначале необходимо сместить вверх или вниз “воображаемое перо”, с помощью которого, вектор за вектором, отрисовывается текст. Затем производится уменьшение “масштаба” шрифта. В дополнение к этому требуются еще две обратные операции, которые возвращают шрифт в нормальное состояние. В описание шрифта следует добавить четыре новых символьных клавиши: две для включения/отключения верхних
индексов и две - для нижних. Чтобы не трогать уже имеющиеся описания, лучше отвести под переход на уменьшенный шрифт клавиши малой цифровой клавиатуры.

Добавление описаний верхних и нижних индексов к описанию шрифта

Описанная в данном примере процедура иллюстрирует модификацию шрифта AutoCAD с именем Romans, но такой же метод можно приложить к любому шрифту AutoCAD.
К описанию шрифта добавляются четыре новые формы:
super_on, super_off, sub_on и sub_off, которые управляют положением и размером следующих за ними символов. Для простоты в данном примере под новые операции задействованы символы квадратных скобок ([и]) и фигурных скобок ({и}).
Пользователь может выбрать для данной операции другие символы или использовать номера форм из расширенной части таблицы ASCII (коды от 128 до 256). В последнем случае для размещения новых символов потребуется ввод кода %%nnn (где nnn - это ASCII-код символа).

1 Отредактируйте файл SHP в текстовом редакторе.
2 Найдите описания форм для символов, которые нужно заменить. Для того чтобы новые описания форм вступили в силу, перед каждой строкой,
содержащей старое описание, нужно поставить точку с запятой, тогда она будет считаться комментарием. Описание формы может состоять из нескольких строк.
Символы квадратных скобок имеют коды ASCII 91 и 93 (для шрифтов Unicode используются шестнадцатеричные значения 05B и 05D). Символы фигурных скобок имеют коды ASCII 123 и 125 (шестнадцатеричные значения 07B и 07D).
3 Сложите первое и второе значения из второй строки описания и разделите полученную сумму на 2, как показано в следующем примере:
*UNIFONT,6,расширенный одноштриховой Roman для UNICODE
21,7,2,0 21 + 7 = 28, затем 28 / 2 = 14. Полученное число будет
использоваться в дальнейшем.
4 Добавить следующие строки в конец SHP-файла:
*91,8,super_on
2,8,(0,14),003,2,1,0
*93,8,super_off
2,004,2,8,(0,-14),1,0
*123,8,sub_on
2,8,(0,-14),003,2,1,0
*125,8,sub_off
2,004,2,8,(0,14),1,0

Обратите внимание на значения 14 и –14, использующиеся в этих строках. Это смещения по оси Y для воображаемого пера. Значение 14 - это половина максимальной высоты символов данного шрифта, что является правильным приближенным значением для верхних и нижних индексов. Это значение необходимо вычислять для каждого файла шрифта отдельно, но пользователь может изменить его по своему желанию.
5 Сохраните файл.
6 Скомпилируйте SHP-файл с помощью команды _compile.
После того как форма откомпилирована и задан нужный стиль, можно вызывать новые команды для поднятия и опускания пера путем ввода символов [, ], {, и }.
Символ [ наносит верхний индекс, а символ ] возвращает шрифт в нормальное состояние. Символ { наносит нижний индекс, а символ } возвращает шрифт в нормальное состояние.

В моём случае, как уже говорилось, символ ` наносит верхний индекс.

Последний раз редактировалось atum, 18.02.2011 в 21:05.
atum вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как научить acad 2008(2010) понимать text override из acad 2002?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17
Express Tools Perezz!! AutoCAD 483 13.02.2015 10:57
перенос данных и автокада в эксель evg76 Программирование 31 29.10.2013 14:55
Сомневаюсь в правильности своего перевода hwd Программирование 11 26.10.2009 08:43
Сетевой ACAD 2002 и WIN_XP_PRO_SP2 mike7 AutoCAD 11 17.01.2005 16:24