Создание дерева сборки

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

Создание дерева сборки

Сообщение Dasty » 24 окт 2007 11:10

Народ Привет!
Кричу о помощи.....
есть такая задача.... имеем текстовый документ в виде (к примеру)
Ass_1
-pod_sborka_1
-pod_sborka_n
Вообщем нужно шо бы катька строила дерево на основе записей в текстовом документе :oops:
Буду очень признателен!
Спасибо!
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение GTV » 24 окт 2007 13:43

Самое простое - это свалять CATVBA-макрос который:

1. Покажет окошко с выбором файла
2. Откроет выбранный файл
3. Создаст новый CATProduct
4. Построчно читая файл добавит под-сборки (или под-компоненты) в узлы дерева определяемые количеством пробелов (или табов) в начале строки.

Затем макрос вывесить в тулбар и наслаждаться жизнью :)

Я правильно понял ?
Вы суслика видите ?.. а он - есть
Аватара пользователя
GTV
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 25 сен 2007 17:57
Откуда: Минск, Беларусь

Re: Создание дерева сборки

Сообщение Dasty » 24 окт 2007 14:18

угу..... тока программер я 0
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение [PTM] » 24 окт 2007 14:29

запись макроса рулит!!!
останеться добавить обработку текстовика и оформить добавление продукта/парта и запихнуть в цикл.
а в качестве прибамбаха-диалоговое окно для указания пути)
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение Dasty » 24 окт 2007 14:35

Точно запись макросов (ведь юзал как то)... Жень спасибо! попробую.... может прокатит
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение [PTM] » 24 окт 2007 14:53

Прокатит я уже попробовал) только текстовик не знаю как обработать)
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение Dasty » 24 окт 2007 15:21

я вот думаю может все это строить на основе данных из экселя + можно попробовать что бы подсборки и компоненты создавались уже с заполненными на них атрибутами
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение [PTM] » 24 окт 2007 15:37

мини совет...
отформатируй и продумай структуру входных данных покажи програмерам... а они уже будут советовать что-то конкретное ....а так вода получаеться...
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение Dasty » 24 окт 2007 15:53

Согласен но
если кто и поможет из уважаемых участников
я думаю они дадут исходник на vb а там я мог бы ее адаптировать в зависимости от используемых атрибутов.. а структура дерева простая Основная сборка аля новый файл и подсборки в нем и компоненты
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение ExtraRight » 24 окт 2007 17:23

Советую использовать формат текстового файла, аналогичный тому, который получается при сохранении Product в виде .txt в меню Save As
Аватара пользователя
ExtraRight
Forum Manager
 
Сообщения: 1575
Зарегистрирован: 11 сен 2007 18:50
Откуда: Нижний Новгород
Blog: View Blog (8)

Re: Создание дерева сборки

Сообщение Dasty » 31 окт 2007 14:13

..... написал, писал писал, попал в ступор.... Вытащил уважаемый Shadow за, что Ему Огромное спасибо!
в вложении сама утилита и экселевский файл.
Первая ячейка А1 - имя корневой сборки, запустите утилиту укажите экселевский файл, получите дерево, затем откройте эксельвский файл и Вы все поймете... прошу строго не судить не программист я :cry:
Вложения
GenerateStructure.rar
(32.86 КБ) Скачиваний: 982
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение [PTM] » 31 окт 2007 15:34

Да отмечу, что скрипт предназначен для создания структуры сборки с глубиной вложенности =1
ибо в басике я не мастак.
для создания своей кнопочки надо добавить модуль с содержанием
Код: Выделить всё
Sub CATMain()
AttrForm.Show (1)
End Sub

а затем назначить этот модуль на кнопку.
ну более добавить ничего не могу ибо половинными идеями делиться не оч люблю)
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение CADRus » 25 ноя 2007 16:52

Мне кажется...

Чтобы сохранить возможность простого задания файла с описанием структуры сборки в текстовике, и чтобы просто было его обрабатывать в скрипте, надо сбоку описывать в формате XML.
XML легко парсить из VB и из любого другого языка.
Возможно даже без рекурсивного обхода всех уровней сборки.

Это всего лишь идея, реализовать не пробовал.
Если долго нажимать CTRL+Z, можно деинсталлировать Windows и разобрать компьютер :)
Аватара пользователя
CADRus
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 21 ноя 2007 20:31
Откуда: Москва

Re: Создание дерева сборки

Сообщение [PTM] » 25 ноя 2007 17:47

ну тут на самом деле 3 пути:
хмл
тхт
эксель
вопрост в том как сделать неограниченную вложенность( или вызывать рекурсию что увеличит потребление памяти или пред анализ что увеличит время...я бы выбрал № 2)
а как и что обрабатывать неважно ...лишь бы вы умели это делать
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение CADRus » 25 ноя 2007 18:05

А я бы выбрал вариант N1 :)
Ведь первичный мотив такой автоматизации - бОльшая экономия времени... IMHO
В варианте с Excel структура обрабатываться будет ещё дольше
Если долго нажимать CTRL+Z, можно деинсталлировать Windows и разобрать компьютер :)
Аватара пользователя
CADRus
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 21 ноя 2007 20:31
Откуда: Москва

