• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

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

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

« назад - далее »

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

barracuda_spb

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

Elaeagnus

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

KiDim

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

beginner

30.01.18, 08:48:21 #3 Последнее редактирование: 30.01.18, 11:32:58 от beginner
Цитата: KiDim от 30.01.18, 08:23:57
Комплектовщик такое умеет?
Нет не умеет.
Поэтому лично я отказался от использования этой сомнительной по полезности функции.

barracuda_spb

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

СВ

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

инженер


Создать файл в блокноте 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

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

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

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]

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

IgorT

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

СВ

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

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

barracuda_spb

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

СВ

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

barracuda_spb

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

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

А при условии работы в Облаке... Всё становится похоже на какое-то тотальное извращение =)

ТрындецЪ

Цитата: barracuda_spb от 30.01.18, 10:40:09
Вот так выглядел такст макроса в старой версии:
Где почитать о работе макроса?
Локальные детали он обрабатывал или их раньше не было?

YNA

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

barracuda_spb

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

Где-то на форуме есть ветка с небольшими обсуждениями. И где-то там было, что НЕТ, не обрабатывал.

barracuda_spb

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

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