|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 15.06.2005
Сообщений: 184
|
спасибо, с № разобрался. просто добавил его и все, а *033 трогать не надо было.
так значит код *02116 соответствует нажатию shift+3 на рус. раскладе? выходит что так? если да, то где можно посмотреть эти коды, я имею ввиду какой кнопке что соответствует, чтобы при необходимости можно было бы заменить что-то ненужное на что-то полезное. *033 - это 3 на клаве *034 - это 4 на клаве. а какой например код соответствует { или } ? |
|||
|
||||
В лиспе есть ф-ция ACSII. чтобы узнать ASCII код символа
В ком. стоке набираешь (ascii "Ё") - 168 (ascii "ё")-184, это десятичное смещение в таблице ASCII, в shp файлах используется 16-тиричное (HEX). Удобно переводить обычным виндовским калькулятором в инженерном режиме (Вид->инженерный). Набираешь число в дес. системе и переключаешь в HEX. Так Dec 168 -> Hex A8. Добавляем символ 0 и ищем в shp строку *0A8 - это место описания Ё. Это касается 256 символов (управляющие (до 32), англ. алфавит, рус. алфавит). Из управляющих в shp отались *0A - перевод строки (line feed или lf) и *020 пробел. |
||||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
http://www.microsoft.com/globaldev/tools/msklc.mspx Однако более гибкая возможность предоставляется при использовани http://www.ecw.hu/szp-software/keys_en.html и уникодовских последовательностей \U+XXXX XXXX - код симбола. При этом можно вводить последовательности из нескольких символов. И, на всякий случай, ссылка на кириличную страницу от unicode.org http://www.unicode.org/charts/PDF/U0400.pdf |
|||
|
||||
Вот нашел в хелпе
Цитата:
|
||||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Залётный, я же и говорю, что я подотстал малость
в этом деле, т.к. сменился круг обязанностей. Так, по необходимости поддерживаю "по вечерам" старые наработки - пользователей-то жалко, привыкли они. :-)
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
Ё уникодовский код 0401 - состоит из двух частей 0415 и 0308 (если они есть у вас в шрифте). Я просто использую сивол с кодом 00CB - LATIN CAPITAL LETTER E WITH DIAERESIS (но опять же этот символ должен быть в вашем шрифте). Для основы моего шрифта я использую simplex.shx и там он есть. В последних версиях Autocad этот фонт явно не виден т.к. Autodesk спрятал его в пользовательскую директорию. Код для буквы Ё выглядит так: *00401,4,cyrillic capital letter io 007,00CB,0 ; т.е. для символа 0401 рисовать shape 00CB Ё - код 0401, но он рисует 00CB Использовать код 00CB вместо кода 0401 для отображения буквы Ё, хотя они выглядят одинаково, считаю не правильным т.к. проверка грамотности будет понимать её как чуждый элемент. ё уникодовский код 0451 - состоит из 0435 и 0308 Для буквы ё я использую код: *00451,4,cyrillic small letter io 007,00ЕB,0 (смотри пояснения к букве Ё) Приимущества стандартного расположения букв в соответствии с уникод в том, что если отправили чертеж и забыли приложить фонт, то получатель может замeнить его на любой стандартный фонт (нaверное наиболее полный набор символов в arialuni.ttf, который имеется на любом XP компьютере, правда весит 22M) и правильно прочесть текст. В своем фонте стараюсь использовать символы, которые уже присутствуют в нем. Например, для надстрочных и подстрочных символов (коды 2070 - 209F) использую оригинальные и только маштабирую их и смещаю. ;------------- *02070,16,superscript ZERO 2,8,(0,14),003,2, 007,0030, 004,2,8,(0,-14),1,0 *02071,16,superscript i 2,8,(0,14),003,2, 007,0069, 004,2,8,(0,-14),1,0 *02074,16,superscript FOUR 2,8,(0,14),003,2, 007,0034, 004,2,8,(0,-14),1,0 *02075,16,superscript FIVE 2,8,(0,14),003,2, 007,0035, 004,2,8,(0,-14),1,0 *02076,16,superscript SIX 2,8,(0,14),003,2, 007,0036, 004,2,8,(0,-14),1,0 *02077,16,superscript SEVEN 2,8,(0,14),003,2, 007,0037, 004,2,8,(0,-14),1,0 *02078,16,superscript EIGHT 2,8,(0,14),003,2, 007,0038, 004,2,8,(0,-14),1,0 *02079,16,superscript NINE 2,8,(0,14),003,2, 007,0039, 004,2,8,(0,-14),1,0 *0207A,16,superscript + 2,8,(0,14),003,2, 007,002B, 004,2,8,(0,-14),1,0 *0207B,16,superscript - 2,8,(0,14),003,2, 007,002D, 004,2,8,(0,-14),1,0 *0207C,16,superscript = 2,8,(0,14),003,2, 007,003D, 004,2,8,(0,-14),1,0 *0207D,16,superscript ( 2,8,(0,14),003,2, 007,0028, 004,2,8,(0,-14),1,0 *0207E,16,superscript ) 2,8,(0,14),003,2, 007,0029, 004,2,8,(0,-14),1,0 *0207F,16,superscript N 2,8,(0,14),003,2, 007,006E, 004,2,8,(0,-14),1,0 ;-------------------------- *02080,16,subscript ZERO 2,8,(0,-2),003,2, 007,0030, 004,2,8,(0,2),1,0 *02081,16,subscript ONE 2,8,(0,-2),003,2, 007,0031, 004,2,8,(0,2),1,0 *02082,16,subscript TWO 2,8,(0,-2),003,2, 007,0032, 004,2,8,(0,2),1,0 *02083,16,subscript THREE 2,8,(0,-2),003,2, 007,0033, 004,2,8,(0,2),1,0 *02084,16,subscript FOUR 2,8,(0,-2),003,2, 007,0034, 004,2,8,(0,2),1,0 *02085,16,subscript FIVE 2,8,(0,-2),003,2, 007,0035, 004,2,8,(0,2),1,0 *02086,16,subscript SIX 2,8,(0,-2),003,2, 007,0036, 004,2,8,(0,2),1,0 *02087,16,subscript SEVEN 2,8,(0,-2),003,2, 007,0037, 004,2,8,(0,2),1,0 *02088,16,subscript EIGHT 2,8,(0,-2),003,2, 007,0038, 004,2,8,(0,2),1,0 *02089,16,subscript NINE 2,8,(0,-2),003,2, 007,0039, 004,2,8,(0,2),1,0 *0208A,16,subscript + 2,8,(0,-2),003,2, 007,002B, 004,2,8,(0,2),1,0 *0208B,16,subscript - 2,8,(0,-2),003,2, 007,002D, 004,2,8,(0,2),1,0 *0208C,16,subscript = 2,8,(0,-2),003,2, 007,003D, 004,2,8,(0,2),1,0 *0208D,16,subscript ( 2,8,(0,-2),003,2, 007,0028, 004,2,8,(0,2),1,0 *0208E,16,subscript ) 2,8,(0,-2),003,2, 007,0029, 004,2,8,(0,2),1,0 *02090,16,subscript a 2,8,(0,-2),003,2, 007,0061, 004,2,8,(0,2),1,0 *02091,16,subscript e 2,8,(0,-2),003,2, 007,0065, 004,2,8,(0,2),1,0 *02092,16,subscript o 2,8,(0,-2),003,2, 007,006F, 004,2,8,(0,2),1,0 *02093,16,subscript x 2,8,(0,-2),003,2, 007,0078, 004,2,8,(0,2),1,0 в том же духе и для дробей (коды 2150 - 215f) и (00BC - 00BE) Приношу извинение за столь длинное послание, но может кому-нибудь и пригодится. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Всем привет!
Вот уж не думал, что придется возвращаться к этому вопросу... Проблема вот в чем. Давным давно, в незапамятные времена понадобилось нам добавить в шрифт степень 2 и 3. То ли посмотрев на один из вариантов ASCII- раскладки, то ли по какой еще причине, были добавлены символы *253,20,sq 2,8,(0,70),1,10,(11,-045),9,(-22,-21),(22,0),(0,0),2,8,(20,-41),0 *254,26,n3d 2,8,(0,52),1,10,(11,046),9,(-5,0),(0,0),2,8,(5,0),1,10,(9,066),2,8,(40,-72),0 И работали мы в DOS-версии ACADa и горя не знали. Пришла пора Windows (ACAD-14) и эти символы трансформировались в виде *189,20,sq 2,8,(0,70),1,10,(11,-045),9,(-22,-21),(22,0),(0,0),2,8,(20,-41),0 *190,26,n3d 2,8,(0,52),1,10,(11,046),9,(-5,0),(0,0),2,8,(5,0),1,10,(9,066),2,8,(40,-72),0 В WINDOWSe эти символы выглядят, как "Ѕ" и "ѕ" - не путать с буквами "S" и "s" - выглядят одинаково, но код другой. Почему в эти коды - уже и не вспомню. Вероятно, так перекодировала одна из программ-перекодировщиков. Впрочем, вплоть до ACAD-2002 мы опять же горя не знали. Пришла пора переделывать шрифты на юникод. Добавили эти символы в виде: *000BD,20, степень 2 2,8,(0,70),1,10,11,-045,9,(-22,-21),(22,0),(0,0),2,8,(20,-41),0 *000BE,26, степень 3 2,8,(0,52),1,10,11,046,9,(-5,0),(0,0),2,8,(5,0),1,10,9,066,2,8,(40,-72),0 ... и получился маленький облом. Т.е., если писать текстовые строки в виде "мм%%189 м%%190", то все отображается, как надо. Но если открыть в ACAD-2004 (а новый шрифт мы поставили под него) старые файлы, то получаются "знаки вопроса". Зная, что символ № задается, как *02116,99, № логично предположить, что где-то в районе этого числа живут и коды наших степеней 2 и 3. Вопрос для тех, кто смог дочитать до конца :-) - какие это коды?
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 19.03.2004
Калининград
Сообщений: 1,842
|
Все как-то слишком непонятно.
В юникодовской таблице для степеней 2 и 3 зарезервированы позиции с кодом 00B2, 00B3. Но, если в шрифте степени прописаны под кодами 00BD (189) и 00BE (190), то соответствующие символы и должны отображаться. Вполне воэможно появление знаков вопроса в файлах чертежей, в которых коды знаков степеней старые (253, 254), а в шрифте у вас забит новый код. |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Поясняю. Строка, которая в диалоге редактирования
выглядит, как: мм%%189 мS отображается на экране, как: мм[квадрат] м? Т.е. вроде бы должно все получаться, хорошо (код в шрифт вставлен), но не получается... :-( Способ ввода символа через %% работает, а "прямым кодом" - нет. Весь сыр-бор из-за необходимости обеспечить корректное отображение без переделки в АКАД-2004 с юникодовским фонтом файлов АСАД-14...АСАД-2002, выполненных с использованием обычного фонта. Файлы фонтов, разумеется, называются одинаково.
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Привет!
Да в том-то и дело, что сейчас именно так и сделано. >00B2 - степень 2 >00B3 - степень 3 Точнее, даже так: ================================ *000B2,20, степень 2 *000B3,26, степень 3 ... skip ... *000BD,20, степень 2 *000BE,26, степень 3 ================================ При этом способ ввода через %% работает (он работал и раньше), а способ ALT-ввода с клавиатуры (когда одному символу соответствует один символ) - нет. А раньше работал! Бог бы с ним, с этим ALT-вводом, сказали проектировщикам, что так больше не работает - для _новых_ чертежей будут вводить через %%, но вот старые открываются со знаком "?", а сие напрягает. Из-за чего такая штука-то происходить может?
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
Как отметили: Цитата:
Цитата:
http://www.microsoft.com/globaldev/tools/msklc.mspx При этом количество символов вводимых непосредственно с клавиатуры практически удваивается. Для старых файлов (это не отразится на новых) нужно просто в стартовый лисп включить глобальную змену %%<код старого символа степень 2> на \U+00B2 и %%<код старого символа степень 3> на \U+00B3. Полагаю, что в новом шрифте степени 2 и 3 соответствуют позициям unicode. http://www.unicode.org/charts/PDF/U0080.pdf http://www.unicode.org/charts/PDF/U2070.pdf Удачи! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Привет!
Можешь подсказать ответ на прямой вопрос? 0. Открываем АКАД-2004. 1. Пишем в рисунке ДТЕКСТом слово "что-нибудь" для затравки. 2. Тыкаем в него мышью, появляется поле редактирования текста, переводим курсор в его конец, нажимаем ALT и "напрямую" вводим с клавиатуры два символа [ALT+0189] и [ALT+0190]. В окне видим "что-нибудь©®". Эти ©® изображены здесь условно, скорее всего, они отобразятся, как "S" и "s". 3. Закрываем окно. В рисунке видим строку "что-нибудь??". Вопрос: на какие *0XXXX, нужно добавить описание символов в файл *.shp, скомпилировав который под ACAD-2004, я увижу в чертеже "не вопросы". Это нужно для совместимости. Новые знаки "степень 2,3" будут добавляться уже в соответствии со стандартом юникода. Ну, вроде все по полочкам.
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Чтобы облегчить жизнь тому, кто решит помочь, прикладываю файл.
Красным - как это должно выглядеть (текст разбит на линии, так что видите именно то же самое, что и мы). Черным - как оно выглядит (со знаками вопроса). russ_old - старый фонт. С ним все классно. Знаков ? нет. russ - новый фонт. С ним проблемы. Открывать в АСАД-2004 [ATTACH]1139984899.zip[/ATTACH]
__________________
Счастливо, Алексей! |
|||