Умеет ли CATIA, через VBA, работать с текстовыми файлами?

Программирование для CATIA.

Умеет ли CATIA, через VBA, работать с текстовыми файлами?

Сообщение likemilk » 20 апр 2012 00:40

Умеет ли CATIA, через VBA, работать с текстовыми файлами?
Команда Open почему то не срабатывает.

И можно ли обращаться к таблице базы данных?
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение file » 20 апр 2012 13:31

Сам по себе VBA имеет инструменты для работы с текстовыми файлами. Например:
Код: Выделить всё
Sub Test()
   Open "c:\file.txt" For Output As #1
   Print #1, "Этот текст будет записан в текстовый файл"
   Close #1
 
   Open "c:\file.txt" For Input As #1
   Dim s As String
   Input #1, s
   MsgBox s
   Close #1
End Sub

А что касается CATIA, то все зависит от конкретной решаемой задачи :-)
file
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 02 янв 2011 22:44

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение Virty » 20 апр 2012 15:11

Здравствуйте, коллеги.
Работу с текстовыми файлами обсуждали с уважаемым ShaytanTruba в конце 2009 года.
Возможно, он добавит свои замечания.

Итак, CATScript может читать и записывать внешние данные, по этому вопросу есть материал в разделе справки "Infrastructure - Accessing Files and Folders".
Данные могут находиться как в произвольной папке, так и в структуре каталогов CATIA - доступ к ним через "CATIA.SystemService.Environ", например: CATIA.SystemService.Environ("CATTemp") - временная папка.

Полагаю, что структура каталогов CATIA - это лучший вариант в случае коллективной работы.

Самый интересный вопрос - это структура данных.

Для текстового файла условия могут быть такими:
а) кодировка - ANSI, с юникодом могут быть сюрпризы, требуется дополнительное тестирование;
б) каждая переменная пишется с новой строки - для точного чтения с помощью "FileStream.ReadLine";
в) запись в строке имеет вид [имя_переменной] = [значение] - для последующего размещения в двухмерном массиве данных.

В моём примере данные читаются из файла в двухмерный массив.
Далее, зная имя переменной, можно отыскать её значение с помощью метода SearchDataByName("VariableName") и вывести его в окне сообщения или присвоить нужному текстовому полю.
Вложения
readDataFromTextFile.zip
(4.01 КБ) Скачиваний: 475
Аватара пользователя
Virty
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 26 янв 2009 19:55

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение Wireless_Fidelity » 20 апр 2012 16:02

Здравствуйте.

Automation предоставляет CATscript'ам класс для работы с файлами CATIA.FileSystem. По функционалу он похож на класс FileSystemObject в VBA. Если же хочется иметь ровно тот же функционал, что и в VBA, то объект соответствующего класса можно получить через CreateObject("Scripting.FileSystemObject").
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 20 апр 2012 23:20

file писал(а):Сам по себе VBA имеет инструменты для работы с текстовыми файлами. Например:
Код: Выделить всё
Sub Test()
   Open "c:\file.txt" For Output As #1
   Print #1, "Этот текст будет записан в текстовый файл"
   Close #1
 
   Open "c:\file.txt" For Input As #1
   Dim s As String
   Input #1, s
   MsgBox s
   Close #1
End Sub

А что касается CATIA, то все зависит от конкретной решаемой задачи :-)

Этот пример я тоже нашел :) в экселе всё работает а вот в кати не хочет :(
Задача: пытаюсь средствами VBA организовать подобие PDM системы. Пока нахожусь на этапе разработки алгоритмов обработки данных. Уже имеется некое количество макросов, для работы которых требуется получать вводные данные, пока из таблицы (экселевской), методом Copy/Paste. Давно хочу автоматизировать данный этап. Из экселя выгрузить данные просто, а вот в кати их загрузить не получается.
Дальше планирую перевести на уровень обращения к общей базе данных. Но это произойдет еще не скоро... процесс написания логики построения SQL-запросов не быстрый. Потому, пока только интересуюсь сможет ли кати обращаться к БД?
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение file » 20 апр 2012 23:45

VBA в CATIA ничем не отличается от VBA любого другого Windows-приложения, поэтому все работает. Проверено :)
file
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 02 янв 2011 22:44

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение zerganalizer » 21 апр 2012 00:08

И что в такой PDM хранить можно будет? Читать кастомные данные и облака точек вполне можно, как и писать результаты, но чтоб PDM...
Автоматизирую все, что логично.
Аватара пользователя
zerganalizer
Moderator
 
Сообщения: 901
Зарегистрирован: 20 май 2008 15:20

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение Wireless_Fidelity » 21 апр 2012 00:18

На COE, да и просто в интернете достаточно много примеров передачи данных в CATIA из Excel и наоборот.
PDM-систему на макросах не построишь хотя бы потому, что она будет завязана на необходимости эти макросы запускать, автоматический запуск возможен только через реакции, которые еще нужно подключить к каждому документу. Иными словами, на выходе будет хромоножка на костылях, падающая от каждого неверного шага, а всё из-за низкого уровня интеграции. Конечно, и ей можно пользоваться, но зачем тогда в качестве САПРа брать такую сложную систему как CATIA... Это как пальба из пушки по воробьям одновременно с изобретением велосипеда, потому как полноценная БД у пятой кати уже есть, называется Smarteam.

