diff --git a/FlatCAM.py b/FlatCAM.py index 18215a57..ae183544 100644 --- a/FlatCAM.py +++ b/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) diff --git a/FlatCAM.ui b/FlatCAM.ui index 1feaeb7f..ff0acdbb 100644 --- a/FlatCAM.ui +++ b/FlatCAM.ui @@ -2749,6 +2749,11 @@ this object. True False + 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. 1 3 Bottom Layer: @@ -2780,6 +2785,8 @@ this object. True False + <b>X</b> flips from top to bottom, +<b>Y</b> flips from left to right. 1 3 Mirror Axis: @@ -2840,6 +2847,8 @@ this object. True False + How the location of the axis +is specified. 1 3 Axis location: @@ -2862,6 +2871,8 @@ this object. True True False + The axis must pass through the +specified point. 0 True True @@ -2879,6 +2890,8 @@ this object. True True False + The axis cuts a box (some Geometry object +in the project) exactly in the middle. 0 True rb_mirror_point @@ -2901,6 +2914,15 @@ this object. True False + <b>Point:</b> 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. + +<b>Box:</b> 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. 1 3 Point/Box: @@ -2932,6 +2954,14 @@ this object. True False + List of coordinates where to drill alignment +holes, in the format <b>(x1, y1), (x2, y2)</b>, etc. +You can click on the plot and paste each +coordinate here. + +All <b>coordinates are duplicated</b> and mirrored +automatically around the axis so drill pattens are +identical when flipping your board around. 1 3 Algnmt holes: @@ -2960,6 +2990,8 @@ this object. True False + Diameter of the drill for +the aligment holes. 1 3 Drill diam.: @@ -3006,6 +3038,9 @@ this object. True True True + Creates an Excellon object with +the specified holes and their +mirror pairs. end @@ -3019,11 +3054,14 @@ this object. - Create Mirror + Mirror Object 120 True True True + Mirrors the object specified in +<b>Bottom Layer</b> around the +specified axis. end @@ -3091,6 +3129,8 @@ this object. gtk-new True False + New project. Clears all +objects and options. True True @@ -3101,6 +3141,9 @@ this object. Open Gerber True False + Load a Gerber file and create +a Gerber Object in the current +project. image2 False @@ -3111,6 +3154,9 @@ this object. Open Excellon True False + Load an Excellon file and create +an Excellon Object in the current +project. image1 False @@ -3121,6 +3167,9 @@ this object. Open G-Code True False + Load a G-Code file and create +a CNCJob Object in the current +project. image3 False @@ -3230,8 +3279,10 @@ this object. gtk-delete True False + Deletes the selected object. True True + @@ -5059,6 +5110,27 @@ defaults. + + + + + + + + + + + + + + + + + + + + + False diff --git a/README b/README index 6ed41ac8..beab0c42 100644 --- a/README +++ b/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. \ No newline at end of file +CAD program, and create G-Code for Isolation routing. But there's more. \ No newline at end of file diff --git a/defaults.json b/defaults.json index fec7aea9..076496b9 100644 --- a/defaults.json +++ b/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} \ No newline at end of file +{"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} \ No newline at end of file