aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/bin/hpgl_move
diff options
context:
space:
mode:
Diffstat (limited to 'externals/gridflow/bin/hpgl_move')
-rwxr-xr-xexternals/gridflow/bin/hpgl_move19
1 files changed, 19 insertions, 0 deletions
diff --git a/externals/gridflow/bin/hpgl_move b/externals/gridflow/bin/hpgl_move
new file mode 100755
index 00000000..f4bf0534
--- /dev/null
+++ b/externals/gridflow/bin/hpgl_move
@@ -0,0 +1,19 @@
+#!/usr/bin/env ruby
+# Copyright (c) 2009 by Mathieu Bouchard
+
+x = Float ARGV[0]
+y = Float ARGV[1]
+
+puts STDIN.read.split(/\s*;\s*/).map {|m|
+ h = m.slice!(0,2)
+ d = m.split(",")
+ case h
+ when "PA","PD","PU"
+ (0...d.length).each {|i|
+ off = if i%2==0 then x else y end
+ v = Float(d[i])+off
+ d[i] = if v==v.to_i then v.to_i else v.to_f end
+ }
+ end
+ h+d.join(",")
+}.join(";")