Экспорт сборки в новое место

Автор barracuda_spb, 29.01.18, 18:13:33

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

barracuda_spb

Помнится раньше был отличный макрос, который автоматически пересобирал всю сборку в один архив без вольных переименовываний файлов. Он просто сохранял и создавал тот же самый путь, что и был. На выходе получался архив со всеми входящими из разных проектов файлами.
Если ли сейчас такое же решение?
Или как правильно сейчас пересохранять проекты без потери входящих файлов?
Компас 3D v.18.0.6 - обреченный на существование

Elaeagnus

Комплектовщик документов вполне справляется с такой задачей.

KiDim

Автор делает упор на то, что файлы не должны переименовываться. Комплектовщик такое умеет?

beginner

30.01.18, 08:48:21 #3 Последнее редактирование: 30.01.18, 11:32:58 от beginner
Цитата: KiDim от 30.01.18, 08:23:57
Комплектовщик такое умеет?

Нет не умеет.
Поэтому лично я отказался от использования этой сомнительной по полезности функции.
Компас 3D_V16

barracuda_spb

Комплектовщик мало того, собирает все файлы из различных папок в одну адскую кучу. В одном моем проекте только деталей порядка 2000-5000 штук.
Ранее был макрос "ext_zip" и стандартных при установке, но начиная с 14-й версии он перестал работать. Да и не понятно, как бы он работал с файлами и сборками в которых присутствуют исполнения.
Вот хотелось бы что-то с таким функционалом, как у того макроса.
Компас 3D v.18.0.6 - обреченный на существование

СВ

 В чём состоит "адскость? (Предполагаю, главное плохо в том, что нет, так сказать, вложенности - папок с подсборками.)
А тот макрос в чём (главном) отличался, чем он хорош, расскажите.
А далее - прямой путь в предложения!
АСЫ, говорите с новичками на понятном им языке !

инженер


Создать файл в блокноте list.txt
// "C:\Program Files (x86)\WinRAR\Rar.exe" a -m5 -sca -n -ep backup @list.txt -rr3p
// WinRAR должен быть установлен
// 1.Файл-Информация о документе-Внешние ссылки-Скопировать
// 2.Ниже вставить содержимое буфера и оставить только пути(удалить подписи к путям или закоментировать строки //)

//ПРИМЕР
//Файлы деталей
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0103.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 410 (INTERNAL RACER).M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 411 (EXTERNAL RACER).M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\PIN 10X26 GOST 3128.M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\OTHER\HYDROMOTOR MGP-315.00.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 411 (INTERNAL RACER).M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0104.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0106.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 411 (BALL).M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\SPACING WASHER B50 GOST 13940.M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 410 (EXTERNAL RACER).M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0107.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0108.00.m3d
C:\ASCON\KOMPAS-3D V16\Libs\PartLib\DATA\VAULT\Methods\kompas\3d\PLib_Bolt_1_900.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0110.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\KEY 10X8X32.M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0105.00.M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\KEY 16X10X45.M3D
C:\ASCON\KOMPAS-3D V16\Libs\PartLib\DATA\VAULT\Methods\kompas\3d\PLib_Screw_900.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0101.00.m3d
C:\ASCON\KOMPAS-3D V16\Libs\PartLib\DATA\VAULT\Methods\kompas\3d\PLib_Washer_2_712.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0102.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0111.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 410 (BALL 25,4 MM).M3D
//Документы, подключенные к объектам спецификации
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0103.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0104.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0106.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0107.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0108.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0110.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0105.00.M3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0101.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0102.00.m3d
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\078.505.0.0111.00.m3d
//Файлы сборок
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 411 GOST 8338-75.A3D
C:\Program Files\ASCON\KOMPAS-3D v17\Samples\Reducer\STANDART PARTS\BEARING 410 GOST 8338-75.A3D


// 3. В папке где хранится List.txt зажав shift+правая кнопка мыши в пустом месте "Открыть окно команд"(командная строка)
// 4. Выполнить команду
// "C:\Program Files (x86)\WinRAR\Rar.exe" a -m5 -sca -n -ep backup @list.txt -rr3p
// 5. backup.rar
// 6. готово!!!

barracuda_spb

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

А ещё бывает, что надо пересохранить целый проект и отдать его фрилансеру ) И вот тут как раз надо собрать всё одним архивом за один раз и ничего ничего не потерять. Ну и не нарушить структуру, чтобы было общее понимание где какая ошибка в конструировании могла укрыться от первого конструктора.
Компас 3D v.18.0.6 - обреченный на существование

IgorT

30.01.18, 10:29:03 #8 Последнее редактирование: 30.01.18, 10:44:08 от IgorT
Цитата: инженер от 30.01.18, 10:12:22
Создать файл в блокноте list.txt
// "C:\Program Files (x86)\WinRAR\Rar.exe" a -m5 -sca -n -ep backup @list.txt -rr3p
.......
// 6. готово!!!
хотелось бы услышать более гуманные способы выполнения работы по обсуждаемой темы . Программу-макрос бы поюзать, а не упражняться в не свойственных конструкторским заботам навыках.

IgorT

Цитата: barracuda_spb от 30.01.18, 10:27:15
...
...надо собрать всё одним архивом за один раз и ничего ничего не потерять. Ну и не нарушить структуру, чтобы было общее понимание где какая ошибка в конструировании могла укрыться от первого конструктора.


Во истину так!

barracuda_spb

Цитата: IgorT от 30.01.18, 10:29:03
хотелось бы услышать более гуманные способы выполнения работы по обсуждаемой темы . Программу-макрос бы поюзать, а не упражняться в не свойственных конструкторским заботам навыках.


Вот так выглядел такст макроса в старой версии:

