AutoCad 2013 En, проблемы с кодировкой в программах.
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

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

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

Последний раз редактировалось Cfytrr, 23.03.2012 в 22:39.
Просмотров: 36309
 
Непрочитано 23.03.2012, 23:08
#2
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,375


бегите и дальше вперёд паровоза
Хмурый вне форума  
 
Непрочитано 24.03.2012, 18:47
#3
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Попробуй сменить язык по умолчанию в панели управления ОС на русский.
E-degtyarev вне форума  
 
Автор темы   Непрочитано 24.03.2012, 22:00
#4
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,896
Отправить сообщение для Cfytrr с помощью Skype™


E-degtyarev,
Не помогло. Да и не похоже ,что в системе дело, со старыми то En версиями AutoCada работают исправно.
Проверено на двух разных машинах.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 25.03.2012, 20:52
2 | #5
Александр Ривилис

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


Удар под дых лиспописателям. Для того, что бы использовать файлы dcl в AutoCAD 2013 приходится их сохранять в UTF-8. В предыдущих версиях AutoCAD этот формат не воспринимается.
Александр Ривилис вне форума  
 
Непрочитано 25.03.2012, 22:25
#6
hwd

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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
бегите и дальше вперёд паровоза
коммент абсолютно не в тему...
Цитата:
Сообщение от Александр Ривилис
Удар под дых лиспописателям. Для того, что бы использовать файлы dcl в AutoCAD 2013 приходится их сохранять в UTF-8. В предыдущих версиях AutoCAD этот формат не воспринимается.
Спасибо за информацию. Если у моих юзеров в будущем вылезет такая проблема с 2013-м - буду знать в чём дело.

Offtop: А сколько ударов ещё может предстоять в будущем (в виду перекроя ядра системы)... Один Autodesk знает...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 25.03.2012 в 22:38.
hwd вне форума  
 
Непрочитано 26.03.2012, 01:55
#7
Александр Ривилис

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


Отправил этот баг в Autodesk. Посмотрим что они скажут.
P. S.: Кстати, тема создана явно не в том разделе. Не говоря о её своевременности, т.к. официального анонса AutoCAD 2013 еще не было, о чем Хмурый и намекнул.
Александр Ривилис вне форума  
 
Непрочитано 26.03.2012, 03:05
#8
ГеКИР


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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
официального анонса AutoCAD 2013 еще не было
20 марта получил от РПК приглашение на семинар: "...На семинаре будут представлены новые версии популярных продуктов для архитектурного проектирования и визуализации: AutoCAD Architecture 2013, Autodesk Revit Architecture 2013, 3ds Max Design 2013. Рассмотрены их основные возможности и новый функционал."
ГеКИР вне форума  
 
Непрочитано 26.03.2012, 09:20
#9
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Не говоря о её своевременности, т.к. официального анонса AutoCAD 2013 еще не было, о чем Хмурый и намекнул.
Как раз таки своевременно, т.к. в этом случае существует некоторая надежда, что в release-версии проблема будет устранена. Если бы проблема была выявлена уже после официального выхода 2013-й, то скорее всего пришлось бы ждать выпуска SP. Предварительную версию для того и раздают, чтобы выявить баги. Хотя вопрос, конечно же, следовало задать в ADN, а уж никак не на двг.ру...

имхо
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 26.03.2012, 09:21
#10
Александр Ривилис

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


ГеКИР, Это "анонс анонса". И РПК как всегда "впереди планеты всей". Но видимо одумались и этот анонс со своего сайта убрали.
Цитата:
Как раз таки своевременно, т.к. в этом случае существует некоторая надежда, что в release-версии проблема будет устранена.
Шансов никаких. Release-версия (английская) уже готова. И проверял я именно с ней.

P.S.: И более того уже и обновления к этой версии появились (не связанные с этим багом), хотя официального заявления о выходе 2013-го еще не было: http://usa.autodesk.com/adsk/servlet...40618#section1

Последний раз редактировалось Александр Ривилис, 26.03.2012 в 12:22.
Александр Ривилис вне форума  
 
Непрочитано 26.03.2012, 14:41
#11
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
И более того уже и обновления к этой версии появились (не связанные с этим багом)
Это не обновления, а менеджер управления лицензиями. Autodesk всегда его выкладывает отдельно. На той же странице видно, что они это делают для всех версий AutoCAD.

п.с. Возможно, что это и не баг, а так и задумано - просто Autodesk молча ставит всех перед фактом, мол отныне использовать нужно UNICODE. Сообщите, что вам в ADN ответят по этому вопросу, интересно...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 26.03.2012 в 14:47.
hwd вне форума  
 
Непрочитано 26.03.2012, 14:54
#12
Дима_

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


ИХМО если все-же будет такой "плавный" переход на UTF-8 (хотя лично мне побарабану - всегда говорил, что DCL - зло) - это не баг, а скорее показание отношения к юзверям - ну хочешь перейти на более "продвинутый" уровень (хотя при наличии XAML, DCL - это как-то смешно вроде), сделай (load_dialog-utf8 ...)? зачем что есть "портить"?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 26.03.2012, 15:09
#13
Александр Ривилис

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


