#! /usr/local/bin/python import math import dislin from wxPython.wx import * class DislinFrame(wx.wxFrame): def __init__(self, parent, id, title): wx.wxFrame.__init__(self, parent, id, title,wxPoint(100, 100), wxSize(500, 400)) #if wxPlatform == '__WXMSW__': # icon = wxIcon('Starport.ico', wxBITMAP_TYPE_ICO) # self.SetIcon(icon) EVT_CLOSE(self, self.OnCloseWindow) EVT_SIZE(self, self.OnSize) EVT_MOVE(self, self.OnMove) self.main_menu = wxMenuBar() menu = wxMenu() exitID = wxNewId() menu.Append(exitID, 'Load Local Files', 'Load files from hard drive') EVT_MENU(self, exitID, self.OnFileLoadLocal) self.main_menu.Append(menu, '&File') self.SetMenuBar(self.main_menu) self.button = wxButton(self, 10, "Graph", wxPoint(20, 220)) EVT_BUTTON(self, 10, self.OnClick) wxStaticText(self, -1, "Enter Scale", wxPoint(5, 25), wxSize(75, 25)) self.scale_size = wxTextCtrl(self, 10, "", wxPoint(220, 25), wxSize(150, 25)) wxStaticText(self, -1, "Rotation", wxPoint(5, 50), wxSize(75, 25)) self.m1 = wxTextCtrl(self, 10, "", wxPoint(220, 50), wxSize(150, 25)) wxStaticText(self, -1, "Angle up", wxPoint(5, 75), wxSize(75, 25)) self.m2 = wxTextCtrl(self, 10, "", wxPoint(220, 75), wxSize(150, 25)) wxStaticText(self, -1, "Radius", wxPoint(5, 100), wxSize(75, 25)) self.m3 = wxTextCtrl(self, 10, "", wxPoint(220, 100), wxSize(150, 25)) wxStaticText(self, -1, "M4", wxPoint(5, 125), wxSize(75, 25)) self.m4 = wxTextCtrl(self, 10, "", wxPoint(220, 125), wxSize(150, 25)) def OnCloseWindow(self, event): self.Destroy() def OnSize(self, event): size = event.GetSize() event.Skip() def OnMove(self, event): pos = event.GetPosition() def OnFileLoadLocal(self,event): pass def OnClick(self, event): try: #num = int(self.scale_size.GetLineText(0)) xv = int(self.m1.GetLineText(0)) yv = int(self.m2.GetLineText(0)) zv = int(self.m3.GetLineText(0)) #ot = int(self.m4.GetLineText(0)) except ValueError: num = 500 xv = 30 yv = 20 zv = 150 ot = 500 dislin.scrmod ('revers') # level 0 dislin.metafl ('tiff') #dislin.metafl ('CONS') dislin.setfil('house1.tif') #dislin.setpag ('da4p') dislin.setpag ('DA3L') dislin.disini () # level 1 dislin.pagera () dislin.hwfont () #dislin.axstyp('CROSS') dislin.axspos (1200, 2600) dislin.axslen (1800, 1800) dislin.origin (53.1667,22.333) dislin.name ('X-axis', 'X') dislin.name ('Y-axis', 'Y') dislin.name ('Z-axis', 'Z') #dislin.axspos (0,0) #dislin.pagfll(10) dislin.axis3d(150,80,40) dislin.view3d(xv,yv,zv,'ANGLE') #dislin.origin(0,140) #dislin.color('BLUE') dislin.graf3d(0,100,0,10,0,60,0,10,0,40,0,10) #dislin.grfini(47.5,18.5,6.5,57.5,18.5,6.5,57.5,28.5,6.5) #dislin.axspos (53.1667,22.333) #dislin.axslen (10,10) #dislin.circle(0,0,4.333) #dislin.grffin() #dislin.color('BLACK') #level 3 #dislin.grid3d(2,2,'BOTTOM') #dislin.cross() #dislin.graf3d(0,100,0,10,0,60,0,10,-10,40,-10,10) #dislin.box3d() #dislin.strt3d(46.5,17.5,0) #dislin.conn3d(46.5,22,0) dislin.color('BLUE') #dome_data = ([53.1667,18,6.5],[53.1667,20.165,9.5],[53.1667,22.33,11.0833], # [53.1667,24.495,9.5],[53.1667,26.66,6.5]) #self.line_list(dome_data) #dome_data = ([57.5,22.33,6.5],[55.335,22.33,9.5],[53.17,22.33,11.0833], # [51.005,22.33,9.5],[48.84,22.33,6.5]) #self.line_list(dome_data) #dome_data = ([56.37,23.86,6.5],[54.67,22.995,9.5],[53.17,22.33,11.0833], # [51.67,21.665,9.5],[49.97,20.8,6.5]) #self.line_list(dome_data) #dome_data = ([49.97,23.86,6.5],[51.67,22.995,9.5],[53.17,22.33,11.0833], # [54.67,21.665,9.5],[56.37,20.8,6.5]) #self.line_list(dome_data) y_adjust = 13.8 dome_data = ([59.7,y_adjust + 15.7,0],[59.7,y_adjust,0],[51.85,y_adjust + 7.85,10],[59.7,y_adjust + 15.7,0]) self.line_list(dome_data) dome_data = ([44,y_adjust + 15.7,0],[44,y_adjust,0],[51.85,y_adjust + 7.85,10],[44,y_adjust + 15.7,0]) self.line_list(dome_data) dome_data = ([44,y_adjust + 15.7,0],[44,y_adjust,0],[59.7,y_adjust,0],[59.7,y_adjust + 15.7,0],[44,y_adjust + 15.7,0]) self.line_list(dome_data) y_adjust = 0 dome_data = ([59.7,y_adjust + 15.7,0],[59.7,y_adjust,0],[51.85,y_adjust + 7.85,10],[59.7,y_adjust + 15.7,0]) self.line_list(dome_data) dome_data = ([44,y_adjust + 15.7,0],[44,y_adjust,0],[51.85,y_adjust + 7.85,10],[44,y_adjust + 15.7,0]) self.line_list(dome_data) dome_data = ([44,y_adjust + 15.7,0],[44,y_adjust,0],[59.7,y_adjust,0],[59.7,y_adjust + 15.7,0],[44,y_adjust + 15.7,0]) self.line_list(dome_data) dislin.disfin () def graph_list(self,list): space_point = () for i in list: space_point = i[0] dislin.strt3d(space_point[0],space_point[1],space_point[2]) space_point = i[1] dislin.conn3d(space_point[0],space_point[1],space_point[2]) dislin.strt3d(space_point[0],space_point[1],space_point[2]) space_point = i[2] dislin.conn3d(space_point[0],space_point[1],space_point[2]) dislin.strt3d(space_point[0],space_point[1],space_point[2]) space_point = i[3] dislin.conn3d(space_point[0],space_point[1],space_point[2]) dislin.strt3d(space_point[0],space_point[1],space_point[2]) space_point = i[0] dislin.conn3d(space_point[0],space_point[1],space_point[2]) def line_list(self,list): space_point = list[0] dislin.strt3d(space_point[0],space_point[1],space_point[2]) for i in list: dislin.conn3d(i[0],i[1],i[2]) #--------------------------------------------------------------------------- class TomApp(wxApp): def OnInit(self): frame = DislinFrame(NULL, -1,'House') frame.Show(true) self.SetTopWindow(frame) return true #--------------------------------------------------------------------------- app = TomApp(0) app.MainLoop()