| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCad 2013 En, проблемы с кодировкой в программах.

AutoCad 2013 En, проблемы с кодировкой в программах.

Ответ
Поиск в этой теме
Непрочитано 23.03.2012, 22:18
AutoCad 2013 En, проблемы с кодировкой в программах.
Cfytrr
 
Балка на балку, кирпич на кирпич...
 
Питер
Регистрация: 09.10.2007
Сообщений: 4,811

Приветствую.
Новоиспеченный AutoCad 2013 En наряду с новшествами преподнес неожиданную проблему, при использовании модулей которые исправно работали на 2009-10-11-12 происходит сбой с кодировкой.
Нажмите на изображение для увеличения
Название: Graph.PNG
Просмотров: 1367
Размер:	204.6 Кб
ID:	77041
Для примера приведена работа вот этого модуля.
Система Win 7 х64

__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.

Последний раз редактировалось Cfytrr, 23.03.2012 в 22:39.
Просмотров: 35221
 
Непрочитано 29.03.2012, 10:13
#21
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Цитата:
Сообщение от hwd Посмотреть сообщение
Одно дело, когда баг где-то глубоко спрятан, а другое - когда вот так, прямо что называется, на самом видном месте...
Я думаю для американцев, кодировка это как раз самое глубокое место (им-же что UTF8, что ANSI, даже ASCII - разницы нет никакой) - скорее всего какую-то "новую" библиотеку использовали которая по умолчанию текст как UTF8 читает.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 29.03.2012, 14:25
#22
EfremenkoDO


 
Регистрация: 24.12.2009
Санкт-Петербург
Сообщений: 59
<phrase 1=


Интересно теперь даже, когда это исправят. Думаю что можно ставки делать на то что произйодет рашньше - Выйдет русская локализация или SP 1.
EfremenkoDO вне форума  
 
Непрочитано 29.03.2012, 15:20
#23
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от EfremenkoDO Посмотреть сообщение
Думаю что можно ставки делать на то что произйодет рашньше - Выйдет русская локализация или SP 1.
Без ставок. Сначала выйдет русская локализация, потом SP1. Это факт.
А вот когда исправят - это вопрос интересный. Вероятность, что исправят к выходу русской локализации очень близка к 0%, в SP1 - близка к 50%
Александр Ривилис вне форума  
 
Непрочитано 29.03.2012, 16:17
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от hwd Посмотреть сообщение
Лишнее подтверждение тому, что Autodesk не уделяет должного внимания тестированию своих продуктов.
за более чем 10 лет это впервые произошло, и на старуху бывает проруха
gomer вне форума  
 
Непрочитано 29.03.2012, 16:41
#25
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
за более чем 10 лет это впервые произошло, и на старуху бывает проруха
Если быть точным, то начиная с версии AutoCAD R12 (DOS) с языком в DCL проблем не было. А это 1992 год - как раз 20 лет.
Александр Ривилис вне форума  
 
Непрочитано 29.03.2012, 18:00
#26
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


Offtop: На уровне бреда:
Интересно, это ошибка в автодесковских исходниках, или поставили библиотечки поновее, в которых не учли, что функция, например, теперь перегруженна, и по умолчанию использует UTF8. Просто, если они все-таки "прошловековые" исходнички подправляют, с учетом, что автодеск, не так давно, ВНЕЗАПНО стал оси расширять (Mac OS) + VB слили, может они плавно под какую-нибудь мультисистемную платформу (ну все поняли про какую я) решили ПОЛНОСТЬЮ перейти - со всеми вытекающими.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 29.03.2012, 18:59
#27
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


видимо интерфейс полностью перестраивают под уникод, хотя зачем это надо, не понятно
подобная ошибка была в брикскаде... но ее быстренько исправили
gomer вне форума  
 
Непрочитано 29.03.2012, 19:58
#28
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
хотя зачем это надо, не понятно
Как раз понятно - чтобы будущие владельцы Autodesk могли на своем родном языке все делать
ShaggyDoc вне форума  
 
Непрочитано 29.03.2012, 20:01
#29
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Как раз понятно - чтобы будущие владельцы Autodesk могли на своем родном языке все делать
зачот
а вот китайцам все равно, они уже давно на своем языке все делают (в интерфейсе акада)

