Commit e66675fc authored by sumpfralle's avatar sumpfralle

added various "help" buttons (linked to the wiki)

fixed visualization update of toolpath table changes


git-svn-id: https://pycam.svn.sourceforge.net/svnroot/pycam/trunk@1008 bbaffbd6-741e-11dd-a85d-61de82d9cad9
parent 6c1bcd63
...@@ -39,16 +39,17 @@ ...@@ -39,16 +39,17 @@
<menuitem action="HelpModelTransformations"/> <menuitem action="HelpModelTransformations"/>
<menuitem action="HelpGCodeExport"/> <menuitem action="HelpGCodeExport"/>
<menuitem action="HelpSimulation"/> <menuitem action="HelpSimulation"/>
<menuitem action="Help3DView"/>
<menuitem action="HelpServerMode"/> <menuitem action="HelpServerMode"/>
<menuitem action="HelpCommandLine"/> <menuitem action="HelpCommandLine"/>
<menuitem action="HelpHotkeys"/> <menuitem action="HelpHotkeys"/>
<menuitem action="HelpTouchOff"/>
</menu> </menu>
<menu action="HelpMenuGUI"> <menu action="HelpMenuGUI">
<menuitem action="HelpToolTypes"/> <menuitem action="HelpToolTypes"/>
<menuitem action="HelpProcessSettings"/> <menuitem action="HelpProcessSettings"/>
<menuitem action="HelpBoundsSettings"/> <menuitem action="HelpBoundsSettings"/>
<menuitem action="HelpTaskSetup"/> <menuitem action="HelpTaskSetup"/>
<menuitem action="Help3DView"/>
</menu> </menu>
<separator /> <separator />
<menuitem action="ProjectWebsite"/> <menuitem action="ProjectWebsite"/>
......
...@@ -967,71 +967,92 @@ ...@@ -967,71 +967,92 @@
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">none</property> <property name="shadow_type">none</property>
<child> <child>
<object class="GtkAlignment" id="alignment42"> <object class="GtkVBox" id="vbox9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="left_padding">12</property> <property name="orientation">vertical</property>
<property name="spacing">3</property>
<child> <child>
<object class="GtkVBox" id="vbox29"> <object class="GtkAlignment" id="alignment42">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="left_padding">12</property>
<property name="spacing">3</property>
<child>
<object class="GtkButton" id="ToggleModelDirectionButton">
<property name="label" translatable="yes">Toggle direction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Toggle the direction of a 2D contour model.
This can be useful if the imported model is technically broken (sometimes this happens with Inkscape).</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">2</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ScaleInchMM">
<property name="label" translatable="yes">Inch -&gt; mm</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Scale the model by a factor of 25.4.</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ScaleMMInch">
<property name="label" translatable="yes">mm -&gt; Inch</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Scale the model by a divider of 25.4.</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="Projection2D"> <object class="GtkVBox" id="vbox29">
<property name="label" translatable="yes">2D Projection</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="orientation">vertical</property>
<property name="receives_default">True</property> <property name="spacing">3</property>
<property name="tooltip_text" translatable="yes">Reduce the 3D model down to a 2D projection. <child>
The projection plane is usually at z=0. Only in case of models completely above or below zero the bottom of the model is used instead.</property> <object class="GtkButton" id="ToggleModelDirectionButton">
<property name="label" translatable="yes">Toggle direction</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="padding">2</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ScaleInchMM">
<property name="label" translatable="yes">Inch -&gt; mm</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ScaleMMInch">
<property name="label" translatable="yes">mm -&gt; Inch</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="Projection2D">
<property name="label" translatable="yes">2D Projection</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="position">3</property>
</packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLinkButton" id="ModelTransformationsHelp">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=ModelTransformations</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child> </child>
</object> </object>
</child> </child>
...@@ -1861,31 +1882,84 @@ The projection plane is usually at z=0. Only in case of models completely above ...@@ -1861,31 +1882,84 @@ The projection plane is usually at z=0. Only in case of models completely above
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkVButtonBox" id="vbuttonbox1"> <object class="GtkVBox" id="vbox16">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="layout_style">center</property>
<child> <child>
<object class="GtkButton" id="ToolListAdd"> <object class="GtkVButtonBox" id="vbuttonbox1">
<property name="label">gtk-new</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="orientation">vertical</property>
<property name="receives_default">True</property> <property name="layout_style">center</property>
<property name="use_stock">True</property> <child>
<object class="GtkButton" id="ToolListAdd">
<property name="label">gtk-new</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ToolListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ToolListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ToolListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="ToolListDelete"> <object class="GtkLinkButton" id="ToolHelp">
<property name="label">gtk-delete</property> <property name="label">gtk-help</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=ToolTypes</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -1893,34 +1967,6 @@ The projection plane is usually at z=0. Only in case of models completely above ...@@ -1893,34 +1967,6 @@ The projection plane is usually at z=0. Only in case of models completely above
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="ToolListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ToolListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -2381,31 +2427,84 @@ The projection plane is usually at z=0. Only in case of models completely above ...@@ -2381,31 +2427,84 @@ The projection plane is usually at z=0. Only in case of models completely above
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkVButtonBox" id="vbuttonbox2"> <object class="GtkVBox" id="vbox20">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="layout_style">center</property>
<child> <child>
<object class="GtkButton" id="ProcessListAdd"> <object class="GtkVButtonBox" id="vbuttonbox2">
<property name="label">gtk-new</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="orientation">vertical</property>
<property name="receives_default">True</property> <property name="layout_style">center</property>
<property name="use_stock">True</property> <child>
<object class="GtkButton" id="ProcessListAdd">
<property name="label">gtk-new</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ProcessListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ProcessListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ProcessListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="ProcessListDelete"> <object class="GtkLinkButton" id="ProcessHelp">
<property name="label">gtk-delete</property> <property name="label">gtk-help</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=ProcessSettings</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -2413,34 +2512,6 @@ The projection plane is usually at z=0. Only in case of models completely above ...@@ -2413,34 +2512,6 @@ The projection plane is usually at z=0. Only in case of models completely above
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="ProcessListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ProcessListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -3098,64 +3169,89 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -3098,64 +3169,89 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkVButtonBox" id="vbuttonbox3"> <object class="GtkVBox" id="vbox22">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="layout_style">center</property>
<child>
<object class="GtkButton" id="BoundsListAdd">
<property name="label">gtk-new</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BoundsListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="BoundsListMoveUp"> <object class="GtkVButtonBox" id="vbuttonbox3">
<property name="label">gtk-go-up</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="orientation">vertical</property>
<property name="receives_default">True</property> <property name="layout_style">center</property>
<property name="use_stock">True</property> <child>
</object> <object class="GtkButton" id="BoundsListAdd">
<packing> <property name="label">gtk-new</property>
<property name="expand">False</property> <property name="visible">True</property>
<property name="fill">False</property> <property name="can_focus">True</property>
<property name="position">2</property> <property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BoundsListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BoundsListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="BoundsListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="BoundsListMoveDown"> <object class="GtkLinkButton" id="BoundsHelp">
<property name="label">gtk-go-down</property> <property name="label">gtk-help</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=BoundsSettings</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="position">1</property>
<property name="position">3</property>
</packing> </packing>
</child> </child>
</object> </object>
...@@ -3861,94 +3957,121 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -3861,94 +3957,121 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkVButtonBox" id="vbuttonbox4"> <object class="GtkVBox" id="vbox35">
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="layout_style">center</property>
<child> <child>
<object class="GtkButton" id="GenerateToolPathButton"> <object class="GtkVButtonBox" id="vbuttonbox4">
<property name="label" translatable="yes">_Generate Toolpath</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="orientation">vertical</property>
<property name="receives_default">True</property> <property name="layout_style">center</property>
<property name="image">GenerateOneToolPathIcon</property> <child>
<property name="use_underline">True</property> <object class="GtkButton" id="GenerateToolPathButton">
<property name="label" translatable="yes">_Generate Toolpath</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Generate the currently selected toolpath</property>
<property name="image">GenerateOneToolPathIcon</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="GenerateAllToolPathsButton">
<property name="label" translatable="yes">Generate _All</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Generate all toolpaths that are marked as enabled</property>
<property name="image">GenerateAllToolPathsIcon</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListAdd">
<property name="label">gtk-new</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">5</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="GenerateAllToolPathsButton"> <object class="GtkLinkButton" id="TaskHelp">
<property name="label" translatable="yes">Generate _All</property> <property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">GenerateAllToolPathsIcon</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListAdd">
<property name="label">gtk-new</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListDelete">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListMoveUp">
<property name="label">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TaskListMoveDown">
<property name="label">gtk-go-down</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=TaskSettings</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="position">1</property>
<property name="position">5</property>
</packing> </packing>
</child> </child>
</object> </object>
...@@ -4138,6 +4261,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4138,6 +4261,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
...@@ -4154,7 +4278,6 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4154,7 +4278,6 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</child> </child>
</object> </object>
<packing> <packing>
<property name="expand">False</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
...@@ -4295,6 +4418,36 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4295,6 +4418,36 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="layout_style">center</property> <property name="layout_style">center</property>
<child>
<object class="GtkButton" id="ExportAllToolpathsButton">
<property name="label" translatable="yes">Export all</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">ExportAllToolpathsIcon</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ExportVisibleToolpathsButton">
<property name="label" translatable="yes">Export visible</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">ExportVisibleToolpathsIcon</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="toolpath_simulate"> <object class="GtkButton" id="toolpath_simulate">
<property name="label" translatable="yes">Simulate</property> <property name="label" translatable="yes">Simulate</property>
...@@ -4307,7 +4460,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4307,7 +4460,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">0</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4317,11 +4470,12 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4317,11 +4470,12 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">1</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4336,7 +4490,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4336,7 +4490,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">2</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4351,7 +4505,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4351,7 +4505,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">3</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4366,7 +4520,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4366,7 +4520,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">4</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4381,7 +4535,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4381,7 +4535,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">5</property> <property name="position">7</property>
</packing> </packing>
</child> </child>
</object> </object>
...@@ -4576,9 +4730,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4576,9 +4730,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkToolbar" id="PerspectiveControls"> <object class="GtkHBox" id="hbox38">
<property name="visible">True</property> <property name="visible">True</property>
<property name="toolbar_style">text</property>
<child> <child>
<object class="GtkToolButton" id="Reset View"> <object class="GtkToolButton" id="Reset View">
<property name="visible">True</property> <property name="visible">True</property>
...@@ -4587,7 +4740,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4587,7 +4740,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4598,7 +4752,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4598,7 +4752,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4609,7 +4764,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4609,7 +4764,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4620,7 +4776,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4620,7 +4776,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">3</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4631,7 +4788,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4631,7 +4788,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4642,7 +4800,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4642,7 +4800,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
...@@ -4653,7 +4812,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4653,7 +4812,8 @@ Usually you will want to use the cutter radius here to cut around the outline.</
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="homogeneous">True</property> <property name="fill">False</property>
<property name="position">6</property>
</packing> </packing>
</child> </child>
</object> </object>
...@@ -4661,6 +4821,23 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4661,6 +4821,23 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLinkButton" id="3DViewHelp">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property>
<property name="xalign">1</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=3D_View</property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -4883,7 +5060,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</ ...@@ -4883,7 +5060,7 @@ Usually you will want to use the cutter radius here to cut around the outline.</
<property name="label">_Settings</property> <property name="label">_Settings</property>
</object> </object>
<object class="GtkAction" id="ExportGCodeVisible"> <object class="GtkAction" id="ExportGCodeVisible">
<property name="label">_Export visible Toolpaths</property> <property name="label">Export _visible Toolpaths</property>
<property name="tooltip">Write all visible toolpaths to a file.</property> <property name="tooltip">Write all visible toolpaths to a file.</property>
<property name="stock_id">gtk-execute</property> <property name="stock_id">gtk-execute</property>
<property name="always_show_image">True</property> <property name="always_show_image">True</property>
...@@ -5623,7 +5800,7 @@ Choose a small value to minimize rapid moves up and down.</property> ...@@ -5623,7 +5800,7 @@ Choose a small value to minimize rapid moves up and down.</property>
<child> <child>
<object class="GtkTable" id="TouchOffLocationTable"> <object class="GtkTable" id="TouchOffLocationTable">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">7</property> <property name="n_rows">8</property>
<property name="n_columns">3</property> <property name="n_columns">3</property>
<property name="column_spacing">3</property> <property name="column_spacing">3</property>
<property name="row_spacing">3</property> <property name="row_spacing">3</property>
...@@ -5915,6 +6092,26 @@ Everyone else should use the option for M3/M5 (see above).</property> ...@@ -5915,6 +6092,26 @@ Everyone else should use the option for M3/M5 (see above).</property>
<property name="x_options">GTK_FILL</property> <property name="x_options">GTK_FILL</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLinkButton" id="TouchOffHelp">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property>
<property name="xalign">1</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=TouchOff</property>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">7</property>
<property name="bottom_attach">8</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
...@@ -6533,7 +6730,7 @@ Hotkey: &lt;p&gt;</property> ...@@ -6533,7 +6730,7 @@ Hotkey: &lt;p&gt;</property>
<child> <child>
<object class="GtkTable" id="table11"> <object class="GtkTable" id="table11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">2</property> <property name="n_rows">3</property>
<property name="n_columns">4</property> <property name="n_columns">4</property>
<property name="column_spacing">3</property> <property name="column_spacing">3</property>
<child> <child>
...@@ -6656,6 +6853,26 @@ Hotkey: &lt;p&gt;</property> ...@@ -6656,6 +6853,26 @@ Hotkey: &lt;p&gt;</property>
<property name="y_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLinkButton" id="ExternalProgramsHelp">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property>
<property name="xalign">1</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=Requirements#Optional_external_programs</property>
</object>
<packing>
<property name="right_attach">4</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>
...@@ -6896,7 +7113,7 @@ See the &lt;a href="http://sf.net/apps/mediawiki/pycam/?title=Parallel_Processin ...@@ -6896,7 +7113,7 @@ See the &lt;a href="http://sf.net/apps/mediawiki/pycam/?title=Parallel_Processin
<child> <child>
<object class="GtkTable" id="ServerModeSettingsTable"> <object class="GtkTable" id="ServerModeSettingsTable">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">3</property> <property name="n_rows">4</property>
<property name="n_columns">3</property> <property name="n_columns">3</property>
<property name="column_spacing">3</property> <property name="column_spacing">3</property>
<property name="row_spacing">2</property> <property name="row_spacing">2</property>
...@@ -7069,6 +7286,26 @@ The default port is 1250.</property> ...@@ -7069,6 +7286,26 @@ The default port is 1250.</property>
<property name="y_options"></property> <property name="y_options"></property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkLinkButton" id="ServerModeHelp">
<property name="label">gtk-help</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
<property name="use_stock">True</property>
<property name="xalign">1</property>
<property name="uri">http://sourceforge.net/apps/mediawiki/pycam/index.php?title=ServerMode</property>
</object>
<packing>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>
...@@ -7460,7 +7697,7 @@ Any selected group of dimensions will be scaled accordingly.</property> ...@@ -7460,7 +7697,7 @@ Any selected group of dimensions will be scaled accordingly.</property>
<property name="label">_Help</property> <property name="label">_Help</property>
</object> </object>
<object class="GtkAction" id="HelpMenuMisc"> <object class="GtkAction" id="HelpMenuMisc">
<property name="label">Miscellaneous</property> <property name="label">Mis_cellaneous</property>
</object> </object>
<object class="GtkAction" id="HelpMenuGUI"> <object class="GtkAction" id="HelpMenuGUI">
<property name="label">_GUI description</property> <property name="label">_GUI description</property>
...@@ -7518,15 +7755,15 @@ Any selected group of dimensions will be scaled accordingly.</property> ...@@ -7518,15 +7755,15 @@ Any selected group of dimensions will be scaled accordingly.</property>
<property name="stock_id">gtk-network</property> <property name="stock_id">gtk-network</property>
</object> </object>
<object class="GtkAction" id="Forum"> <object class="GtkAction" id="Forum">
<property name="label">Forum</property> <property name="label">_Forum</property>
<property name="stock_id">gtk-network</property> <property name="stock_id">gtk-network</property>
</object> </object>
<object class="GtkAction" id="BugTracker"> <object class="GtkAction" id="BugTracker">
<property name="label">Report a Bug</property> <property name="label">Report a _Bug</property>
<property name="stock_id">gtk-network</property> <property name="stock_id">gtk-network</property>
</object> </object>
<object class="GtkAction" id="FeatureRequest"> <object class="GtkAction" id="FeatureRequest">
<property name="label">Request a Feature</property> <property name="label">Re_quest a Feature</property>
<property name="stock_id">gtk-network</property> <property name="stock_id">gtk-network</property>
</object> </object>
<object class="GtkAdjustment" id="SupportGridDistanceY"> <object class="GtkAdjustment" id="SupportGridDistanceY">
...@@ -8020,7 +8257,7 @@ Please read the description of the Server Mode (linked below) to understand the ...@@ -8020,7 +8257,7 @@ Please read the description of the Server Mode (linked below) to understand the
<property name="always_show_image">True</property> <property name="always_show_image">True</property>
</object> </object>
<object class="GtkAction" id="DevelopmentBlog"> <object class="GtkAction" id="DevelopmentBlog">
<property name="label">Development Blog</property> <property name="label">_Development Blog</property>
<property name="stock_id">gtk-network</property> <property name="stock_id">gtk-network</property>
</object> </object>
<object class="GtkAction" id="HelpServerMode"> <object class="GtkAction" id="HelpServerMode">
...@@ -8971,14 +9208,6 @@ upon interesting bugs and weird results.</property> ...@@ -8971,14 +9208,6 @@ upon interesting bugs and weird results.</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-zoom-fit</property> <property name="stock">gtk-zoom-fit</property>
</object> </object>
<object class="GtkImage" id="GenerateOneToolPathIcon">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
</object>
<object class="GtkImage" id="GenerateAllToolPathsIcon">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
</object>
<object class="GtkAdjustment" id="ToolChangeRapidMoveDownValue"> <object class="GtkAdjustment" id="ToolChangeRapidMoveDownValue">
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="step_increment">1</property> <property name="step_increment">1</property>
...@@ -9019,4 +9248,25 @@ upon interesting bugs and weird results.</property> ...@@ -9019,4 +9248,25 @@ upon interesting bugs and weird results.</property>
<property name="upper">100</property> <property name="upper">100</property>
<property name="step_increment">1</property> <property name="step_increment">1</property>
</object> </object>
<object class="GtkImage" id="GenerateOneToolPathIcon">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
</object>
<object class="GtkImage" id="GenerateAllToolPathsIcon">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
</object>
<object class="GtkAction" id="HelpTouchOff">
<property name="label">_Touch off and tool change</property>
<property name="short_label">_Touch off</property>
<property name="stock_id">gtk-help</property>
</object>
<object class="GtkImage" id="ExportVisibleToolpathsIcon">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
</object>
<object class="GtkImage" id="ExportAllToolpathsIcon">
<property name="visible">True</property>
<property name="stock">gtk-save-as</property>
</object>
</interface> </interface>
...@@ -331,7 +331,7 @@ class ProjectGui: ...@@ -331,7 +331,7 @@ class ProjectGui:
("OpenModel", self.load_model_file, None, "<Control>o"), ("OpenModel", self.load_model_file, None, "<Control>o"),
("SaveModel", self.save_model, lambda: self.last_model_filename, "<Control>s"), ("SaveModel", self.save_model, lambda: self.last_model_filename, "<Control>s"),
("SaveAsModel", self.save_model, None, "<Control><Shift>s"), ("SaveAsModel", self.save_model, None, "<Control><Shift>s"),
("ExportGCodeAll", self.save_toolpath, None, "<Control><Shift>e"), ("ExportGCodeAll", self.save_toolpath, False, "<Control><Shift>e"),
("ExportGCodeVisible", self.save_toolpath, True, None), ("ExportGCodeVisible", self.save_toolpath, True, None),
("ExportEMCToolDefinition", self.export_emc_tools, None, None), ("ExportEMCToolDefinition", self.export_emc_tools, None, None),
("Quit", self.destroy, None, "<Control>q"), ("Quit", self.destroy, None, "<Control>q"),
...@@ -350,6 +350,7 @@ class ProjectGui: ...@@ -350,6 +350,7 @@ class ProjectGui:
("HelpBoundsSettings", self.show_help, "BoundsSettings", None), ("HelpBoundsSettings", self.show_help, "BoundsSettings", None),
("HelpTaskSetup", self.show_help, "TaskSetup", None), ("HelpTaskSetup", self.show_help, "TaskSetup", None),
("HelpGCodeExport", self.show_help, "GCodeExport", None), ("HelpGCodeExport", self.show_help, "GCodeExport", None),
("HelpTouchOff", self.show_help, "TouchOff", None),
("HelpSimulation", self.show_help, "Simulation", None), ("HelpSimulation", self.show_help, "Simulation", None),
("Help3DView", self.show_help, "3D_View", None), ("Help3DView", self.show_help, "3D_View", None),
("HelpServerMode", self.show_help, "ServerMode", None), ("HelpServerMode", self.show_help, "ServerMode", None),
...@@ -865,6 +866,10 @@ class ProjectGui: ...@@ -865,6 +866,10 @@ class ProjectGui:
self.gui.get_object("toolpath_crop").connect("clicked", self.toolpath_table_event, "crop") self.gui.get_object("toolpath_crop").connect("clicked", self.toolpath_table_event, "crop")
self.gui.get_object("ToolpathGrid").connect("clicked", self.toolpath_table_event, "grid") self.gui.get_object("ToolpathGrid").connect("clicked", self.toolpath_table_event, "grid")
self.gui.get_object("ExitSimulationButton").connect("clicked", self.finish_toolpath_simulation) self.gui.get_object("ExitSimulationButton").connect("clicked", self.finish_toolpath_simulation)
self.gui.get_object("ExportAllToolpathsButton").connect("clicked",
self.save_toolpath, False)
self.gui.get_object("ExportVisibleToolpathsButton").connect("clicked",
self.save_toolpath, True)
speed_factor_widget = self.gui.get_object("SimulationSpeedFactor") speed_factor_widget = self.gui.get_object("SimulationSpeedFactor")
self.settings.add_item("simulation_speed_factor", self.settings.add_item("simulation_speed_factor",
lambda: pow(10, speed_factor_widget.get_value()), lambda: pow(10, speed_factor_widget.get_value()),
...@@ -1149,6 +1154,7 @@ class ProjectGui: ...@@ -1149,6 +1154,7 @@ class ProjectGui:
self.update_ode_settings() self.update_ode_settings()
self.update_parallel_processes_settings() self.update_parallel_processes_settings()
self.update_model_type_related_controls() self.update_model_type_related_controls()
self.update_toolpath_related_controls()
def update_gcode_controls(self, widget=None): def update_gcode_controls(self, widget=None):
# path mode # path mode
...@@ -3350,8 +3356,9 @@ class ProjectGui: ...@@ -3350,8 +3356,9 @@ class ProjectGui:
path = None path = None
if (not path is None) and (path < len(self.toolpath)): if (not path is None) and (path < len(self.toolpath)):
self.toolpath[path].visible = not self.toolpath[path].visible self.toolpath[path].visible = not self.toolpath[path].visible
# hide/show toolpaths according to the new setting tp_model = self.toolpath_table.get_model()
self.update_view() tp_model[path][2] = self.toolpath[path].visible
self.update_toolpath_related_controls()
elif action == "simulate": elif action == "simulate":
index = self._treeview_get_active_index(self.toolpath_table, index = self._treeview_get_active_index(self.toolpath_table,
self.toolpath) self.toolpath)
...@@ -3372,7 +3379,7 @@ class ProjectGui: ...@@ -3372,7 +3379,7 @@ class ProjectGui:
self._treeview_button_event(self.toolpath_table, self.toolpath, self._treeview_button_event(self.toolpath_table, self.toolpath,
action, self.update_toolpath_table) action, self.update_toolpath_table)
# do some post-processing ... # do some post-processing ...
if action in ("delete", "crop", "grid"): if action in ("toggle_visibility", "delete", "crop", "grid"):
self.update_view() self.update_view()
def update_toolpath_grid_window(self, widget=None): def update_toolpath_grid_window(self, widget=None):
...@@ -3423,6 +3430,7 @@ class ProjectGui: ...@@ -3423,6 +3430,7 @@ class ProjectGui:
toolpath.visible = False toolpath.visible = False
new_toolpath.visible = True new_toolpath.visible = True
self.toolpath.append(new_toolpath) self.toolpath.append(new_toolpath)
self.update_toolpath_table()
dialog.hide() dialog.hide()
@progress_activity_guard @progress_activity_guard
...@@ -3443,14 +3451,7 @@ class ProjectGui: ...@@ -3443,14 +3451,7 @@ class ProjectGui:
self.update_progress_bar("Cropping the toolpath") self.update_progress_bar("Cropping the toolpath")
toolpath.crop(contour.get_polygons(), callback=self.update_progress_bar) toolpath.crop(contour.get_polygons(), callback=self.update_progress_bar)
def update_toolpath_table(self, new_index=None, skip_model_update=False): def update_toolpath_related_controls(self):
def get_time_string(minutes):
if minutes > 180:
return "%d hours" % int(round(minutes / 60))
elif minutes > 3:
return "%d minutes" % int(round(minutes))
else:
return "%d seconds" % int(round(minutes * 60))
# show or hide the "toolpath" tab # show or hide the "toolpath" tab
toolpath_tab = self.gui.get_object("ToolPathTab") toolpath_tab = self.gui.get_object("ToolPathTab")
if not self.toolpath: if not self.toolpath:
...@@ -3461,8 +3462,21 @@ class ProjectGui: ...@@ -3461,8 +3462,21 @@ class ProjectGui:
toolpath_tab.show() toolpath_tab.show()
# enable/disable the export menu item # enable/disable the export menu item
self.gui.get_object("ExportGCodeAll").set_sensitive(len(self.toolpath) > 0) self.gui.get_object("ExportGCodeAll").set_sensitive(len(self.toolpath) > 0)
visible_toolpaths = [tp for tp in self.toolpath if tp.visible] toolpaths_are_visible = any([tp.visible for tp in self.toolpath])
self.gui.get_object("ExportGCodeVisible").set_sensitive(len(visible_toolpaths) > 0) self.gui.get_object("ExportGCodeVisible").set_sensitive(
toolpaths_are_visible)
self.gui.get_object("ExportVisibleToolpathsButton").set_sensitive(
toolpaths_are_visible)
def update_toolpath_table(self, new_index=None, skip_model_update=False):
def get_time_string(minutes):
if minutes > 180:
return "%d hours" % int(round(minutes / 60))
elif minutes > 3:
return "%d minutes" % int(round(minutes))
else:
return "%d seconds" % int(round(minutes * 60))
self.update_toolpath_related_controls()
# reset the model data and the selection # reset the model data and the selection
if new_index is None: if new_index is None:
# keep the old selection - this may return "None" if nothing is selected # keep the old selection - this may return "None" if nothing is selected
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment