[ В продолжение старой темы "qcad шрифты"
http://www.linux.org.ru/view-message.jsp?msgid=2248982
в которую уже нельзя добавить коментарий ]
Freek (05.11.2007 15:58:16)
> при открытии чертежа, на нем нет ни текста ни цифр, а русские слои
> отобоажаются кракозябрами. Видио шрифтов не видит, а во как их
> прикрутить к нему и какие? желательно чтобы ГОСТу соответствовали
Недавно столкнулся с этой проблемой, перерыл весь интернет и решения не нашел. Поэтому привожу свой хак который позволяет просматривать .dxf сделанные под win.
---- 8< ---- (qcad_cxf_unicode2cp1251)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Утилита для конвертирования шрифтов QCad в кодировку CP1251. Использовать так:
$ mkdir ~/.qcad/fonts
$ qcad_cxf_unicode2cp1251 \
< /usr/share/qcad/fonts/cyrillic_ii.cxf \
> ~/.qcad/fonts/arial_cyr.cxf
После этого, документы созданные нашими конструкторами (только .dxf, .dwg не
поддерживается qcad) будут открываться без кракозябр на месте русских надписей.
"""
from sys import stdin, stdout
import re
Ure = '^\[[0123456789ABCDEF]{4,4}\]' # [042B]
Urex = re.compile(Ure, re.IGNORECASE)
def main():
for line in stdin.readlines():
if Urex.match(line) is None:
# not a char-def line
stdout.write(line)
continue
ucode = int(line[1:5], 16)
u = unichr(ucode)
try:
sym = u.encode('cp1251')
except UnicodeEncodeError:
# no such symbol in destination encoding
stdout.write(line)
continue
# qcad treats input stream as latin1, so we 'remap' it back
u2 = sym.decode('latin-1')
line = '[%04X]' % ord(u2) + line[6:]
stdout.write(line)
if __name__ == '__main__':
main()
---- 8< ----
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум qcad (2008)
- Форум Qcad (2005)
- Форум QCAD (2007)
- Форум qcad defaults (2011)
- Новости QCAD 3.19.0 (2017)
- Форум Qcad 2 (2003)
- Форум QCad шрифты (2007)
- Форум TIJ3-solutions (2007)
- Форум Где взять qcad? (2014)
- Новости Вышел QCAD 3.1 (2013)