I have been plying with your sim, this is absolutely awesome! Fantastic work.
Cheers, Kurt On Sun, Jun 24, 2018 at 8:41 PM, Curtis Dutton <[email protected]> wrote: > Last year I retrofitted my laser engraver with linuxcnc. I do both > rastering and vector cutting on my laser, and it is a 4 axis laser as I do > complicated raster and vector cutting on 3D objects. > > I found existing solutions out on the web but they weren't quite adequate > for my needs. Because I have a 4 axis laser (XYZA), controlling vector > power using the Z axis was out. Also my raster files are sometimes 200Mb > and streaming raster data at the servo period rate via gstreamer takes > quite a long time. I also did not want to have a separate raster data file > alongside the gcode file. > > To solve these and some other problems I needed a way to pipe data through > the HAL at a rate much greater than what could be achieved with 1 data > point per servo cycle. Thus the HAL_PORT pin type was born. The idea was > taken from machine kit ring buffers. > > A HAL_PORT pin allows for a writer component to send many bytes in one > operation to a reader component in real time. The PORT pins behave just > like any other pin in HAL and can be linked, unlinked etc... > > In addition to the modifications to make hal ports some other modifications > and new parts were required. > > halcompile.g - added port type. Also added (pin,param,variable)_ptr macros > to allow access to the actual pointer to those values. > > pyhal.py - similar to the other python component pyhal.py uses the ctypes > python library to interface with hal, which is significantly less code than > the halmodule.cc python wrapper that currently exists. > > laserpower.comp - allows vector control of a laser, scaling power during a > move and has no limitations of number of joints a machine can have. > > raster.comp along with a python raster.py programming module to control the > raster, this allows control of the raster component from user space. > > remapping of M codes to control the raster.py raster programming component. > > > Included is also some tests > /tests/pyhal - also tests hal_port implementation > /tests/raster - tests the rastering component and raster.py programming > interface > > Included is also a sim config detailing how to implement a laser engraver > with vector and raster support. In /configs/sim/axes/laser > > > I have been using this in production for a few months now. I am open to any > and all suggesstions on how to structure, features, functions, etc. > > I also think that the HAL_PORT can be used as a primitive to build or > replace a lot of code. Maybe even NML and other forms of shared memory > magic. > > Eventually I would like to get this merged into master. I'm open to doing > this in an incremental type fashion so as not to disturb too much at one > time. This is my first "PULL request" with linuxcnc so forgive my ignorance > with regards to this process. > > Link to commit, merged with latest master > > https://github.com/OKComputers/linuxcnc/commit/ > 0afff760caa3f96d47d9934dc4d07765d40f2591 > > Thanks, > Curtis > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Emc-developers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/emc-developers > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
