diff --git a/FlatCAM.py b/FlatCAM.py index 18e40a11..772406a2 100644 --- a/FlatCAM.py +++ b/FlatCAM.py @@ -233,7 +233,9 @@ class FlatCAMGerber(FlatCAMObj, Gerber): "mergepolys": True, "multicolored": False, "solid": False, - "isotooldia": 0.4 / 25.4, + "isotooldia": 0.016, + "isopasses": 1, + "isooverlap": 0.15, "cutoutmargin": 0.2, "cutoutgapsize": 0.15, "gaps": "tb", @@ -249,6 +251,8 @@ class FlatCAMGerber(FlatCAMObj, Gerber): "multicolored": "cb", "solid": "cb", "isotooldia": "entry_eval", + "isopasses": "entry_eval", + "isooverlap": "entry_eval", "cutoutmargin": "entry_eval", "cutoutgapsize": "entry_eval", "gaps": "radio", @@ -663,9 +667,9 @@ class App: self.plotcanvas.mpl_connect('motion_notify_event', self.on_mouse_move_over_plot) self.plotcanvas.mpl_connect('key_press_event', self.on_key_over_plot) - self.axes = self.plotcanvas.axes # TODO: Just for testing - self.figure = self.plotcanvas.figure # TODO: Just for testing - self.canvas = self.plotcanvas.canvas # TODO: Just for testing + # self.axes = self.plotcanvas.axes # TODO: Just for testing + # self.figure = self.plotcanvas.figure # TODO: Just for testing + # self.canvas = self.plotcanvas.canvas # TODO: Just for testing self.setup_tooltips() @@ -717,9 +721,9 @@ class App: self.plot_mousemove_subscribers = {} ## Tools ## - self.measure = Measurement(self.axes, self.plot_click_subscribers, - self.plot_mousemove_subscribers, - lambda: self.canvas.queue_draw()) + # self.measure = Measurement(self.axes, self.plot_click_subscribers, + # self.plot_mousemove_subscribers, + # lambda: self.canvas.queue_draw()) #### Initialization #### self.load_defaults() @@ -1900,6 +1904,7 @@ class App: :return: None """ + # Read options from file try: f = open("defaults.json") options = f.read() @@ -1916,9 +1921,11 @@ class App: self.info("ERROR: Failed to parse defaults file.") return + # Update options assert isinstance(defaults, dict) defaults.update(self.defaults) + # Save update options try: f = open("defaults.json", "w") json.dump(defaults, f) @@ -2218,17 +2225,25 @@ class App: gerb = self.get_current() gerb.read_form() - iso_name = gerb.options["name"] + "_iso" + dia = gerb.options["isotooldia"] + passes = int(gerb.options["isopasses"]) + overlap = gerb.options["isooverlap"] * dia - def iso_init(geo_obj, app_obj): - # Propagate options - geo_obj.options["cnctooldia"] = gerb.options["isotooldia"] + for i in range(passes): - geo_obj.solid_geometry = gerb.isolation_geometry(gerb.options["isotooldia"] / 2.0) - app_obj.info("Isolation geometry created: %s" % geo_obj.options["name"]) + offset = (2*i + 1)/2.0 * dia - i*overlap + iso_name = gerb.options["name"] + "_iso%d" % (i+1) - # TODO: Do something if this is None. Offer changing name? - self.new_object("geometry", iso_name, iso_init) + # TODO: This is ugly. Create way to pass data into init function. + def iso_init(geo_obj, app_obj): + # Propagate options + geo_obj.options["cnctooldia"] = gerb.options["isotooldia"] + + geo_obj.solid_geometry = gerb.isolation_geometry(offset) + app_obj.info("Isolation geometry created: %s" % geo_obj.options["name"]) + + # TODO: Do something if this is None. Offer changing name? + self.new_object("geometry", iso_name, iso_init) def on_generate_cncjob(self, widget): """ @@ -2680,7 +2695,7 @@ class App: """ # For key presses - self.canvas.grab_focus() + self.plotcanvas.canvas.grab_focus() try: print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f' % ( diff --git a/FlatCAM.ui b/FlatCAM.ui index b6f00225..bfb08c02 100644 --- a/FlatCAM.ui +++ b/FlatCAM.ui @@ -107,6 +107,1559 @@ THE SOFTWARE. False gtk-open + + False + + + True + True + never + in + + + True + False + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + + + True + False + share/geometry32.png + + + False + True + 0 + + + + + True + False + 3 + Geometry Object + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + + + True + False + 3 + Name: + + + False + True + 0 + + + + + True + True + + True + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + 0 + 3 + Plot Options: + + + + + + False + True + 2 + + + + + Plot + True + True + False + 0 + True + True + + + + False + True + 3 + + + + + Solid + True + True + False + 0 + True + + + False + True + 4 + + + + + Multi-colored + True + True + False + 0 + True + + + False + True + 5 + + + + + Update Plot + True + True + True + + + + + False + True + 6 + + + + + True + False + 5 + 0 + 3 + Create CNC Job: + + + + + + False + True + 7 + + + + + True + False + 2 + 4 + + + True + True + + True + + + + 1 + 0 + 1 + 1 + + + + + True + True + + True + + + + 1 + 1 + 1 + 1 + + + + + True + True + + True + + + + 1 + 2 + 1 + 1 + + + + + True + False + 1 + Cut Z: + + + 0 + 0 + 1 + 1 + + + + + True + False + 1 + Travel Z: + + + 0 + 1 + 1 + 1 + + + + + True + False + 1 + Feed rate: + + + 0 + 2 + 1 + 1 + + + + + True + False + 1 + Tool diam: + + + 0 + 3 + 1 + 1 + + + + + True + True + + True + + + + 1 + 3 + 1 + 1 + + + + + False + True + 8 + + + + + Generate + True + True + True + + + + + False + True + 9 + + + + + True + False + 5 + 0 + 3 + Paint Area: + + + + + + False + True + 10 + + + + + True + False + 2 + 5 + + + True + False + 1 + Tool diam: + + + 0 + 0 + 1 + 1 + + + + + True + True + + True + + + + 1 + 0 + 1 + 1 + + + + + True + False + 1 + Overlap: + + + 0 + 1 + 1 + 1 + + + + + True + True + + True + + + + 1 + 1 + 1 + 1 + + + + + True + False + 1 + Margin: + + + 0 + 2 + 1 + 1 + + + + + True + True + + True + + + + 1 + 2 + 1 + 1 + + + + + False + True + 11 + + + + + Generate + True + True + True + + + + + False + True + 12 + + + + + True + False + 3 + 0 + 3 + Scale: + + + + + + False + True + 13 + + + + + True + False + 3 + 3 + 3 + + + True + False + 1 + Factor: + + + False + True + 0 + + + + + True + True + + 1.0 + True + + + False + True + 1 + + + + + False + True + 14 + + + + + Scale + True + True + True + + + + + False + True + 15 + + + + + True + False + 3 + 0 + 3 + Offset: + + + + + + False + True + 16 + + + + + True + False + 3 + 3 + 3 + + + True + False + 1 + Offset Vector: + + + False + True + 0 + + + + + True + True + + (0.0, 0.0) + True + + + False + True + 1 + + + + + False + True + 17 + + + + + Offset + True + True + True + + + + + False + True + 18 + + + + + + + + + + + + + + + + + False + + + True + True + never + in + + + True + False + + + True + False + 5 + 5 + 5 + 5 + vertical + + + True + False + + + True + False + share/flatcam_icon32.png + + + False + True + 0 + + + + + True + False + 3 + Gerber Object + + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + + + True + False + 3 + Name: + + + False + True + 0 + + + + + True + True + + True + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + 5 + 0 + 3 + Plot Options: + + + + + + False + True + 2 + + + + + Plot + True + True + False + 0 + True + True + + + + False + True + 3 + + + + + Merge Polygons + True + True + False + 0 + True + True + + + False + True + 4 + + + + + Solid + True + True + False + 0 + True + + + False + True + 5 + + + + + Multi-colored + True + True + False + 0 + True + + + False + True + 6 + + + + + Update Plot + True + True + True + + + + + False + True + 7 + + + + + True + False + <b>Isolation Routing:</b> Cutting copper +around traces for electrical isolation. + 5 + 0 + 3 + Isolation Routing: + + + + + + False + True + 8 + + + + + True + False + 3 + 2 + + + True + False + Tool paths for isolation routing are drawn +at 1/2 of the tool diameter away from +polygons defined in Gerber. + 1 + 3 + Tool diam: + + + 0 + 0 + 1 + 1 + + + + + True + True + 2 + 2 + + 16 + True + + + + 1 + 0 + 1 + 1 + + + + + True + False + True + The number of toolwidths defining +the total width of the isolation. + 1 + 3 + Width (# passes): + + + 0 + 1 + 1 + 1 + + + + + True + False + True + How much (fraction of the tool diameter) +to overlap each pass. + 1 + 3 + Pass overlap: + + + 0 + 2 + 1 + 1 + + + + + True + True + 2 + 2 + + 16 + 0.15 + True + + + 1 + 2 + 1 + 1 + + + + + True + True + 2 + 2 + + 16 + 1 + True + + + 1 + 1 + 1 + 1 + + + + + False + True + 9 + + + + + Generate Geometry + True + True + True + Creates a geometry object with tool +paths for isolation routing. If more than +1 pass, wil create one object for each. + + + + + False + True + 10 + + + + + True + False + <b>Board cutout:</b> Cut around +the edge of the board. + 5 + 0 + 3 + Board cutout: + + + + + + False + True + 11 + + + + + True + False + 3 + + + True + False + Distance away from the rectangular edge +enclosing the board to generate the +cutting tool path. + 1 + Margin: + + + 0 + 0 + 1 + 1 + + + + + True + True + + 12 + True + + + + 1 + 0 + 1 + 1 + + + + + True + True + + 12 + True + + + + 1 + 1 + 1 + 1 + + + + + True + False + Length of the gaps along the toolpath. +These gaps are needed to hold the +board in place until the job is complete. + 1 + Gap size: + + + 0 + 1 + 1 + 1 + + + + + True + False + 1 + Gaps: + + + 0 + 2 + 1 + 1 + + + + + True + False + + + 2 (T/B) + True + True + False + Gaps are placed on the top and +bottom edges of the board cutout. + 8 + 0 + True + rb_2lr + + + False + True + 0 + + + + + 2 (L/R) + True + True + False + Gaps are placed on the left and right +edges of the board cutout. + 8 + 0 + True + True + + + False + True + 1 + + + + + 4 + True + True + False + Gaps are placed on the four edges +of the board cutout. + 0 + True + rb_2lr + + + False + True + 2 + + + + + 1 + 2 + 1 + 1 + + + + + False + True + 12 + + + + + Generate Geometry + True + True + True + Generates the Geometry object with +toolpaths for board cutout. + + + + + False + True + 13 + + + + + True + False + <b>Non-copper regions</b>: Use to create +geometry with polygons covering areas +without copper on the board. + +This can be used, for example, to clear all +copper from certain regions. + 5 + 0 + 3 + Non-copper regions: + + + + + + False + True + 14 + + + + + True + False + 4 + 4 + 1 + + + True + False + Defines how far from the rectangular box +enclosing the contents of the board the +edge of the board is. + +Copper-free areas will be located within +this boundary. + 1 + Boundary margin: + + + False + True + 0 + + + + + True + True + + 14 + True + + + + False + True + 1 + + + + + False + True + 15 + + + + + Generate Geometry + True + True + True + Creates a Geometry Object covering +areas without copper. + + + + + False + True + 16 + + + + + True + False + <b>Bounding Box:</b> A simple rectangular +boundary around the PCB contents. + 5 + 0 + 3 + Bounding box: + + + + + + False + True + 17 + + + + + True + False + 4 + 4 + 1 + + + True + False + Distance from the rectangular box enclosing +the PCB contents at which to draw the +bounding box. + 1 + Boundary margin: + + + False + True + 0 + + + + + True + True + + 14 + True + + + + False + True + 1 + + + + + False + True + 18 + + + + + Rounded corners + True + True + False + Whether to draw rounded corners on the bounding +box. The radius is the Boundary margin. + + 0 + True + + + False + True + 19 + + + + + Generate Bounding Box + True + True + True + Generates a Geometry object +with the bounding box. + + + + + False + True + 20 + + + + + True + False + <b>Scale:</b> Resizes the geometry +of the object. All sizes and coordinates +are multiplied by the given factor. + 3 + 0 + 3 + Scale: + + + + + + False + True + 21 + + + + + True + False + 3 + 3 + 3 + + + True + False + Factor by which to multiply all +geometrical dimensions. + 1 + Factor: + + + False + True + 0 + + + + + True + True + + 1.0 + True + + + False + True + 1 + + + + + False + True + 22 + + + + + Scale + True + True + True + Scales the geometry +of this object. + + + + + False + True + 23 + + + + + True + False + <b>Offset:</b> Shift the geometry of +this object by the specified (x, y) vector. + 3 + 0 + 3 + Offset: + + + + + + False + True + 24 + + + + + True + False + 3 + 3 + 3 + + + True + False + Vector by which to offset the geometry. +Format is <b>(x, y)</b>, where <b>x</b> and <b>y</b> are +decimal numbers representing the +distance in the corresponding axis. + 1 + Offset Vector: + + + False + True + 0 + + + + + True + True + + (0.0, 0.0) + True + + + False + True + 1 + + + + + False + True + 25 + + + + + Offset + True + True + True + Offset the geometry of +this object. + + + + + False + True + 26 + + + + + + + + + + + + + + + + + + + + + False @@ -1385,1486 +2938,6 @@ THE SOFTWARE. - - False - - - True - True - never - in - - - True - False - - - True - False - 5 - 5 - 5 - 5 - vertical - - - True - False - - - True - False - share/geometry32.png - - - False - True - 0 - - - - - True - False - 3 - Geometry Object - - - - - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - - - True - False - 3 - Name: - - - False - True - 0 - - - - - True - True - - True - - - - False - True - 1 - - - - - False - True - 1 - - - - - True - False - 0 - 3 - Plot Options: - - - - - - False - True - 2 - - - - - Plot - True - True - False - 0 - True - True - - - - False - True - 3 - - - - - Solid - True - True - False - 0 - True - - - False - True - 4 - - - - - Multi-colored - True - True - False - 0 - True - - - False - True - 5 - - - - - Update Plot - True - True - True - - - - - False - True - 6 - - - - - True - False - 5 - 0 - 3 - Create CNC Job: - - - - - - False - True - 7 - - - - - True - False - 2 - 4 - - - True - True - - True - - - - 1 - 0 - 1 - 1 - - - - - True - True - - True - - - - 1 - 1 - 1 - 1 - - - - - True - True - - True - - - - 1 - 2 - 1 - 1 - - - - - True - False - 1 - Cut Z: - - - 0 - 0 - 1 - 1 - - - - - True - False - 1 - Travel Z: - - - 0 - 1 - 1 - 1 - - - - - True - False - 1 - Feed rate: - - - 0 - 2 - 1 - 1 - - - - - True - False - 1 - Tool diam: - - - 0 - 3 - 1 - 1 - - - - - True - True - - True - - - - 1 - 3 - 1 - 1 - - - - - False - True - 8 - - - - - Generate - True - True - True - - - - - False - True - 9 - - - - - True - False - 5 - 0 - 3 - Paint Area: - - - - - - False - True - 10 - - - - - True - False - 2 - 5 - - - True - False - 1 - Tool diam: - - - 0 - 0 - 1 - 1 - - - - - True - True - - True - - - - 1 - 0 - 1 - 1 - - - - - True - False - 1 - Overlap: - - - 0 - 1 - 1 - 1 - - - - - True - True - - True - - - - 1 - 1 - 1 - 1 - - - - - True - False - 1 - Margin: - - - 0 - 2 - 1 - 1 - - - - - True - True - - True - - - - 1 - 2 - 1 - 1 - - - - - False - True - 11 - - - - - Generate - True - True - True - - - - - False - True - 12 - - - - - True - False - 3 - 0 - 3 - Scale: - - - - - - False - True - 13 - - - - - True - False - 3 - 3 - 3 - - - True - False - 1 - Factor: - - - False - True - 0 - - - - - True - True - - 1.0 - True - - - False - True - 1 - - - - - False - True - 14 - - - - - Scale - True - True - True - - - - - False - True - 15 - - - - - True - False - 3 - 0 - 3 - Offset: - - - - - - False - True - 16 - - - - - True - False - 3 - 3 - 3 - - - True - False - 1 - Offset Vector: - - - False - True - 0 - - - - - True - True - - (0.0, 0.0) - True - - - False - True - 1 - - - - - False - True - 17 - - - - - Offset - True - True - True - - - - - False - True - 18 - - - - - - - - - - - - - - - - - False - - - True - True - never - in - - - True - False - - - True - False - 5 - 5 - 5 - 5 - vertical - - - True - False - - - True - False - share/flatcam_icon32.png - - - False - True - 0 - - - - - True - False - 3 - Gerber Object - - - - - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - - - True - False - 3 - Name: - - - False - True - 0 - - - - - True - True - - True - - - False - True - 1 - - - - - False - True - 1 - - - - - True - False - 5 - 0 - 3 - Plot Options: - - - - - - False - True - 2 - - - - - Plot - True - True - False - 0 - True - True - - - - False - True - 3 - - - - - Merge Polygons - True - True - False - 0 - True - True - - - False - True - 4 - - - - - Solid - True - True - False - 0 - True - - - False - True - 5 - - - - - Multi-colored - True - True - False - 0 - True - - - False - True - 6 - - - - - Update Plot - True - True - True - - - - - False - True - 7 - - - - - True - False - <b>Isolation Routing:</b> Cutting copper -around traces for electrical isolation. - 5 - 0 - 3 - Isolation Routing: - - - - - - False - True - 8 - - - - - True - False - 3 - 2 - - - True - False - Tool paths for isolation routing are drawn -at 1/2 of the tool diameter away from -polygons defined in Gerber. - 1 - 3 - Tool diam: - - - 0 - 0 - 1 - 1 - - - - - True - True - 2 - 2 - - 16 - True - - - - 1 - 0 - 1 - 1 - - - - - False - True - 9 - - - - - Generate Geometry - True - True - True - Creates a geometry object with tool -paths for isolation routing. - - - - - False - True - 10 - - - - - True - False - <b>Board cutout:</b> Cut around -the edge of the board. - 5 - 0 - 3 - Board cutout: - - - - - - False - True - 11 - - - - - True - False - 3 - - - True - False - Distance away from the rectangular edge -enclosing the board to generate the -cutting tool path. - 1 - Margin: - - - 0 - 0 - 1 - 1 - - - - - True - True - - 12 - True - - - - 1 - 0 - 1 - 1 - - - - - True - True - - 12 - True - - - - 1 - 1 - 1 - 1 - - - - - True - False - Length of the gaps along the toolpath. -These gaps are needed to hold the -board in place until the job is complete. - 1 - Gap size: - - - 0 - 1 - 1 - 1 - - - - - True - False - 1 - Gaps: - - - 0 - 2 - 1 - 1 - - - - - True - False - - - 2 (T/B) - True - True - False - Gaps are placed on the top and -bottom edges of the board cutout. - 8 - 0 - True - rb_2lr - - - False - True - 0 - - - - - 2 (L/R) - True - True - False - Gaps are placed on the left and right -edges of the board cutout. - 8 - 0 - True - True - - - False - True - 1 - - - - - 4 - True - True - False - Gaps are placed on the four edges -of the board cutout. - 0 - True - rb_2lr - - - False - True - 2 - - - - - 1 - 2 - 1 - 1 - - - - - False - True - 12 - - - - - Generate Geometry - True - True - True - Generates the Geometry object with -toolpaths for board cutout. - - - - - False - True - 13 - - - - - True - False - <b>Non-copper regions</b>: Use to create -geometry with polygons covering areas -without copper on the board. - -This can be used, for example, to clear all -copper from certain regions. - 5 - 0 - 3 - Non-copper regions: - - - - - - False - True - 14 - - - - - True - False - 4 - 4 - 1 - - - True - False - Defines how far from the rectangular box -enclosing the contents of the board the -edge of the board is. - -Copper-free areas will be located within -this boundary. - 1 - Boundary margin: - - - False - True - 0 - - - - - True - True - - 14 - True - - - - False - True - 1 - - - - - False - True - 15 - - - - - Generate Geometry - True - True - True - Creates a Geometry Object covering -areas without copper. - - - - - False - True - 16 - - - - - True - False - <b>Bounding Box:</b> A simple rectangular -boundary around the PCB contents. - 5 - 0 - 3 - Bounding box: - - - - - - False - True - 17 - - - - - True - False - 4 - 4 - 1 - - - True - False - Distance from the rectangular box enclosing -the PCB contents at which to draw the -bounding box. - 1 - Boundary margin: - - - False - True - 0 - - - - - True - True - - 14 - True - - - - False - True - 1 - - - - - False - True - 18 - - - - - Rounded corners - True - True - False - Whether to draw rounded corners on the bounding -box. The radius is the Boundary margin. - - 0 - True - - - False - True - 19 - - - - - Generate Bounding Box - True - True - True - Generates a Geometry object -with the bounding box. - - - - - False - True - 20 - - - - - True - False - <b>Scale:</b> Resizes the geometry -of the object. All sizes and coordinates -are multiplied by the given factor. - 3 - 0 - 3 - Scale: - - - - - - False - True - 21 - - - - - True - False - 3 - 3 - 3 - - - True - False - Factor by which to multiply all -geometrical dimensions. - 1 - Factor: - - - False - True - 0 - - - - - True - True - - 1.0 - True - - - False - True - 1 - - - - - False - True - 22 - - - - - Scale - True - True - True - Scales the geometry -of this object. - - - - - False - True - 23 - - - - - True - False - <b>Offset:</b> Shift the geometry of -this object by the specified (x, y) vector. - 3 - 0 - 3 - Offset: - - - - - - False - True - 24 - - - - - True - False - 3 - 3 - 3 - - - True - False - Vector by which to offset the geometry. -Format is <b>(x, y)</b>, where <b>x</b> and <b>y</b> are -decimal numbers representing the -distance in the corresponding axis. - 1 - Offset Vector: - - - False - True - 0 - - - - - True - True - - (0.0, 0.0) - True - - - False - True - 1 - - - - - False - True - 25 - - - - - Offset - True - True - True - Offset the geometry of -this object. - - - - - False - True - 26 - - - - - - - - - - - - - - - - - - - - - 600 400 @@ -3604,6 +3677,82 @@ polygons defined in Gerber. 1 + + + True + False + True + The number of toolwidths defining +the total width of the isolation. + The number of toolwidths defining +the total width of the isolation. + 1 + 3 + Width (# passes): + + + 0 + 1 + 1 + 1 + + + + + True + False + True + How much (fraction of the tool diameter) +to overlap each pass. + How much (fraction of the tool diameter) +to overlap each pass. + 1 + 3 + Pass overlap: + + + 0 + 2 + 1 + 1 + + + + + True + True + 2 + 2 + + 16 + True + + + + 1 + 1 + 1 + 1 + + + + + True + True + 2 + 2 + + 16 + True + + + + 1 + 2 + 1 + 1 + + False diff --git a/defaults.json b/defaults.json index 99af6afd..433b5513 100644 --- a/defaults.json +++ b/defaults.json @@ -1 +1 @@ -{"geometry_paintoverlap": 0.15, "geometry_plot": true, "gerber_isotooldia": 0.016, "gerber_plot": true, "gerber_mergepolys": true, "gerber_cutoutgapsize": 0.15, "geometry_feedrate": 3.0, "units": "IN", "excellon_travelz": 0.1, "gerber_multicolored": false, "gerber_solid": true, "excellon_plot": true, "excellon_feedrate": 5.0, "cncjob_tooldia": 0.016, "geometry_travelz": 0.1, "gerber_cutoutmargin": 0.2, "excellon_solid": false, "geometry_paintmargin": 0.01, "geometry_cutz": -0.002, "gerber_noncoppermargin": 0.0, "gerber_gaps": "4", "excellon_multicolored": false, "gerber_bboxmargin": 0.0, "cncjob_plot": true, "excellon_drillz": -0.1, "gerber_bboxrounded": false, "geometry_multicolored": false, "geometry_cnctooldia": 0.016, "geometry_solid": false, "geometry_painttooldia": 0.0625} \ No newline at end of file +{"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", "excellon_multicolored": false, "gerber_bboxmargin": 0.0, "cncjob_plot": true, "gerber_cutoutgapsize": 0.15, "gerber_isooverlap": 0.17, "gerber_bboxrounded": false, "geometry_multicolored": false, "gerber_noncoppermargin": 0.0, "geometry_solid": false} \ No newline at end of file diff --git a/doc/build/.doctrees/environment.pickle b/doc/build/.doctrees/environment.pickle index 4099dc73..ee78c221 100644 Binary files a/doc/build/.doctrees/environment.pickle and b/doc/build/.doctrees/environment.pickle differ diff --git a/doc/build/camlib.html b/doc/build/camlib.html index a4647a5d..f02aa0b4 100644 --- a/doc/build/camlib.html +++ b/doc/build/camlib.html @@ -83,7 +83,11 @@ diff --git a/doc/build/genindex.html b/doc/build/genindex.html index 634aa722..a710b245 100644 --- a/doc/build/genindex.html +++ b/doc/build/genindex.html @@ -82,7 +82,11 @@ @@ -128,38 +132,19 @@ | G | I | L - | M - | N | O | P - | R | S | T - | V - | Z

