Новости Энциклопедия переводчика Блоги Авторский дневник Форум Работа

Декларация Поиск О нас пишут Награды Читальня Конкурсы Опросы








ГП-цитатник

Autocad -> Text -> TM -> Autocad

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Вт фев 10, 2009 16:07

Да там с примерами туго (реально в этом блоке TEXT может быть что угодно - от служебного имени объекта до обыкновенного человеческого текста). А в DXF-файлах никаких признаков явно нет.

Я в этой ситуации поступил просто - сделал в Автокаде экспорт всех атрибутов в CSV, потом конвертнул его в XLS (напрямую в XLS лучше не сохранять), открыл на перевод в ТагЭдиторе и скопировал те атрибуты, которыя явно переводить не надо, из оригинала в перевод. Поскольку повторяемость по значениям атрибутов там одуренная, заняло это совсем немного времени.
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34





Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср фев 11, 2009 10:25

Давайте так сделаем. Скажем, у вас появится конкретный DXF, где о каждом блоке TXT вы можете сказать: это надо переводить, а это блок, относящийся к значениям атрибутов, и его не надо переводить. Вы его выложите (а если он секретный, можно из него вырезать лишь маленький фрагмент), и я взгляну. Я сторонник простых решений. Если в заголовках или в расположении есть простой признак, указывающий на то, что данный блок переводить не надо, я добавлю соответствующую функцию в свою программы.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Ср фев 11, 2009 10:37

mikegor писал(а):Скажем, у вас появится конкретный DXF, где о каждом блоке TXT вы можете сказать: это надо переводить, а это блок, относящийся к значениям атрибутов, и его не надо переводить.

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

Смотрел - нету.
mikegor писал(а):Я сторонник простых решений.

Аналогично. Поэтому просто воспользовался предварительным "переводом" атрибутов.

А программа ваша и так прекрасно работает, и дорабатывать в ней ничего уже не надо, иначе из простого средства для облегчения работы она превратится в массивный навороченный продукт. Тут просто частный случай с большим количеством атрибутов, которые не надо переводить. В общем-то случае пользовательские атрибуты и их значения, как раз, переводить надо.
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Ср фев 18, 2009 16:34

Если что - не пинайте сильно, поскольку с Автокадом не очень дружу пока.

Возникла архизабавная ситуация, причём как при использовании ваших программ, так и при использовании Транзита. В файле Автокада таблица, в ней - текст. При сохранении из Автокада в DXF текст этот хранится как в AcDbMtext (и оттуда нормально переводится через XML или Транзитом), так и в AcDbTable, откуда он на перевод не вытягивается. После экспорта переведённого текста в DXF и открытия его Автокадом весь текст - переведён, но при двойном щелчке на любой ячейке таблицы (на редактирование) во всей таблице мгновенно восстанавливается оригинал.
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср фев 18, 2009 17:07

Поскольку чудес не бывает, оригинал должен был остаться в каких-то еще блоках, которые не предусмотрели ни я, ни Транзит. Если можете, выложите куда-нибудь оригинал, я попробую на досуге с ним повозиться.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср фев 18, 2009 18:49

Бродяга писал(а):текст этот хранится как в AcDbMtext, так и в AcDbTable

Ну, да, надо добавить обработку блоков AcDbTable.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Ср фев 18, 2009 23:10

А это технически возможно? А то они нехилых размеров - все ячейки таблицы в одном блоке. Если, конечно, это удастся сделать, то Транзит будет подвинут конкретно.
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср фев 18, 2009 23:32

Безусловно, возможно. Скачал сейчас ваш файл, поработаю над программой. На первый взгляд, проблем нет.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Чт фев 19, 2009 14:01

Бродяга писал(а):Транзит будет подвинут конкретно.

Уже подвинут:
http://slil.ru/26786861
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Чт фев 19, 2009 15:05

Спасибо огромное! Конкуренты отдыхают. Все работает. Благодаря мини-отчёту, выводимому после конвертации каждого файла, отловил файлы с таблицами и сейчас переделываю только их - всего 8 из 106.
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34

Re: Autocad -> Text -> TM -> Autocad

Сообщение Бродяга » Чт фев 19, 2009 15:19

Всё-таки грохнулись мы на одном из файлов. Пишет:

Код: Выделить всё
undefined subroutine &main::encode called at C:\PROGRA~1\PACK\xml2dxf.exe line 300 <XML> line 5457


для справки - в этом файле XML в строке 5457 идёт первый в файле тег <acaddim>, находящийся сразу после закрывающего тега </acadtable>. Копание показало, что в файле xml2dxf.pl 300-ю строку закомментить забыли (она для Юникода).
А потом уже поздно было редактировать. © bagira:)
Аватара пользователя
Бродяга

 
Сообщения: 4948
Зарегистрирован: Ср дек 07, 2005 13:34

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Чт фев 19, 2009 15:39

