New port: cad/k40-whisperer

GUI control software for the stock K40 laser cutter controller

K40 Whisperer is an alternative to the Laser Draw (LaserDRW) program that
comes with some Chinese laser cutters. It reads SVG and DXF files,
interprets the data and sends commands to the K40 controller to move the
laser head and control the laser accordingly. K40 Whisperer does not
require a USB key (dongle) to function.

Features:
- Reads SVG files and DXF files.
- Splits input design based on color formatting (red, blue).
- In SVG files blue and red paths are interpreted as vectors for vector
  engraving and cutting. Everything else is transferred as a raster image.
- In DXF files blue paths are interpreted as vector engrave (blue).
  Everything else is interpreted as vector cut (red).
- Performs cuts on features inside of other features before cutting the
  outside features. (If you cut the outside first the part might drop out
  of the stock material.)
- Converts gray scale images to halftone images to simulating varying
  levels of gray (i.e. engraving pictures). The Halftone option needs to be
  selected under "Raster"-"Settings" to enable halftoning.

WWW: http://www.scorchworks.com/K40whisperer/k40whisperer.html

PR:		228466
Reviewed by:	mat (mentor)
Approved by:	mat (mentor)
Sponsored by:   Warsaw Hackerspace
Differential Revision:	https://reviews.freebsd.org/D16339
This commit is contained in:
Mateusz Piotrowski 2018-09-19 22:44:36 +00:00
parent 1dbe597583
commit 01f18e89f1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=480119
7 changed files with 130 additions and 0 deletions

View file

@ -44,6 +44,7 @@
SUBDIR += irsim
SUBDIR += iverilog
SUBDIR += jspice3
SUBDIR += k40-whisperer
SUBDIR += kicad
SUBDIR += kicad-devel
SUBDIR += kicad-library

View file

@ -0,0 +1,67 @@
# $FreeBSD$
PORTNAME= k40-whisperer
DISTVERSION= 0.19
CATEGORIES= cad python
MASTER_SITES= http://www.scorchworks.com/K40whisperer/
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
DISTNAME= K40_Whisperer-${DISTVERSION}_src
MAINTAINER= 0mp@FreeBSD.org
COMMENT= GUI control software for the stock K40 laser cutter controller
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/gpl-3.0.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}usb>0:devel/py-usb@${PY_FLAVOR}
USES= python:2.7 zip
OPTIONS_DEFINE= DOCS
NO_BUILD= yes
WHISPERER_COMMAND= ${PORTNAME}
SUB_FILES= pkg-message ${WHISPERER_COMMAND}
SUB_LIST= PYTHON_CMD=${PYTHON_CMD} WHISPERER_COMMAND=${WHISPERER_COMMAND}
PLIST_SUB= WHISPERER_COMMAND=${WHISPERER_COMMAND}
DATA= bezmisc.py \
CC.png \
cspsubdiv.py \
cubicsuperpath.py \
down.png \
dxf.py \
egv.py \
emblem64 \
ffgeom.py \
g_code_library.py \
inkex.py \
interpolate.py \
k40_whisperer.py \
left.png \
LL.png \
LR.png \
nano_library.py \
right.png \
simplepath.py \
simplestyle.py \
simpletransform.py \
svg_reader.py \
UL.png \
up.png \
UR.png
DOCS= README_Linux.txt \
README_MacOS.md
do-install:
${INSTALL_SCRIPT} ${WRKDIR}/${WHISPERER_COMMAND} ${STAGEDIR}${PREFIX}/bin
@${MKDIR} ${STAGEDIR}${DATADIR}
${INSTALL_DATA} ${DATA:S,^,${WRKSRC}/,} ${STAGEDIR}${DATADIR}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1527085070
SHA256 (K40_Whisperer-0.19_src.zip) = c688cf1746aa391b6a9d4cfb3e66c2f183d1f45da88a2770e8ddefac44349193
SIZE (K40_Whisperer-0.19_src.zip) = 121328

View file

@ -0,0 +1,5 @@
#! /bin/sh -
#
# $FreeBSD$
exec %%PYTHON_CMD%% %%DATADIR%%/k40_whisperer.py

View file

@ -0,0 +1,5 @@
At the moment K40 Whisperer has to be run as root unless devd(8) is properly
configured. Some notes on how it is handled on macOS and Linux can be
found in %%DATADIR%%.
K40 Whisperer can be launched with a `%%WHISPERER_COMMAND%%` command.

View file

@ -0,0 +1,21 @@
K40 Whisperer is an alternative to the Laser Draw (LaserDRW) program that comes
with some Chinese laser cutters. It reads SVG and DXF files, interprets the
data and sends commands to the K40 controller to move the laser head and
control the laser accordingly. K40 Whisperer does not require a USB key
(dongle) to function.
Features:
- Reads SVG files and DXF files.
- Splits input design based on color formatting (red, blue).
- In SVG files blue and red paths are interpreted as vectors for vector
engraving and cutting. Everything else is transferred as a raster image.
- In DXF files blue paths are interpreted as vector engrave (blue).
Everything else is interpreted as vector cut (red).
- Performs cuts on features inside of other features before cutting the outside
features. (If you cut the outside first the part might drop out of the stock
material.)
- Converts gray scale images to halftone images to simulating varying levels of
gray (i.e. engraving pictures). The Halftone option needs to be selected
under "Raster"-"Settings" to enable halftoning.
WWW: http://www.scorchworks.com/K40whisperer/k40whisperer.html

View file

@ -0,0 +1,28 @@
bin/%%WHISPERER_COMMAND%%
%%PORTDOCS%%%%DOCSDIR%%/README_Linux.txt
%%PORTDOCS%%%%DOCSDIR%%/README_MacOS.md
%%DATADIR%%/CC.png
%%DATADIR%%/LL.png
%%DATADIR%%/LR.png
%%DATADIR%%/UL.png
%%DATADIR%%/UR.png
%%DATADIR%%/bezmisc.py
%%DATADIR%%/cspsubdiv.py
%%DATADIR%%/cubicsuperpath.py
%%DATADIR%%/down.png
%%DATADIR%%/dxf.py
%%DATADIR%%/egv.py
%%DATADIR%%/emblem64
%%DATADIR%%/ffgeom.py
%%DATADIR%%/g_code_library.py
%%DATADIR%%/inkex.py
%%DATADIR%%/interpolate.py
%%DATADIR%%/k40_whisperer.py
%%DATADIR%%/left.png
%%DATADIR%%/nano_library.py
%%DATADIR%%/right.png
%%DATADIR%%/simplepath.py
%%DATADIR%%/simplestyle.py
%%DATADIR%%/simpletransform.py
%%DATADIR%%/svg_reader.py
%%DATADIR%%/up.png