#!/usr/bin/env python
#_*_ coding: utf-8 _*_
#file: Propiedades_Tk1.py
#Propiedades
import Tkinter
import win32com.client
from win32com.client import gencache
oApp = win32com.client.Dispatch('Inventor.Application')
oApp.Visible = True
mod = gencache.EnsureModule('{D98A091D-3A0F-4C3E-B36E-61F62068D488}',0,1,0)
oApp = mod.Application(oApp)
oApp.SilentOperation = True
oDoc = oApp.ActiveDocument
prop = oApp.ActiveDocument.PropertySets.Item("Design Tracking Properties")
Descrip = prop('Description').Value
Disenador = prop('Designer').Value
class Inventor_tk(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
#Boton actulizar propiedades
button = Tkinter.Button(self, text= u"Nueva Pieza", command=self.UpdatePropiedad)
button.grid(column=4, row=5)
#Descripcion
labelDescrip = Tkinter.Label(self, text= "Descripcion: ")
labelDescrip.grid(column=1, row=2)
labelDescrip.grid(column=1, row= 2,sticky='W'+'E')
DescripEntry = Tkinter.StringVar()
DescripEntry.set (Descrip)
EntryDescrip = Tkinter.Entry(self, textvariable=DescripEntry)
#EntryDescrip.bind("<Return>", self.UpdatePropiedad)
EntryDescrip.grid(column=2, row= 2,sticky='W'+'E')
global NuevaDesc
NuevaDesc = EntryDescrip.get()
#Diseñador
labelDesing = Tkinter.Label(self, text= u"Diseñador: ")
labelDesing.grid(column=1, row=3)
labelDesing.grid(column=1, row= 3,sticky='W'+'E')
DesingEntry = Tkinter.StringVar()
DesingEntry.set (Disenador)
EntryDesign = Tkinter.Entry(self, textvariable=DesingEntry)
#EntryDesign.bind("<Return>", self.UpdatePropiedad)
EntryDesign.grid(column=2, row= 3,sticky='W'+'E')
global NuevoDiseno
NuevoDiseno = EntryDesign.get()
def UpdatePropiedad(self):
###
###Fallo pierde valor de las variables, intentar corregir
###
Descrip = prop ('Description').Value = NuevaDesc
Disenador = prop ('Designer').Value = NuevoDiseno
print Descrip
print Disenador
#Actualiza documento
oDoc.Update
if __name__ == "__main__":
app = Inventor_tk(None)
app.title('Propiedades de: '+ oApp.ActiveDocument.DisplayName)
app.mainloop()