LaserWeb / deprecated-LaserWeb3

Open Source Laser Cutter / Engraver software. Supports gcode, svg, dxf, stl, png, jpg, bmp
265 stars 68 forks source link

Rotary Support (Work in progress): Preview basics done, next CAM! #51

Closed ghost closed 7 years ago

ghost commented 8 years ago

The math is easy, https://github.com/openhardwarecoza/LaserWeb3/blob/9dd4ea2291941f97e8bd07261df150ce9b0cb877/public/js/viewer.js#L849-L850 - simple cos and tan theta calculations to find the point on a circle, where an angle is defined.

The first step is for us to be able to parse four axis gcode (for example 2D gcode converted by http://www.chestnutpens.co.uk/misc/gcodewrapper.html) - to show the A axis (in degrees) using the math above, into our 3D viewer. The reason I do this first is having a reliable preview available while working on the CAM side really helps move that fast. I did the same for raster. View first, then generate gcode that looks good in the view. That needs to be coded in gcode-parser.js

Once we have reliable preview, we can extend the existing CAM code: This is actually easier, since we simply convert Y coordinates to degrees for the A axis.

Lastly (and this may take a few more weeks) we are waiting for the Smoothieware developers (@arthurwolf and @wolfmanjm ) to finish the Step generation Rewrite to support A axis on the machines; Grbl is a purely 3 axis firmware, and I dont plan on doing a "y-as-A-axis" hack support at all. If we add 4th axis, we do it by the BOOK! As an A Axis!

rotary

ghost commented 8 years ago

@HakanBastedt (;

wolfmanjm commented 8 years ago

@openhardwarecoza The new step generation is done and merged in. Although the E is now treated as a real axis, I did not have any plans to add an A axis per se, as I do not have a 4 axis machine and I have no way to test such a thing. Someone else may have to figure out how to do that, although making the system handle an A instead of E is pretty easy, and I suppose I could be persuaded to do that at least. My plans were to do the s curve acceleration next, not n-axis. (although the code base is a lot closer to being able to do n-axis than it used to be).

ghost commented 8 years ago

No rush @wolfmanjm, building the viewer and cam will take a lot longer - so keep on working on S-Curve so we can rub it into TinyGs wounds (;

Maybe by then we can get the community to buy you a rotary axis laser (;

ghost commented 8 years ago

Quote from http://smoothieware.org/todo#toc6

6-axis support Once the step generation improvements and s-curve support have been implemented, it will be much easier to add proper 6-axis ( XYZABC ) support into Smoothie. This is currently done by using the Extruder module, which has some limitations, doing it properly would be a good improvement.

This issue keeps track of that feature : https://github.com/Smoothieware/Smoothieware/issues/120

wolfmanjm commented 8 years ago

@openhardwarecoza FWIW I have created a Pull request that adds A B C, the A is raw but I think will do what you want, if you set steps_per_mm to steps per degree and pass in the raw degrees it should work. I have no way to test it though. https://github.com/Smoothieware/Smoothieware/pull/989

ghost commented 8 years ago

I'll get the test team to start making plans! @cojarbi awesomeness! On 28 Jul 2016 22:52, "Jim Morris" notifications@github.com wrote:

@openhardwarecoza https://github.com/openhardwarecoza FWIW I have created a Pull request that adds A B C, the A is raw but I think will do what you want, if you set steps_per_mm to steps_per_degree and pass in the raw degrees it should work. I have no way to test it though. Smoothieware/Smoothieware#989 https://github.com/Smoothieware/Smoothieware/pull/989

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236021603, or mute the thread https://github.com/notifications/unsubscribe-auth/AHVr2_6CooXQzG_QIYM3vSsbC3ToGq8Uks5qaRadgaJpZM4JV1NU .

cojarbi commented 8 years ago

Why o why this developments happens when I'm away

AY

On Jul 28, 2016, 13:55, at 13:55, Peter van der Walt notifications@github.com wrote:

I'll get the test team to start making plans! @funinthefalls @cojarbi awesomeness! On 28 Jul 2016 22:52, "Jim Morris" notifications@github.com wrote:

@openhardwarecoza https://github.com/openhardwarecoza FWIW I have created a Pull request that adds A B C, the A is raw but I think will do what you want, if you set steps_per_mm to steps_per_degree and pass in the raw degrees it should work. I have no way to test it though. Smoothieware/Smoothieware#989 https://github.com/Smoothieware/Smoothieware/pull/989

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub

https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236021603, or mute the thread

https://github.com/notifications/unsubscribe-auth/AHVr2_6CooXQzG_QIYM3vSsbC3ToGq8Uks5qaRadgaJpZM4JV1NU .


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236022263

ghost commented 8 years ago

Hahaha. You should go away more often (; On 28 Jul 2016 22:56, "Ariel Yahni" notifications@github.com wrote:

Why o why this developments happens when I'm away

AY

On Jul 28, 2016, 13:55, at 13:55, Peter van der Walt < notifications@github.com> wrote:

I'll get the test team to start making plans! @funinthefalls @cojarbi awesomeness! On 28 Jul 2016 22:52, "Jim Morris" notifications@github.com wrote:

@openhardwarecoza https://github.com/openhardwarecoza FWIW I have created a Pull request that adds A B C, the A is raw but I think will do what you want, if you set steps_per_mm to steps_per_degree and pass in the raw degrees it should work. I have no way to test it though. Smoothieware/Smoothieware#989 https://github.com/Smoothieware/Smoothieware/pull/989

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub

< https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236021603 , or mute the thread

< https://github.com/notifications/unsubscribe-auth/AHVr2_6CooXQzG_QIYM3vSsbC3ToGq8Uks5qaRadgaJpZM4JV1NU

.


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub:

https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236022263

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236022771, or mute the thread https://github.com/notifications/unsubscribe-auth/AHVr2zO6yWBiZp-1OHB5DTYCap6hQ6m6ks5qaRePgaJpZM4JV1NU .

cojarbi commented 8 years ago

I will never be back

AY

On Jul 28, 2016, 13:58, at 13:58, Peter van der Walt notifications@github.com wrote:

Hahaha. You should go away more often (; On 28 Jul 2016 22:56, "Ariel Yahni" notifications@github.com wrote:

Why o why this developments happens when I'm away

AY

On Jul 28, 2016, 13:55, at 13:55, Peter van der Walt < notifications@github.com> wrote:

I'll get the test team to start making plans! @funinthefalls @cojarbi awesomeness! On 28 Jul 2016 22:52, "Jim Morris" notifications@github.com wrote:

@openhardwarecoza https://github.com/openhardwarecoza FWIW I have created a Pull request that adds A B C, the A is raw but I think will do what you want, if you set steps_per_mm to steps_per_degree and pass in the raw degrees it should work. I have no way to test it though. Smoothieware/Smoothieware#989 https://github.com/Smoothieware/Smoothieware/pull/989

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub

<

https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236021603

,

or mute the thread

<

https://github.com/notifications/unsubscribe-auth/AHVr2_6CooXQzG_QIYM3vSsbC3ToGq8Uks5qaRadgaJpZM4JV1NU

.


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub:

https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236022263

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub

https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236022771, or mute the thread

https://github.com/notifications/unsubscribe-auth/AHVr2zO6yWBiZp-1OHB5DTYCap6hQ6m6ks5qaRePgaJpZM4JV1NU .


You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-236023165

ghost commented 8 years ago

@HakanBastedt coded up the preview! Awesomeness. Uses Z as a Radius selector, and then loads the degrees into YZ coordinates in three.js

Render of preview rotary

Sample file: https://github.com/openhardwarecoza/LaserWeb3/blob/master/sample_files/Rotary%20Axis%20GCode.gcode

prcdslnc13 commented 8 years ago

Is there any reason we have to run it as an A axis? Of we are generating the code internally and then driving from LW it seems a moot point. If your wanting to input code generated in CNC wrapper or something similar it should just be as simple as a find and replace post process code (or preprocess in the import )

You have to do something similar when 3D printing with MachineKit as they do not recognize E axis. So you have to do a pp script to replace E with A from a slicer.

ghost commented 8 years ago

(; because Wolfmanjm went through all the trouble to make us a proper abc firmware (;

On Sep 5, 2016 6:51 PM, "prcdslnc13" notifications@github.com wrote:

Is there any reason we have to run it as an A axis? Of we are generating the code internally and then driving from LW it seems a moot point. If your wanting to input code generated in CNC wrapper or something similar it should just be as simple as a find and replace post process code (or preprocess in the import )

You have to do something similar when 3D printing with MachineKit as they do not recognize E axis. So you have to do a pp script to replace E with A from a slicer.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openhardwarecoza/LaserWeb3/issues/51#issuecomment-244785266, or mute the thread https://github.com/notifications/unsubscribe-auth/AHVr210BpMLtqt7t5EjkxeYFRnWFSTruks5qnEiPgaJpZM4JV1NU .

FearNaBoinne commented 7 years ago

Don't want to be a party pooper, but not all ROUND items are CYLINDRICAL... ;)

What about wine glasses, beer glasses, etc?

ghost commented 7 years ago

Moved to wishlist on the readme https://github.com/openhardwarecoza/LaserWeb3/commit/b39c56a24a7de76afdbf95dd3e28ae12f6bf6c8c so I can close the issue for now