Предлагаю дождаться официального ответа Autodesk. IMHO - это баг.

Дима_,
Цитата:
Сообщение от Дима_ Посмотреть сообщение
сделай (load_dialog-utf8 ...)? зачем что есть "портить"?
В (load_dialog-utf8 ...) нет необходимости, т.к. при чтении файла достаточно прочитать маркер (BOM) и понять,
что он в кодировке UTF8 (0xEF,0xBB,0xBF)

Последний раз редактировалось Александр Ривилис, 26.03.2012 в 15:20.
Александр Ривилис вне форума  
 
Непрочитано 26.03.2012, 22:33
#14
Salt

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


А лисп файлы тоже требуют кодировки UTF-8, или можно ANSI ?

Цитата:
всегда говорил, что DCL - зло
Это древний язык разметки. По сути то же, что и XAML. Просто его не развили должным образом (по неведомой причине).

Последний раз редактировалось Salt, 26.03.2012 в 22:40.
Salt вне форума  
 
Непрочитано 26.03.2012, 23:04
1 | #15
Дима_

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


Цитата:
Сообщение от Salt Посмотреть сообщение
Это древний язык разметки. По сути то же, что и XAML.
Я в смысле, что если решили развить ДЦЛ - то ХАМЛ ИХМО самый разумный выбор.
Цитата:
В (load_dialog-utf8 ...) нет необходимости, т.к. при чтении файла достаточно прочитать маркер (BOM) и понять...
мудро, ну так тем более...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 27.03.2012, 02:02
#16
Александр Ривилис

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


Цитата:
Сообщение от Salt Посмотреть сообщение
А лисп файлы тоже требуют кодировки UTF-8, или можно ANSI ?
А вот с этим совсем смешно. lsp-файлы работают только в ANSI кодировке. Если кодировка UTF-8, то lsp-файлы грузятся, но выводят абракадабру.
Цитата:
Я в смысле, что если решили развить ДЦЛ - то ХАМЛ ИХМО самый разумный выбор.
А кто сказал, что решили развивать DCL? Я предполагаю, что это баг и я случайно додумался до workaround с UTF-8, который стал выглядеть как "развитие"... Впрочем, поживём - увидим.

Последний раз редактировалось Александр Ривилис, 27.03.2012 в 02:09.
Александр Ривилис вне форума  
 
Непрочитано 27.03.2012, 07:22
#17
ShaggyDoc

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


Цитата:
В (load_dialog-utf8 ...) нет необходимости, т.к. при чтении файла достаточно прочитать маркер (BOM) и понять,
что он в кодировке UTF8 (0xEF,0xBB,0xBF)
Вот этот BOM как раз самое большое зло. Именно из-за него происходят сбои в программах, которые изначально работают с текстовыми файлами. На PHP это особенно заметно, или с JS.
А BOM делает файл уже "нечистым" текстовым. Утилиты специальные делают, чтоб отловить такие файлы.

Конечно, переход на UTF8 неизбежен, но надо делать это ласково. Вполне логично иметь функции типа load-utf. И для диалогов, и для Lisp.
ShaggyDoc вне форума  
 
Непрочитано 28.03.2012, 07:17
#18
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Уже можно
Цитата:
You are officially released from your non-disclosure and Beta site agreement in regards to commenting publicly on AutoCAD 2013 based products today, March 27th 2012 at 8:01am EST/12.00pm GMT.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 29.03.2012, 02:04
1 | #19
Александр Ривилис

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


Получил ответ из Autodesk. Это их ошибка и её будут исправлять.
Александр Ривилис вне форума  
 
Непрочитано 29.03.2012, 09:21
#20
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Получил ответ из Autodesk. Это их ошибка и её будут исправлять.
Лишнее подтверждение тому, что Autodesk не уделяет должного внимания тестированию своих продуктов. Одно дело, когда баг где-то глубоко спрятан, а другое - когда вот так, прямо что называется, на самом видном месте... Значит велика вероятность того, что в ближайшее время всплывёт ещё не один подобный "презент"... Причём наиболее большими шансами обладают локализованные версии продуктов, т.к. их, насколько я понимаю, вообще не тестируют - запустился, значит в порядке...

имхо
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 29.03.2012, 10:13
#21
Дима_

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


Цитата:
Сообщение от 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,413
Отправить сообщение для Александр Ривилис с помощью 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,413
Отправить сообщение для Александр Ривилис с помощью Skype™


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

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


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,372


Цитата:
хотя зачем это надо, не понятно
Как раз понятно - чтобы будущие владельцы 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,413
Отправить сообщение для Александр Ривилис с помощью 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
Юбилейный МО
Сообщений: 269


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

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

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

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


После всех разговоров скачал я "тридцатидневку" - скажу честно на превый взгляд понравилась. Да в английской косячок есть, но во превых я всегда говорил что 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 Кб, 146 просмотров)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.08.2012, 17:40
#41
Klo

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


Спасибо, Дима_. Всё получилось!
Klo вне форума  
 