Лучше скажите, что хотите в итоге получить, а мы подскажем, как это проще реализовать :)
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение zerganalizer » 21 апр 2012 23:37

Я не представляю - как катийные данные можно выгрузить в чужую базу данных кроме как файлами, в чем нет смысла, ибо человек явно хочет иметь возможность подгрузки и обновления данных, записанных в нейтральном текстовом формате, вроде моей UDF, ассоциативной массиву точек из внешнего файла. Мне почему-то кажется, что речь скорее о создании нейтрального формата из обычной базы, из файлов которого катя могла бы автоматом генерировать некую геометрию, возможно, из Бентли или Интерграфа. Я сильно ошибся?
Автоматизирую все, что логично.
Аватара пользователя
zerganalizer
Moderator
 
Сообщения: 901
Зарегистрирован: 20 май 2008 15:20

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 22 апр 2012 17:20

Задача моего приложения реализованного в виде набора макросов очень простая и очень нужная. Мне нужна база данных хранящая инфу о взаимосвязях между большим количеством документов (пока она реализована в экселе). Основная задача приложения, это помощь в управлении с большим объемом данных (речь про множество версий документов появляющихся в процессе проектирования). Задачи такие как выпуск ревизий документов или целых проектов, экспорт данных в иные форматы для передачи заказчику и генерация спецификаций или списков, например литых деталей для запуска в производство. Сам процесс моделирования полностью задача пользователя. Нет такой задачи как получать геометрию деталей при помощи макросов. Как я уже сказал, передача данных через текстовый формат не конечная цель, а всего лишь шаг на пути создания пригодного приложения. Сразу такую сложную систему не построишь. вот я и пытаюсь по чуть чуть. Сперва занимался проектированием, потом записал макрос для экспорта файлов, сейчас уже оброс кучей макросов помогающих избегать рутинной работы. Задача может и амбициозная но я вижу что её можно реализовать при помощи VBA. Ведь любую готовую PDM-систему так или иначе придется настраивать под конкретные нужды. Я понимаю что когда объем данных превысит определённый лимит, подобное приложение в конечном итоге станет не способным его обрабатывать. И после этого уже придется заниматься серьезным программированием. Но это случится еще не скоро, а когда случится уже будет отработана логика, которую нужно будет повторить, а не придумывать заново.
Если знаете ресурсы где можно посмотреть примеры программирования VBA для CATIA, поделитесь ссылкой. Заранее благодарен.
И если есть ресурс где можно найти документацию с описанием программирования на VBA для CATIA, также буду благодарен :)

До сих пор я программировал опираясь только на запись макросов и уроки по VBA для эксель. Но к сожалению этого мало. И к сожалению не все действия CATIA записывает в макрос, некоторые пропускает, например такие как изменение свойств (Properties) некоторых объектов.
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение file » 22 апр 2012 17:30

Наиболее полное описание объектной модели CATIA V5 изложено в intel_a\code\bin\V5Automation.chm. Но внятных примеров там мало. Поэтому приходится додумывать какую функцию применить, чтобы получить необходимый результат.
file
Новичок
Новичок
 
Сообщения: 47
Зарегистрирован: 02 янв 2011 22:44

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 22 апр 2012 21:57

file писал(а):Наиболее полное описание объектной модели CATIA V5 изложено в intel_a\code\bin\V5Automation.chm. Но внятных примеров там мало. Поэтому приходится додумывать какую функцию применить, чтобы получить необходимый результат.

Очень признателен. Буду разбираться.
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 26 апр 2012 21:21

Не понимаю почему, но команда:
Код: Выделить всё
Open "file.txt" For Input As #1

не работает (выдает ошибку) если она используется в скриптах (файлах вида *.catvbs), в проектах же (*.catvba) все работает без проблем.
Можно ли как то наладить её использование именно в скриптах (*.catvbs)? Может подключить какую библиотеку нужно чтоб заработало?

И еще заметил одну особенность скриптов (*.catvbs) в отличие от проектов (*.catvba) и скриптов (*.CATScript). Если не ошибаюсь, в них можно записать только одну процедуру(Sub) и нельзя использовать дополнительные функции(Function). Так ли это? Или есть быть может есть особый синтаксис или опять же библиотек не хватает?
Тогда в чём разница между *.catvbs и *.CATScript ?
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение Wireless_Fidelity » 27 апр 2012 04:33

CATScript это VBScript с подключенными библиотеками Automation.
Зачем Вам нужен именно Open? Для работы с текстовыми файлами лучше подходит FileSystemObbject и получаемые через него объекты класса File.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 27 апр 2012 16:21

Open - по тому, что пока только с ним разобрался. Не сомневаюсь что FileSystemObbject представляет больше возможностей но под рукой нет примера как им пользоваться.
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение Wireless_Fidelity » 27 апр 2012 17:25

В интернете их тысячи. Ни за что не поверю, что первая страница выдачи гугла не содержит подробного примера. Даже если искать с опечаткой (две bb в слове Object), всё равно примеров масса.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Умеет ли CATIA, через VBA, работать с текстовыми файлами

Сообщение likemilk » 23 май 2012 23:36

Необходимость в использовании Open отпала, после того как освоил адресацию к CATIA напрямую из Excel.
FileSystemObbject - примеры нашлись. Надеюсь что получится использовать его в макросе для резервного копирования рабочих файлов.
likemilk
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 02 дек 2008 15:23


Вернуться в CAA-RADE

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

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