[code]# coding: cp1251
# 3D-API|Export ZIP

import Kompas6API5, LDefin3D
import os.path
import zipfile

Kompas, doc3d = start3d()

def path_parts( mfile ):
    ppm = []
    while mfile:
        a,b = os.path.split( mfile )
        if b:
            ppm.append(b)
            mfile = a
        else:
            ppm.append(a)
            mfile = ''
    ppm.reverse()
    return ppm

def commonprefix( all ):
    all = iter(all)
    pref = all.next()
    sz = len(pref)
    for x in all:
        while pref:
            if x[:sz] == pref:
                break
            sz -= 1
            pref = pref[:sz]
        if not pref:
            break
    return pref

def collect(coll,level=1):
    coll = Kompas6API5.ksPartCollection(coll)
    part = coll.First()
    while part:
        part = Kompas6API5.ksPart(part)
        yield level, part
        if part.fileName.lower().endswith('.a3d'):
            doc3d = part.BeginEdit()
            if not doc3d:
                Kompas.ksMessage( part.fileName )
        else:
            doc3d = None
        if doc3d:
            doc3d = Kompas6API5.ksDocument3D(doc3d)
            subcoll = doc3d.PartCollection(True)
            del doc3d
            ok = part.EndEdit(False)
            if not ok:
                Kompas.ksMessage( part.fileName + '/EndEdit' )
            for x in collect(subcoll, level+1):
                yield x
        part = coll.Next()

part0 = doc3d.GetPart(LDefin3D.pTop_Part)
docs = [path_parts(part0.fileName)]
#~ res = [[0, part0.marking, part0.name, part0.fileName]]

zipname = Kompas.ksSaveFile( '*.zip', docs[0][-1], '', 0 )
if zipname:
   
    for v,p in collect(doc3d.PartCollection(True)):
        docname = p.fileName
        if '|' not in docname: # library part
            docs.append( path_parts(docname) )
        #~ res.append([v, p.marking, p.name, p.fileName])
   
    pref = commonprefix( docs )
    sp = len(pref)
   
    #~ zipname = os.path.join( os.environ['USERPROFILE'], 'My Documents', 'test.zip' )
    z = zipfile.ZipFile( zipname, 'w', zipfile.ZIP_DEFLATED )
    used = {}
    for docname in docs:
        fname = os.path.join( *docname )
        zname = os.path.join( *docname[sp:] )
        if zname in used:
            continue
        z.write( fname.encode('mbcs'), zname.encode('cp866') )
        used[zname] = 1
    z.close()
   
    #~ msg = u'\n'.join( [u" * ".join(map(unicode,x)) for x in res])
    #~ open( zipname + '.txt', 'wt' ).write( msg.encode('mbcs') )
    #~ Kompas.ksMessage( msg )
[/code]

Но мои руки никак не заточены под понимание Питона и его детищ, потому как ни старался его обработать топорами и напильниками - ничего не вышло =)
Компас 3D v.18.0.6 - обреченный на существование

IgorT

Тут умеющий, находящийся в теме человек нужен.
ИМХО на форуме такие люди есть. Может кто доведёт макрос до рабочего состояния?

СВ

Цитата: barracuda_spb от 30.01.18, 10:27:15
У меня проекты плавно перетекают из одного в другой ...

А ещё бывает, что надо пересохранить целый проект и отдать его фрилансеру ...

И как Вы сейчас выходите из положения?
АСЫ, говорите с новичками на понятном им языке !

barracuda_spb

А никак. То, что на мой взгляд лишнее, удаляю ручками. А что боязно - остается. В итоге имею папки с проектами, в которых хранятся реально сотни ненужных в данном проекте файлов. А хочется порядка, точности и меньшего объема )
Компас 3D v.18.0.6 - обреченный на существование

СВ

 Если так, то для "ручного режима" я пользуюсь таким методом:
- беру заимствованную сборку, "Сохраняю как" в новый проект, из неё беру подсборки/детали и также пересохраняю: итого - лишних деталей нет;
- в новом проекте: если делаю новый вариант сборки/подсборки/детали, прибавляю в имени файла -2, -3, ... и применяю твёрдое правило - применяется только то, что имеет наибольший номер (даже возврат к старому варианту всё равно сопровождается переименованием) , итого: когда нужно чистить папки, "автоматически" ясно что нужно удалять.
- последняя проверка: открыть гл.сборку и убедиться, что ничего не потерялось.
АСЫ, говорите с новичками на понятном им языке !

barracuda_spb

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

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

А при условии работы в Облаке... Всё становится похоже на какое-то тотальное извращение =)
Компас 3D v.18.0.6 - обреченный на существование

ТрындецЪ

Цитата: barracuda_spb от 30.01.18, 10:40:09
Вот так выглядел такст макроса в старой версии:

Где почитать о работе макроса?
Локальные детали он обрабатывал или их раньше не было?

YNA

Сейчас комплектовщик работает вот так.

barracuda_spb

Цитата: ТрындецЪ от 30.01.18, 11:30:14
Где почитать о работе макроса?
Локальные детали он обрабатывал или их раньше не было?


Где-то на форуме есть ветка с небольшими обсуждениями. И где-то там было, что НЕТ, не обрабатывал.
Компас 3D v.18.0.6 - обреченный на существование

barracuda_spb

Цитата: YNA от 30.01.18, 11:36:37
Сейчас комплектовщик работает вот так.


К огромному сожалению нет возможности обновиться на 17-й Компас с новым комплектовщиком. А в 15-м всё не так. И да, там надо указывать все входящие папки, по которым он будет искать. А если какую-то забыть, то как быть? Комплектовать по новой? Или что-то поменялось?
Компас 3D v.18.0.6 - обреченный на существование