|
Имам проблем с кирилицата в Аутокад. Попаднаха ми чертежи, в които текста ми излиза с йероглифи. Четох за решаването на проблема с кирилицата и попаднах на решението със създаването на ЛСП файл и зареждането му от Аутокада. Или не правя нещо като хората или начина не действа при мен. Шрифта е Arial Unicod MS. С Аутокад 2007 съм. Нямам флекстайп. Моля ви кажете как да оправя проблема.
Редактирано от plamen nikolaev stoyanov на 21.06.10 19:55.
|
|
|
Първа стъпка - направи си файла DXF, за да е в удобен текстови вид. После потърси из нета програмки за конвертиране на кирилицата от ДОС във Уиндоус кодировка - има много, повечето безплатни.
Не бързай да подозираш лош умисъл - може да е обикновена глупост!
|
|
|
Нещо нямам успех с търсенето на въпросните програми. Може ли да ми кажеш някои ?
|
|
|
Пич, заклех се да не давам савети, обАААче, просто ми е жал за тебе - новобранецо у виртуало... дето само егенето не си си турнал у профилчето... Тури си некво имеце кад-мад-дад или нещо такова и си житкай из форумите... Че ако се натряскаш като мене и мое такива да ги надробиш у вертоало, че свитки че ти извезнат... Прееменувай се на работ бетатронов салицилов ако щеш - мани ги теа три емена, баце - евърнема да сажалеваш.
Редактирано от krechi77 на 22.06.10 23:39.
|
|
|
Опитай първо от properties на текста да смениш стила (style) на standard или някакъв друг и виж дали ти помага, ако ли не ето ти 3 линка, като първите два са почти едно и също, а третия е от търсенето във форума. Успех и пиши за резултата.
clubs.dir.bg/showflat.php?Board=cadcam&Number=1948235108&page=&view=&sb=&vc=1
www.cadpointbg.com/forum/index.php?showtopic=261
http://clubs.dir.bg/dosearch.php?Cat=8&skip=&Words=&Forum=cadcam&textfield=%EF%F0%EE%E1%EB%E5%EC+%EA%E8%F0%E8%EB%E8%F6%E0&Old=allposts&Match=And&Limit=15
|
|
|
уффф... тоя форум трябва да го затворят вече... един човек дето да може акъл да даде не е останал. Пробвай с това, Пламене, някой навремето ми го написа тук този код, ама годинки минаха и едва ли си го намерил (друг път да търсиш по-усърдно ). Запиши долния код във файл ASCI_UNI.LSP. Зареди го с (load "ASCI_UNI"). Стартирай го с (ALLTEXT). Оправя текстове, мултитекстове, атрибути и атрибутни дефиниции.
;ascii to unicode
;избира файл за котвертиране
(defun conv-file ()
(If (setq filei (getfiled "" "" "" 0))
(conv-file1 filei)
);if filei
);conv-file
;чете файл и го котвертира
(defun conv-file1 (filei / file filenew li)
(if filei
(progn
(setq file(open filei "r")
filenew (open (strcat filei ".txt")"w"))
(while (setq li (READ-LINE file))
(WRITE-LINE (VL-STRING-TRIM " "(dtow li))filenew)
);while
(close file)
(close filenew)
);progn
);if file
);conv-file
(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)
Магьосниците не закъсняват, нито идват по-рано. Те пристигат точно когато им е угодно
|
|
|
Благодарности на MerlinW и magesnik. Явно не съм правил нещо като хората. Проблема го реших по начина на magesnik. Кой да разбере, че това (alltext) се извиква като comand-полето.
Колкото до krechi77 много се радвам, че си се заклел да не помагаш на такива като мен. Пийвай си стабилно и стой по-далеч от форумите. Наздраве !
|
|
Тема
|
Re: Проблем с кирилицата на AutoCad
[re: magesnik]
|
|
Автор |
npubem (:-) |
Публикувано | 23.06.10 12:58 |
|
Ето един линк за конвертиране на различни кодови таблици. Варианта през DXF
е подходящ и за LT-версиите, които не поддържат Лисп или VBA.
Желая успех!
Не бързай да подозираш лош умисъл - може да е обикновена глупост!
|
|
|
ами да - новите версии на аутокада са със сменен интерфейс, че и команден ред няма, което на моменти доста пречи... ама какво да правим, луд на шаренко се радва...на моменти ми липсва скучния интерфейс на Windows NT...
Магьосниците не закъсняват, нито идват по-рано. Те пристигат точно когато им е угодно
|
|
|
Втори вариант за проба.
P.S.
в общи линии за пореден път ги пишем тези неща
|
|