Created
July 11, 2023 20:55
-
-
Save AlexandrDragunkin/292ee1163212635c866719ce16422f32 to your computer and use it in GitHub Desktop.
TE13Minifi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#coding:utf-8 | |
""" | |
Author: Aleksandr Dragunkin | |
Purpose: Расстановка крепежа по макро с 8-ю параметраами | |
Created: 13/02/22 | |
""" | |
... | |
def main(): | |
"""""" | |
calculate_positions_fixes(LENGTH_X_POS, BUILD_X_POS) | |
_idnom = mAttribute.getattrobject(Params.params.hPanel, 'priceid', 0) | |
if _idnom: | |
thickness = core_k.rdnomenclature.priceinfo(_idnom, 'thickness', 0) | |
pan = furntype.Panel(Params.params.hPanel) | |
butts = list(filter(lambda a: a.type_ == furntype.constants.BUTTTYPE.CHAMFER, | |
pan.get_butts_fltr(request_panel=Params.params.hPanel, idpoly = Params.params.Poly, idline = Params.params.Side) | |
) | |
) | |
if butts: | |
fixdetinfo = core_k.fixinfo.fixdetinfo(Params.params.FixPars.unit_id) | |
angle_butt = math.tan(math.radians( butts[0].params[2])) | |
# коррекция на смещение(d) | |
z_shift = butts[0].params[1] * angle_butt | |
# Логика зависимости угла и положения эксцентрика | |
if (Params.params.FixPars.put_from == Params.params.FixPars.mirrored) : | |
# Эксцентрик расположен на нижней пласти полки. 0 по толщине | |
if butts[0].params[0] == 1 and butts[0].params[2] < 0: | |
# Скос направлен от нижней пласти вверх | |
yfixreal = thickness / 2 + (fixdetinfo.Ky * thickness) + fixdetinfo.Y | |
yfixreal *= -1 | |
z_shift *= -1 | |
else: | |
# Скос направлен сверху вниз | |
yfixreal = thickness - (thickness / 2 + (fixdetinfo.Ky * thickness) + fixdetinfo.Y) | |
yfixreal *= 1 | |
z_shift *= -1 | |
else: | |
# Эксцентрик расположен на верхней пласти полки. 25 или 16 по толщине, на верхней пласти | |
if butts[0].params[0] == 1 and butts[0].params[2] < 0: | |
# Скос направлен от нижней пласти вверх | |
yfixreal = thickness - (thickness / 2 + (fixdetinfo.Ky * thickness) + fixdetinfo.Y) | |
yfixreal *= -1 | |
z_shift *= -1 | |
else: | |
# Скос направлен сверху вниз | |
yfixreal = thickness / 2 + (fixdetinfo.Ky * thickness) + fixdetinfo.Y | |
yfixreal *= 1 | |
z_shift *= -1 | |
# ----------------------------------------------------------------------------------- | |
# вычислить сдвиг деталей по оси Z крепежа в зависимост от угла торцевой обработки | |
zdelta = yfixreal * angle_butt + z_shift | |
if zdelta: | |
for i, zhol in enumerate(Params.params.ZHol): | |
# Применить сдвиг детали по оси Z | |
Params.params.ZHol[i].value += zdelta | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment