from enum import Enum

from win32com.client import CDispatch

from IFikomObject import IFikomObject
from IMfgOperasyon.IOprPPInstruction import IOprPPInstruction
from .M3xHardMaterial import M3xHardMaterial


class IMfgOperasyon(IFikomObject):
    def __init__(self, obj: CDispatch, sahip: IFikomObject = None):
        super(IMfgOperasyon, self).__init__(obj, sahip)
        self.sahip = sahip
        self.tipi = "IMfgOperasyon"
        # --->Mirasci Sinif

    @property
    def asFikoKaba(self) -> M3xHardMaterial:
        return M3xHardMaterial(self.catNesne, sahip=self.sahip)

    @property
    def asPPInstruction(self):
        return IOprPPInstruction(obj=self.catNesne, sahip=self.sahip)

    def makroEkseneDikMesafeEkle(self, ismi: str, degeri, hizTipi: str = "Approach"):
        self.catNesne.AddDistanceAlongAxisFeed(ismi, degeri, hizTipi, 3000)

    def makroEkseneYatayMesafeEkle(self, ismi: str, mesafe: float = 5.0, aci1: float = 0.0, aci2: float = 90.0):
        self.catNesne.AddGotoHorizontal(ismi, mesafe, aci1, aci2)