A

-
-
adjust_axes() (FlatCAM.PlotCanvas method) -
- -
aperture_parse() (camlib.Gerber method)
-
- -
App (class in FlatCAM) -
- - -
auto_adjust_axes() (FlatCAM.PlotCanvas method) -
-
@@ -170,18 +155,10 @@
bounds() (camlib.Geometry method)
- -
buffer_paths() (camlib.Gerber method) -
-
-
build_list() (FlatCAM.App method) -
- - -
build_ui() (FlatCAM.FlatCAMObj method) +
buffer_paths() (camlib.Gerber method)
@@ -195,10 +172,6 @@ -
clear() (FlatCAM.PlotCanvas method) -
- -
clear_polygon() (camlib.Geometry method)
@@ -209,19 +182,9 @@
-
connect() (FlatCAM.PlotCanvas method) -
- -
convert_units() (camlib.Geometry method)
-
- -
(FlatCAM.FlatCAMGerber method) -
- -
create_geometry() (camlib.Gerber method)
@@ -233,12 +196,6 @@ - -
-
deserialize() (FlatCAM.FlatCAMObj method) -
- -
-
do_flashes() (camlib.Gerber method)
@@ -259,47 +216,15 @@ - + + -
-
file_chooser_action() (FlatCAM.App method) -
- - -
file_chooser_save_action() (FlatCAM.App method) -
- -
fix_regions() (camlib.Gerber method)
-
FlatCAM (module), [1] -
- - -
FlatCAMCNCjob (class in FlatCAM) -
- - -
FlatCAMExcellon (class in FlatCAM) -
- -
- -
FlatCAMGeometry (class in FlatCAM) -
- - -
FlatCAMGerber (class in FlatCAM) -
- - -
FlatCAMObj (class in FlatCAM) -
- -
frac_digits (camlib.Gerber attribute)
+
from_dict() (camlib.Geometry method)
@@ -326,6 +251,8 @@
generate_from_geometry() (camlib.CNCjob method)
+
Geometry (class in camlib)
@@ -334,28 +261,14 @@
Gerber (class in camlib)
-
get_bounding_box() (camlib.Gerber method)
-
get_current() (FlatCAM.App method) -
- -
get_empty_area() (camlib.Geometry method)
- -
get_eval() (FlatCAM.App method) -
- - -
get_radio_value() (FlatCAM.App method) -
-
@@ -363,10 +276,6 @@ - -
-
info() (FlatCAM.App method) -
- -
int_digits (camlib.Gerber attribute)
@@ -386,38 +295,6 @@
linear2gcode() (camlib.CNCjob method)
-
- -
load_defaults() (FlatCAM.App method) -
- -
- -

