Двойное вращение деталей в сборке

Автор Vitalij Lysanov, 20.03.20, 13:29:52

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

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

Vitalij Lysanov


Двойное вращение в сборке








Выше построения из эскиза, который формируется программой.
def встака_в_сборку():
    # http://forum.ascon.ru/index.php/topic,27370.msg204304/topicseen.html#msg204304
 
    import pythoncom
    from win32com.client import Dispatch, gencache
 
    #Получить интерфейсы API 7 КОМПАС
    def get_kompas_api7():
            module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
            api = module.IKompasAPIObject(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(module.IKompasAPIObject.CLSID, pythoncom.IID_IDispatch))
            const = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0)
            return module, api, const.constants
 
#    partFileName1 = "D:\dlp.m3d" 
    partFileName1 = "D:\Деталь.m3d" 

D:\dlp.m3d             - имя файла детали которая формируется программой
D:\Деталь.m3d -  новое имя файла.
Эта деталь 100 раз загрузится в сборку и к каждому экземпляру будет применено смещение и поворот по двум углам.


Красота


Основа это цикл, позволяющий выйти на каждый экземпляр детали, сместить и повернуть. 
  
for t in range(0,103,1):
    pov_zx(t,  1.5*t-50, t, 0,   t*3, t*3,      1,  1.0,  1  )
 

t                             - номер детали
 
1.5*t-50,    t,    0    -  cмещение по x,y,z

 t*3, t*3,                -  углы поворота. Сейчас два угла, в некоторых примерах один угол
                                нулевой

 1,  1.0,  1            - масштабы обображения

for t in range(0,103,1):
    pov_zy(t,  1.5*t-50, t, 0,   t*3, t*3,      1,  1.0,  1  )
 

Эта функция поворачивает по другим углам.
Тут вариантов мало, легче подобрать методом научного тыка


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

Если работать с существующей сборкой, номера деталей определяются по порядку загрузки в сборку.
Перед изменениями можно определить координаты и углы каждой детали и записать в базу.
Построения конечно потеряны, но можно полностью восстановить сборку.
Это тоже на тему разнесения сборки. 



  
piramid 2021.cdm