Customizaton? #1897
Replies: 8 comments 5 replies
-
There is nothing wrong with such approach. Maybe it will attract new developers to bCNC project. Can you please provide detailed description of what features you want to get in bCNC? |
Beta Was this translation helpful? Give feedback.
-
Harvie, |
Beta Was this translation helpful? Give feedback.
-
Hi Tomas,
Thanks for getting back to me!The problem with butting up two pieces would
be at the joint between them, which may be different thicknesses. Between
the row of probe points on one board to the next row on the other board,
the data would be interpreted as a slope and throw off any engraving close
to the edge. Since I'm engraving really fine detailed stuff, even a
variation of 0.1mm makes a noticable difference.
Ideally I would set as many as 4 different probe zones, which would each
have their own height map which could be applied to a single gcode file in
bCNC.
Are you the brain child behind bCNC? This software is so good!
If you don't have the bandwidth for your feature, perhaps there is one
small one you could take, which is assigning macro buttons to keys on the
keyboard. Or if this is already possible, I don't know how to do it.
Let me know if you can squeeze the height probe project into your schedule.
Cheers,
Tyler
…On Fri, Aug 16, 2024, 04:44 Tomas Mudrunka ***@***.***> wrote:
I am rather busy, but i am thinking about some of the features you've
said. Can't you just autoprobe whole workspace? that way you wouldn't need
to have separate autoprobe maps for each part of the workspace.
—
Reply to this email directly, view it on GitHub
<#1897 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUWQOLOUA6UC3A3W52DZRW3W3AVCNFSM6AAAAABMAN5WPGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMZVGYZTGNI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Sorry, I should never send an email before my first cup of coffee. I'll
write another one later that spells things out a little more clearly.
Cheers,
Tyler
…On Fri, Aug 16, 2024, 08:30 Wire Monkey ***@***.***> wrote:
Hi Tomas,
Thanks for getting back to me!The problem with butting up two pieces would
be at the joint between them, which may be different thicknesses. Between
the row of probe points on one board to the next row on the other board,
the data would be interpreted as a slope and throw off any engraving close
to the edge. Since I'm engraving really fine detailed stuff, even a
variation of 0.1mm makes a noticable difference.
Ideally I would set as many as 4 different probe zones, which would each
have their own height map which could be applied to a single gcode file in
bCNC.
Are you the brain child behind bCNC? This software is so good!
If you don't have the bandwidth for your feature, perhaps there is one
small one you could take, which is assigning macro buttons to keys on the
keyboard. Or if this is already possible, I don't know how to do it.
Let me know if you can squeeze the height probe project into your
schedule.
Cheers,
Tyler
On Fri, Aug 16, 2024, 04:44 Tomas Mudrunka ***@***.***>
wrote:
> I am rather busy, but i am thinking about some of the features you've
> said. Can't you just autoprobe whole workspace? that way you wouldn't need
> to have separate autoprobe maps for each part of the workspace.
>
> —
> Reply to this email directly, view it on GitHub
> <#1897 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AGUKYUWQOLOUA6UC3A3W52DZRW3W3AVCNFSM6AAAAABMAN5WPGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMZVGYZTGNI>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>
|
Beta Was this translation helpful? Give feedback.
-
Hi Tomas,
Not sure if my reply went through. I think I should have hit "reply all".
Message below:
Hi Tomas,
Thanks for getting back to me! The problem with butting up two pieces would
be at the joint between them, which may be different thicknesses. Between
the row of probe points on one board and the other board, the data would be
interpolatwd as a slope and throw off any engraving close to the edge.
Since I'm engraving really fine detailed stuff, even a variation of 0.1mm
makes a noticable difference.
Ideally I would set as many as 4 different auto level "zones," which would
each have their own height map which could be applied to a single gcode
file in bCNC based on XY coordinates.
Are you the brain child behind bCNC? This software is so good!
If you don't have the bandwidth for this autolevel multi zone feature,
perhaps there is one small feature you would be able to add, which is
assigning macro buttons to keys on the keyboard. Or if this is already
possible, I don't know how to do it.
Let me know if you can squeeze the autolevel multizone project into your
schedule and we can talk details and payment
Cheers,
Tyler
…On Fri, Aug 16, 2024, 04:44 Tomas Mudrunka ***@***.***> wrote:
I am rather busy, but i am thinking about some of the features you've
said. Can't you just autoprobe whole workspace? that way you wouldn't need
to have separate autoprobe maps for each part of the workspace.
—
Reply to this email directly, view it on GitHub
<#1897 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUWQOLOUA6UC3A3W52DZRW3W3AVCNFSM6AAAAABMAN5WPGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTAMZVGYZTGNI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi Tyler, I don't know if you got this resolved. I happened to stumble across this in a search. I'm a retired software developer and it sounded like an interesting puzzle (and solving it might increase my understanding of how bCNC works ;-). Thought I'd share my thoughts in case it's helpful to someone. My understanding of the way auto leveling works is that there is a Probe 'object' (in CNC.py). The Probe object manages the z-offset data and has the functionality for creating the g-code to probe the surface, interpolation of the position g-codes while running and save/store of the offsets in a ".probe" file. The leveling offsets are gathered by generating the g-code to move through a grid of XY points and sending a G38.X word to the machine controller. Apparently the machine controller responds from a probe command with the XYZ position at the point of contact. When the Sender receives this response, it tells the Probe object to save that location. Armchair coding: I would approach this by creating an object that would manage multiple Probe objects, having the same 'interface' as (i.e. duck-typing) the Probe object. I'm going to call it a ProbeContainer, for lack of a better name. The ProbeContainer could then contain multiple Probe objects, each for an area of the work plane. For the Probe functions like 'add' and 'interpolate', the ProbeContainer object would compare the x and y of the input to each Probe's margins to determine which one to use and pass the arguments to it. Similarly, file save and load could just be done by looping over the Probe objects and calling save or load with some naming protocol. ProbeContainer would need to replace the Probe object created in the initializer of GCode. This presents a bit of a problem, but it could be because I'm just armchair reverse engineering. You could just go in to CNC.py and change the line of code in the GCode initializer that the Probe object is created to create a ProbeContainer instead (creating it with one Probe object), but if you upgrade bCNC, you will have to remember make that modification again. There may be some other places that you could substitute in a probe manager, like from a plugin that wouldn't be as intrusive, but perhaps someone more familiar with the code can comment on that. The last part of the code required would be to create a user interface to input the locations of the probe areas. I have found that GUI's are a matter of preference,, but the easiest would be to just use the plugin framework. The ProbeContainer object would be accessible from the app as app.gcode.probe. Cheers! |
Beta Was this translation helpful? Give feedback.
-
Maybe this is out of scope here but it would be nice to have something like a manual mode for auto level to do auto leveling on non conductive surfaces. |
Beta Was this translation helpful? Give feedback.
-
Hello,
Sounds like you'd be intrigued enough to develop some bCNC features for me?
I'm not a programmer, but I do understand the basic concepts and write
macros for bCNC. Can you contact me directly to discuss?
Cheers,
Tyler
…On Tue, Jan 21, 2025 at 3:23 PM Mechscientist ***@***.***> wrote:
Hi Tyler,
I don't know if you got this resolved. I happened to stumble across this
in a search. I'm a retired software developer and it sounded like an
interesting puzzle (and solving it might increase my understanding of how
bCNC works ;-). Thought I'd share my thoughts in case it's helpful to
someone.
My understanding of the way auto leveling works is that there is a Probe
'object' (in CNC.py). The Probe object manages the z-offset data and has
the functionality for creating the g-code to probe the surface,
interpolation of the position g-codes while running and save/store of the
offsets in a ".probe" file.
The leveling offsets are gathered by generating the g-code to move through
a grid of XY points and sending a G38.X word to the machine controller.
Apparently the machine controller responds from a probe command with the
XYZ position at the point of contact. When the Sender receives this
response, it tells the Probe object to save that location.
Armchair coding:
I would approach this by creating an object that would manage multiple
Probe objects, having the same 'interface' as (i.e. duck-typing) the Probe
object. I'm going to call it a ProbeContainer, for lack of a better name.
The ProbeContainer could then contain multiple Probe objects, each for an
area of the work plane. For the Probe functions like 'add' and
'interpolate', the ProbeContainer object would compare the x and y of the
input to each Probe's margins to determine which one to use and pass the
arguments to it.
Similarly, file save and load could just be done by looping over the Probe
objects and calling save or load with some naming protocol.
ProbeContainer would need to replace the Probe object created in the
initializer of GCode. This presents a bit of a problem, but it could be
because I'm just armchair reverse engineering. You could just go in to
CNC.py and change the line of code in the GCode initializer that the Probe
object is created to create a ProbeContainer instead (creating it with one
Probe object), but if you upgrade bCNC, you will have to remember make that
modification again. There may be some other places that you could
substitute in a probe manager, like from a plugin that wouldn't be as
intrusive, but perhaps someone more familiar with the code can comment on
that.
The last part of the code required would be to create a user interface to
input the locations of the probe areas. I have found that GUI's are a
matter of preference,, but the easiest would be to just use the plugin
framework. The ProbeContainer object would be accessible from the app as
app.gcode.probe.
Cheers!
—
Reply to this email directly, view it on GitHub
<#1897 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGUKYUXQYLQE7UQ7YB4XQHT2L2UD3AVCNFSM6AAAAABMAN5WPGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCOJQG42TANI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hey folks,
I've been using bCNC almost daily for almost 5 years now and love the software. I've had little issue and what I find sets it apart from other senders is the: super easy Z autoprobing, ability to quickly edit gcode by clicking in toolpath, macros, etc.
There are some specific functions that I would like to add based on my manufacturing use case and I wonder if anyone on here is actively working on bCNC and would like to earn some money customizing the software for my needs.
I don't know the etiquette on github regarding requests for paid work, so I hope I'm not breaking any rules. If there is an official way to do this, I'm all ears.
Cheers!
Tyler
Beta Was this translation helpful? Give feedback.
All reactions