Последний раз редактировалось gomer, 29.03.2012 в 20:16.
gomer вне форума  
 
Непрочитано 30.03.2012, 00:54
#30
Salt

Josser
 
Регистрация: 09.11.2011
Сообщений: 66


Цитата:
может они плавно под какую-нибудь мультисистемную платформу (ну все поняли про какую я) решили ПОЛНОСТЬЮ перейти - со всеми вытекающими.
Так оно и есть. Acad.exe круто перекроили и выделили из него "ядро" - AcCore.dll. Кому интересно, читайте
здесь. Существующие .NET приложения придется перекомпилировать в обязательном порядке с чем и поздравляю.
Salt вне форума  
 
Непрочитано 10.05.2012, 11:04
#31
ZaasIngus


 
Регистрация: 10.05.2012
Сообщений: 1


Попробуйте вот это

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] "1252"="c_1251.nls"
ZaasIngus вне форума  
 
Непрочитано 10.05.2012, 11:21
#32
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от ZaasIngus Посмотреть сообщение
Попробуйте вот это

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] "1252"="c_1251.nls"
... и забудьте навсегда про половину европейских языков...
Александр Ривилис вне форума  
 
Непрочитано 02.06.2012, 17:43
#33
alextv


 
Регистрация: 01.06.2008
Сообщений: 48


Цитата:
Сообщение от ZaasIngus Посмотреть сообщение
Попробуйте вот это

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage] "1252"="c_1251.nls"
Попробовал, никаких изменений не произошло, а тема очень злободневна, все ДСЛ, которые прекрасно работали в 12-м, теперь в 13-м прочесть невозможно!
Может я че-то не то делал,работаю на Win 7 х64

Последний раз редактировалось alextv, 02.06.2012 в 17:48.
alextv вне форума  
 
Непрочитано 02.06.2012, 17:48
#34
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Salt
Так оно и есть. Acad.exe круто перекроили и выделили из него "ядро" - AcCore.dll. Кому интересно, читайте
здесь. Существующие .NET приложения придется перекомпилировать в обязательном порядке с чем и поздравляю.
.Net-плагины и так компилируются отдельно под каждую версию AutoCAD, так что нового в этом ничего нет. Перекомпиляция занимает 1-2 секунды - т.о. это не проблема.