M

- - -
- -
mpl_connect() (FlatCAM.PlotCanvas method) -
- -
- -

N

- - -
- -
new_axes() (FlatCAM.PlotCanvas method) -
- -
- -
new_object() (FlatCAM.App method) -
-
@@ -430,10 +307,6 @@
-
(FlatCAM.FlatCAMGeometry method) -
- -
(camlib.Excellon method)
@@ -446,236 +319,6 @@
- -
on_about() (FlatCAM.App method) -
- - -
on_activate_name() (FlatCAM.App method) -
- - -
on_canvas_configure() (FlatCAM.App method) -
- - -
on_cb_plot_toggled() (FlatCAM.App method) -
- - -
on_clear_plots() (FlatCAM.App method) -
- - -
on_click_over_plot() (FlatCAM.App method) -
- - -
on_closewindow() (FlatCAM.App method) -
- - -
on_cncjob_exportgcode() (FlatCAM.App method) -
- - -
on_create_aligndrill() (FlatCAM.App method) -
- - -
on_create_mirror() (FlatCAM.App method) -
- - -
on_delete() (FlatCAM.App method) -
- - -
on_entry_eval_activate() (FlatCAM.App method) -
- - -
on_eval_update() (FlatCAM.App method) -
- - -
on_excellon_tool_choose() (FlatCAM.App method) -
- - -
on_file_new() (FlatCAM.App method) -
- - -
on_file_openproject() (FlatCAM.App method) -
- - -
on_file_savedefaults() (FlatCAM.App method) -
- - -
on_file_saveproject() (FlatCAM.App method) -
- - -
on_file_saveprojectas() (FlatCAM.App method) -
- - -
on_file_saveprojectcopy() (FlatCAM.App method) -
- - -
on_fileopenexcellon() (FlatCAM.App method) -
- - -
on_fileopengcode() (FlatCAM.App method) -
- - -
on_fileopengerber() (FlatCAM.App method) -
- - -
on_filequit() (FlatCAM.App method) -
- - -
on_generate_cncjob() (FlatCAM.App method) -
- - -
on_generate_excellon_cncjob() (FlatCAM.App method) -
- - -
on_generate_gerber_bounding_box() (FlatCAM.App method) -
- - -
on_generate_isolation() (FlatCAM.App method) -
- -
- -
on_generate_paintarea() (FlatCAM.App method) -
- - -
on_gerber_generate_cutout() (FlatCAM.App method) -
- - -
on_gerber_generate_noncopper() (FlatCAM.App method) -
- - -
on_key_over_plot() (FlatCAM.App method) -
- - -
on_mouse_move() (FlatCAM.PlotCanvas method) -
- - -
on_mouse_move_over_plot() (FlatCAM.App method) -
- - -
on_offset_object() (FlatCAM.App method) -
- - -
on_options_app2object() (FlatCAM.App method) -
- - -
on_options_app2project() (FlatCAM.App method) -
- - -
on_options_combo_change() (FlatCAM.App method) -
- - -
on_options_object2app() (FlatCAM.App method) -
- - -
on_options_object2project() (FlatCAM.App method) -
- - -
on_options_project2app() (FlatCAM.App method) -
- - -
on_options_project2object() (FlatCAM.App method) -
- - -
on_options_update() (FlatCAM.App method) -
- - -
on_row_activated() (FlatCAM.App method) -
- - -
on_scale_object() (FlatCAM.App method) -
- - -
on_scroll() (FlatCAM.PlotCanvas method) -
- - -
on_toggle_pointbox() (FlatCAM.App method) -
- - -
on_toggle_units() (FlatCAM.App method) -
- - -
on_toolbar_replot() (FlatCAM.App method) -
- - -
on_tools_doublesided() (FlatCAM.App method) -
- - -
on_tree_selection_changed() (FlatCAM.App method) -
- - -
on_update_plot() (FlatCAM.App method) -
- - -
on_zoom_fit() (FlatCAM.App method) -
- - -
on_zoom_in() (FlatCAM.App method) -
- - -
on_zoom_out() (FlatCAM.App method) -
- - -
open_project() (FlatCAM.App method) -
- - -
options2form() (FlatCAM.App method) -
-
@@ -703,83 +346,31 @@
-
plot() (FlatCAM.FlatCAMGeometry method) -
- -
plot2() (camlib.CNCjob method)
- -
plot_all() (FlatCAM.App method) -
-
-
PlotCanvas (class in FlatCAM) -
- -
polygon2gcode() (camlib.CNCjob method)
-
populate_objects_combo() (FlatCAM.App method) -
- -
pre_parse() (camlib.CNCjob method)
-

