Тема
|
Проблем с кирилицата в Auto CAD
|
|
Автор |
wiliko (непознат
) |
Публикувано | 22.06.07 16:01 |
|
от известно време имам следният проблем, при работа с AutoCAD2000, в някой от файловете ми се прецаква кирилицата и по никакъв поне за мен познат нечин не може да се оправи и интересното е че в полето което излиза при рекакция на въпросното прецакано текстче излиза следното...\U+00CC\U+00EE\U+....
ПОМАГАЙТЕ С ИДЕИ защо така ми се прецакват текстовете...че твябва наново да ги пиша всичките...
|
|
Тема
|
Re: Проблем с кирилицата в Auto CAD
[re: wiliko]
|
|
Автор | gena (Нерегистриран) |
Публикувано | 22.06.07 16:18 |
|
това може да стане когато файла идва от друга версия
имало е доста теми по проблема ти... някъде назад... но ми се струва че ще е по лесно да си сложиш някои по- нов ACAD иначе рискуваш и други проблеми да се появят
|
|
Тема
|
Re: само Идея
[re: wiliko]
|
|
Автор | Mинaвaщ (Нерегистриран) |
Публикувано | 22.06.07 18:27 |
|
Това са Unicode кодове на буквите/символи ... проблема често е и в самата програма (с кирилицата) ->
* разгледай настроките в Regional and Language Options на Windows т.е. смени някъде да не е България/български ... Сръбска кирилица май също помага ...
* пробвай с този шрифт като "кръпка" ->
|
|
Тема
|
Програмка за конвертиране на текстове
[re: wiliko]
|
|
Автор | s (Нерегистриран) |
Публикувано | 24.06.07 13:33 |
|
Ето ти една програмка. Конвертира уникодове в аскикодове във текстове, атрибути, атрибутни дефиниции
Запиши я като файл с разширение LSP в някоя директория, описана във FileSearchPath от опциите (например SUPPORT). Заредия с LOADAPPLICATION в TOOL меню.
Стартирай, като напишеш в командния ред
(alltext)
;ascii to unicode
(defun asc-uni (txt / a i b tete)
(setq
a (cdr(assoc 1(entget txt)))
tete ""
i 1
);setq
(setq tete (dtow a)txt (entget txt) txt (subst (cons 1 (dtow tete))(assoc 1 txt)txt))
(entmod txt)
);'(asc-un)
;-------------- hex-dec convert ------------
(defun h-d (cc / e ii sum)
(setq cc (substr cc 4) ii 1 sum 0)
(repeat 4
(setq
e (h-d1 (substr cc ii 1))
sum (+ sum (* e (expt 16 (- 4 ii ))))
ii (1+ ii)
);setq
);repeat
;(print cc)(princ sum)(princ (chr sum))
;(chr (+ sum 64))
(chr (rem sum 256))
);h-d
;--------- text to hex convert -----------
(defun h-d1 (cc / e)
(cond
((= cc "A")(setq e 10))
((= cc "B")(setq e 11))
((= cc "C")(setq e 12))
((= cc "D")(setq e 13))
((= cc "E")(setq e 14))
((= cc "F")(setq e 15))
(T (setq e (atoi cc)))
);cond
e
);h-d
; ---------- allatt --------------
(defun allatt ()
(setq nab (ssget "x" (list (cons 0 "INSERT")))
i 0
);setq
(if nab
(progn
(repeat (sslength nab)
(setq eni (ssname nab i) i (1+ i) en (entnext eni))
; (print "-------------------\n-----")
(if (assoc 66 (entget eni))
(while
(/= "SEQEND" (cdr(assoc 0 (entget en))))
(if (or
(= "TEXT" (cdr (assoc 0 (entget en))))
(= "ATTRIB" (cdr (assoc 0 (entget en))))
);OR
(PROGN
(SETQ ENE (SUBST (CONS 1 (DTOW (CDR(ASSOC 1 (ENTGET EN))))) (ASSOC 1 (ENTGET EN)) (ENTGET EN)))
(ENTMOD ENE)
);PROGN
);IF
(setq en (entnext en))
);while
);if
);repeat
));if
)
;allatt
;--------- alltext ----------------
(defun alltext ( / n)
(foreach n '("TEXT" "ATTRIB" "ATTDEF")
(alltext1 n)
);foreach
(mas-uni)
(allatt)
(S-ATTDEF)
(COMMAND "REGEN")
);alltext
(defun alltext1 (att / nab i en eni )
(setq nab (ssget "x" (list (cons 0 att)))
i 0
);setq
(if nab
(repeat (sslength nab)
(setq
en (cdr(assoc -1 (entget(ssname nab i))))
i (1+ i)
);setq
(asc-uni en)
);repeat
);if
;;; ;(eval(load "attdefcyr"))
;;; (COMMAND "REGEN")
);defun
;convert MTEXT asii-uni cod
(defun mas-uni (/ nab en eni txt i)
(setq nab (ssget "x" (list(cons 0 "MTEXT")))
i 0)
(if nab
(repeat (SSLENGTH nab)
(setq en (ssname nab i)
i (1+ i)
en (ENTGET en)
txt (dtow (cdr(assoc 1 en)))
en(SUBST (cons 1 txt)(assoc 1 en) en)
);sеtq
(if(setq txt(assoc 3 en))(setq en (subst (cons 3(dtow(cdr txt))) txt en)))
(ENTMOD en)
);repeat
);if
);mas-uni
;ПРЕВРЪЩА ОТ Win ТЕКСТ В DOS ----
(defun WtoD( text / tt i text1)
;®І Win ў DOS
(setq i 1 text1 "")
(repeat (strlen text)
(setq
tt (ascii (substr text i 1))
);setq
;(< tt 192)
(if (and t(> tt 127)) (setq tt (- tt 64)))
(setq text1 (strcat text1 (chr tt)))
(setq i (1+ i))
);repeat
text1
);Wtod
;ОТ DOS В Win
(defun DtoW ( text / i tt text1)
(setq i 1 text1 "" text(asc-un text))
(repeat (strlen text)
(setq
tt (ascii (substr text i 1))
)
(if (and(> tt 127)(< tt 192)) (setq tt (+ 64 tt)))
(setq text1 (strcat text1 (chr tt)))
(setq i (1+ i))
);repeat
text1
);DtoW
;---------- convert unicod-ansicod ----------------
(defun asc-un (txt / a i b tete)
(setq
a txt
tete ""
i 1
);setq
(while (<= i (strlen a))
(cond
((/= (setq b (substr a i 1)) "\\") (setq i (1+ i) tete (strcat tete b)))
((= (setq b (substr a i 3)) "\\U+")
(setq b(substr a i 7)
i (+ i 7)
tete (strcat tete(chr(h-d b)))
))
(T (setq tete(strcat tete(substr a i 1)) i (1+ i)))
);cond
);while
tete
);'(asc-un)
;-------------- hex-dec convert ------------
(defun h-d (cc / e ii sum)
(setq cc (substr cc 4) ii 1 sum 0)
(repeat (strlen CC)
(setq
e (h-d1 (substr cc ii 1))
sum (+ sum (* e (expt 16 (- 4 ii ))))
ii (1+ ii)
);setq
);repeat
;;; (chr (rem sum 256))
SUM
);h-d
;--------- text to hex convert -----------
(defun h-d1 (cc / e)
(cond
((= cc "A")(setq e 10))
((= cc "B")(setq e 11))
((= cc "C")(setq e 12))
((= cc "D")(setq e 13))
((= cc "E")(setq e 14))
((= cc "F")(setq e 15))
(T (setq e (atoi cc)))
);cond
e
);h-d
;чете ATTDEF И TEXT
(DEFUN S-ATTDEF (/ NAB EN ENT ENTI)
(SETQ EN (TBLNEXT "BLOCK" T)
ENT (CDR(ASSOC -2 EN))
);SETQ
;(REPEAT 10
(WHILE (SETQ EN (TBLNEXT "BLOCK" ))
(SETQ ENT (CDR(ASSOC -2 EN))
);SETQ
(WHILE ENT
(SETQ ENT (ENTNEXT ENT))
(IF (AND ENT
(OR
(=(CDR(ASSOC 0 (ENTGET ENT)))"ATTDEF")
(=(CDR(ASSOC 0 (ENTGET ENT)))"TEXT")
);OR
);AND
(PROGN
(SETQ ENTI(ENTGET ENT)
NAB(DTOW(CDR(ASSOC 1 ENTI)))
ENTI(subst (CONS 1 NAB)(ASSOC 1 ENTI)ENTI)
);SETQ
(ENTMOD ENTI)
(ENTUPD (CDR(ASSOC -1 ENTI)))
);PROGN
);IF
);REPEAT
);WHILE
);S-ATTDEF
'(alltext)
|
|
Тема
|
Re: Програмка за конвертиране на текстове
[re: s]
|
|
Автор |
wiliko (непознат
) |
Публикувано | 25.06.07 09:45 |
|
благодаря за помощта тази програмка свърши работа, друг е въпроса, че видях доста зор докато успея с птичия си мозък да я стартирам... но важното е че УСПЯх
|
|
Тема
|
Re: Въпросче ...
[re: wiliko]
|
|
Автор | Mинaвaщ (Нерегистриран) |
Публикувано | 25.06.07 14:08 |
|
Не ми е ясна тая работа
Оставам с впечатление , че първоначалният проблем е бил в разпознаване на Unicode кодовете на шрифта. Лиспа е за ascii to unicode т.е. от ASCII в UNICODE (така си мисля).
Всъщност какво се е получавало и се е оправило при wiliko в AutoCAD2000 ????
|
|
Тема
|
Re: Въпросче #2...
[re: Mинaвaщ]
|
|
Автор | Mинaвaщ (Нерегистриран) |
Публикувано | 25.06.07 14:11 |
|
Аааа , май лиспа е универсален ?
|
|
Тема
|
Re: Въпросче #2...
[re: Mинaвaщ]
|
|
Автор |
wiliko (непознат
) |
Публикувано | 25.06.07 15:10 |
|
минаващ, май обичаш сам да си отговаряш на въпросите...да УНИВЕРСАЛЕН е лиспа, че го ползвах и с 2006 и резултата е положителен...
|
|
Тема
|
Re: Въпросче ...
[re: Mинaвaщ]
|
|
Автор | StSt (Нерегистриран) |
Публикувано | 25.06.07 19:35 |
|
Тази програма има обръщалка в двете посоки, но включих само от уникодове към аскикодове (обратното обръщане трябваше за R12 - за диалогови прозорци и служебни съобщения - вече не трябва) и не съм махнал грешната подсказка.
|
|
Тема
|
Re: Проблем с кирилицата в Auto CAD
[re: wiliko]
|
|
Автор | eдин (Нерегистриран) |
Публикувано | 28.06.07 11:17 |
|
А имаш ли Флеск Тайп!! Свед като мине тая боза, само проблеми се очертават. Ползвай Пенджер-ския кирилизатор, както са ти казали по преди.
|
|