/dmpl-builder

Generate DM/PL command instructions for hardware plotters

Primary LanguagePHPMIT LicenseMIT

DmplBuilder

Latest Version on Packagist Software License Build Status Coverage Status Quality Score SensioLabsInsight Total Downloads

DmplBuilder eases the process of creating DM/PL command instructions used for hardware pen plotters and cutters. Read more about the specific commands in this very modern manual by Summa.

Install

Via Composer

$ composer require nielsiano/dmpl-builder

Requirements

The following versions of PHP are supported by this version.

  • PHP 7.0

Usage

DmplBuilder uses a fluent interface to chain all commands and plots before compiling the final instructions.

$builder = new Nielsiano\DmplBuilder();

$builder->penUp()
        ->plot(200, 200)
        ->penDown()
        ->velocity(100)
        ->flexCut()
        ->plot(0, 1400)
        ->plot(1900, 0)
        ->plot(0, -1400)
        ->plot(-1900, 0)
        ->penUp()
        ->cutOff();

return $builder->compile();

Sending the generated DM/PL instructions to your plotter through USB can be done like so:

echo ';: ECM,U H L0,P0;A100,100,V10;BP50;D,0,1400,1900,0,e' > /dev/usb/lp0

Available methods at the moment:

$builder->penUp()
$builder->cutOff()
$builder->penDown()
$builder->flexCut()
$builder->flipAxes()
$builder->regularCut()
$builder->changePen(int $pen)
$builder->plot(int $x, int $y)
$builder->compile(): string
$builder->setMeasuringUnit($unit)
$builder->velocity(int $velocity)
$builder->pressure(int $gramPressure)
$builder->pushCommand(string $command)

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

$ phpunit

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email nielsstampe@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.