Hello world,
I've been playing around with the interface in an attempt to match
HeeksCAD. But one of the problems that I've been running into is that
I can't entirely predict hwo many toolpanes are allowed at any one
time to be visible. I've defined up to six, but then overall a few are
dropped each time, sometimes it's the "Geometry" pane, and sometimes
it's the "Solids" pane, etc.
Here are the lines of interest in the AppFrame initialization method:
---------------------------
m_geometryBar = wx.ToolBar(self, -1, wx.DefaultPosition,
wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT)
m_geometryBar.AddTool(ID_LINES, ToolImage("lines")) # Draw a sketch
m_geometryBar.AddTool(ID_CIRCLES, ToolImage("circles")) # Start circle
drawing
m_geometryBar.AddTool(ID_ILINE, ToolImage("iline")) # Start drawing
infinite lines
m_geometryBar.AddTool(ID_POINTS, ToolImage("point")) # Start drawing
points
m_geometryBar.AddTool(ID_REGSHAPES, ToolImage("regshapes")) # Draw
regular shapes; rectangles, polygons, obrounds
m_geometryBar.AddTool(ID_TEXT, ToolImage("text")) # Add a text object
m_geometryBar.AddTool(ID_COORDINATE_SYSTEM, ToolImage("coordsys")) #
Create a coordinate system
m_geometryBar.AddTool(ID_DIMENSIONING, ToolImage("dimension")) # Add
a dimension
m_solidBar = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_NODIVIDER | wx.TB_FLAT)
m_solidBar.AddTool(ID_SPHERE, ToolImage("sphere")) # Add a sphere
m_solidBar.AddTool(ID_CUBE, ToolImage("cube")) # Add a cube
m_solidBar.AddTool(ID_CYL, ToolImage("cyl")) # Add a cylinder
m_solidBar.AddTool(ID_CONE, ToolImage("cone")) # Add a cone
m_solidBar.AddTool(ID_RULED_SURFACE, ToolImage("ruled")) # Create a
lofted face
m_solidBar.AddTool(ID_EXTRUDE, ToolImage("extrude")) # Extrude a wire
or face.
m_solidBar.AddTool(ID_SUBTRACT, ToolImage("subtract")) # Cut one
solid from another.
m_solidBar.AddTool(ID_FUSE, ToolImage("fuse")) # Fuse one solid to
another
m_solidBar.AddTool(ID_COMMON, ToolImage("common")) # Find common
solid between two solids.
m_solidBar.AddTool(ID_FILLET, ToolImage("fillet")) # Make a fillet on
selected edges.
m_solidBar.AddTool(ID_CHAMFER, ToolImage("chamfer")) # Make a chamfer
on selected edges.
m_viewingBar = wx.ToolBar(self, -1, wx.DefaultPosition,
wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT)
m_viewingBar.AddTool(ID_MAG_PREVIOUS, ToolImage("magprev")) # Go back
to previous view
m_viewingBar.AddTool(ID_MAG, ToolImage("mag")) # Zoom in to a dragged
window
m_viewingBar.AddTool(ID_MAG_EXTENTS, ToolImage("magextents")) # Zoom
in to fit the extents of the drawing into the graphics window
m_viewingBar.AddTool(ID_MAG_NO_ROT, ToolImage("magnorot")) # Zoom in
to fit the extents of the drawing into the graphics window, but
without rotating the view
m_viewingBar.AddTool(ID_VIEW_ROT, ToolImage("viewrot")) # Enter view
rotating mode
m_viewingBar.AddTool(ID_VIEW_ZOOM, ToolImage("zoom")) # Drag to zoom in
and out
m_viewingBar.AddTool(ID_FULL_SCREEN, ToolImage("fullscreen")) #
Switch to full screen view (press escape to return)
m_viewingBar.AddTool(ID_REDRAW, ToolImage("redraw")) # Redraw
m_transformBar = wx.ToolBar(self, -1, wx.DefaultPosition,
wx.DefaultSize, wx.TB_NODIVIDER | wx.TB_FLAT)
m_transformBar.AddTool(ID_MOVE_TRANSLATE, ToolImage("movet")) #
Translate selected items
m_transformBar.AddTool(ID_COPY_TRANSLATE, ToolImage("copyt")) # Copy
and translate selected items
m_transformBar.AddTool(ID_MOVE_ROTATE, ToolImage("mover")) # Rotate
selected items
m_transformBar.AddTool(ID_COPY_ROTATE, ToolImage("copyr")) # Copy and
rotate selected items
m_transformBar.AddTool(ID_MOVE_MIRROR, ToolImage("movem")) # Mirror
selected items
m_transformBar.AddTool(ID_COPY_MIRROR, ToolImage("copym")) # Copy and
mirror selected items
m_transformBar.AddTool(ID_MOVE_SCALE, ToolImage("moves")) # Scale
selected items
m_toolBar2.SetMinSize(wx.Size(24,24))
m_toolBar2.Realize()
m_geometryBar.SetMinSize(wx.Size(24,24))
m_geometryBar.Realize()
m_solidBar.SetMinSize(wx.Size(24,24))
m_solidBar.Realize()
m_viewingBar.SetMinSize(wx.Size(24,24))
m_viewingBar.Realize()
m_transformBar.SetMinSize(wx.Size(24,24))
m_transformBar.Realize()
#self._mgr.AddPane(m_toolBar2,
wx.aui.AuiPaneInfo().Name("toolBar").Caption("Tools").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
self._mgr.AddPane(m_geometryBar,
wx.aui.AuiPaneInfo().Name("geometryBar").Caption("Geometry").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
self._mgr.AddPane(m_solidBar,
wx.aui.AuiPaneInfo().Name("solidBar").Caption("Solids").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
self._mgr.Update()
#self._mgr.AddPane(m_viewingBar,
wx.aui.AuiPaneInfo().Name("viewingBar").Caption("Viewing").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
self._mgr.AddPane(m_transformBar,
wx.aui.AuiPaneInfo().Name("transformBar").Caption("Transforms").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
#self._mgr.Update()
self.tb = self.CreateRightToolbar()
self._mgr.AddPane(self.tb,
wx.aui.AuiPaneInfo().Name("View").Caption("View").ToolbarPane().Top().TopDockable(True).BottomDockable(True))
self._mgr.Update()
self._mgr.GetPane("Help").MinSize((-1,-1)) # now make it so
that the help pane can be resized
---------------------------
An earlier version of this code, where I put those modifications into
CreateRightToolBar(), can be found here:
http://heybryan.org/books/Manufacturing/pythonocc/iviewer.py
The latest version with the modifications listed above can be found here:
http://heybryan.org/books/Manufacturing/pythonocc/iviewer2.py
Some code that I've been testing with is self._mgr.AllPanes and then
assigning self._mgr.AllPanes[0..6] to separate variables and printing
their 'name' attribute. In most cases, I'm not finding all of the
panes that I had added. How strange. Any hints? Also, be sure to check
out 'HeeksFrame.cpp' for some reference code:
http://heekscad.googlecode.com/svn-history/r26/trunk/src/HeeksFrame.cpp
- Bryan
http://heybryan.org/
1 512 203 0507
_______________________________________________
Pythonocc-users mailing list
[email protected]
https://mail.gna.org/listinfo/pythonocc-users