Непрочитано 09.08.2012, 19:23
#42
gomer

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
я всегда говорил что DCL-зло
дцл не зло, зло - использование нелицензонного софта
gomer вне форума  
 
Непрочитано 09.08.2012, 20:21
#43
Salt

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


Жуткая штука этот F#. Смесь говна с вареньем... ИМХО. И этот рвотный "let" из бейсика 80-х ...
И почему DCL - зло? XAML значит не зло, а DCL - зло? А в чём принципиальная разница?
__________________
... пути твои в водах многих, и следы твои не познaются.

Последний раз редактировалось Salt, 09.08.2012 в 20:48.
Salt вне форума  
 
Непрочитано 09.08.2012, 22:09
#44
Дима_

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


Цитата:
Сообщение от gomer Посмотреть сообщение
зло - использование нелицензонного софта
Я его честно скачал с официального сайта Autodesk и не нарушаю установленные им ограничения по использованию.
Цитата:
Сообщение от Salt Посмотреть сообщение
Жуткая штука этот F#. Смесь говна с вареньем... ИМХО. И этот рвотный "let" из бейсика 80-х ...
И почему DCL - зло? XAML значит не зло, а DCL - зло? А в чём принципиальная разница?
Много утверждений вперемешку с вопросами - первые 2 пропускаю ибо переубеждать в том чему Вы себя сами старательно убедили смысла не вижу.
3. В бейсике let это оператор присваивания (то есть процедура выполняющее конкретное действие), в F# это ключевое слово - которое устанавливает связи (ассоциации) в абстрактном дереве алгоритма - сравнивать языки по схожести синтаксиса это ИХМО гораздо больше "жуткая штука", да еще когда пытаться на этом выводы о похожести сделать.
4. XAML сделан для описания работы автоматически созданных приложений (больше для их "нудных" частей) - заданых декларативно с помощью соответствующих инструментов-конструкторов, а DCL это морально устарвший язык описания ДИАЛОГОВЫХ окон - которые были актуальны в упомянутых Вами 80-х.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.08.2012, 22:37
#45
Salt

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


Я не сравниваю языки по схожести синтаксиса, я просто говорю, что от слова "let" меня тошнит.
Говоря о XAML я имел в виду его использование в качестве языка разметки для создания окон (GUI) в рамках технологии WPF.
Язык DCL - это тоже язык разметки, предназначенный для создания GUI в рамках программирования под AutoCAD. Просто он не стал развиваться компанией Autodesk. Наверное, чтобы вдруг случайно не затмить собой MFC от большого брата. А мог бы...
__________________
... пути твои в водах многих, и следы твои не познaются.

Последний раз редактировалось Salt, 09.08.2012 в 22:45.
Salt вне форума  
 
Непрочитано 09.08.2012, 22:48
#46
gomer

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Я его честно скачал с официального сайта Autodesk
я не о вас, а о тех, кто следит, каждый год обновляется, ни платя при этом ни копейки

Цитата:
Сообщение от Salt Посмотреть сообщение
А мог бы...
А надо ли?
gomer вне форума  
 
Непрочитано 09.08.2012, 22:52
#47
Дима_

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


Цитата:
Сообщение от Salt Посмотреть сообщение
Просто он не стал развиваться компанией Autodesk. Наверное, чтобы вдруг случайно не затмить собой MFC от большого брата. А мог бы...
Примерно с таким-же успехом, что автокад бы операционкой стал, а что все возможности у него для этого есть.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.08.2012, 22:52
#48
Salt

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


Цитата:
А надо ли?
Теперь уже не надо. А тогда могли стать первыми
__________________
... пути твои в водах многих, и следы твои не познaются.
Salt вне форума  
 
Непрочитано 09.08.2012, 22:53
#49
Александр Ривилис

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


Цитата:
Сообщение от Salt Посмотреть сообщение
Язык DCL - это тоже язык разметки, предназначенный для создания GUI в рамках программирования под AutoCAD. Просто он не стал развиваться компанией Autodesk. Наверное, чтобы вдруг случайно не затмить собой MFC от большого брата.
А при чем здесь MFC? Сравнение мягко говоря не корректное. MFC - это библиотека классов, а DCL - язык разметки. Скорее DCL можно было бы сравнивать с файлами ресурсов (.rc), в которых описываются диалоги.
Александр Ривилис вне форума  
 
Непрочитано 09.08.2012, 23:03
#50
Salt

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


Цитата:
MFC - это библиотека классов
Предназначенная, в большей своей части, для создания GUI.
Я имею в виду, что развитый должным образом DCL c функциями поддержки был бы концептуально похож на современный XAML с библиотекой классов WPF.
А MFC - за борт.
__________________
... пути твои в водах многих, и следы твои не познaются.

Последний раз редактировалось Salt, 09.08.2012 в 23:12.
Salt вне форума  
 
Непрочитано 09.08.2012, 23:08
#51
gomer

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Сравнение мягко говоря не корректное.
Лучше сравнивать с *.DFM/*.LFM
gomer вне форума  
 
Непрочитано 09.08.2012, 23:10
#52
Дима_

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


Цитата:
Сообщение от Salt Посмотреть сообщение
Предназначенная, в большей своей части, для создания GUI.
У меня Дежавю - одно время было популярно мнение (которое тоже очень ръяно доказывали) что Windows большей частью это графическая оболочка - типа нортона командор - но с дригим интерфесом (и ни какая аргументация, про защищенный режим процесорра, мультизадачность, изоляцию процессов и пр. в расчет не бралась).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.08.2012, 23:17
#53
Salt

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


MFC - это библиотека классов, предназначенная, в большей своей части, для создания GUI. Что здесь неверно?
__________________
... пути твои в водах многих, и следы твои не познaются.
Salt вне форума  
 
Непрочитано 09.08.2012, 23:25
#54
Александр Ривилис

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


Оффтопите ребята. И я с вами... А Дима молодец, что сделал заплатку. Что-то у меня сомнения появились, что в SP1 этот баг исправят.
Александр Ривилис вне форума  
 
Непрочитано 10.08.2012, 00:05
#55
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377


Вот я не понимаю - какая разница, на каком языке сделано решение? Дима_ - класс, спасибо! Вот если б еще "перевести" на VB.NET либо C# для хоть какого-то понимания решения - было б вообще кучеряво
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.08.2012, 11:23
1 | #56
Дима_

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вот если б еще "перевести" на VB.NET либо C# для хоть какого-то понимания решения - было б вообще кучеряв
Не с ними я завязал ,хотя и не связывался особо еще до их появления - наследие их предков (хотя не могу не признать что C# идет в правильном направлении).
Общий смысл прост до безобразия подменить файл загружаемый (load-dialog)'ом, на преобразованный в UTF8? т.к. родная функция (load_dialog) с фиксированным количество аргументов (всегда одним) самим лиспом она меняется на ура:
Код:
[Выделить все]
 
;если не объявлен load_dialog_fix_bag
(if (not load_dialog_fix_bag)
    ;сохраняем в нем изначальную функцию
    (SETQ load_dialog_fix_bag load_dialog))
;переобъевляем стандартный load_dialog
(defun load_dialog(path)
  ;в изначальный load_dialog грузим
  (load_dialog_fix_bag
     ;полученный полный путь (на случай если был задан в "короткой" форме) 
    ((lambda (full)
       ;от .Net-Lisp функции (жаль лисп сам с UTF8 не работает) файла
                                 ;преобразованного в случае удачного получения 
                                          ;из полного пути
                                               ;либо из исходного
       (load_dialog_fix_utf8_bag (if full full path)))
     ;собственно получение полного пути
     (findfile path))))
вся загвоздка в том, что Auto/VisualLisp не умеет общаться с двоичными файлами (UTF8, к сожалению, для него именно двоичный), а "каждеустановленных" COM серверов с необходимым функционалом я не нашел, но т.к. нужен он будет (я надеюсь - но хотя-бы пока это так), для одной единственной версии, то "особенность" .Net, здесь, даже немного "играет на руку":
Код:
[Выделить все]
 //подключаем библиотеки
#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>()

//Создаем функцию преобразующие ResultBuffer в список TypedValue
//null - пусть будет пустым списком
//список F#'ный(не путать с IList) - для дальнейшего использовании в сопоставлении с шаблонами
//в данном примере можно было обойтись и массивом, но список более универсальный тип для этой цели
let Rb=function
  |null->[]
  |(rb:ResultBuffer)->rb.AsArray()|>Array.toList

//Задаем шаблон преобразования лисп-кадовского текстового представления
//т.к. кроме строк мы ничего не предполагаем, остальные "типы" относим к "неизвестным"
//еслиб работали с еще какими либо, то на каждый шла своя строка - распозначания->преобразования
let (|AcStr|AcUnknow|) (x:TypedValue)=
  //представляем TypeCode как LispDataType
  enum<LispDataType>(x.TypeCode|>int)|>function
    //если строка преобразовываем ее в текст
    |LispDataType.Text->AcStr(x.Value:?>string)
    //что-то другое - считаем как неизвестный тип
    |_->AcUnknow

//Отмечаем точку входа для Lisp функции load_dialog_fix_utf8_bag
[<LispFunction("load_dialog_fix_utf8_bag")>]
// функция по аргументы arg:ResultBuffer (тип выводиться автоматом т.к. задан в функции преобразования Rb - стр.22)
let LoadDialogFixUtf8Bag arg=
  //берем "область вывода"
  let ed=Application.DocumentManager.MdiActiveDocument.Editor
  //преобразум аргумент и сопоставляем с шаблоном
  arg|>Rb|>function
    //если шаблон содержит 1 текстовое значение то:
                      //проверям наличие такого файла
    |[AcStr path]->if (File.Exists path)
                      //если он есть получаем имя нового временного файла в %temp%'e
                      then let tmp=Path.GetTempFileName()
                           //сохраняем имя в коллекции "на удаление"
                           EraseFiles.[tmp]<-0
                           //и создаем "возратное" текстовое значение
                           new TypedValue(LispDataType.Text|>int,
                                          //которое если чтение исходного->преобразование UTF8->запись во временный прошло корректно
                                          try File.WriteAllText(tmp,File.ReadAllText(path,Encoding.Default),Encoding.UTF8)
                                              // то возращаем путь к временному файлу
                                              tmp
                                          with _-> //если-же нет то ругаемся
                                                  ed.WriteMessage("Warning: load_dialog converting file error...\n")
                                                  // и возращаем путь к исходному файлу
                                                  path)
                      //если же файл не найден (проверка на стр. 47) - ругаемся
                      else ed.WriteMessage("Warning: load_dilalog. File '"+path+"' not found...\n")
                           // и возращаем то что нам и давали (исходную строку)
                           new TypedValue(LispDataType.Text|>int,path)
    //если аргумент состоит из чего угодно другого то ругаемся (не подошел ни к какому сопаставлению)
    |_->ed.WriteMessage("Error arguments load_dialog...\n") 
        // и возращаем nil
        new TypedValue(LispDataType.Nil|>int)

//создаем класс инициализации при загрузке сборки
type Init()=
  //с интерфейсом IExtensionApplication (для определения акадом, что его надо запустить при загрузке)
  interface IExtensionApplication with
    //объявляем метод инициализации
    member obj.Initialize()=
      //вешаемся на событие завершения приложения (автокада)
                                        //удаляем все созданные временные файлы игнорируя ошибки (вдруг их уже кто стер??)
      Application.BeginQuit.Add(fun _-> EraseFiles.Keys|>Seq.cast|>Seq.iter (fun x->try File.Delete x with _->()))
    //пустой метод для совместимости с интерфейсом - p.s. хотя можно было очитку просто сюда добавить
    member obj.Terminate()=()
вот и все.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 10.08.2012 в 12:43.
Дима_ вне форума  
 
Непрочитано 10.08.2012, 15:22
#57
gomer

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


http://www.theswamp.org/index.php?topic=39617.0
gomer вне форума  
 
Непрочитано 10.08.2012, 15:47
#58
Дима_

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


Цитата:
Сообщение от gomer Посмотреть сообщение
http://www.theswamp.org/index.php?topic=39617.0
Вот
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 134
Размер:	32.0 Кб
ID:	85279  
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 10.08.2012, 16:53
#59
gomer

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Вот
ой
чего-то мне подсказывает, что лучше переконвертить диалоги в уникод, а для устаревших автокадов использовать алгоритм, описанный выше, только в обратную сторону. В таком случае можно обойтись только (ну почти) лиспом. Вот так можно читать "неродные" файлы:
Код:
[Выделить все]
 (defun vk_WriteTextStream (Stream FileName Charset / ADODBStreamObj Result)
  (if (setq ADODBStreamObj (vlax-create-object "ADODB.Stream"))
    (progn (setq Result	(vl-catch-all-apply
			  (function
			    (lambda ()
			      (vlax-put ADODBStreamObj "Charset" Charset)
			      (vlax-invoke ADODBStreamObj "Open")
			      (vlax-invoke-method ADODBStreamObj "WriteText" Stream 0)
			      (vlax-invoke ADODBStreamObj "SaveToFile" FileName 2)
			    )
			  )
			)
	   )
	   (vlax-release-object ADODBStreamObj)
	   (if (not (vl-catch-all-error-p Result))
	     FileName
	   )
    )
  )
)
;;;(vk_WriteTextStream "ласкаво просимо на болото" "C:\\Temp\\test.txt" "utf-8")
(defun vk_ReadTextStream (FileName Charset / ADODBStreamObj Result)
  (if (and (setq FileName (findfile FileName))
	   (setq ADODBStreamObj (vlax-create-object "ADODB.Stream"))
      )
    (progn (setq Result	(vl-catch-all-apply
			  (function
			    (lambda ()
			      (vlax-put ADODBStreamObj "Charset" Charset)
			      (vlax-invoke ADODBStreamObj "Open")
			      (vlax-invoke ADODBStreamObj "LoadFromFile" FileName)
			      (vlax-invoke-method ADODBStreamObj "ReadText" -1)
			    )
			  )
			)
	   )
	   (vlax-release-object ADODBStreamObj)
	   (if (not (vl-catch-all-error-p Result))
	     Result
	   )
    )
  )
)
;;;(vk_ReadTextStream "C:\\Temp\\test.txt" "utf-8") 
gomer вне форума  
 
Непрочитано 10.08.2012, 17:18
#60
Дима_

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


Цитата:
Сообщение от gomer Посмотреть сообщение
чего-то мне подсказывает, что лучше переконвертить диалоги в уникод, а для устаревших автокадов использовать алгоритм, описанный выше,
Только половина програм работающих с DCL (правильная половина) создают DCL диалоги "на лету" и делают они это в дефолтной кодировке - то есть сами (то есть тогда их надо переписывать), а саму программу в UTF8 не переведешь т.к. в самой программе тоже может быть (и скорее всего есть) вывод на русском (да и врядли кроказябры лисповская запись правильно запишет).
з.ы. Вначале я думал разбирать а не переведен ли уже файл (через заголовок и/или по контексту), но потом плюнул - заделает автокад (чтоб все читало) - хорошо - можно будет сносить, нет - не судьба.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 10.08.2012 в 17:37.
Дима_ вне форума  
 
Непрочитано 10.08.2012, 18:23
#61
gomer

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


ну а кто сейчас помнит диалоги и лиспы под 10й автокад
gomer вне форума  
 
Непрочитано 11.08.2012, 18:38 юникод
#62
alextv


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


Вот возникла небольшая проблемка:
У меня в дсл есть значек плюс-минус 0.00. Естесвенно пользовался юникодом u+00b10.00 и получал плюс-минус 0.00
Сейчас после кодировки дсл в UTF-8 для 13-й версии так и остается u+00b10.00.
Может кто столкнулся с этим? Может есть идеи?
Спасибо!
alextv вне форума  
 
Непрочитано 11.08.2012, 18:52
#63
gomer

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


пробуй скопировать ± из таблицы символов
gomer вне форума  
 
Непрочитано 14.08.2012, 15:20
#64
hwd

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


2 Дима_
Ко мне обратился пользователь с проблемой, мол у него для AutoCAD 2013 x64 Enu твой вариант не работает. Я взял у него некоторые файлы и сам проверил на AutoCAD 2013 x86 Enu - действительно не работает. Предварительно загружал твои файлы (dll + lsp). Проверяли два варианта:

1. VLX файл.
2. LSP + DCL.

Далее... Переопределённый тобой вариант load_dialog содержит ошибку: пишет, что не находит dcl-файл (на мгновение всё же открывается диалоговое окно, в котором видны кракозяблы - я успел сделать скрин). Причина в том, что переопределённый тобою вариант функции не добавляет автоматом расширение ".dcl" к имени файла. Если это исправить, то второй вариант (LSP + DCL) начинает работать - кракозяблы пропадают. Однако первый вариант (VLX) остаётся проблемным.

Исправленный вариант LSP файла (спасибо Александру Ривилису):
Код:
[Выделить все]
 
(if (not load_dialog_fix_bag)
    (SETQ load_dialog_fix_bag load_dialog))
(defun load_dialog(path)
;;Добавлена проверка на наличие расширения файла
(setq path (if (null (wcmatch path "*.dcl")) (strcat path ".dcl") path))

  (load_dialog_fix_bag
    ((lambda (full)
       (load_dialog_fix_utf8_bag (if full full path)))
     (findfile path))))
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 14.08.2012 в 15:33.
hwd вне форума  
 
Непрочитано 14.08.2012, 19:29
#65
gomer

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


Забавные Вы!
Цитата:
Сообщение от hwd Посмотреть сообщение
твой вариант не работает
он и не должен работать
Откройте туториал по лиспу, там написано как грузить диалоги

Цитата:
Сообщение от hwd Посмотреть сообщение
Однако первый вариант (VLX) остаётся проблемным.
он и должен быть проблемным, нечего пендосские кады в россии пользовать, а если так, можно перевести диалог на американский и... привыкать
gomer вне форума  
 
Непрочитано 14.08.2012, 19:40
#66
hwd

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


Цитата:
Сообщение от gomer Посмотреть сообщение
нечего пендосские кады в россии пользовать
как ты сказал, так и будет
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 14.08.2012 в 20:19.
hwd вне форума  
 
Непрочитано 15.08.2012, 01:26
#67
Дима_

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Далее... Переопределённый тобой вариант load_dialog содержит ошибку: пишет, что не находит dcl-файл (на мгновение всё же открывается диалоговое окно, в котором видны кракозяблы - я успел сделать скрин).
... я только появился - Да я не учел что в оригинальном варианте он по умолчанию ищет *.dcl, то что диалог показывало на мгновение (при этом если я правильно понял - в ком. строке писало что не найден соотв. диалог) - мне не понятно, если только идет какая-то акадовская ошибка при обработке "крокозябного" диалога - то есть если без плагина его тоже на секунду показывает - т.к. если файл не найден - то по идее, должен вернуть "какой давали". В общем варианта 2 либо компилированной сборке вобще плевать на "переделанную" Lisp функцию (как вариант попробывать ее тоже скомпилировать) - я честно говоря не знаю - т.к. ни одного своего проекта не компилировал (зачем это делать - не понимаю, захотят украсть - все равно не поймут, а кто поймет - тому не надо, зато ошибки подправить смогут (более вероятный случай) - но это другой вопрос) + в любом случае надо "подправить исправление", т.к. файл может быть задан с другим разрешением (не dcl), а текущая подправка к нему еще свое добавит. Но это завтра - ибо с командировки я - жена ругает - говорит спать ложись.
p.s. скорее всего поможет загрузка lisp-модуля до vlx.
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 15.08.2012 в 01:33.
Дима_ вне форума  
 
Непрочитано 16.08.2012, 12:33
#68
Дима_

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


Только сейчас смог добраться до кода - в общем проверил на скомпилированном который загружает без расширения - у меня работает, единственное, что я исправил - это лисп модуль следующим образом
Код:
[Выделить все]
 (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)))
     ((lambda (dcl)
         (if dcl dcl (findfile (strcat path ".dcl"))))
      (findfile path)))))
то есть ищет вначале как задано, если нет, то пробует добавить .dcl (сделанно для того, что оригинальная программа может как задавать имя файла без расширения (и только тогда его надо добваить), так и использовать свое (например .tmp) - что в предыдущем варианте будет обработано не верно).
То Hwd попробуй пожалуйста на своем скомпилированном - если не пойдет - пришли мне больного (желательно в обоих вариантах) - гляну где "собака порыта"Offtop: пока лицензия не кончилась.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.08.2012, 14:46
#69
hwd

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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
То Hwd попробуй пожалуйста на своем скомпилированном - если не пойдет - пришли мне больного (желательно в обоих вариантах) - гляну где "собака порыта"Offtop: пока лицензия не кончилась.
Под "скомпилированном" подразумевается VLX?

1. Если ты о VLX, то кракозяблы.
2. Если ты всё же о варианте LSP + DCL, то всё работает (я заменил исправленный мною выше LSP на твой обновлённый вариант).

В архиве то, на чём проверял работу патча. Две команды: GRAPH и SHV1 (первая из VLX, вторая - LSP + DCL). Если будешь запускать - предварительно добавь в каталоги поиска запись для подкаталога .\data-test.
Вложения
Тип файла: zip ac2013-dcl-fix.zip (380.1 Кб, 65 просмотров)
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 16.08.2012, 20:25
#70
gomer

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Если ты о VLX, то кракозяблы.
я же написал, работать не будет, хоть весь диск забейте дисиэльками, потому что вылыикс аппликация грузит диалог и собственного кармана, чего непонятного? Откройте ваш graph блокнотом и переведите на австралийский ваши диалоги и будет вам счастье, если повезет =ь
gomer вне форума  
 
Непрочитано 17.08.2012, 11:28
#71
Дима_

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


Вроде разобрался - вобщем суть такая, надо рассматривать несколько вариантов - 1. Код ,либо в чистом виде, либо скомпилированный, но работающий в общем именном пространстве (компилиция по умолчанию) и dcl файл (либо файл генерируемый самим лиспом) - здесь проблем нет (загрузка диалога будет "перехваченна" и подменена на диалог в utf8). Лисп скомпилированный вместе с dcl диалогом - пока не до этого, но будет время займусь (если у кого есть наработки либо инфа по формату файла, Offtop: по моему Елпанов Евгений как-то дискутировал в этом направлении, то выкладывайте) - суть примерна та-же, опять перехватить загрузку, но уже самого vlx (load...) и подменить строки или если он все-же вначале создает временный файл диалога - то найти где - и подменить там (команду load_dialog с указанием файла он точно запускает - проверял, но есть ли этот файл физически?). Еще вариант компиляция в изолированном пространстве имен и загрузка "самосозданного" диалога, то есть будет вызывать load_dialog по "прямому" указателю - если я правильно понял, пока не проверял, с этим все просто - заменить в vlx заголовке соответствующий аттрибут (он там в простом текстовом виде), но могут возникунть проблемы с другими лиспами. Вобщем если кто знает как найти dcl в vlx - отпишитесь.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 17.08.2012, 14:41
#72
hwd

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


2 Дима_
Это может помочь по части VLX?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 13:35
#73
Александр Ривилис

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


Вышел AutoCAD 2013 Service Pack 1.1
Быстрая проверка показала, что этот баг исправлен.

P.S.: А не быстрая показала, что не исправлен.

Последний раз редактировалось Александр Ривилис, 11.09.2012 в 16:42. Причина: Был не прав. Исправляюсь.
Александр Ривилис вне форума  
 
Непрочитано 11.09.2012, 14:10
#74
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Вышел AutoCAD 2013 Service Pack 1.1
Быстрая проверка показала, что этот баг исправлен.
Проблемы в AcCoreConsole.exe как были, так и остались.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 11.09.2012, 14:34
#75
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,896
Отправить сообщение для Cfytrr с помощью Skype™


Александр Ривилис,
Win7 x64, что то не очень исправили...

Нажмите на изображение для увеличения
Название: Sp1.1.PNG
Просмотров: 258
Размер:	154.3 Кб
ID:	86863

Исправил
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 11.09.2012, 14:38
#76
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377


Cfytrr, "Вложение не существует"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.09.2012, 14:42
#77
hwd

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


2 Cfytrr
Это VLX или LISP + DCL?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 14:46
#78
Александр Ривилис

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


Цитата:
Сообщение от Cfytrr Посмотреть сообщение
Александр Ривилис,
Win7 x64, что то не очень исправили...

Вложение 86863

Исправил
Я проверял в x86.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.09.2012, 14:51
#79
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,896
Отправить сообщение для Cfytrr с помощью Skype™


hwd,
Это LISP + DCL с отключенными "заплатками"

VLX так же не работает (ни с заплатками, ни без)
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 11.09.2012, 14:54
#80
hwd

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


Как-то уж очень дохрена багов в 2013-м... Причём установив SP1.1 я снова нашел всё то, что помешало перейти на 2013-ю версию... Качество ПО у Autodesk "на высоте"... В общем, как ни тестировали они свои заплатки, так и не тестируют, к сожалению. Ждёмс, когда Autodesk в очередной раз удалит из раздачи SP1.1 в виду "всплывущих" косяков в самой заплатке (не удивлюсь ни разу)...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 14:59
#81
Александр Ривилис

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


Цитата:
Сообщение от Cfytrr Посмотреть сообщение
hwd,
Это LISP + DCL с отключенными "заплатками"

VLX так же не работает (ни с заплатками, ни без)
Из спортивного интереса попробуй эти два файла (должны быть в путях доступа AutoCAD).
Это то, что у меня работает.
Если не сработает - отправлю повторно запрос в Autodesk.
Вложения
Тип файла: zip test.zip (792 байт, 56 просмотров)
Александр Ривилис вне форума  
 
Непрочитано 11.09.2012, 15:05
#82
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Из спортивного интереса попробуй эти два файла
Александр Наумович, я конечно извиняюсь, но... Оно и в x86 не работает:



Какими чудесами оно у вас не кракозяблами? Может у вас включена та заплатка, которая была предложена выше в данном топике, написаная уважаемым Дима_ ?

Текущие данные:
AutoCAD 2013 Enu x86 SP 1.1
Windows XP SP3 Rus x86
Миниатюры
Нажмите на изображение для увеличения
Название: 11.09.png
Просмотров: 1573
Размер:	4.0 Кб
ID:	86865  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 15:07
#83
Александр Ривилис

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


Цитата:
Сообщение от hwd Посмотреть сообщение
Может у вас включена та заплатка, которая была предложена выше в данном топике, написаная уважаемым Дима_ ?
Нет конечно. Я её не ставил.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 11.09.2012, 15:10
#84
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,896
Отправить сообщение для Cfytrr с помощью Skype™


Александр Ривилис,
Аналогично с #82
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 11.09.2012, 15:16
#85
Александр Ривилис

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


Хм. Фантастика
[IMG]http://img401.**********.us/img401/9758/screenshot20120911001.png[/IMG]
Александр Ривилис вне форума  
 
Непрочитано 11.09.2012, 15:18
#86
hwd

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



Код:
[Выделить все]
 (findfile "test.dcl")
?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 15:27
#87
Александр Ривилис

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


Код:
[Выделить все]
Command: (findfile"test.dcl")
"C:\\test.dcl"
Именно там где и должен быть.
Александр Ривилис вне форума  
 
Непрочитано 11.09.2012, 15:30
#88
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,377


AutoCAD 2013 x64 Eng + SP1.1; Windows XP Pro x64
Выполняю код
Код:
[Выделить все]
 (vl-load-com)

(defun test (/ file handle)
  (setq file   (strcat (vl-string-right-trim "\\" (getenv "TEMP")) "\\dlg.dcl")
        handle (open file "w")
        ) ;_ end of setq
  (foreach item '("dlg:dialog{label=\"Проверка работы\";"
                  ":text{label=\"Проверка 2\";}"
                  "ok_cancel;"
                  "}"
                  )
    (write-line item handle)
    ) ;_ end of foreach
  (close handle)
  (setq dcl_id (load_dialog file))
  (new_dialog "dlg" dcl_id)
  (setq dcl_res (start_dialog))
  (unload_dialog dcl_id)
  (princ)
  ) ;_ end of defun
На экране крякозябры.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.09.2012, 15:37
#89
Александр Ривилис

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


Значит я один такой счастливый. :-)
Александр Ривилис вне форума  
 
Непрочитано 11.09.2012, 15:46
#90
hwd

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


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Значит я один такой счастливый. :-)
Может у вас SP 1.2
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.09.2012, 15:56
#91
Александр Ривилис

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


Так. Приношу всем свои извинения за то, что сбил с толку. SP1.1 не исправляет этот баг. Отсутствие крякозябров у меня оказалось обусловленным тем, что какая-то программа (знать бы какая) прописала мне "руссификацию" в реестр в ветку
Код:
[Выделить все]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
Можете поверить мне, что этого я сам не делал - неоднократно писал о недостатках этого метода и на этом форуме.

P.S.: Отправил повторный запрос в Autodesk.

Последний раз редактировалось Александр Ривилис, 11.09.2012 в 16:43.
Александр Ривилис вне форума  
 
Непрочитано 09.10.2012, 11:19
#92
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


В ACAD 2013 RUS этот баг исправлен
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Непрочитано 09.10.2012, 11:54
#93
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


В русской версии и не было этого бага.
Do$ вне форума  
 
Автор темы   Непрочитано 05.04.2013, 10:29
#94
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,896
Отправить сообщение для Cfytrr с помощью Skype™


В AutoCad 2014 en x64 вроде исправили ошибку.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
Ответ
Вернуться   Форум 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