Ну, это мелочи. Я просто в неюникодовской версии не закомментировал вызов подпрограммы для из Юникода в ASCII. Я не заметил этого, потому что это произошло при обработке блока DIMENSION, а в моих тестовых примерах таких блоков не было. Вот исправленная версия:
http://slil.ru/26787270
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение Руслан » Вт мар 31, 2009 18:23

Добрый день!
Кстати интересная ситуация с dwg под AutoCad 2007. Дело в том, что если его пересохранить в dxf, то ваша утилита не вытягивает текст, а только обрывки. Побывал пересохранить в dwg под AutoCad 2004, потом в dxf, таже история, только часть текста вытягивает. Фаил для примера в приложении. Сам я пишу на Delphi (он мне ближе), вот теперь разбираюсь что бы написать, но еще не совсем понял внутреннию организацию данных. Может вы можете подсказать?
Руслан

 
Сообщения: 12
Зарегистрирован: Ср янв 23, 2008 12:41

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Вт мар 31, 2009 19:05

Надо при сохранении выбирать формат DXF 2000/2004, более поздние версии не поддерживаются.
А где приложение?
А организация файла очень проста. Я это понял поздновато. Просто можно мои скрипты и сильно упростить, и сделать более универсальными. Но сейчас, к сожалению, времени на это нет совершенно. Я бы мог это сделать и на C, и под Windows с красивым интерфейсом, но опять же нет времени на это.
Организация такая. DXF - это текстовый файл. Строки группируются по две. Первая строка содержит целое число - тип следующей строки. А следующая строка - это уже какие-то данные: значения параметров, заголовки блоков, названия переменных, текстовые строки. В частности, код 1 - это текстовая строка. Поэтому алгоритм извлечения текста (в 1-м приближении) будет таков:
1. читаем строку с кодом,
2. если уткнулись в конец файла, то закончили,
3. читаем строку с данными
4. если {код равен 1}
то
{записываем строку с даными в файл}
иначе
{ничего не делаем}
5. переходим к 1.
Это в первом приближении, потому что строки длиной больше 231 символа разбиты на части (на этом, как я писал в начале темы, и ломается утилита TRANS.VLX). Поэтому надо добавить алгоритм сборки этих кусочков. Он прост: код неоконченного фрагмента текста 3, а код последнего фрагмента 1. Значит, заводим буфер, и если код == 3, то добавляем строку к буферу, но в файл не пишем, а если код == 1, то добавляем строку к буферу, пишем буфер в файл и очищаем буфер.
А при записи переведенного текста в файл все делается наоборот. Можно и разбивку на куски сделать, но можно записать все одним куском, а Автокад разобьет на куски сам. Если вы сами программируете, то хоть на Дельфи, хоть на чем угодно, все это сделать, - это очень простенькое упражнение.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение Руслан » Ср апр 01, 2009 09:30

Спасибо. Тогда если вам интересно, я как напишу, думаю сегодня или завтра вам скину уже с интерфейсом.
Руслан

 
Сообщения: 12
Зарегистрирован: Ср янв 23, 2008 12:41

Re: Autocad -> Text -> TM -> Autocad

Сообщение Руслан » Ср апр 01, 2009 11:51

У меня такой еще вопрос - дело в том, что 1 и 3 еще стоят перед спец обозначениями када, например: Solid line, Невидимая и т.д. Вы их просто занесли как игнор или я что-то не так понял?
Руслан

 
Сообщения: 12
Зарегистрирован: Ср янв 23, 2008 12:41

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср апр 01, 2009 17:10

Нет, у меня было сделано по другому. Я искал заголовок блока, например AcDbMText, и отсчитывал определенное количество строчек. Но от версии к версии это количество дополнительных атрибутов блока меняется, вот программа и становится непригодной. Алгоритм, который я дал выше, это лишь общий набросок. Ну, а то, о чем вы пишете, можно учесть, например обрабатывать другие коды и хранить текущий тип блока. Тогда можно записывать строки только из блоков заданных типов.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Сб июн 06, 2009 12:55

http://slil.ru/27732276
Перезалил по поступившим просьбам трудящихся.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение mikegor » Ср авг 05, 2009 11:40

http://slil.ru/27883485
Еще раз перезалил.
An Arbeitsplätzen kann es laut zugehen. Verlassen Sie sich nicht auf verbale Kommunikation!
Аватара пользователя
mikegor

 
Сообщения: 2334
Зарегистрирован: Пт дек 02, 2005 20:47
Откуда: Moscow
Язык(-и): нем-рус,дат-рус

Re: Autocad -> Text -> TM -> Autocad

Сообщение zarakka » Чт сен 03, 2009 11:55

можно віложить есче программу
zarakka

 
Сообщения: 2
Зарегистрирован: Чт сен 03, 2009 11:47

Пред.След.


Словари русского языка

www.gramota.ru
Словарь Мультитран
Язык

Вернуться в Полезное программное обеспечение. Аллея Бродяги

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7