aboutsummaryrefslogtreecommitdiffstats
path: root/cad
diff options
context:
space:
mode:
author0mp <0mp@FreeBSD.org>2018-09-20 06:44:36 +0800
committer0mp <0mp@FreeBSD.org>2018-09-20 06:44:36 +0800
commitef4ba0070a100df18643db54891d4c6b609fc10c (patch)
treee0a07cdc8fb7672f88bb5d73ff00a8a540d0b7b9 /cad
parent336be1e02334303702e547bf5d081dda76a0f927 (diff)
downloadfreebsd-ports-gnome-ef4ba0070a100df18643db54891d4c6b609fc10c.tar.gz
freebsd-ports-gnome-ef4ba0070a100df18643db54891d4c6b609fc10c.tar.zst
freebsd-ports-gnome-ef4ba0070a100df18643db54891d4c6b609fc10c.zip
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
Diffstat (limited to 'cad')
-rw-r--r--cad/Makefile1
-rw-r--r--cad/k40-whisperer/Makefile67
-rw-r--r--cad/k40-whisperer/distinfo3
-rw-r--r--cad/k40-whisperer/files/k40-whisperer.in5
-rw-r--r--cad/k40-whisperer/files/pkg-message.in5
-rw-r--r--cad/k40-whisperer/pkg-descr21
-rw-r--r--cad/k40-whisperer/pkg-plist28
7 files changed, 130 insertions, 0 deletions
diff --git a/cad/Makefile b/cad/Makefile
index d9ef14cb4d73..2ccc50b71275 100644
--- a/cad/Makefile
+++ b/cad/Makefile
@@ -44,6 +44,7 @@
SUBDIR += irsim
SUBDIR += iverilog
SUBDIR += jspice3
+ SUBDIR += k40-whisperer
SUBDIR += kicad
SUBDIR += kicad-devel
SUBDIR += kicad-library
diff --git a/cad/k40-whisperer/Makefile b/cad/k40-whisperer/Makefile
new file mode 100644
index 000000000000..bde1c92f69c6
--- /dev/null
+++ b/cad/k40-whisperer/Makefile
@@ -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>
diff --git a/cad/k40-whisperer/distinfo b/cad/k40-whisperer/distinfo
new file mode 100644
index 000000000000..edda5c5923a7
--- /dev/null
+++ b/cad/k40-whisperer/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1527085070
+SHA256 (K40_Whisperer-0.19_src.zip) = c688cf1746aa391b6a9d4cfb3e66c2f183d1f45da88a2770e8ddefac44349193
+SIZE (K40_Whisperer-0.19_src.zip) = 121328
diff --git a/cad/k40-whisperer/files/k40-whisperer.in b/cad/k40-whisperer/files/k40-whisperer.in
new file mode 100644
index 000000000000..dde305e83828
--- /dev/null
+++ b/cad/k40-whisperer/files/k40-whisperer.in
@@ -0,0 +1,5 @@
+#! /bin/sh -
+#
+# $FreeBSD$
+
+exec %%PYTHON_CMD%% %%DATADIR%%/k40_whisperer.py
diff --git a/cad/k40-whisperer/files/pkg-message.in b/cad/k40-whisperer/files/pkg-message.in
new file mode 100644
index 000000000000..3f65a81f00a3
--- /dev/null
+++ b/cad/k40-whisperer/files/pkg-message.in
@@ -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.
diff --git a/cad/k40-whisperer/pkg-descr b/cad/k40-whisperer/pkg-descr
new file mode 100644
index 000000000000..aaecf78eb812
--- /dev/null
+++ b/cad/k40-whisperer/pkg-descr
@@ -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
diff --git a/cad/k40-whisperer/pkg-plist b/cad/k40-whisperer/pkg-plist
new file mode 100644
index 000000000000..e418bbc483df
--- /dev/null
+++ b/cad/k40-whisperer/pkg-plist
@@ -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