Juan Pablo Caram 12 years ago
parent
commit
f98f3193cb
4 changed files with 77 additions and 19 deletions
  1. 2 5
      FlatCAM.py
  2. 73 1
      FlatCAM.ui
  3. 1 12
      README
  4. 1 1
      defaults.json

+ 2 - 5
FlatCAM.py

@@ -757,7 +757,7 @@ class App:
         self.units_label.set_text("[" + self.options["units"] + "]")
 
         #### Check for updates ####
-        self.version = 2
+        self.version = 3
         t1 = threading.Thread(target=self.versionCheck)
         t1.daemon = True
         t1.start()
@@ -937,8 +937,6 @@ class App:
                 percentage += delta
                 GLib.idle_add(lambda: app_obj.set_progress_bar(percentage, "Re-plotting..."))
 
-            #app_obj.plotcanvas.auto_adjust_axes()
-            #self.on_zoom_fit(None)
             GLib.idle_add(app_obj.plotcanvas.auto_adjust_axes)
             GLib.idle_add(lambda: self.on_zoom_fit(None))
             GLib.timeout_add(300, lambda: app_obj.set_progress_bar(0.0, ""))
@@ -2308,7 +2306,7 @@ class App:
         """
         Delete the currently selected FlatCAMObj.
 
-        :param widget: The widget from which this was called.
+        :param widget: The widget from which this was called. Ignored.
         :return: None
         """
 
@@ -2852,7 +2850,6 @@ class Measurement:
     def on_click(self, event):
             if self.point1 is None:
                 self.point1 = (event.xdata, event.ydata)
-                return
             else:
                 self.point2 = copy.copy(self.point1)
                 self.point1 = (event.xdata, event.ydata)

+ 73 - 1
FlatCAM.ui

@@ -2749,6 +2749,11 @@ this object.</property>
                       <object class="GtkLabel" id="label84">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">The object that you want to flip around, 
+usually the Gerber object defining the 
+bottom copper layer. You can also flip
+an Excellon object in case you want to drill
+from the bottom side.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Bottom Layer:</property>
@@ -2780,6 +2785,8 @@ this object.</property>
                       <object class="GtkLabel" id="label85">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">&lt;b&gt;X&lt;/b&gt; flips from top to bottom,
+&lt;b&gt;Y&lt;/b&gt; flips from left to right.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Mirror Axis:</property>
@@ -2840,6 +2847,8 @@ this object.</property>
                       <object class="GtkLabel" id="label86">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">How the location of the axis
+is specified.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Axis location:</property>
@@ -2862,6 +2871,8 @@ this object.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="tooltip_markup" translatable="yes">The axis must pass through the
+specified point.</property>
                             <property name="xalign">0</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
@@ -2879,6 +2890,8 @@ this object.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="tooltip_markup" translatable="yes">The axis cuts a box (some Geometry object
+in the project) exactly in the middle.</property>
                             <property name="xalign">0</property>
                             <property name="draw_indicator">True</property>
                             <property name="group">rb_mirror_point</property>
@@ -2901,6 +2914,15 @@ this object.</property>
                       <object class="GtkLabel" id="label87">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">&lt;b&gt;Point:&lt;/b&gt; Click on the desired point on the plot.
+This copies the point to the clipboard. Then paste it
+in the box by right-clicking and choosing paste, or
+hitting Control-v.
+
+&lt;b&gt;Box:&lt;/b&gt; Choose an object in the project
+that you want to use as a box for specifying
+the flipping axis. If the object is not a rectangle,
+a bounding box arounf the object is calculated.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Point/Box:</property>
@@ -2932,6 +2954,14 @@ this object.</property>
                       <object class="GtkLabel" id="label89">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">List of coordinates where to drill alignment
+holes, in the format &lt;b&gt;(x1, y1), (x2, y2)&lt;/b&gt;, etc.
+You can click on the plot and paste each
+coordinate here.
+
+All &lt;b&gt;coordinates are duplicated&lt;/b&gt; and mirrored 
+automatically around the axis so drill pattens are 
+identical when flipping your board around.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Algnmt holes:</property>
@@ -2960,6 +2990,8 @@ this object.</property>
                       <object class="GtkLabel" id="label90">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_markup" translatable="yes">Diameter of the drill for
+the aligment holes.</property>
                         <property name="xalign">1</property>
                         <property name="xpad">3</property>
                         <property name="label" translatable="yes">Drill diam.:</property>
@@ -3006,6 +3038,9 @@ this object.</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
+                        <property name="tooltip_markup" translatable="yes">Creates an Excellon object with
+the specified holes and their
+mirror pairs.</property>
                         <property name="halign">end</property>
                         <signal name="activate" handler="on_create_aligndrill" swapped="no"/>
                         <signal name="clicked" handler="on_create_aligndrill" swapped="no"/>
@@ -3019,11 +3054,14 @@ this object.</property>
                     </child>
                     <child>
                       <object class="GtkButton" id="button18">
-                        <property name="label" translatable="yes">Create Mirror</property>
+                        <property name="label" translatable="yes">Mirror Object</property>
                         <property name="width_request">120</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