R

- - - -
- -
read_form() (FlatCAM.App method) -
- -
- -
(FlatCAM.FlatCAMObj method) -
- -
-
- -
read_form_item() (FlatCAM.App method) -
- -
- -
(FlatCAM.FlatCAMObj method) -
- -
-
-

S

- -
-
save_project() (FlatCAM.App method) -
- -
scale() (camlib.CNCjob method)
-
(FlatCAM.FlatCAMGeometry method) -
- -
(camlib.Excellon method)
@@ -792,47 +383,9 @@
- -
serialize() (FlatCAM.FlatCAMObj method) -
- - -
set_form_item() (FlatCAM.App method) -
- -
- -
(FlatCAM.FlatCAMObj method) -
- -
- -
set_list_selection() (FlatCAM.App method) -
- - -
set_progress_bar() (FlatCAM.App method) -
-
-
setup_axes() (FlatCAM.FlatCAMObj method) -
- - -
setup_component_editor() (FlatCAM.App method) -
- - -
setup_obj_classes() (FlatCAM.App method) -
- - -
setup_project_list() (FlatCAM.App method) -
- -
size() (camlib.Geometry method)
@@ -846,32 +399,6 @@
to_dict() (camlib.Geometry method)
-
- -
to_form() (FlatCAM.FlatCAMObj method) -
- -
- -