Re: Создание дерева сборки

Сообщение AnTe » 29 ноя 2007 13:21

А, может, кто-нибудь подскажет заготовку решения обратной задачи?
Получение дерева?
Понимаю, один из вариантов - сохранить его, в упомянутом ExtraRight действии Save As.., а потом уже эту текстуху разбирать. Но некрасиво это как-то. А если формат сменится? Ну или прогу нужно будет развить?
AnTe
Новичок
Новичок
 
Сообщения: 17
Зарегистрирован: 22 ноя 2007 08:00

Re: Создание дерева сборки

Сообщение [PTM] » 29 ноя 2007 13:58

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

Да и если кто-то доработает скрипт до неограниченной вложенности то многим думаю будет интересно посмотреть
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение [PTM] » 04 дек 2007 10:13

А я бы выбрал вариант N1
Ведь первичный мотив такой автоматизации - бОльшая экономия времени... IMHO
В варианте с Excel структура обрабатываться будет ещё дольше

да текстовая инфа будет обрабатываться быстрее чем эксель)))
кстати по такому принципу создан исмарт с бомом выложенный Алексеем в механикале
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение Dasty » 04 дек 2007 13:01

Где Бы вот исходник BOM_RU.exe нарулить....
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение [PTM] » 04 дек 2007 16:51

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

в данном примере самое сложное это создать файл натроек и обработка текстовика

итогом такого скрипта будет 1 файл с кучей листов спецификации ну ессно не ассоциативно...хлтя полуассоциативно сделать можно
Изображение
Аватара пользователя
[PTM]
Moderator
 
Сообщения: 2159
Images: 43
Зарегистрирован: 13 сен 2007 13:03
Откуда: Rzn
Blog: View Blog (15)

Re: Создание дерева сборки

Сообщение Dasty » 04 дек 2007 21:09

интересуют мысли сообщества на тему парсинга отчетов Катии по сбороке, ведь она может все сохрнаить в Excel
а из него дергать данные и вставлять в шаблон спецификации, кто что думает?
Аватара пользователя
Dasty
Forum Manager
 
Сообщения: 937
Images: 3
Зарегистрирован: 11 сен 2007 18:50

Re: Создание дерева сборки

Сообщение Rybuf » 31 мар 2008 07:10

Вопрос по теме. Застопорился на одном месте 3-й день.
Загружаю файл сборки через Catia.Application, получаю доступ к объектам сборки и кроме свойств: PartNumber, Nomeclature, Revision ничего не могу извлечь.
Пример:
Код: Выделить всё
  Catia, Products, pr: Variant;
......

try
  // Create Catia Instance
   Catia := CreateOleObject('Catia.Application');
except
   ShowMessage('Cannot start Catia.');
   Exit;
end;

  OpenDialog1.Filter := 'Catia product files (*.CATProduct)|*.CATProduct|All files (*.*)|*.*';
  if OpenDialog1.Execute then begin
        Catia.Documents.Open(Opendialog1.FileName);
        Catia.Visible := True ;
        Products := CATIA.ActiveDocument.Product.Products;
 
        for i:=1 to Products.Count do  begin
             memo1.Lines.Add(Products.Item(i).PartNumber);
              memo1.Lines.Add(Products.Item(i).Definition); // и т.д.
       end;
 end;

1. Как определить тип объекта (сборка, деталь)?
2. Как узнать у бъекта имя файла и полный путь?
Rybuf
Новичок
Новичок
 
Сообщения: 9
Зарегистрирован: 05 окт 2007 06:18

Re: Создание дерева сборки

Сообщение Artem » 31 мар 2008 08:34

Fullname у Activedocument - полный путь даст
Name у него же - имя файла
По расширению и определяй тип...(Желат. без учета регистра ибо катька сохраняет например CATPart а из смартима catpart)
Зы.
Мож пригодится: Получение документа из продукта
Product.ReferenceProduct.Parent
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Создание дерева сборки

Сообщение Rybuf » 31 мар 2008 09:39

Спасибо за подсказку особенно за Product.ReferenceProduct.Parent все прошло на ура. Осталось только сделать рекурсивный вызов и можно будет капать до самого низа.
Если кому надо, то код на delphi после доработки могу выложить.
Rybuf
Новичок
Новичок
 
Сообщения: 9
Зарегистрирован: 05 окт 2007 06:18

Re: Создание дерева сборки

Сообщение AnTe » 01 апр 2008 17:32

Спасибо за подсказку особенно за Product.ReferenceProduct.Parent все прошло на ура. Осталось только сделать рекурсивный вызов и можно будет капать до самого низа.
Если кому надо, то код на delphi после доработки могу выложить.
Очень интересно! Выложи, если не затруднит!
AnTe
Новичок
Новичок
 
Сообщения: 17
Зарегистрирован: 22 ноя 2007 08:00

След.

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

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

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