АС1009
11 отговора
0 прегледа
АС1009
Проблемче имам чертежи много 300-400-500 чертани някога някъде сега виждам че са на Аутокад /АС1009/ трябва да ги ползвам пък шрифтовете нещо куцат, а дали са шрифтовете или нещо между версиите на Аутокад и ли операционните системи, как да се измъкна някой попадал ли му е такъв камък на главата.
Re: АС1009
Под шрифтовете куцат разбирам , че нямаш в компютъра съответният SHX шрифт и се появяват "????" ... май няма прегледна оправия с проблема . Трябва да издириш съответният шрифт от някъде .
Ако е проблем с кирилицата , тук питах дали някой е ползвал този Инструмент
Тема , ако го пробваш напиши как се справя .
Ако е проблем с кирилицата , тук питах дали някой е ползвал този Инструмент
Тема , ако го пробваш напиши как се справя .
Re: АС1009
Не се получи
2. ЌҐҐ±ҐЁ Ј°Ё·Ё ®ІЄ«®ҐЁї °§¬Ґ°ЁІҐ H14; h14; сt/2
не мога да го плясна тук да го видите наистина е "??????" по горе е като го пейсна тук
2. ЌҐҐ±ҐЁ Ј°Ё·Ё ®ІЄ«®ҐЁї °§¬Ґ°ЁІҐ H14; h14; сt/2
не мога да го плясна тук да го видите наистина е "??????" по горе е като го пейсна тук
Re: АС1009
Такъв проблем имах и аз, особено по времето на Windows 98. Получаваше се при чертежи правени с някои шрифтове на кирилица и Windows Regional Settings - English, когато се отворят на Regional Settings - Bulgarian и обратно.
За да се виждат нормално, трябваше само да се смени Regional Settings.
Друг начин е да се подменят проблемните шрифтове с Unicode такива.
Също така ми прави впечатление, че чертежи с такива шрифтове се отварят нормално с Autocad 2007, а с 2006 - не и това на един и същ компютър. Мистерия някаква...ама не се оплаквам.
За да се виждат нормално, трябваше само да се смени Regional Settings.
Друг начин е да се подменят проблемните шрифтове с Unicode такива.
Също така ми прави впечатление, че чертежи с такива шрифтове се отварят нормално с Autocad 2007, а с 2006 - не и това на един и същ компютър. Мистерия някаква...ама не се оплаквам.
Re: АС1009
Това се получава от разликата в кодировката на текстовите шрифтове
ASCII - UniCod
Аз също имах големи проблеми
Тук ти пращам една програма, която оправя нещата.
Запиши долния код във файл ASCI_UNI.LSP. Зареди го с
(load "ACSI_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)
ASCII - UniCod
Аз също имах големи проблеми
Тук ти пращам една програма, която оправя нещата.
Запиши долния код във файл ASCI_UNI.LSP. Зареди го с
(load "ACSI_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)
Re: АС1009
И така не ми се получава или аз нещо не вдявам направих си файлчето заредих си го но такава команда неще да ми зареди ползвам АК2007.
Re: АС1009
имам грешка
зареди с
(load "asci_uni")
разменил съм буквите - в скобите трябва да се изпише името на файла (може и без LSP). Файлът грабва да бъде в директория описана в SupportSearchPath - обикновено в Support
зареди с
(load "asci_uni")
разменил съм буквите - в скобите трябва да се изпише името на файла (може и без LSP). Файлът грабва да бъде в директория описана в SupportSearchPath - обикновено в Support
Re: АС1009
Пак не ми се получава. Благодаря за изказаните мнения. Мисля друга шашма има тук. Някой иска ли да види за какво иде реч ще пратя един файл който иска да ми пише за връзка на simo_@gbg.bg само на посмото да пише форум CAD/CAM.
Re: за Проба
В по-стари Теми един от учaстниците даде примерен VBA Maкрос за AutoCAD , който извършва "прекодиране" . Аз никога не съм го пробвал и нямам представа колко добре работи . Също не знам какво подменя точно
Промених малко интерфейса на Макроса , уж за по-ясно ... изглежда така :
В този архив е оригинала (UC2W1251-original.dvb) + промененият от мен (UC2W1251-new.dvb)->UC2W1251.zip
Промених малко интерфейса на Макроса , уж за по-ясно ... изглежда така :
В този архив е оригинала (UC2W1251-original.dvb) + промененият от мен (UC2W1251-new.dvb)->UC2W1251.zip
Re: за Проба
Не съм го пробвал това , програмката на StSt проработи безотказно при мен е бил проблема. :) .
Благодаря на всички които ми отговориха.
Благодаря на всички които ми отговориха.
Re: АС1009
И аз пробвах програмата. Върши чудесна работа!
Рядко ми се случва вече да ми попадат такива файлове, но никога не се знае...
Благодаря, StSt!
Рядко ми се случва вече да ми попадат такива файлове, но никога не се знае...
Благодаря, StSt!