import FreeCAD as App
import FreeCADGui as Gui

# App.newDocument()
doc = App.ActiveDocument


print('задайте начальную точку захватной зоны. ')
print('Учтите, что ось X должна быть направлена вдоль направления раскрытия пальцев')
print('Ось Z должна быть направлена в противоположную сторону от направления кончика пальца захвата')
lcsname = input('Введите название начальной точки' + "\n")

lcs = doc.getObject(lcsname)

def poseGenerator(lcs):
    
    box = doc.addObject("Part::Box", "gripSpace")
    box.Length = 62 #раскрытие
    box.Width = 10 #ширина пальца
    box.Height = 40 #глубина
    
    box.Placement = lcs.Placement
    #box.Transparency = 80  #не работает, хз почему
    

    
    #есть смысл создавать привязку прямо здесь же. благодаря параметризации, при подстройке куба все точки сместятся как надо
    gripPose = App.ActiveDocument.addObject('PartDesign::CoordinateSystem', 'GripPose')
    gripPose.Support = box
    gripPose.MapMode = 'ObjectXY'
    gripPose.AttachmentOffset.Base = [box.Length/2, box.Width/2, 0] #здесь должна быть активная привязка, не просто значения координат
    
    gripPose.addProperty("App::PropertyFloat", "GripOpen")
    gripPose.addProperty("App::PropertyFloat", "GripDepth")
    gripPose.addProperty("App::PropertyFloat", "GripWidth")
    gripPose.GripOpen = box.Length.Value
    gripPose.GripWidth = box.Width.Value
    gripPose.GripDepth = box.Height.Value


    
    
    #нужно создавать обьект внутри Part, а не внутри главного документа. сбиваются привязки !!!
    
    
    print('Установите захватную зону вручную, растянув обьект GripSpace')
    doc.recompute()   
    
    #вроде как работает
    
    
poseGenerator(lcs)

