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

Внутренности 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 пользователей

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




  • Сообщения

    • gudstartup
      считывание происходит при помощи вх\вых сигналов контроллера plc 
    • gudstartup
      @Maks Horhe так все таки скиньте бэкап эмулируем ваше чпу в cncguide и посмотрим куда поедет?  можете снять видео с фиксацией координатных позиций после каждого кадра. Выложу вашу программу пусть программисты посмотрят все ли в ней ок. %O0002 G40 G17 G94 G90 G49 G80 N1 G91 G28 Z0.0 N2 G91 G28 X0.0 Y0.0 N3 G91 G28 B0.0 C0.0 N4 M03 S200 N5 G90 G0 G53 B0.0 C0.0 N6 G54 N7 X0.0 Y0.0 N8 G90 G43 H01 N9 G90 G0 X0.0 Y0.0 N10 G90 G0 Z200.0 N11 G01 Z10.0 F1500. N12 M00 N13 G00 Z200.0 N14 G40 G49 G69 N15 G00 G53 Z0.0 N16 G00 G54 B0.0 C0.0 N17 G68.2 X0.0 Y0.0 Z0.0 1135. J39.2044 K-129.2315 N18 G53.1 N19 G01 X0.0 Y0.0 F1500 N20 G90 G43 H01 N21 G90 G01 X0.0 Y0.0 F1500 N22 G90 G01 Z200. F1500 N24 M00 N25 G00 Z200. N26 G40 G49 G69 N27 G91 G28 Z0.0 N28 G28 X0.0 Y0.0 N29 G91 G28 B0.0 C0.0 N30 M5 N31 M30
    • gudstartup
      @karlf 530 считывает ключ по специальному протоколу при помощи plc и получает его серийный номер а из него определяет возможные режимы доступа. там нет драйвера а есть plc модуль или несколько эти модули написаны на питоне  надпись smartkey исчезает с экрана при запуске чпу??
    • ДОБРЯК
      Для того, чтобы получить правильные высшие) формы при виртуальном эксперименте, нужно сделать грамотную КЭ модель. От разговора на эту тему вы постоянно уклоняетесь.  То нет компьютера под рукой, сделать простейший тест, то теряете интерес. :=) Сходимости энергии деформации при расчетах статики, недостаточно для точного определения высших собственных форм и частот.  Для того, чтобы грамотно использовать метод конечных элементов, нужно сделать много-много тестов в статике, динамике и ... Одной кнопки и двух конечных элементов в 3Д программе недостаточно для определения высших собственных форм...  У вас в качестве инструмента всего два конечных элемента, шести узловая несовместная оболочка Тимошенко и десяти узловой тетраэдр. И еще контакты при решении задачи на собственные числа. Вам ли говорить про правильность определения высших собственных форм для сложных изделий... :=)    
    • vad0000
      Покажите схему с разрешением на движение
    • vad0000
      Вход, а не выход Вытащить Аналоговый вход и все, как будто туда ничего не подключено И если мы подключим сигнал к энкодеру оси Х, то он стнтет одинаковый с аналоговым входом, который не подключен?
    • Snake 60
      @waze4534  Посмотрите вверх и прочитайте текст на красной полоске...
    • kkk
      Я так понимаю, что предупреждение про "касательные" не просто так выскакивает. Если скруглить прямую стыковку отрезков эскиза (минимальным радиусом) то все работает даже без объединенной кривой, достаточно эскиза.
    • karlf
      Подскажите пожалуйста, может кто сталкивался. Станок DMU-50 на стойке TNC 530, перестал определяться ключ доступа. Сам ключ вроде работает, если переключать на нём режимы, то в шкафу на соответствующих блоках лампочки тоже переключаются. Но изначально был уровень доступа 4, а теперь уровни доступа не активны. Ключ только один, запасных нет. Есть какой-то старый бэкап, пробовал его накатить, но какой-то он непонятный - станок грузится, но почти в конце загрузки выдаёт какую-то ошибку по параметрам. Может кто знает в каком из разделов и в какой папке искать установленные драйверы ключа?
    • YuriySt54
      В данной конструкции можно сразу одним телом делать и обрезать. Но меня интересовало, можно ли сразу при построении массива ограничить лишнее.
×
×
  • Создать...