Цитата:
Сообщение от alextv Посмотреть сообщение
Попробовал, никаких изменений не произошло, а тема очень злободневна, все ДСЛ, которые прекрасно работали в 12-м, теперь в 13-м прочесть невозможно!
Может я че-то не то делал,работаю на win-7
Замени в DCL весь русский текст английским (предварительно создав копию файла). После того, как выпустят патч, исправляющий проблему - заменишь файл исходным вариантом.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 05.06.2012, 22:26 accoreconsole.exe (AutoCAD 2013)
#35
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Кстати, это не единственный облом с кодировкой в AutoCAD 2013. И на этот раз под раздачу попадают не только лиспописатели (в который раз), но и те, кто пишет под .net, а возможно, что и под arx: подающая надежды, новоявленная софтина accoreconsole.exe вообще не отображает русскоязычные символы, выводимые на консоль программно (даже кракозяблы), а так же всё то, что идёт после этих символов... Если вбивать русский текст вручную, прямо в консоль accoreconsole.exe, то русскоязычные символы корректно отображаются, а вот программный вывод - хрен... Т.е. строка кода
Код:
[Выделить все]
dwg.Editor.WriteMessage("Hello World!");
Отобразит в консоли обозначенный текст, а вот такое сообщение отображено не будет:
Код:
[Выделить все]
dwg.Editor.WriteMessage("Видишь суслика? А он всё же есть!");
Можно попробовать вывести смешанный текст:
Код:
[Выделить все]
dwg.Editor.SendStringToExecute("\n(printf \"I am from Россия\")", true, false, true);
Результат выглядит так:
Цитата:
Command: (printf "I am from
Правда я не понял, почему не отобразилась закрывающаяся скобка - она ведь не имеет отношения к локализации... А теперь запускаю элементарный lisp-файл, созданный в редакторе vlide (той же 2013-й версии автокада) и имеющий следующее содержимое:
Код:
[Выделить все]
(print "Hello World!")
(print "Привет Мир!")
Однако в accoreconsole.exe получаем такой вывод:
Цитата:
Command: (load "c:/nunit/tmp.lsp")

"Hello World


Command:
Как видим - получаем очередную чушь - пустые строки вместо кирилицы... Программа выполняется до того места, где встречается первый символ кирилицы, после чего работа прекращается.

Данную "прелесть" я наблюдаю на AutoCAD 2013 x64 Enu.

В русской версии, как оказалось, дела ещё "веселей":
Если запустить accoreconsole.exe для AutoCAD 2013 x64 Russian, то в консоли вообще ничего не отображается. Оно и понятно - ведь в русской версии автокада, на консоль выводятся локализованные текстовые сообщения. При этом, если в консоль вбивать любые символы (не важно русские или английские), то в русской версии обозначенной софтины на консоли они отображаться не будут. Если в этой консоли запустить LISP программу, которая не выводит на консоль русского текста, то программа работает успешно, но если добавить код, который выведет на консоль русский текст - программа выполняется до того места, где находится русский текст и прекращает свою работу. Вот такие пироги...

Итого:
Если ваши плагины AutoCAD выводят на консоль информацию на русском, или на русском запрашивают что-либо у юзера, то работать с такими приложениями в accoreconsole.exe не удастся в виду косяка с кирилицей. Т.о. российским разработчикам работать с accoreconsole.exe в настоящее время невозможно, поскольку кирилица нередко встречается в именах каталогов и файлов, а русская версия данной программы - просто мусор. Лишнее подтверждение тому, что у автодеска локализованные версии приложений содержат гораздо больше багов, чем их английские аналоги, в виду того, что локализованные версии нихрена не тестируются автодеском.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 06.06.2012 в 15:46.
hwd вне форума  
 
Непрочитано 05.06.2012, 22:34
#36
alextv


 
Регистрация: 01.06.2008
Сообщений: 48


Весело,блин!
alextv вне форума  
 
Непрочитано 05.06.2012, 22:41
#37
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


я хотел с помощью accoreconsole.exe запустить на исполнение мой модуль пакетной обработки чертежей... У юзера запрашивается каталог, в котором нужно выполнить рекурсивную обработку, при этом по умолчанию используется каталог "Мои документы"... А поскольку в пути присутствуют русские символы (Windows ведь русская), то юзеру показывают шиш.... А приглашение - тоже на русском... Т.о. юзер, запускающий нужный код из консоли, не видит ничего и не понимает, что у него запрашивается (или что ему сообщается). В общем полное "юзабилити"...

UPD (на следующий день).
Отправка сообщений на форуме организована через задницу: если я пишу очередное сообщение на следующий день, то какого хрена мне запрещают создавать новое сообщение, заставляя редактировать вчерашнее, дописывая текст только потому, что вчера моё сообщение было последним? Если мне нужно отредактировать сообщение - я его редактирую, а если мне нужно создать новое сообщение - значит мне нужно создать новое сообщение, а не редактировать старое. Если уж заставляете, то и в списке тем форума должно происходить оповещение о том, что сообщение обновлено (название темы должно выделяться жирным шрифтом). Прекрасно понимаю, что ничего не изменится, ибо админам в настройках форума ковыряться влом (хотя это много времени не занимает) - но всё равно об этом заявляю, дабы ткнуть носом в очевидное гуано, которое присутствует годами, но никак не убирается.

По поводу обозначенной выше проблемы с accoreconsole.exe - отправил в Autodesk сообщение об этом баге, а так же разместил инфу на англоязычном сайте здесь.

UPD 2
Добавил в #35 информацию о том, как обстоят дела с обозначенным багом в русской версии AutoCAD 2013.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 06.06.2012 в 15:28.
hwd вне форума  
 
Непрочитано 07.06.2012, 15:21
#38
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Обнаружились дополнительные проблемы, связанные с работой AcCoreConsole.exe - всё вместе разместил здесь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 07.08.2012, 15:25
#39
Klo

Инженер-конструктор
 
Регистрация: 29.10.2007
Юбилейный МО
Сообщений: 266


После установки Language Pack'а проблема с отображением самодельных диалоговых окон исчезла (только в русской версии).

[img]http://s06.***********/i179/1208/92/670421eca92f.jpg[/img]

Для русской версии создался отдельный ярлык. Вопрос: как сделать так, чтоб в английской версии тоже всё нормально отображалось?
Klo вне форума  
 
Непрочитано 09.08.2012, 15:56
#40
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


После всех разговоров скачал я "тридцатидневку" - скажу честно на превый взгляд понравилась. Да в английской косячок есть, но во превых я всегда говорил что DCL-зло, во вторых, немного поколдовав это лечится (хотя конечно осадок остался). В автозагрузку оба файла и старые лиспы и диалоги можно не трогать:
Исходники:
Код:
[Выделить все]
 
#r "c:/program files/autodesk/autocad 2013/acmgd.dll"
#r "c:/program files/autodesk/autocad 2013/acdbmgd.dll"
#r "c:/program files/autodesk/autocad 2013/accoremgd.dll"
open System.IO
open System.Text
open System.Collections.Generic
open Autodesk.AutoCAD.ApplicationServices
open Autodesk.AutoCAD.DatabaseServices
open Autodesk.AutoCAD.Runtime

let EraseFiles=new Dictionary<string,int>()
let Rb=function
  |null->[]
  |(rb:ResultBuffer)->rb.AsArray()|>Array.toList
let (|AcStr|AcUnknow|) (x:TypedValue)=
  enum<LispDataType>(x.TypeCode|>int)|>function
    |LispDataType.Text->AcStr(x.Value:?>string)
    |_->AcUnknow

[<LispFunction("load_dialog_fix_utf8_bag")>]
let LoadDialogFixUtf8Bag arg=
  let ed=Application.DocumentManager.MdiActiveDocument.Editor
  arg|>Rb|>function
    |[AcStr path]->if (File.Exists path)
                      then let tmp=Path.GetTempFileName()
                           EraseFiles.[tmp]<-0
                           new TypedValue(LispDataType.Text|>int,
                                          try File.WriteAllText(tmp,File.ReadAllText(path,Encoding.Default),Encoding.UTF8)
                                              tmp
                                          with _->ed.WriteMessage("Warning: load_dialog converting file error...\n")
                                                  path)
                      else ed.WriteMessage("Warning: load_dilalog. File '"+path+"' not found...\n")
                           new TypedValue(LispDataType.Text|>int,path)
    |_->ed.WriteMessage("Error arguments load_dialog...\n")
        new TypedValue(LispDataType.Nil|>int)
type Init()=
  interface IExtensionApplication with
    member obj.Initialize()=
      Application.BeginQuit.Add(fun _-> EraseFiles.Keys|>Seq.cast|>Seq.iter (fun x->try File.Delete x with _->()))
    member obj.Terminate()=()
Код:
[Выделить все]
 
(if (not load_dialog_fix_bag)
    (SETQ load_dialog_fix_bag load_dialog))
(defun load_dialog(path)
  (load_dialog_fix_bag
    ((lambda (full)
       (load_dialog_fix_utf8_bag (if full full path)))
     (findfile path))))
Offtop: p.s. Автодеск, в знак благодарности, может подарить мне лицензию на 2013 - пока не кончилась...
Вложения
Тип файла: rar LoadDialogFixBag.rar (235.1 Кб, 145 просмотров)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > AutoCad 2013 En, проблемы с кодировкой в программах.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AUTOCAD 2010 перестал переключаться в многооконный режим. Проблемы с переменными Андрей Х. AutoCAD 24 27.05.2015 10:17
Проблемы с AutoCAD Mechanical 2011 Pozia Вертикальные решения на базе AutoCAD 15 18.03.2011 18:07
Проблемы с активацией Autocad 2011. Mim AutoCAD 4 30.06.2010 13:35
проблемы с принтером в AutoCad руслан AutoCAD 9 09.10.2006 05:32
Проблемы с установкой AutoCad 14ru. Сергей Юшков AutoCAD 3 27.12.2004 09:50