Перейти к публикации

Внутренности drw файла


VitAl2013

Рекомендованные сообщения

Как определить (достать, вынуть) формат листов из этого файла? В миллиметрах, загружаемый frm или ещё как-то. Хоть что-то.

Кол-во листов я уже научился определеять, может что-то ещё можно оттуда брать напрямую? Слои например.

Надо для программы моей.

Ссылка на сообщение
Поделиться на других сайтах


Как определить (достать, вынуть) формат листов из этого файла? В миллиметрах, загружаемый frm или ещё как-то. Хоть что-то.

Кол-во листов я уже научился определеять, может что-то ещё можно оттуда брать напрямую? Слои например.

Надо для программы моей.

Если открыть DRW тектовым редактором, то можно увидеть, что там перечисляются имена всех форматов. По именам форматов можно определить и форматы листов, если знать соответствие "имя формата - формат листа".

Наверное и количество листов можно определить по количеству имен форматов.

Ссылка на сообщение
Поделиться на других сайтах

Ну я в принцыпе так и вычисляю сколько страниц в чертеже.

Считаем сколько PicturePrimdata, потом полученное делим на 2. Получаем кол-во листов.

Относительно формата - да нашёл вот это:

413200E0010D0A706167655F6E756D6265720001E0020D0A

686569676874002D861890CEDE6244E0020D0A

7769647468002F8F40E0020D0A64

Жирным это слова "A2, height, width" - имя формат как оно было обозвано создателем (может быть хоть драхмапутра), высота, ширина. Но извлечь хоть сколько нибудь полезную информацию из остального увы не удаётся.

Если кто знает, догадался или знает как получить - прошу не стеснятся, отписаться.

Ссылка на сообщение
Поделиться на других сайтах

Ну я в принцыпе так и вычисляю сколько страниц в чертеже.

Считаем сколько PicturePrimdata, потом полученное делим на 2. Получаем кол-во листов.

Относительно формата - да нашёл вот это:

Жирным это слова "A2, height, width" - имя формат как оно было обозвано создателем (может быть хоть драхмапутра), высота, ширина. Но извлечь хоть сколько нибудь полезную информацию из остального увы не удаётся.

Если кто знает, догадался или знает как получить - прошу не стеснятся, отписаться.

Для каждого листа можно получить? А как эти места, вделенные жирным, найти программно?

А вообще, у Вас интересный вопрос.

Например, из сборочного чертежа, открытом в текстовом редакторе, оказывается, можно получить всю номенклатуру составных частей сборки (возможно, и количество, но пока не ясно как). Имя модели, имена форматов (об этом я уже говорил). Версию ProE... По крайней мере, для чертежей WF4 это так.

Ссылка на сообщение
Поделиться на других сайтах

VitAl2013,brigval:

Дайте любой многостраничный чертеж drw (без моделей) от WF 4-5 - посмотрю что можно сделать.

Ссылка на сообщение
Поделиться на других сайтах

Вот. test01.zip

Исходная информация такая:

1. 5 листов (А4, А3, А2, А1, А0) Размеры выставлены в мм но могло чтото соскочить и они окажуться в дюймах. (мм делить на 25.4)

2. Модели в нём нет, это только пустой чертёж. Даже без форматок.

А как эти места, вделенные жирным, найти программно?

Если перевести этот шеснадцатиричный код в ASCII то там будут эти слова. Каждые 2 цифры-буквы это символ. Жирных цифр в 2 раза больше чем букв в слове.

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

test01_6.drw.zipТут я добаил 6й лист формата A0, получается 2 последних листа должны быть одинаковы.

Вот тут я скрыл всё одинаковое:post-1462-1269833188_thumb.png

Ещё немного поанализировав код получил такую картину:test02_6.drw.zip

Так и не понял откуда выцарапать высоты с широтами, но обнаружил что поиск кол-ва повторов ".frm" даёт прямое кол-во листов. И так искать наверно правильнее чем первый вариант.

Ссылка на сообщение
Поделиться на других сайтах

Так и не понял откуда выцарапать высоты с широтами, но обнаружил что поиск кол-ва повторов ".frm" даёт прямое кол-во листов. И так искать наверно правильнее чем первый вариант.

Так дела не делаются )). Мне кажется, что ".frm" показатель количества листов только если у Вас чертеж без форматок.

Просмотрев файлы, думаю что вероятнее всего будет довольно сложно напрямую достать размер чертежа. Поэтому рекомендую все-таки сделать соответствие имени формата и формата листа (как Вам советовал brigval во 2 посте).

Ссылка на сообщение
Поделиться на других сайтах

3 файла собственно маловато, чтобы разобраться со структурой размеров форматов. Вот набросал на основании их программку, проверьте внимательнее...

Ссылка на сообщение
Поделиться на других сайтах

Дело в том что предполагается работать с неизвестными и кратно удлинёнными форматами файлов. Так что надо выцарапать напрямую размер. Есть вариант, но он предполагает сохранение каждого листа в stp формат, зато там прям английским по белому расписано сколько на сколько он там есть. Опять же конвертера (желательно консольного) напрямую я не знаю (вероятней всего его совсем нет). Придётся задействовать ProE как таковой, может в сайлент режиме...

А программка-то работает кажись, поделитесь алгоритмом. :music_serenade: Мне его на AutoIT надо реализовать. Либо сделайте консольное исполнение с выводом в txt файл. Или dllкой с выводом в массив.

Ссылка на сообщение
Поделиться на других сайтах

.. на AutoIT надо реализовать. Либо сделайте консольное исполнение с выводом в txt файл. Или dllкой с выводом в массив.

Алгоритм мне не жалко, но лучше Вам его не видеть )) - на AutoIT его точно не переведешь. Напишите в личке свою почту - скину dll-ку.

Ссылка на сообщение
Поделиться на других сайтах

3 файла собственно маловато, чтобы разобраться со структурой размеров форматов. Вот набросал на основании их программку, проверьте внимательнее...

Хорошая программка. Попробовал на несколькольких файлах. Работает правильно.
Ссылка на сообщение
Поделиться на других сайтах

Хорошая программка. Попробовал на несколькольких файлах. Работает правильно.

Благодарю за тесты.

Ссылка на сообщение
Поделиться на других сайтах

А мы можем обсудить то как работает эта программа тут? Или это секретная информация? Я вижу парсинг файла, но до конца не могу понять логику, особенно функцию GetDoubleValue.

Заsendалил пока в личку.

Ссылка на сообщение
Поделиться на других сайтах

А мы можем обсудить то как работает эта программа тут? Или это секретная информация? Я вижу парсинг файла, но до конца не могу понять логику, особенно функцию GetDoubleValue.

Заsendалил пока в личку.

Раз я дал исходники, то значит уже не секретная )) Просто мне кажется форум не совсем удобного формата для такого обсуждения. Лучше постучитесь ко мне в icq 1284941.

Ссылка на сообщение
Поделиться на других сайтах

Я поанализировал код и получается, что программа берёт значение мм или дюймов для размеров чертежа (высота теста, настройка линий, настройка вспомогательных линий для размеров, просто координаты положения обьектов на чертеже и пр.) как размерность первого листа.

И ещё не всегда корректно работает, например вот:

page_check.drw.zip

У меня отпределяет размер второго листа так :

post-1462-1270183287_thumb.png

К теме отношения непосредственного не имеет, но программа не юникод - шрифт ушёл в вопросы (автору на заметку). Это у меня винда настроенна на английский для программ не поддерживающих юникод.

А по поиску ".frm" - действительно, не всегда Прошка пишет расширение форматки.

Ссылка на сообщение
Поделиться на других сайтах

Я поанализировал код и получается, что программа берёт значение мм или дюймов для размеров чертежа (высота теста, настройка линий, настройка вспомогательных линий для размеров, просто координаты положения обьектов на чертеже и пр.) как размерность первого листа.

И ещё не всегда корректно работает, например вот:

page_check.drw.zip

У меня отпределяет размер второго листа так :

post-1462-1270183287_thumb.png

К теме отношения непосредственного не имеет, но программа не юникод - шрифт ушёл в вопросы (автору на заметку). Это у меня винда настроенна на английский для программ не поддерживающих юникод.

А по поиску ".frm" - действительно, не всегда Прошка пишет расширение форматки.