+                        <property name="tooltip_markup" translatable="yes">Mirrors the object specified in
+&lt;b&gt;Bottom Layer&lt;/b&gt; around the
+specified axis.</property>
                         <property name="halign">end</property>
                         <signal name="activate" handler="on_create_mirror" swapped="no"/>
                         <signal name="clicked" handler="on_create_mirror" swapped="no"/>
@@ -3091,6 +3129,8 @@ this object.</property>
                         <property name="label">gtk-new</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_text" translatable="yes">New project. Clears all 
+objects and options.</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
                         <signal name="activate" handler="on_file_new" swapped="no"/>
@@ -3101,6 +3141,9 @@ this object.</property>
                         <property name="label">Open Gerber</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_text" translatable="yes">Load a Gerber file and create 
+a Gerber Object in the current 
+project.</property>
                         <property name="image">image2</property>
                         <property name="use_stock">False</property>
                         <signal name="activate" handler="on_fileopengerber" swapped="no"/>
@@ -3111,6 +3154,9 @@ this object.</property>
                         <property name="label">Open Excellon</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_text" translatable="yes">Load an Excellon file and create 
+an Excellon Object in the current 
+project.</property>
                         <property name="image">image1</property>
                         <property name="use_stock">False</property>
                         <signal name="activate" handler="on_fileopenexcellon" swapped="no"/>
@@ -3121,6 +3167,9 @@ this object.</property>
                         <property name="label">Open G-Code</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_text" translatable="yes">Load a G-Code file and create 
+a CNCJob Object in the current 
+project.</property>
                         <property name="image">image3</property>
                         <property name="use_stock">False</property>
                         <signal name="activate" handler="on_fileopengcode" swapped="no"/>
@@ -3230,8 +3279,10 @@ this object.</property>
                         <property name="label">gtk-delete</property>
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="tooltip_text" translatable="yes">Deletes the selected object.</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
+                        <signal name="activate" handler="on_delete" swapped="no"/>
                       </object>
                     </child>
                   </object>
@@ -5059,6 +5110,27 @@ defaults.</property>
                     <child>
                       <placeholder/>
                     </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>

+ 1 - 12
README

@@ -5,15 +5,4 @@ FlatCAM: 2D Post-processing for Manufacturing
 
 FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router.
 Among other things, it can take a Gerber file generated by your favorite PCB
-CAD program, and create G-Code for Isolation routing. But there's more. See
-the features list below.
-
-* Powerful user interface for visualization.
-* Viewers for: Gerber, Excellon, G-Code.
-* Create isolation routing geometry from Gerber.
-* Create optimized G-Code from geometry.
-* Double sided PCB tools.
-* Clearing copper areas.
-* Measuring tool (planned).
-* PCB cutout tool.
-* Table flattening tool.
+CAD program, and create G-Code for Isolation routing. But there's more.

+ 1 - 1
defaults.json

@@ -1 +1 @@
-{"gerber_cutouttooldia":0.07, "geometry_paintoverlap": 0.15, "geometry_plot": true, "excellon_feedrate": 5.0, "gerber_plot": true, "gerber_mergepolys": true, "excellon_drillz": -0.1, "geometry_feedrate": 3.0, "units": "IN", "excellon_travelz": 0.1, "gerber_multicolored": false, "gerber_solid": true, "gerber_isopasses": 1, "excellon_plot": true, "gerber_isotooldia": 0.016, "cncjob_tooldia": 0.016, "geometry_travelz": 0.1, "gerber_cutoutmargin": 0.2, "excellon_solid": false, "geometry_paintmargin": 0.01, "geometry_cutz": -0.002, "geometry_cnctooldia": 0.016, "geometry_painttooldia": 0.0625, "gerber_gaps": "4", "gerber_bboxmargin": 0.0, "cncjob_plot": true, "gerber_cutoutgapsize": 0.15, "gerber_isooverlap": 0.17, "gerber_bboxrounded": false, "gerber_noncopperrounded": false, "geometry_multicolored": false, "gerber_noncoppermargin": 0.0, "geometry_solid": false}
+{"gerber_noncopperrounded": false, "geometry_paintoverlap": 0.15, "geometry_plot": true, "excellon_feedrate": 5.0, "gerber_plot": true, "gerber_mergepolys": true, "excellon_drillz": -0.1, "geometry_feedrate": 3.0, "units": "IN", "excellon_travelz": 0.1, "gerber_multicolored": false, "gerber_solid": true, "gerber_isopasses": 1, "excellon_plot": true, "gerber_isotooldia": 0.016, "gerber_bboxmargin": 0.0, "cncjob_tooldia": 0.016, "geometry_travelz": 0.1, "gerber_cutoutmargin": 0.2, "excellon_solid": false, "geometry_paintmargin": 0.01, "geometry_cutz": -0.002, "geometry_cnctooldia": 0.016, "gerber_cutouttooldia": 0.07, "gerber_gaps": "4", "geometry_painttooldia": 0.0625, "cncjob_plot": true, "gerber_cutoutgapsize": 0.15, "gerber_isooverlap": 0.15, "gerber_bboxrounded": false, "geometry_multicolored": false, "gerber_noncoppermargin": 0.0, "geometry_solid": false}