V

- - -
- -
versionCheck() (FlatCAM.App method) -
- -
- -

Z

- -
- -
zoom() (FlatCAM.PlotCanvas method) -
-
diff --git a/doc/build/index.html b/doc/build/index.html index c8fd7a9b..6c3d79de 100644 --- a/doc/build/index.html +++ b/doc/build/index.html @@ -82,7 +82,11 @@ @@ -124,7 +128,11 @@ diff --git a/doc/build/objects.inv b/doc/build/objects.inv index a6073de5..c6a6fd8d 100644 Binary files a/doc/build/objects.inv and b/doc/build/objects.inv differ diff --git a/doc/build/py-modindex.html b/doc/build/py-modindex.html index 55a8b8cd..6a942a4e 100644 --- a/doc/build/py-modindex.html +++ b/doc/build/py-modindex.html @@ -88,7 +88,11 @@ @@ -125,8 +129,7 @@

Python Module Index

- c | - f + c
@@ -138,14 +141,6 @@ - - - - -
camlib
 
- f
- FlatCAM -
diff --git a/doc/build/search.html b/doc/build/search.html index e7b56f06..37fd385e 100644 --- a/doc/build/search.html +++ b/doc/build/search.html @@ -89,7 +89,11 @@ diff --git a/doc/build/searchindex.js b/doc/build/searchindex.js index 002ff443..e04bdf17 100644 --- a/doc/build/searchindex.js +++ b/doc/build/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:42,terms:{represent:2,all:[1,2,3],code:[1,2,3],whatev:1,toolpath:3,replot:1,focus:1,follow:3,on_key_over_plot:1,whose:1,get_ev:1,on_options_upd:1,flash:3,gerber:[1,2,3],program:1,text:[1,3],plot_al:1,geom:3,cnc:[1,3],digit:3,sourc:3,everi:3,string:[1,3],far:1,mous:1,"5e6cff":3,obround:3,untouch:3,on_cb_plot_toggl:1,toolshap:3,button:1,list:[1,3],item:1,vector:[1,2,3],specal:1,round:[1,3],get_radio_valu:1,create_geometri:3,natur:3,dimens:[2,3],zero:3,pass:[1,3],rectangular:3,click:1,append:3,index:0,load_default:1,new_ax:1,neg:[1,3],current:1,delet:1,version:[1,2,3],"new":[1,2],method:[1,2,3],movement:1,widget:1,flatcamgeometri:[1,2],gener:[1,2,3],new_object:1,matplotlib:[1,2,3],adjust_ax:1,on_create_aligndril:1,path:[1,3],along:3,do_someth:3,modifi:[1,2],valu:[1,3],box:[1,3],convert:[2,3],on_file_saveprojectcopi:1,action:1,chang:[1,3],on_activate_nam:1,on_options_object2app:1,diamet:3,via:1,app:[1,2],on_fileopengerb:1,filenam:[1,3],ymin:[1,3],select:1,frac_digit:[1,3],plot:[1,2,3],from:[1,2,3],describ:3,doubl:1,regist:1,setup_component_editor:1,call:[1,3],flash_geometri:3,type:[1,2,3],start:1,toggl:1,more:3,on_toolbar_replot:1,on_delet:1,combo:1,on_gerber_generate_cutout:1,parse_fil:3,known:[1,3],hole:1,must:[1,3],on_file_openproject:1,none:[1,2,3],left:1,ser_attr:3,work:3,uniqu:1,gtext:3,can:[1,2,3],drill:[2,3],z_move:[2,3],fetch:2,overrid:[2,3],polygon2gcod:3,give:3,process:[1,3],share:1,indic:3,stroke:3,minimum:1,tab:1,xmin:[1,3],serial:2,z_cut:[2,3],alwai:3,surfac:3,hadler:1,fix_region:3,write:3,fals:3,circular:3,b5ab3a:3,resourc:1,after:1,befor:1,plane:3,saepar:1,setup_obj_class:1,data:1,subsequ:1,entry_text:1,correspond:1,element:3,callback:1,"switch":1,maintain:1,enter:1,on_file_saveprojecta:1,travel:3,checkbox:1,over:1,through:1,affect:3,on_excellon_tool_choos:1,paramet:[1,2,3],fit:1,save_project:1,chosen:1,fix:3,gtk:1,set_list_select:1,window:1,html:1,pcb:1,on_options_app2object:1,main:[1,3],pixel:1,on_zoom_out:1,non:3,"float":[1,2,3],"return":[1,2,3],thei:[2,3],handl:[1,2],rectangl:3,number:[1,3],vect:[2,3],build_list:1,project_filenam:1,choic:1,name:[1,2,3],separ:[1,3],solid_geometri:3,each:3,found:3,updat:1,gui:[1,2],read_form:[1,2],parse_lin:3,on_closewindow:1,continu:1,connect:1,event:1,out:1,variabl:1,on_eval_upd:1,generate_from_excellon_by_tool:3,content:[0,1],adjust:1,set_current_pag:1,clear_polygon:3,on_scrol:1,flatcamcncjob:[1,2],linear:3,insid:3,precaut:1,given:[1,2,3],flatcamexcellon:[1,2],base:[1,2],dictionari:[1,2,3],org:1,care:1,generate_from_geometri:3,thread:1,launch:1,success:1,motion:1,turn:1,notebook:1,place:1,geometri:[1,2,3],treeselect:1,onto:3,user:[1,2],origin:[1,3],copper:1,on_zoom_in:1,arrai:3,file_chooser_act:1,restrict:1,mai:1,done:[1,3],overwrit:3,thick:3,open:1,size:[1,3],differ:3,on_toggle_unit:1,associ:[1,2,3],interact:2,flatcamobj:[1,2],attach:[1,2],store:3,editor:1,option:[1,2,3],tool:[1,3],copi:[1,2,3],specifi:[1,2,3],get_empty_area:3,generate_from_excellon:3,part:[2,3],pars:3,get_bounding_box:3,kind:[1,2,3],whenev:1,tree:1,entry_ev:1,project:1,str:[1,2,3],entri:1,posit:3,"function":1,ani:[1,3],compon:1,do_flash:3,have:[1,3],inform:1,self:[1,2,3],note:1,also:3,on_options_object2project:1,build:[1,2],which:[1,2,3],event_handl:1,interior:3,on_success:1,singl:3,simplifi:3,buffer:3,previou:1,on_mouse_mov:1,pair:[1,3],alpha:3,segment:3,"class":[1,2,3],set_progress_bar:1,appertur:3,clear:[1,2],later:2,cover:[1,3],on_mouse_move_over_plot:1,populate_objects_combo:1,axi:[1,3],thicken:3,show:1,on_click_over_plot:1,apertur:3,radiu:3,syntax:1,radio:1,corner:[1,3],find:1,on_scale_object:1,onli:[1,3],slow:3,ratio:[1,2],menu:1,configur:[1,2],activ:1,state:1,comboboxtext:1,clipboard:1,dict:[1,2,3],factor:[1,2,3],elin:3,on_options_combo_chang:1,meant:1,hit:1,get:1,nativ:1,on_options_app2project:1,mpl_connect:1,multipolygon:3,bar:1,on_create_mirror:1,to_dict:3,xmax:[1,3],contain:1,comma:3,where:[1,3],dpi:3,set:[1,2,3],keyboard:1,startup:1,on_cncjob_exportgcod:1,displai:1,"4650bd":3,see:1,result:[1,3],arg:1,close:1,contour:3,statu:1,boundari:3,label:1,figur:[1,2],between:1,progress:1,attribut:3,accord:3,kei:[1,2,3],complement:3,isol:1,job:[1,3],entir:3,here:1,extent:1,toler:3,auto_adjust_ax:1,popul:[1,3],both:3,feedrat:[2,3],rtype:[1,3],options2form:1,alon:3,setup_project_list:1,on_generate_gerber_bounding_box:1,whole:[1,3],col:1,obj_dict:2,load:1,cncjob:[1,3],point:[1,3],color:3,on_gerber_generate_noncopp:1,enlarg:3,param:[1,3],respect:2,throughout:1,backend:1,quit:1,becom:[2,3],creat:[1,2,3],addition:3,been:1,mark:1,pute:1,json:[1,2],get_curr:1,toolbar:1,open_project:1,subscrib:1,immedi:1,radio_set:1,gcode:3,imag:1,search:0,on_file_savedefault:1,coordin:[1,3],on_options_project2object:1,func:1,present:3,versioncheck:1,inhibit:1,therefor:1,look:3,align:1,properti:[1,3],alter:3,dest:1,defin:[1,3],"while":1,setup_ax:2,margin:3,region:3,propag:1,layer:1,them:2,equal:3,exterior:3,on_fileopengcod:1,"__init__":1,around:[1,3],transpar:[2,3],same:1,respresent:3,instanc:1,descend:3,tool_toler:3,complet:1,http:1,widget_nam:1,upon:1,alert:1,initi:1,canva:1,appropri:[1,3],off:1,center:1,build_ui:2,well:3,"_app_":1,without:1,on_file_new:1,thi:[1,2,3],choos:1,on_generate_paintarea:1,rout:1,latest:1,distanc:3,identifi:3,isolation_geometri:3,"true":[1,3],flatcamgerb:[1,2],rest:3,shape:3,aspect:[1,2],linestr:3,speed:3,wether:3,cut:[1,3],on_tools_doublesid:1,trigger:1,shortcut:1,add:2,other:[1,3],board:1,save:[1,3],modul:0,pre_pars:3,take:1,gcode_pars:3,format:2,read:[1,2,3],on_file_saveproject:1,background:2,press:1,height:3,like:1,specif:[1,2,3],zoom:1,integ:3,noth:1,from_dict:3,necessari:1,either:1,exobj:3,on_clear_plot:1,page:[0,1],depend:[1,3],int_digit:3,creation:1,back:1,percentag:1,on_zoom_fit:1,radiobutton:1,"export":2,mirror:1,set_form_item:[1,2],on_generate_excellon_cncjob:1,scale:[1,2,3],bottom:1,definit:3,overlap:3,on_update_plot:1,buffer_path:3,unit:[1,2,3],duplic:1,machin:3,object:[1,3],run:1,usag:3,offset:[1,2,3],on_toggle_pointbox:1,about:1,actual:3,file_chooser_save_act:1,on_generate_cncjob:1,side:1,dialog:1,constructor:1,options_update_ignor:1,on_fileopenexcellon:1,on_about:1,chooser:1,within:3,encod:3,bound:[1,3],excellon:[1,2,3],loc:3,accordingli:1,ymax:[1,3],wai:3,area:[1,3],transfer:1,support:3,fast:3,width:3,clear_poli:1,handler:1,interfac:1,includ:3,fraction:3,on_canvas_configur:1,on_offset_object:1,on_generate_isol:1,linear2gcod:3,form:[1,2],tupl:[2,3],don:[2,3],line:[1,3],on_entry_eval_activ:1,info:1,made:3,"default":[1,3],access:1,maximum:1,tooldia:[2,3],record:1,limit:1,featur:3,buffered_path:3,convert_unit:[2,3],request:1,dure:3,parser:3,aperture_pars:3,repres:[2,3],plot2:3,on_row_activ:1,exist:2,file:[1,3],doe:[1,3],check:1,again:3,aplic:1,polygon:[1,3],titl:1,to_form:2,when:[1,3],detail:1,invalid:3,field:1,valid:1,bool:3,gline:3,ignor:1,on_options_project2app:1,read_form_item:[1,2],deseri:[2,3],on_tree_selection_chang:1,draw:[1,3],event_nam:1,eval:1,plotcanva:1,outdat:1,geometr:[2,3],f0e24d:3,on_filequit:1,scroll:1},objtypes:{"0":"py:module","1":"py:method","2":"py:class","3":"py:attribute"},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},filenames:["index","app","flatcamobj","camlib"],titles:["Welcome to FlatCAM’s documentation!","FlatCAM Application","FlatCAM Objects","Camlib"],objects:{"":{camlib:[3,0,0,"-"],FlatCAM:[2,0,0,"-"]},"camlib.CNCjob":{scale:[3,1,1,""],polygon2gcode:[3,1,1,""],generate_from_excellon_by_tool:[3,1,1,""],linear2gcode:[3,1,1,""],pre_parse:[3,1,1,""],generate_from_excellon:[3,1,1,""],gcode_parse:[3,1,1,""],generate_from_geometry:[3,1,1,""],offset:[3,1,1,""],plot2:[3,1,1,""]},FlatCAM:{PlotCanvas:[1,2,1,""],FlatCAMGeometry:[2,2,1,""],App:[1,2,1,""],FlatCAMObj:[2,2,1,""],FlatCAMExcellon:[2,2,1,""],FlatCAMGerber:[2,2,1,""],FlatCAMCNCjob:[2,2,1,""]},"FlatCAM.FlatCAMGerber":{convert_units:[2,1,1,""]},"camlib.Geometry":{convert_units:[3,1,1,""],scale:[3,1,1,""],to_dict:[3,1,1,""],bounds:[3,1,1,""],get_empty_area:[3,1,1,""],isolation_geometry:[3,1,1,""],from_dict:[3,1,1,""],clear_polygon:[3,1,1,""],offset:[3,1,1,""],size:[3,1,1,""]},"FlatCAM.App":{read_form:[1,1,1,""],on_about:[1,1,1,""],on_tree_selection_changed:[1,1,1,""],on_canvas_configure:[1,1,1,""],on_zoom_in:[1,1,1,""],on_delete:[1,1,1,""],on_toggle_units:[1,1,1,""],on_closewindow:[1,1,1,""],on_click_over_plot:[1,1,1,""],on_row_activated:[1,1,1,""],on_fileopengerber:[1,1,1,""],file_chooser_action:[1,1,1,""],on_zoom_out:[1,1,1,""],on_zoom_fit:[1,1,1,""],on_options_object2app:[1,1,1,""],on_file_savedefaults:[1,1,1,""],plot_all:[1,1,1,""],set_form_item:[1,1,1,""],on_generate_excellon_cncjob:[1,1,1,""],on_generate_isolation:[1,1,1,""],on_key_over_plot:[1,1,1,""],on_offset_object:[1,1,1,""],on_gerber_generate_noncopper:[1,1,1,""],on_scale_object:[1,1,1,""],new_object:[1,1,1,""],on_activate_name:[1,1,1,""],get_eval:[1,1,1,""],on_cb_plot_toggled:[1,1,1,""],on_update_plot:[1,1,1,""],save_project:[1,1,1,""],on_options_object2project:[1,1,1,""],setup_component_editor:[1,1,1,""],get_current:[1,1,1,""],open_project:[1,1,1,""],on_options_update:[1,1,1,""],on_file_new:[1,1,1,""],on_options_app2object:[1,1,1,""],on_options_project2app:[1,1,1,""],read_form_item:[1,1,1,""],versionCheck:[1,1,1,""],on_toolbar_replot:[1,1,1,""],on_entry_eval_activate:[1,1,1,""],on_tools_doublesided:[1,1,1,""],on_options_combo_change:[1,1,1,""],setup_obj_classes:[1,1,1,""],on_file_saveproject:[1,1,1,""],setup_project_list:[1,1,1,""],on_generate_gerber_bounding_box:[1,1,1,""],on_options_project2object:[1,1,1,""],on_eval_update:[1,1,1,""],build_list:[1,1,1,""],on_toggle_pointbox:[1,1,1,""],on_file_saveprojectas:[1,1,1,""],info:[1,1,1,""],on_file_openproject:[1,1,1,""],on_options_app2project:[1,1,1,""],set_progress_bar:[1,1,1,""],on_file_saveprojectcopy:[1,1,1,""],on_create_mirror:[1,1,1,""],file_chooser_save_action:[1,1,1,""],on_excellon_tool_choose:[1,1,1,""],on_generate_cncjob:[1,1,1,""],on_clear_plots:[1,1,1,""],on_mouse_move_over_plot:[1,1,1,""],on_fileopengcode:[1,1,1,""],on_gerber_generate_cutout:[1,1,1,""],load_defaults:[1,1,1,""],populate_objects_combo:[1,1,1,""],on_create_aligndrill:[1,1,1,""],on_generate_paintarea:[1,1,1,""],get_radio_value:[1,1,1,""],on_filequit:[1,1,1,""],on_cncjob_exportgcode:[1,1,1,""],options2form:[1,1,1,""],set_list_selection:[1,1,1,""],on_fileopenexcellon:[1,1,1,""]},"camlib.Gerber":{parse_lines:[3,1,1,""],scale:[3,1,1,""],frac_digits:[3,3,1,""],offset:[3,1,1,""],aperture_parse:[3,1,1,""],create_geometry:[3,1,1,""],parse_file:[3,1,1,""],do_flashes:[3,1,1,""],buffer_paths:[3,1,1,""],fix_regions:[3,1,1,""],get_bounding_box:[3,1,1,""],int_digits:[3,3,1,""]},"FlatCAM.FlatCAMGeometry":{plot:[2,1,1,""],scale:[2,1,1,""],offset:[2,1,1,""]},"FlatCAM.PlotCanvas":{on_mouse_move:[1,1,1,""],on_scroll:[1,1,1,""],adjust_axes:[1,1,1,""],clear:[1,1,1,""],zoom:[1,1,1,""],connect:[1,1,1,""],new_axes:[1,1,1,""],auto_adjust_axes:[1,1,1,""],mpl_connect:[1,1,1,""]},camlib:{Excellon:[3,2,1,""],CNCjob:[3,2,1,""],Geometry:[3,2,1,""],Gerber:[3,2,1,""]},"camlib.Excellon":{parse_file:[3,1,1,""],parse_lines:[3,1,1,""],scale:[3,1,1,""],offset:[3,1,1,""]},"FlatCAM.FlatCAMObj":{read_form:[2,1,1,""],serialize:[2,1,1,""],deserialize:[2,1,1,""],build_ui:[2,1,1,""],to_form:[2,1,1,""],setup_axes:[2,1,1,""],set_form_item:[2,1,1,""],read_form_item:[2,1,1,""]}},titleterms:{applic:1,flatcam:[0,1,2],object:2,indic:0,camlib:3,tabl:0,document:0,welcom:0}}) \ No newline at end of file +Search.setIndex({envversion:42,terms:{represent:[],all:[1,3],code:3,whatev:[],toolpath:3,replot:[],focus:[],follow:3,pute:[],on_key_over_plot:[],whose:1,get_ev:[],on_options_upd:1,flash:3,gerber:3,program:[],text:3,plot_al:[],geom:3,cnc:3,digit:3,sourc:3,everi:3,string:3,far:[],mous:[],"5e6cff":3,obround:3,untouch:3,on_cb_plot_toggl:[],toolshap:3,button:[],list:3,iter:1,item:[],vector:3,specal:[],round:3,get_radio_valu:[],create_geometri:3,natur:3,dimens:3,zero:3,pass:3,rectangular:3,click:[],append:3,index:0,what:1,new_ax:[],neg:3,current:[],delet:[],version:3,"new":1,method:3,movement:[],widget:1,flatcamgeometri:[],gener:3,load_default:[],matplotlib:3,adjust_ax:[],on_create_aligndril:[],path:3,along:[1,3],do_someth:3,modifi:1,valu:[1,3],box:3,convert:3,on_file_saveprojectcopi:[],action:[],chang:[1,3],on_activate_nam:[],on_options_object2app:[],diamet:3,via:[],app:1,on_fileopengerb:[],filenam:3,ymin:3,select:[],frac_digit:3,plot:3,from:[1,3],describ:3,doubl:[],regist:[],setup_component_editor:[],call:[1,3],flash_geometri:3,suppos:1,type:[1,3],toggl:[],more:3,on_toolbar_replot:[],on_delet:[],combo:[],on_toggle_unit:[],on_gerber_generate_cutout:[],parse_fil:3,known:3,hole:[],must:[1,3],on_file_openproject:[],none:3,left:[],ser_attr:3,work:3,uniqu:[],gtext:3,can:[1,3],drill:3,z_move:3,fetch:1,overrid:3,overwritten:1,polygon2gcod:3,give:3,process:3,share:[],indic:[],stroke:3,minimum:[],tab:1,xmin:3,serial:[],z_cut:3,alwai:3,surfac:3,hadler:[],fix_region:3,write:3,fals:3,circular:3,b5ab3a:3,resourc:[],after:[],befor:[],plane:3,mai:[],setup_obj_class:[],data:[],subsequ:[],entry_text:[],correspond:[],element:[1,3],callback:[],"switch":[],maintain:[],enter:[],on_file_saveprojecta:[],travel:3,checkbox:[],over:1,through:1,affect:3,on_excellon_tool_choos:[],paramet:3,fit:[],save_project:[],chosen:[],fix:3,gtk:[],set_list_select:[],window:[],pcb:[],on_options_app2object:[],main:3,pixel:[],on_zoom_out:[],non:3,"float":3,"return":3,thei:[1,3],handl:[],rectangl:3,number:3,vect:3,build_list:[],project_filenam:[],choic:[],name:[1,3],edit:1,separ:3,solid_geometri:3,each:[1,3],found:3,updat:1,gui:1,read_form:[],parse_lin:3,on_closewindow:[],continu:[],connect:[],recogn:1,event:[],out:[],variabl:[],on_eval_upd:[],generate_from_excellon_by_tool:3,content:0,adjust:[],set_current_pag:[],clear_polygon:3,on_scrol:[],flatcamcncjob:[],linear:3,insid:3,precaut:[],differ:3,flatcamexcellon:[],base:[],dictionari:3,org:[],care:[],generate_from_geometri:3,thread:[],launch:[],success:[],motion:[],turn:[],notebook:[],place:1,geometri:3,treeselect:[],onto:3,first:1,origin:3,copper:[],on_zoom_in:[],arrai:3,independ:1,file_chooser_act:[],restrict:[],saepar:[],done:[1,3],overwrit:3,thick:3,open:1,size:3,given:3,start:[],associ:3,interact:[],flatcamobj:[],attach:[],store:[1,3],editor:[],option:[],tool:3,copi:3,specifi:3,get_empty_area:3,generate_from_excellon:3,part:3,pars:3,get_bounding_box:3,kind:[1,3],whenev:[],tree:[],entry_ev:[],project:1,str:3,entri:[],posit:3,thereaft:1,ani:3,do_flash:3,inherit:1,have:3,inform:[],self:3,note:[],also:3,on_options_object2project:[],build:[],which:[1,3],event_handl:[],interior:3,on_success:[],singl:3,simplifi:3,buffer:3,previou:[],on_mouse_mov:[],pair:3,alpha:3,segment:3,"class":3,set_progress_bar:[],appertur:3,clear:[],later:[],cover:3,on_mouse_move_over_plot:[],populate_objects_combo:[],axi:3,thicken:3,show:[],on_click_over_plot:[],apertur:3,radiu:3,syntax:1,radio:[],corner:3,find:[],on_scale_object:[],new_object:[],slow:3,ratio:[],menu:[],configur:[],activ:[],state:[],comboboxtext:[],clipboard:[],dict:3,factor:3,elin:3,on_options_combo_chang:[],meant:[],hit:[],get:1,nativ:[],on_options_app2project:[],mpl_connect:[],multipolygon:3,bar:[],on_create_mirror:[],to_dict:3,xmax:3,contain:1,comma:3,where:[1,3],dpi:3,user:[],set:3,keyboard:[],startup:1,on_cncjob_exportgcod:[],displai:[],"4650bd":3,see:[],result:3,arg:[],close:[],contour:3,statu:[],detect:1,boundari:3,label:[],written:1,between:[],progress:[],previous:1,attribut:3,accord:3,kei:[1,3],complement:3,isol:[],job:3,entir:3,here:[],extent:[],toler:3,auto_adjust_ax:[],popul:[1,3],both:3,feedrat:3,rtype:3,options2form:[],alon:3,setup_project_list:[],instanc:[],whole:3,col:[],obj_dict:[],load:[],cncjob:3,figur:[],color:3,on_gerber_generate_noncopp:[],enlarg:3,param:3,respect:[],throughout:[],backend:[],quit:[],becom:3,creat:3,addition:3,been:[],mark:[],compon:[],json:1,get_curr:[],toolbar:[],open_project:[],subscrib:[],immedi:[],radio_set:[],gcode:3,imag:[],search:0,on_file_savedefault:1,coordin:3,on_options_project2object:[],func:[],present:3,versioncheck:[],inhibit:[],onli:3,look:3,align:[],properti:3,alter:3,dest:[],defin:3,"while":[],setup_ax:[],margin:3,region:3,propag:[],layer:[],therefor:1,them:[],equal:3,exterior:3,on_fileopengcod:[],"__init__":[],around:3,transpar:3,same:1,respresent:3,html:[],descend:3,tool_toler:3,complet:[],http:[],widget_nam:[],upon:1,alert:[],initi:[],canva:[],appropri:3,off:[],center:[],build_ui:[],well:3,"_app_":1,without:[],on_file_new:[],thi:[1,3],choos:[],on_generate_paintarea:[],rout:[],latest:[],distanc:3,identifi:[1,3],isolation_geometri:3,"true":3,flatcamgerb:[],rest:3,shape:3,aspect:[],linestr:3,speed:3,wether:3,cut:3,on_tools_doublesid:[],trigger:[],point:3,shortcut:[],add:[],other:3,board:[],save:[1,3],modul:0,pre_pars:3,take:[],gcode_pars:3,format:[],read:[1,3],on_file_saveproject:[],background:[],press:[],height:3,like:[],specif:3,zoom:[],integ:3,noth:[],from_dict:3,necessari:[],either:[],exobj:3,on_clear_plot:[],page:0,depend:3,int_digit:3,creation:1,back:[],percentag:[],on_zoom_fit:[],radiobutton:[],"export":[],mirror:[],set_form_item:[],on_generate_excellon_cncjob:[],scale:3,bottom:[],definit:3,overlap:3,on_update_plot:[],buffer_path:3,unit:3,duplic:[],refer:1,machin:3,object:[],run:[],usag:3,how:1,offset:3,on_toggle_pointbox:[],about:[],actual:3,file_chooser_save_act:[],on_generate_cncjob:[],side:[],dialog:[],constructor:[],options_update_ignor:[],on_fileopenexcellon:[],on_about:[],chooser:[],within:3,encod:3,bound:3,excellon:3,loc:3,accordingli:[],ymax:3,wai:[1,3],area:3,transfer:[],support:3,fast:3,width:3,clear_poli:[],handler:[],interfac:[],includ:3,fraction:3,on_canvas_configur:[],"function":1,on_generate_isol:[],linear2gcod:3,form:[],tupl:3,on_offset_object:[],don:3,line:3,on_entry_eval_activ:[],info:[],made:3,on_generate_gerber_bounding_box:[],"default":[1,3],access:[],maximum:[],tooldia:3,record:[],limit:[],featur:3,buffered_path:3,convert_unit:3,request:[],dure:3,parser:3,aperture_pars:3,repres:3,plot2:3,on_row_activ:[],exist:[],file:[1,3],doe:3,check:[],again:3,aplic:[],polygon:3,titl:[],to_form:[],when:[1,3],detail:[],invalid:3,field:[],valid:[],bool:3,gline:3,ignor:[],on_options_project2app:[],read_form_item:[],deseri:3,on_tree_selection_chang:[],draw:3,event_nam:[],eval:[],plotcanva:[],outdat:[],geometr:3,f0e24d:3,on_filequit:[],scroll:[]},objtypes:{"0":"py:module","1":"py:method","2":"py:attribute","3":"py:class"},objnames:{"0":["py","module","Python module"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","class","Python class"]},filenames:["index","app","flatcamobj","camlib"],titles:["Welcome to FlatCAM’s documentation!","FlatCAM Application","FlatCAM Objects","Camlib"],objects:{"":{camlib:[3,0,0,"-"]},"camlib.CNCjob":{scale:[3,1,1,""],polygon2gcode:[3,1,1,""],generate_from_excellon_by_tool:[3,1,1,""],linear2gcode:[3,1,1,""],pre_parse:[3,1,1,""],generate_from_excellon:[3,1,1,""],gcode_parse:[3,1,1,""],generate_from_geometry:[3,1,1,""],offset:[3,1,1,""],plot2:[3,1,1,""]},"camlib.Geometry":{convert_units:[3,1,1,""],scale:[3,1,1,""],to_dict:[3,1,1,""],bounds:[3,1,1,""],get_empty_area:[3,1,1,""],isolation_geometry:[3,1,1,""],from_dict:[3,1,1,""],clear_polygon:[3,1,1,""],offset:[3,1,1,""],size:[3,1,1,""]},"camlib.Gerber":{parse_lines:[3,1,1,""],scale:[3,1,1,""],frac_digits:[3,2,1,""],offset:[3,1,1,""],aperture_parse:[3,1,1,""],create_geometry:[3,1,1,""],parse_file:[3,1,1,""],do_flashes:[3,1,1,""],buffer_paths:[3,1,1,""],fix_regions:[3,1,1,""],get_bounding_box:[3,1,1,""],int_digits:[3,2,1,""]},camlib:{Excellon:[3,3,1,""],CNCjob:[3,3,1,""],Geometry:[3,3,1,""],Gerber:[3,3,1,""]},"camlib.Excellon":{parse_file:[3,1,1,""],parse_lines:[3,1,1,""],scale:[3,1,1,""],offset:[3,1,1,""]}},titleterms:{applic:1,flatcam:[0,1,2],object:2,indic:0,api:1,camlib:3,option:1,tabl:0,document:0,welcom:0}}) \ No newline at end of file diff --git a/doc/source/app.rst b/doc/source/app.rst index b9c3c4bc..346e8d29 100644 --- a/doc/source/app.rst +++ b/doc/source/app.rst @@ -1,6 +1,22 @@ FlatCAM Application =================== +Options +~~~~~~~ + +There are **Application Defaults**, **Project Options** and **Object Options** in FlatCAM. + +**Application Defaults** are stored in ``app.defaults``. This gets populated (updated) from the ``defaults.json`` file upon startup. These can be edited from the Options tab, where each widget calls ``app.on_options_update()`` if a change is detected. This function iterates over the keys of ``app.defaults`` and reads the GUI elements whose name is ``type + "_app_" key``. Therefore, for an option to be recognized, it must be added to ``defaults.json`` in the first place. When saving, done in ``app.on_file_savedefaults()``, the file is updated, not overwritten. + +**Project Options** inherit all options from Application Defaults upon startup. They can be changed thereafter from the UI or by opening a project, which contain previously saved Project Options. These are store in ``app.options`` and can be written and read from the Options tab in the same way as with Application defaults. + +**Object Options** for each object are inherited from Project Options upon creation of each new object. They can be modified independently from the Project's options thereafter through the UI, where the widget containing the option is identified by name: ``type + kind + "_" + option``. They are stored in ``object.options``. They are saved along the Project options when saving the project. + +The syntax of UI widget names contain a ``type``, which identifies what *type of widget* it is and how its value is supposed to be fetched, and a ``kind``, which refer to what *kind of FlatCAM Object* it is for. + +API +~~~ + .. automodule:: FlatCAM .. autoclass:: App