Повторяю в очередной раз - я честное слово совсем не собирался эту абстрактную программку продавать, а только показал в ней в какую сторону копать. И дал код поэтому. И шрифт ушел в вопросы также поэтому )) Доработать особых проблем не вижу. Навскидку - посмотрите внимательнее в файле в блоке описания форматок чему равен параметр saved_unit - возможно из него будет правильнее брать единицы размерности листов.

Ссылка на сообщение
Поделиться на других сайтах

программку продавать

Об этом я ни слова не сказал. Я просто для других проектов (о шрифте) - просто чтоб обратить внимание.

saved_unit

Писмотрюсь.

пока ничего.

Вот 2 файла, различные только параметром drawing_units(если смотреть через drawing options - через Прошку)mm_inch.zip

Я продолжил дискуссию тут, так как считаю что другим полезно будет знать и участвовать в беседе. Наверняка ктото тоже думает разработать чтото для своих нужд под прошку. Также нередко были сообщения с вопросом как распотрашить тот или иной файл от Прошки. Я не думаю что мы уходим от темы Pro/Engineer - мы же его файлы читаем и интерпретируем.

Ссылка на сообщение
Поделиться на других сайтах

Вот задачка:

post-1462-1270364962_thumb.png

Как видно из скрина, моя программка опредлила всё точно также как и програмка Olivaw за исключением что она ещё бинарники в цифры не переводит. Тут главное то где стоит мм лист. Обе определяют его не правильно.

Чертёж создавался так что последние определённые программами 2 листа формата A3 создавались в конце и вставлялись между 1ым и 2м листом. Прошка дописывает их содержимое просто в конец. Значит гдето должен быть индекс листа ещё. Надо его найти.

Остальным же на заметку, в чертеже как в word документе все ходы записаны, по принцыпу "кто на какой машине и за какое время" (там прям минуты записаны). То есть если кто-то хочет вывести кого-то на чистую воду и обоснованно пообвинять в плагиате, а то и просто как-то воспользоваться этими данными (ну там конкурс, например, на кто быстрее сделает чертёж) то открывайте чертёж в блокноте.

page_check.drw.zip

Ссылка на сообщение
Поделиться на других сайтах

Вот моё повторение на AutoIt:

post-1462-1270437542_thumb.png

Это сама прога и исходники с закоментированными функциями слежения и подсказками:

drawinfo_function.zip

Работает не идеально, но иногда корректнее. Проблема порядка листов не поборота.

Ссылка на сообщение
Поделиться на других сайтах

Как видно из скрина, моя программка опредлила всё точно также как и програмка Olivaw за исключением что она ещё бинарники в цифры не переводит. Тут главное то где стоит мм лист. Обе определяют его не правильно.

Чертёж создавался так что последние определённые программами 2 листа формата A3 создавались в конце и вставлялись между 1ым и 2м листом. Прошка дописывает их содержимое просто в конец. Значит гдето должен быть индекс листа ещё. Надо его найти.

Так. Мне кажется, индекс листа ничего не даст, хотя он находится в параметре page_number (сразу после имени форматки). Просто в моей программке расчет высоты и ширины привязаны к размерности, а это не совсем правильно. Нужно делать по-другому.

Остальным же на заметку, в чертеже как в word документе все ходы записаны, по принцыпу "кто на какой машине и за какое время" (там прям минуты записаны). То есть если кто-то хочет вывести кого-то на чистую воду и обоснованно пообвинять в плагиате, а то и просто как-то воспользоваться этими данными (ну там конкурс, например, на кто быстрее сделает чертёж) то открывайте чертёж в блокноте.

