diff --git a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja b/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja
deleted file mode 100644
index 35d1ce43..00000000
--- a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-KABEJA_HOME=`dirname $0`
-java -jar $KABEJA_HOME/kabeja-dxf2svg.jar "$1"
-
diff --git a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja-dxf2svg.jar b/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja-dxf2svg.jar
deleted file mode 100644
index 1a587b3b..00000000
Binary files a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja-dxf2svg.jar and /dev/null differ
diff --git a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.bat b/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.bat
deleted file mode 100644
index 7beb5973..00000000
--- a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-set KABEJA_HOME=%0\..
-java -jar %KABEJA_HOME%\kabeja-dxf2svg.jar %1
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.inx b/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.inx
deleted file mode 100644
index 2afafb9d..00000000
--- a/extensions/fablabchemnitz/dxf2papercraft/kabeja/inkscape-extension/kabeja.inx
+++ /dev/null
@@ -1,22 +0,0 @@
-
- Kabeja DXF Input
- org.kabeja.inkscape.import.dxf
- org.inkscape.input.svg
- Choose the layout for the import.
-
- - Modelspace
- - Modelspace-Limits
- - Paperspace
- - Paperspace-Limits
-
-
- .dxf
- image/vnd.dxf
- Kabeja-AutoCAD DXF (*.dxf)
- Import AutoCAD's Document Exchange Format
- org.inkscape.output.svg
-
-
-
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja b/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja
deleted file mode 100644
index 35d1ce43..00000000
--- a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-KABEJA_HOME=`dirname $0`
-java -jar $KABEJA_HOME/kabeja-dxf2svg.jar "$1"
-
diff --git a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja-dxf2svg.jar b/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja-dxf2svg.jar
deleted file mode 100644
index 1a587b3b..00000000
Binary files a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja-dxf2svg.jar and /dev/null differ
diff --git a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.bat b/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.bat
deleted file mode 100644
index 7beb5973..00000000
--- a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-set KABEJA_HOME=%0\..
-java -jar %KABEJA_HOME%\kabeja-dxf2svg.jar %1
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.inx b/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.inx
deleted file mode 100644
index 2afafb9d..00000000
--- a/extensions/fablabchemnitz/dxfdwgimporter/kabeja/inkscape-extension/kabeja.inx
+++ /dev/null
@@ -1,22 +0,0 @@
-
- Kabeja DXF Input
- org.kabeja.inkscape.import.dxf
- org.inkscape.input.svg
- Choose the layout for the import.
-
- - Modelspace
- - Modelspace-Limits
- - Paperspace
- - Paperspace-Limits
-
-
- .dxf
- image/vnd.dxf
- Kabeja-AutoCAD DXF (*.dxf)
- Import AutoCAD's Document Exchange Format
- org.inkscape.output.svg
-
-
-
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/papercraft_unfold/papercraft_unfold.inx b/extensions/fablabchemnitz/papercraft_unfold/papercraft_unfold.inx
index 157c0308..bebcea00 100644
--- a/extensions/fablabchemnitz/papercraft_unfold/papercraft_unfold.inx
+++ b/extensions/fablabchemnitz/papercraft_unfold/papercraft_unfold.inx
@@ -35,7 +35,7 @@
false
1.0
-
+
@@ -53,4 +53,4 @@
-
\ No newline at end of file
+
diff --git a/extensions/fablabchemnitz/tool_covers.inx b/extensions/fablabchemnitz/tool_covers.inx
deleted file mode 100644
index 0da2b1b3..00000000
--- a/extensions/fablabchemnitz/tool_covers.inx
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
- Tool Covers
- fablabchemnitz.de.tool_covers
-
-
- base
- 20
- 40
- 40
- 20
- band
- 15
- 30
- fastener
- 10
- 10
- margin and needle hole
- 3
- 3
-
-
- band
- 0.7
- needle hole
- 1
- 1
- 1
- true
-
-
- PiersCover Inkscape extension
-
-Version 0.92
-
-by Yoichi Tanibayashi
-
-https://ytani01.github.io/PliersCover/
-
-
-
-
- all
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/tool_covers.py b/extensions/fablabchemnitz/tool_covers.py
deleted file mode 100644
index 5b305042..00000000
--- a/extensions/fablabchemnitz/tool_covers.py
+++ /dev/null
@@ -1,487 +0,0 @@
-#!/usr/bin/env python3
-#
-# (c) 2020 Yoichi Tanibayashi
-#
-import inkex
-from lxml import etree
-import math
-
-class Point(object):
- def __init__(self, x, y):
- self.x = x
- self.y = y
-
- def distance(self, c):
- return math.sqrt((c.x - self.x) ** 2 + (c.y - self.y) ** 2)
-
- def rotate(self, rad):
- new_x = math.cos(rad) * self.x - math.sin(rad) * self.y
- new_y = math.sin(rad) * self.x + math.cos(rad) * self.y
- self.x = new_x
- self.y = new_y
- return self
-
- def mirror(self):
- self.x = -self.x
- return self
-
-
-class Vpoint(Point):
- '''
- A point with (x, y) coordinates and direction (rad)
-
- rad: Direction (true up: 0, right: math.pi / 2, ...)
- '''
- def __init__(self, x, y, rad=0):
- super(Vpoint, self).__init__(x, y)
- self.rad = rad
-
- def rotate(self, rad):
- super(Vpoint, self).rotate(rad)
- self.rad += rad
- return self
-
- def mirror(self):
- super(Vpoint, self).mirror()
- self.rad = -self.rad
- return self
-
-
-class SvgObj(object):
- DEF_COLOR = '#00FF00'
- DEF_STROKE_WIDTH = 0.2
- DEF_STROKE_DASHARRAY = 'none'
-
- def __init__(self, parent):
- self.parent = parent
- self.type = None
- self.attr = {}
-
- def draw(self, color=DEF_COLOR,
- stroke_width=DEF_STROKE_WIDTH,
- stroke_dasharray=DEF_STROKE_DASHARRAY):
-
- self.attr['style'] = str(inkex.Style({
- 'stroke': str(color),
- 'stroke-width': str(stroke_width),
- 'stroke-dasharray': str(stroke_dasharray),
- 'fill': 'none'}))
- return etree.SubElement(self.parent,
- inkex.addNS(self.type, 'svg'),
- self.attr)
-
-
-class SvgCircle(SvgObj):
- DEF_COLOR = '#FF0000'
- DEF_STROKE_WIDTH = 0.2
- DEF_STROKE_DASHARRAY = 'none'
-
- def __init__(self, parent, r):
- super(SvgCircle, self).__init__(parent)
- self.r = r
- self.type = 'circle'
-
- def draw(self, point,
- color=DEF_COLOR,
- stroke_width=DEF_STROKE_WIDTH,
- stroke_dasharray=DEF_STROKE_DASHARRAY):
- self.attr['cx'] = str(point.x)
- self.attr['cy'] = str(point.y)
- self.attr['r'] = str(self.r)
-
- return super(SvgCircle, self).draw(color,
- stroke_width, stroke_dasharray)
-
-
-class SvgPath(SvgObj):
- DEF_COLOR = '#0000FF'
- DEF_STROKE_WIDTH = 0.2
- DEF_STROKE_DASHARRAY = 'none'
-
- def __init__(self, parent, points):
- super(SvgPath, self).__init__(parent)
- self.points = points
- self.type = 'path'
-
- def create_svg_d(self, origin_vpoint, points):
- '''
- to be override
-
- This is sample code.
- '''
- svg_d = ''
- for i, p in enumerate(points):
- (x1, y1) = (p.x + origin_vpoint.x, p.y + origin_vpoint.y)
- if i == 0:
- svg_d = 'M %f,%f' % (x1, y1)
- else:
- svg_d += ' L %f,%f' % (x1, y1)
- return svg_d
-
- def rotate(self, rad):
- for p in self.points:
- p.rotate(rad)
- return self
-
- def mirror(self):
- for p in self.points:
- p.mirror()
- return self
-
- def draw(self, origin,
- color=DEF_COLOR, stroke_width=DEF_STROKE_WIDTH,
- stroke_dasharray=DEF_STROKE_DASHARRAY):
-
- self.rotate(origin.rad)
-
- svg_d = self.create_svg_d(origin, self.points)
- # inkex.errormsg('svg_d=%s' % svg_d)
- # inkex.errormsg('svg_d=%s' % str(Path( svg_d )))
-
- self.attr['d'] = svg_d
- return super(SvgPath, self).draw(color, stroke_width, stroke_dasharray)
-
-
-class SvgLine(SvgPath):
- # exactly same as SvgPath
- pass
-
-
-class SvgPolygon(SvgPath):
- def create_svg_d(self, origin, points):
- svg_d = super(SvgPolygon, self).create_svg_d(origin, points)
- svg_d += ' Z'
- return svg_d
-
-
-class SvgPart1Outline(SvgPolygon):
- def __init__(self, parent, points, bw_bf):
- super(SvgPart1Outline, self).__init__(parent, points)
- self.bw_bf = bw_bf
-
- def create_svg_d(self, origin, points, bw_bf=1):
- for i, p in enumerate(points):
- (x1, y1) = (p.x + origin.x, p.y + origin.y)
- if i == 0:
- d = 'M %f,%f' % (x1, y1)
- elif i == 7:
- d += ' L %f,%f' % (x1, y1)
- x2 = x1
- y2 = y1 + self.bw_bf
- elif i == 8:
- d += ' C %f,%f %f,%f %f,%f' % (x2, y2, x1, y2, x1, y1)
- else:
- d += ' L %f,%f' % (x1, y1)
-
- d += ' Z'
- return d
-
-
-class SvgNeedleHole(SvgPolygon):
- def __init__(self, parent, w, h, tf):
- '''
- w: width
- h: height
- tf: tilt factor
- '''
- self.w = w
- self.h = h
- self.tf = tf
-
- self.gen_points(self.w, self.h, self.tf)
- super(SvgNeedleHole, self).__init__(parent, self.points)
-
- def gen_points(self, w, h, tf):
- self.points = []
- self.points.append(Point(-w / 2, h * tf))
- self.points.append(Point( w / 2, h * (1 - tf)))
- self.points.append(Point( w / 2, -h * tf))
- self.points.append(Point(-w / 2, -h * (1 - tf)))
-
-
-class Part1(object):
- def __init__(self, parent,
- w1, w2, h1, h2, bw, bl, bf, dia1, d1, d2,
- needle_w, needle_h, needle_tf, needle_corner_rotation):
- self.parent = parent
- self.w1 = w1
- self.w2 = w2
- self.h1 = h1
- self.h2 = h2
- self.bw = bw
- self.bl = bl
- self.bf = bf
- self.dia1 = dia1
- self.d1 = d1
- self.d2 = d2
- self.needle_w = needle_w
- self.needle_h = needle_h
- self.needle_tf = needle_tf
- self.needle_corner_rotation = needle_corner_rotation
-
- # Group Creation
- attr = {inkex.addNS('label', 'inkscape'): 'Part1'}
- self.g = etree.SubElement(self.parent, 'g', attr)
-
- # drawing
- self.points_outline = self.create_points_outline()
- self.svg_outline = SvgPart1Outline(self.g, self.points_outline,
- (self.bw * self.bf))
- self.svg_hole = SvgCircle(self.g, self.dia1 / 2)
-
- self.vpoints_needle = self.create_needle_vpoints()
- self.svgs_needle_hole = []
- for v in self.vpoints_needle:
- svg_nh = SvgNeedleHole(self.g,
- self.needle_w,
- self.needle_h,
- self.needle_tf)
- self.svgs_needle_hole.append((svg_nh, v))
-
- def create_points_outline(self):
- #Generate the coordinates of the outer frame
-
- points = []
- (x0, y0) = (-(self.w2 / 2), 0)
-
- (x, y) = (x0, y0 + self.h1 + self.h2)
- points.append(Point(x, y))
-
- y = y0 + self.h1
- points.append(Point(x, y))
-
- x = -(self.w1 / 2)
- y = y0
- points.append(Point(x, y))
-
- x = self.w1 / 2
- points.append(Point(x, y))
-
- x = self.w2 / 2
- y += self.h1
- points.append(Point(x, y))
-
- y += self.h2
- points.append(Point(x, y))
-
- x = self.bw / 2
- points.append(Point(x, y))
-
- y += self.bl - self.bw / 2
- points.append(Point(x, y))
-
- x = -(self.bw / 2)
- points.append(Point(x, y))
-
- y = y0 + self.h1 + self.h2
- points.append(Point(x, y))
-
- return points
-
- def create_needle_vpoints(self):
- '''
- 針穴の点と方向を生成
- '''
- rad1 = math.atan((self.w2 - self.w1) / (2 * self.h1))
- rad1a = (math.pi - rad1) / 2
- a1 = self.d1 / math.tan(rad1a)
-
- rad2 = (math.pi / 2) - rad1
- rad2a = (math.pi - rad2) / 2
- a2 = self.d1 / math.tan(rad2a)
-
- #
- # summit
- #
- vpoints1 = []
- for i, p in enumerate(self.points_outline):
- (nx, ny) = (p.x, p.y)
- if i == 0:
- nx += self.d1
- ny -= self.d1 * 1.5
- vpoints1.append(Vpoint(nx, ny, 0))
- if i == 1:
- nx += self.d1
- ny += a1
- vpoints1.append(Vpoint(nx, ny, rad1))
- if i == 2:
- nx += a2
- ny += self.d1
- vpoints1.append(Vpoint(nx, ny, math.pi / 2))
- if i == 3:
- nx -= a2
- ny += self.d1
- vpoints1.append(Vpoint(nx, ny, (math.pi / 2) + rad2))
- if i == 4:
- nx -= self.d1
- ny += a1
- vpoints1.append(Vpoint(nx, ny, math.pi))
- if i == 5:
- nx -= self.d1
- ny -= self.d1 * 1.5
- vpoints1.append(Vpoint(nx, ny, math.pi))
- if i > 5:
- break
-
- # Generate a point that completes a vertex
- vpoints2 = []
- for i in range(len(vpoints1)-1):
- d = vpoints1[i].distance(vpoints1[i+1])
- n = int(abs(round(d / self.d2)))
- for p in self.split_vpoints(vpoints1[i], vpoints1[i+1], n):
- vpoints2.append(p)
-
- vpoints2.insert(0, vpoints1[0])
- return vpoints2
-
- def split_vpoints(self, v1, v2, n):
- #v1, v2 Generate a list by dividing the space between the two into n pieces
-
- if n == 0:
- return [v1]
- (dx, dy) = ((v2.x - v1.x) / n, (v2.y - v1.y) / n)
-
- v = []
- for i in range(n):
- v.append(Vpoint(v1.x + dx * (i + 1),
- v1.y + dy * (i + 1),
- v1.rad))
- if self.needle_corner_rotation:
- v[-1].rad = (v1.rad + v2.rad) / 2
- return v
-
- def draw(self, origin):
- origin_base = Vpoint(origin.x + self.w2 / 2,
- origin.y,
- origin.rad)
- self.svg_outline.draw(origin_base, color='#0000FF')
-
- x = origin.x + self.w2 / 2
- y = origin.y + self.h1 + self.h2 + self.bl - self.bw / 2
- origin_hole = Point(x, y)
- self.svg_hole.draw(origin_hole, color='#FF0000')
-
- for (svg_nh, p) in self.svgs_needle_hole:
- origin_nh = Vpoint(origin.x + p.x + self.w2 / 2,
- origin.y + p.y,
- p.rad)
- svg_nh.draw(origin_nh, color='#FF0000')
-
-
-class Part2(object):
- def __init__(self, parent, part1, dia2):
- self.parent = parent
- self.part1 = part1
- self.dia2 = dia2
-
- # Group Creation
- attr = {inkex.addNS('label', 'inkscape'): 'Part2'}
- self.g = etree.SubElement(self.parent, 'g', attr)
-
- # outer frame > Mirroring the points_outline in Part1, and use the first six points.
- self.points_outline = []
- for i in range(6):
- self.points_outline.append(self.part1.points_outline[i].mirror())
-
- self.svg_outline = SvgPolygon(self.g, self.points_outline)
-
- # clasp
- self.svg_hole = SvgCircle(self.g, self.dia2 / 2)
-
- # pinhole -> Mirroring the vpoints_needle in Part1
- self.svgs_needle_hole = []
- for v in self.part1.vpoints_needle:
- v.mirror()
- # Mirror also SvgNeedleHole
- svg_nh = SvgNeedleHole(self.g,
- self.part1.needle_w,
- self.part1.needle_h,
- self.part1.needle_tf)
- svg_nh.mirror()
- self.svgs_needle_hole.append((svg_nh, v))
-
- def draw(self, origin):
- origin_base = Vpoint(origin.x + self.part1.w2 / 2,
- origin.y, origin.rad)
- self.svg_outline.draw(origin_base, color='#0000FF')
-
- x = origin.x + self.part1.w2 / 2
- y = origin.y + self.part1.h1 + self.part1.h2
- y -= (self.svg_hole.r + self.part1.d1)
- origin_hole = Vpoint(x, y, origin.rad)
- self.svg_hole.draw(origin_hole, color='#FF0000')
-
- for (svg_nh, p) in self.svgs_needle_hole:
- origin_nh = Vpoint(origin.x + p.x + self.part1.w2 / 2,
- origin.y + p.y,
- p.rad)
- svg_nh.draw(origin_nh, color='#FF0000')
-
-
-class PliersCover(inkex.Effect):
- DEF_OFFSET_X = 20
- DEF_OFFSET_Y = 20
-
- def __init__(self):
- inkex.Effect.__init__(self)
- self.arg_parser.add_argument("--tabs")
- self.arg_parser.add_argument("--w1", type=float)
- self.arg_parser.add_argument("--w2", type=float)
- self.arg_parser.add_argument("--h1", type=float)
- self.arg_parser.add_argument("--h2", type=float)
- self.arg_parser.add_argument("--bw", type=float)
- self.arg_parser.add_argument("--bl", type=float)
- self.arg_parser.add_argument("--bf", type=float)
- self.arg_parser.add_argument("--dia1", type=float)
- self.arg_parser.add_argument("--dia2", type=float)
- self.arg_parser.add_argument("--d1", type=float)
- self.arg_parser.add_argument("--d2", type=float)
- self.arg_parser.add_argument("--needle_w", type=float)
- self.arg_parser.add_argument("--needle_h", type=float)
- self.arg_parser.add_argument("--needle_tf", type=float)
- self.arg_parser.add_argument("--needle_corner_rotation", type=inkex.Boolean, default=True)
-
- def effect(self):
- # inkex.errormsg('view_center=%s' % str(self.view_center))
- # inkex.errormsg('selected=%s' % str(self.selected))
-
- # parameters
- opt = self.options
-
- #
- # error check
- #
- if opt.w1 >= opt.w2:
- msg = "Error: w1(%d) > w2(%d) !" % (opt.w1, opt.w2)
- inkex.errormsg(msg)
- return
-
- if opt.dia1 >= opt.bw:
- msg = "Error: dia1(%d) >= bw(%d) !" % (opt.dia1, opt.bw)
- inkex.errormsg(msg)
- return
-
- #
- # draw
- #
- origin_vpoint = Vpoint(self.DEF_OFFSET_X, self.DEF_OFFSET_Y)
-
- # Group Creation
- attr = {inkex.addNS('label', 'inkscape'): 'PliersCover'}
- self.g = etree.SubElement(self.svg.get_current_layer(), 'g', attr)
-
- part1 = Part1(self.g,
- opt.w1, opt.w2, opt.h1, opt.h2,
- opt.bw, opt.bl, opt.bf, opt.dia1,
- opt.d1, opt.d2,
- opt.needle_w, opt.needle_h, opt.needle_tf,
- opt.needle_corner_rotation)
- part1.draw(origin_vpoint)
-
- origin_vpoint.x += opt.w2 + 10
-
- part2 = Part2(self.g, part1, opt.dia2)
- part2.draw(origin_vpoint)
-
-if __name__ == '__main__':
- PliersCover().run()
\ No newline at end of file