aboutsummaryrefslogtreecommitdiffstats
path: root/cad
diff options
context:
space:
mode:
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