Зачем же по этому поводу в блокноте рыться? ))) Если я не ошибаюсь, в самом прое есть аудит..

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • Snake 60
      Скорее всего исправляли в конкретной сборке, для конкретных тел. Насколько я помню, надо в самом эскизе профиля заполнить свойство Description
    • Snake 60
      Делаете дырку в свае - вставляете в нее трубу и 2 человеко-силы крутят сваю ) Дёшево и сердито и не нужен никакой планетарный редуктор ))
    • gudstartup
      вы всегда ищите свой путь или будете делать то что вам советуют? с самого начала прежде чем приступать к экспериментам вам нужно было вынуть носитель и сделать образ. diskcopy делает копию гибкого диска на другой а вам надо сделать образ жесткого диска или карты памяти. делайте как советует @Viktor2004 иначе еще чего нибудь сломаете или вам станок не нужен и вы его приобрели для экспериментов ? вот а печатной машинке из прошлого нельзя а вот на синумерике можно - удивительные вещи в настоящем происходят!! на 100 % уверен что там не модуль а либо писимиси ай либо жд @mircomax81 хотите работать в дос почитайте помощь по командам 
    • PuKoLLleT
      Доброго дня всем. Поделитесь опытом,раньше такое не доводилось делать. На торце фланца нужно сделать  восемь отверстий ф17H7 на токарно-фрезерном станке с осью Y ,имеется ManualGuide.В моем понимании нужно просверлить,а затем торцевой фрезой расточить нужный диаметр.Получится такой фокус,или надо разверткой доводить нужный размер?  Стойка Fanuc 0i-Tf.
    • Snake 60
      Всё верно, я даже русификатор делал для него (ушло на это где-то около года). Хороший софт был, я всех знакомых на него подсадил в свое время :) У меня даже где-то образ на виртуалке лежит с SW2014+MechSoft, Жаль, что автодеск его поглотил, а не DS :( А по сути вопроса, проектировал двухступенчатый планетарный редуктор в свое время. Что было нужно: Справочник по планетаркам (автора не помню, если надо поищу), из софта MathCAD + GearTeq (софтина идет вместе с GearTrax, только рассчитывает и моделирует несколько зацеплений согласно выбранной схеме, в том числе планетарки) Ой и ошибаетесь. Звездочки - не равно зубчатые колеса в планетарке) Мы намучились с малой точностью изготовления на эл.эрозии, а Вы лазером ))) Был собран опытный образец редуктора с незакаленными деталями, чисто проверить геометрию, отладить сборку. Так потом начальство этот редуктор сказало испытать в бою, как я не противился)) Помер за пару дней интенсивных нагрузок ))) Материал, термообработка и точности изготовления решают )
    • Snake 60
      @Тихоход  Ещё один вариант - изучать программирование и писать свою программу/макрос. Вот пример конфигуратора двери: https://www.youtube.com/watch?v=wv4HryWQBSk
    • mircomax81
      Посредством Diskcopy можно сделать адекватную копию на флоппи диск?
    • Andrey_kzn
      Да, ведь советовали автору вытащить жёсткий диск и сделать образ. Неужели самому не интересно, как устроен этот старый промкомпьютер? Там может стоять как жёсткий диск, так и CF-карта, или же Disc-on-chip или Disc-on-module.  Как-то очень давно, на подобном промышленном оборудовании (большая печатная машина) я не смог перенести  ПО с родной CF - карты на другую, такого же размера но другой фирмы. Была также станочная оболочка под досом.  Образ я делал Нортон гостом, развернул его на другую CF-карту без проблем. Машина загрузилась нормально и работала ровно 2 дня, на неродной CF-карте,  потом зависла, и отказалась загружаться. Пришлось вызывать сервисника. От него мы узнали, что нельзя просто так взять и заменить карту  - носитель системного ПО, на другую. А полезли мы туда, так как руководство захотело печатать отчёты по работе машины. В станочном ПО такая функция была. Вот только принтер надо было купить у фирмы - производителя этой самой машины. В попытках заставить работать другой принтер мы редактировали файл  AUTOEXEС.BAT, на предмет загрузки драйвера принтера, ничего не получилось, зато перестали открываться некоторые страницы станочного ПО.  Образ у нас был давно снят, и мы развернули его на другую карту памяти. Родную карту я трогать не стал (как чувствовал, что нельзя ). Сервисник восстановил ПО с архивной дискеты на родную карту памяти, и всё заработало. Дискеты с архивами ПО шли вместе с документацией к машине.  Там были дискеты с Досом, станочной оболочкой, параметрами приводов, программой ПЛК. Он же и предупредил нас о предельно аккуратном обращении с родной картой памяти, и посоветовал немедленно сделать образы с архивных дискет, что мы сразу и проделали.. Вот такой сюрприз от машины эпохи Дос.
    • Борман
    • gudstartup
      а ведь все работало...
×
×
  • Создать...