Страница 1 из 2

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

СообщениеДобавлено: 24 окт 2007 11:10
Dasty
Народ Привет!
Кричу о помощи.....
есть такая задача.... имеем текстовый документ в виде (к примеру)
Ass_1
-pod_sborka_1
-pod_sborka_n
Вообщем нужно шо бы катька строила дерево на основе записей в текстовом документе :oops:
Буду очень признателен!
Спасибо!

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

СообщениеДобавлено: 24 окт 2007 13:43
GTV
Самое простое - это свалять CATVBA-макрос который:

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

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

Я правильно понял ?

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

СообщениеДобавлено: 24 окт 2007 14:18
Dasty
угу..... тока программер я 0

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

СообщениеДобавлено: 24 окт 2007 14:29
[PTM]
запись макроса рулит!!!
останеться добавить обработку текстовика и оформить добавление продукта/парта и запихнуть в цикл.
а в качестве прибамбаха-диалоговое окно для указания пути)

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

СообщениеДобавлено: 24 окт 2007 14:35
Dasty
Точно запись макросов (ведь юзал как то)... Жень спасибо! попробую.... может прокатит

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

СообщениеДобавлено: 24 окт 2007 14:53
[PTM]
Прокатит я уже попробовал) только текстовик не знаю как обработать)

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

СообщениеДобавлено: 24 окт 2007 15:21
Dasty
я вот думаю может все это строить на основе данных из экселя + можно попробовать что бы подсборки и компоненты создавались уже с заполненными на них атрибутами

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

СообщениеДобавлено: 24 окт 2007 15:37
[PTM]
мини совет...
отформатируй и продумай структуру входных данных покажи програмерам... а они уже будут советовать что-то конкретное ....а так вода получаеться...

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

СообщениеДобавлено: 24 окт 2007 15:53
Dasty
Согласен но
если кто и поможет из уважаемых участников
я думаю они дадут исходник на vb а там я мог бы ее адаптировать в зависимости от используемых атрибутов.. а структура дерева простая Основная сборка аля новый файл и подсборки в нем и компоненты

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

СообщениеДобавлено: 24 окт 2007 17:23
ExtraRight
Советую использовать формат текстового файла, аналогичный тому, который получается при сохранении Product в виде .txt в меню Save As

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

СообщениеДобавлено: 31 окт 2007 14:13
Dasty
..... написал, писал писал, попал в ступор.... Вытащил уважаемый Shadow за, что Ему Огромное спасибо!
в вложении сама утилита и экселевский файл.
Первая ячейка А1 - имя корневой сборки, запустите утилиту укажите экселевский файл, получите дерево, затем откройте эксельвский файл и Вы все поймете... прошу строго не судить не программист я :cry:

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

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

а затем назначить этот модуль на кнопку.
ну более добавить ничего не могу ибо половинными идеями делиться не оч люблю)

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

СообщениеДобавлено: 25 ноя 2007 16:52
CADRus
Мне кажется...

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

Это всего лишь идея, реализовать не пробовал.

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

СообщениеДобавлено: 25 ноя 2007 17:47
[PTM]
ну тут на самом деле 3 пути:
хмл
тхт
эксель
вопрост в том как сделать неограниченную вложенность( или вызывать рекурсию что увеличит потребление памяти или пред анализ что увеличит время...я бы выбрал № 2)
а как и что обрабатывать неважно ...лишь бы вы умели это делать

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

СообщениеДобавлено: 25 ноя 2007 18:05
CADRus
А я бы выбрал вариант N1 :)
Ведь первичный мотив такой автоматизации - бОльшая экономия времени... IMHO
В варианте с Excel структура обрабатываться будет ещё дольше

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

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

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

СообщениеДобавлено: 29 ноя 2007 13:58
[PTM]
посмотри скрипт StrCreateUserParameters.CATScript в стандартной скриптовой папке и вместо задания параметров выведи в файл нужного тебе формата добавив условия различия по наименованию(парт,продукт) и степени вложенности

Да и если кто-то доработает скрипт до неограниченной вложенности то многим думаю будет интересно посмотреть

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

СообщениеДобавлено: 04 дек 2007 10:13
[PTM]
А я бы выбрал вариант N1
Ведь первичный мотив такой автоматизации - бОльшая экономия времени... IMHO
В варианте с Excel структура обрабатываться будет ещё дольше

да текстовая инфа будет обрабатываться быстрее чем эксель)))
кстати по такому принципу создан исмарт с бомом выложенный Алексеем в механикале

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

СообщениеДобавлено: 04 дек 2007 13:01
Dasty
Где Бы вот исходник BOM_RU.exe нарулить....

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

СообщениеДобавлено: 04 дек 2007 16:51
[PTM]
кстати можно вом и самому сделать...
идея такова...
в сборке,отдельном парте задаються основные данные
такие как
чертил
Наименование
итп
в самой сборке
запускаеться скрипт скрипт генерит встроенными ср-вами бом по шаьлону из заданных свойств( файл настроек)
затем обработывает обм файл---или текстовик или эксель
сортирует полученную таблицу данных по выбранному критерию и генерит в драфтинге листы спецификации

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

итогом такого скрипта будет 1 файл с кучей листов спецификации ну ессно не ассоциативно...хлтя полуассоциативно сделать можно

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

СообщениеДобавлено: 04 дек 2007 21:09
Dasty
интересуют мысли сообщества на тему парсинга отчетов Катии по сбороке, ведь она может все сохрнаить в Excel
а из него дергать данные и вставлять в шаблон спецификации, кто что думает?

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

СообщениеДобавлено: 31 мар 2008 07:10
Rybuf
Вопрос по теме. Застопорился на одном месте 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. Как узнать у бъекта имя файла и полный путь?

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

СообщениеДобавлено: 31 мар 2008 08:34
Artem
Fullname у Activedocument - полный путь даст
Name у него же - имя файла
По расширению и определяй тип...(Желат. без учета регистра ибо катька сохраняет например CATPart а из смартима catpart)
Зы.
Мож пригодится: Получение документа из продукта
Product.ReferenceProduct.Parent

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

СообщениеДобавлено: 31 мар 2008 09:39
Rybuf
Спасибо за подсказку особенно за Product.ReferenceProduct.Parent все прошло на ура. Осталось только сделать рекурсивный вызов и можно будет капать до самого низа.
Если кому надо, то код на delphi после доработки могу выложить.

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

СообщениеДобавлено: 01 апр 2008 17:32
AnTe
Спасибо за подсказку особенно за Product.ReferenceProduct.Parent все прошло на ура. Осталось только сделать рекурсивный вызов и можно будет капать до самого низа.
Если кому надо, то код на delphi после доработки могу выложить.
Очень интересно! Выложи, если не затруднит!