summaryrefslogtreecommitdiff
path: root/technic_cnc
diff options
context:
space:
mode:
authorVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2018-12-01 09:06:00 -0500
committerVanessa Dannenberg <vanessa.e.dannenberg@gmail.com>2018-12-01 09:06:00 -0500
commit856b86858ebfa4af2c352b022188f82dcff7ed92 (patch)
tree867b0323f38e6b582b3fa3e4e1e896607493d5b1 /technic_cnc
parent2d8ff9f889450fb5c36016276997544aae98a350 (diff)
downloaddreambuilder_modpack-856b86858ebfa4af2c352b022188f82dcff7ed92.tar
dreambuilder_modpack-856b86858ebfa4af2c352b022188f82dcff7ed92.tar.gz
dreambuilder_modpack-856b86858ebfa4af2c352b022188f82dcff7ed92.tar.bz2
dreambuilder_modpack-856b86858ebfa4af2c352b022188f82dcff7ed92.tar.xz
dreambuilder_modpack-856b86858ebfa4af2c352b022188f82dcff7ed92.zip
update basic_materials, biome_lib, technic, digilines, digistuff,
gloopblocks, homedecor, moreblocks, pipeworks, prefab_redo
Diffstat (limited to 'technic_cnc')
-rw-r--r--technic_cnc/cnc.lua300
-rw-r--r--technic_cnc/cnc_api.lua367
-rw-r--r--technic_cnc/cnc_materials.lua131
-rw-r--r--technic_cnc/depends.txt3
-rw-r--r--technic_cnc/init.lua18
-rw-r--r--technic_cnc/locale/de.txt36
-rw-r--r--technic_cnc/locale/es.txt35
-rw-r--r--technic_cnc/locale/it.txt36
-rw-r--r--technic_cnc/locale/template.txt36
-rw-r--r--technic_cnc/models/technic_cnc_cylinder.obj238
-rw-r--r--technic_cnc/models/technic_cnc_cylinder_horizontal.obj238
-rw-r--r--technic_cnc/models/technic_cnc_innercorner.obj33
-rw-r--r--technic_cnc/models/technic_cnc_innercorner_upsdown.obj33
-rw-r--r--technic_cnc/models/technic_cnc_oblate_spheroid.obj300
-rw-r--r--technic_cnc/models/technic_cnc_one_curved_edge.obj132
-rw-r--r--technic_cnc/models/technic_cnc_outercorner.obj23
-rw-r--r--technic_cnc/models/technic_cnc_outercorner_upsdown.obj23
-rw-r--r--technic_cnc/models/technic_cnc_pyramid.obj24
-rw-r--r--technic_cnc/models/technic_cnc_pyramid_spike.obj24
-rw-r--r--technic_cnc/models/technic_cnc_slope.obj24
-rw-r--r--technic_cnc/models/technic_cnc_slope_horizontal.obj24
-rw-r--r--technic_cnc/models/technic_cnc_slope_upsdown.obj24
-rw-r--r--technic_cnc/models/technic_cnc_sphere.obj1927
-rw-r--r--technic_cnc/models/technic_cnc_two_curved_edge.obj207
-rw-r--r--technic_cnc/textures/technic_cnc_bottom.pngbin0 -> 2006 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_cylinder.pngbin0 -> 6047 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_cylinder_horizontal.pngbin0 -> 7130 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_element_cross.pngbin0 -> 4592 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_element_edge.pngbin0 -> 3898 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_element_end.pngbin0 -> 3563 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_element_straight.pngbin0 -> 4027 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_element_t.pngbin0 -> 4369 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_front.pngbin0 -> 2000 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_front_active.pngbin0 -> 2216 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_full.pngbin0 -> 997 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_half.pngbin0 -> 1564 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_milling_background.pngbin0 -> 78748 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_oblate_spheroid.pngbin0 -> 8915 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_onecurvededge.pngbin0 -> 8170 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_pyramid.pngbin0 -> 4790 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_side.pngbin0 -> 1922 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope.pngbin0 -> 6081 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_edge.pngbin0 -> 5900 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_edge_upsdwn.pngbin0 -> 4831 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_inner_edge.pngbin0 -> 7412 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.pngbin0 -> 7404 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_lying.pngbin0 -> 6815 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_slope_upsdwn.pngbin0 -> 5814 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_sphere.pngbin0 -> 5777 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_spike.pngbin0 -> 6392 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_stick.pngbin0 -> 2305 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_top.pngbin0 -> 2137 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_top_active.pngbin0 -> 2214 bytes
-rw-r--r--technic_cnc/textures/technic_cnc_twocurvededge.pngbin0 -> 7119 bytes
54 files changed, 4236 insertions, 0 deletions
diff --git a/technic_cnc/cnc.lua b/technic_cnc/cnc.lua
new file mode 100644
index 0000000..0e23f5a
--- /dev/null
+++ b/technic_cnc/cnc.lua
@@ -0,0 +1,300 @@
+-- Technic CNC v1.0 by kpoppel
+-- Based on the NonCubic Blocks MOD v1.4 by yves_de_beck
+
+-- Idea:
+-- Somehow have a tabbed/paged panel if the number of shapes should expand
+-- beyond what is available in the panel today.
+-- I could imagine some form of API allowing modders to come with their own node
+-- box definitions and easily stuff it in the this machine for production.
+
+local S = technic_cnc.getter
+
+local allow_metadata_inventory_put
+local allow_metadata_inventory_take
+local allow_metadata_inventory_move
+local can_dig
+local desc_tr = S("CNC Machine")
+
+if technic_cnc.use_technic then
+ minetest.register_craft({
+ output = 'technic:cnc',
+ recipe = {
+ {'default:glass', 'technic:diamond_drill_head', 'default:glass'},
+ {'technic:control_logic_unit', 'technic:machine_casing', 'basic_materials:motor'},
+ {'technic:carbon_steel_ingot', 'technic:lv_cable', 'technic:carbon_steel_ingot'},
+ },
+ })
+
+ allow_metadata_inventory_put = technic.machine_inventory_put
+ allow_metadata_inventory_take = technic.machine_inventory_take
+ allow_metadata_inventory_move = technic.machine_inventory_move
+ can_dig = technic.machine_can_dig
+ desc_tr = S("%s CNC Machine"):format("LV")
+else
+ minetest.register_craft({
+ output = 'technic:cnc',
+ recipe = {
+ {'default:glass', 'default:diamond', 'default:glass'},
+ {'basic_materials:ic', 'default:steelblock', 'basic_materials:motor'},
+ {'default:steel_ingot', 'default:mese', 'default:steel_ingot'},
+ },
+ })
+
+ allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+ if minetest.is_protected(pos, player:get_player_name()) then
+ return 0
+ end
+ return stack:get_count()
+ end
+
+ allow_metadata_inventory_take = function(pos, listname, index, stack, player)
+ if minetest.is_protected(pos, player:get_player_name()) then
+ return 0
+ end
+ return stack:get_count()
+ end
+
+ allow_metadata_inventory_move = function(pos, from_list, from_index,
+ to_list, to_index, count, player)
+ if minetest.is_protected(pos, player:get_player_name()) then
+ return 0
+ end
+ return stack:get_count()
+ end
+
+ can_dig = function(pos, player)
+ if player and minetest.is_protected(pos, player:get_player_name()) then return false end
+ local meta = minetest.get_meta(pos);
+ local inv = meta:get_inventory()
+ return inv:is_empty("dst")
+ and inv:is_empty("src")
+ and default.can_interact_with_node(player, pos)
+ end
+end
+
+local shape = {}
+local onesize_products = {
+ slope = 2,
+ slope_edge = 1,
+ slope_inner_edge = 1,
+ pyramid = 2,
+ spike = 1,
+ cylinder = 2,
+ oblate_spheroid = 1,
+ sphere = 1,
+ stick = 8,
+ slope_upsdown = 2,
+ slope_edge_upsdown = 1,
+ slope_inner_edge_upsdown = 1,
+ cylinder_horizontal = 2,
+ slope_lying = 2,
+ onecurvededge = 1,
+ twocurvededge = 1,
+}
+local twosize_products = {
+ element_straight = 2,
+ element_end = 2,
+ element_cross = 1,
+ element_t = 1,
+ element_edge = 2,
+}
+
+local cnc_formspec =
+ "size[9,11;]"..
+ "label[1,0;"..S("Choose Milling Program:").."]"..
+ "image_button[1,0.5;1,1;technic_cnc_slope.png;slope; ]"..
+ "image_button[2,0.5;1,1;technic_cnc_slope_edge.png;slope_edge; ]"..
+ "image_button[3,0.5;1,1;technic_cnc_slope_inner_edge.png;slope_inner_edge; ]"..
+ "image_button[4,0.5;1,1;technic_cnc_pyramid.png;pyramid; ]"..
+ "image_button[5,0.5;1,1;technic_cnc_spike.png;spike; ]"..
+ "image_button[6,0.5;1,1;technic_cnc_cylinder.png;cylinder; ]"..
+ "image_button[7,0.5;1,1;technic_cnc_oblate_spheroid.png;oblate_spheroid; ]"..
+ "image_button[8,0.5;1,1;technic_cnc_stick.png;stick; ]"..
+
+ "image_button[1,1.5;1,1;technic_cnc_slope_upsdwn.png;slope_upsdown; ]"..
+ "image_button[2,1.5;1,1;technic_cnc_slope_edge_upsdwn.png;slope_edge_upsdown; ]"..
+ "image_button[3,1.5;1,1;technic_cnc_slope_inner_edge_upsdwn.png;slope_inner_edge_upsdown; ]"..
+ "image_button[4,1.5;1,1;technic_cnc_cylinder_horizontal.png;cylinder_horizontal; ]"..
+ "image_button[5,1.5;1,1;technic_cnc_sphere.png;sphere; ]"..
+
+ "image_button[1,2.5;1,1;technic_cnc_slope_lying.png;slope_lying; ]"..
+ "image_button[2,2.5;1,1;technic_cnc_onecurvededge.png;onecurvededge; ]"..
+ "image_button[3,2.5;1,1;technic_cnc_twocurvededge.png;twocurvededge; ]"..
+
+ "label[1,3.5;"..S("Slim Elements half / normal height:").."]"..
+
+ "image_button[1,4;1,0.5;technic_cnc_full.png;full; ]"..
+ "image_button[1,4.5;1,0.5;technic_cnc_half.png;half; ]"..
+ "image_button[2,4;1,1;technic_cnc_element_straight.png;element_straight; ]"..
+ "image_button[3,4;1,1;technic_cnc_element_end.png;element_end; ]"..
+ "image_button[4,4;1,1;technic_cnc_element_cross.png;element_cross; ]"..
+ "image_button[5,4;1,1;technic_cnc_element_t.png;element_t; ]"..
+ "image_button[6,4;1,1;technic_cnc_element_edge.png;element_edge; ]"..
+
+ "label[0, 5.5;"..S("In:").."]"..
+ "list[current_name;src;0.5,5.5;1,1;]"..
+ "label[4, 5.5;"..S("Out:").."]"..
+ "list[current_name;dst;5,5.5;4,1;]"..
+
+ "list[current_player;main;0,7;8,4;]"..
+ "listring[current_name;dst]"..
+ "listring[current_player;main]"..
+ "listring[current_name;src]"..
+ "listring[current_player;main]"
+
+-- The form handler is declared here because we need it in both the inactive and active modes
+-- in order to be able to change programs wile it is running.
+local function form_handler(pos, formname, fields, sender)
+ local meta = minetest.get_meta(pos)
+
+ -- REGISTER MILLING PROGRAMS AND OUTPUTS:
+ ------------------------------------------
+ -- Program for half/full size
+ if fields["full"] then
+ meta:set_int("size", 1)
+ return
+ end
+
+ if fields["half"] then
+ meta:set_int("size", 2)
+ return
+ end
+
+ -- Resolve the node name and the number of items to make
+ local inv = meta:get_inventory()
+ local inputstack = inv:get_stack("src", 1)
+ local inputname = inputstack:get_name()
+ local multiplier = 0
+ local size = meta:get_int("size")
+ if size < 1 then size = 1 end
+
+ for k, _ in pairs(fields) do
+ -- Set a multipier for the half/full size capable blocks
+ if twosize_products[k] ~= nil then
+ multiplier = size * twosize_products[k]
+ else
+ multiplier = onesize_products[k]
+ end
+
+ if onesize_products[k] ~= nil or twosize_products[k] ~= nil then
+ meta:set_float( "cnc_multiplier", multiplier)
+ meta:set_string("cnc_user", sender:get_player_name())
+ end
+
+ if onesize_products[k] ~= nil or (twosize_products[k] ~= nil and size==2) then
+ meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k)
+ --print(inputname .. "_technic_cnc_" .. k)
+ break
+ end
+
+ if twosize_products[k] ~= nil and size==1 then
+ meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k .. "_double")
+ --print(inputname .. "_technic_cnc_" .. k .. "_double")
+ break
+ end
+ end
+
+ if not technic_cnc.use_technic then
+ local result = meta:get_string("cnc_product")
+
+ if not inv:is_empty("src")
+ and minetest.registered_nodes[result]
+ and inv:room_for_item("dst", result) then
+ local srcstack = inv:get_stack("src", 1)
+ srcstack:take_item()
+ inv:set_stack("src", 1, srcstack)
+ inv:add_item("dst", result.." "..meta:get_int("cnc_multiplier"))
+ end
+ end
+end
+
+-- Action code performing the transformation
+local run = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ local inv = meta:get_inventory()
+ local eu_input = meta:get_int("LV_EU_input")
+ local machine_name = desc_tr
+ local machine_node = "technic:cnc"
+ local demand = 450
+
+ local result = meta:get_string("cnc_product")
+ if inv:is_empty("src") or
+ (not minetest.registered_nodes[result]) or
+ (not inv:room_for_item("dst", result)) then
+ technic.swap_node(pos, machine_node)
+ meta:set_string("infotext", S("%s Idle"):format(machine_name))
+ meta:set_string("cnc_product", "")
+ meta:set_int("LV_EU_demand", 0)
+ return
+ end
+
+ if eu_input < demand then
+ technic.swap_node(pos, machine_node)
+ meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
+ elseif eu_input >= demand then
+ technic.swap_node(pos, machine_node.."_active")
+ meta:set_string("infotext", S("%s Active"):format(machine_name))
+ meta:set_int("src_time", meta:get_int("src_time") + 1)
+ if meta:get_int("src_time") >= 3 then -- 3 ticks per output
+ meta:set_int("src_time", 0)
+ srcstack = inv:get_stack("src", 1)
+ srcstack:take_item()
+ inv:set_stack("src", 1, srcstack)
+ inv:add_item("dst", result.." "..meta:get_int("cnc_multiplier"))
+ end
+ end
+ meta:set_int("LV_EU_demand", demand)
+end
+
+-- The actual block inactive state
+minetest.register_node(":technic:cnc", {
+ description = desc_tr,
+ tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
+ "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"},
+ groups = {cracky=2, technic_machine=1, technic_lv=1},
+ connect_sides = {"bottom", "back", "left", "right"},
+ paramtype2 = "facedir",
+ legacy_facedir_simple = true,
+ on_construct = function(pos)
+ local meta = minetest.get_meta(pos)
+ meta:set_string("infotext", desc_tr)
+ meta:set_float("technic_power_machine", 1)
+ meta:set_string("formspec", cnc_formspec)
+ local inv = meta:get_inventory()
+ inv:set_size("src", 1)
+ inv:set_size("dst", 4)
+ end,
+ can_dig = can_dig,
+ allow_metadata_inventory_put = allow_metadata_inventory_put,
+ allow_metadata_inventory_take = allow_metadata_inventory_take,
+ allow_metadata_inventory_move = allow_metadata_inventory_move,
+ on_receive_fields = form_handler,
+ technic_run = technic_cnc.use_technic and run,
+})
+
+-- Active state block
+if technic_cnc.use_technic then
+
+ minetest.register_node(":technic:cnc_active", {
+ description = desc_tr,
+ tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
+ "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"},
+ groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1},
+ connect_sides = {"bottom", "back", "left", "right"},
+ paramtype2 = "facedir",
+ drop = "technic:cnc",
+ legacy_facedir_simple = true,
+ can_dig = can_dig,
+ allow_metadata_inventory_put = allow_metadata_inventory_put,
+ allow_metadata_inventory_take = allow_metadata_inventory_take,
+ allow_metadata_inventory_move = allow_metadata_inventory_move,
+ on_receive_fields = form_handler,
+ technic_run = run,
+ technic_disabled_machine_name = "technic:cnc",
+ })
+
+ technic.register_machine("LV", "technic:cnc", technic.receiver)
+ technic.register_machine("LV", "technic:cnc_active", technic.receiver)
+else
+ minetest.register_alias("technic:cnc_active", "technic:cnc")
+end
diff --git a/technic_cnc/cnc_api.lua b/technic_cnc/cnc_api.lua
new file mode 100644
index 0000000..c33ef49
--- /dev/null
+++ b/technic_cnc/cnc_api.lua
@@ -0,0 +1,367 @@
+-- API for the technic CNC machine
+-- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
+
+local S = technic_cnc.getter
+
+-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
+------------------------------------------------------
+
+-- Define slope boxes for the various nodes
+-------------------------------------------
+technic_cnc.programs = {
+ { suffix = "technic_cnc_stick",
+ model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
+ desc = S("Stick")
+ },
+
+ { suffix = "technic_cnc_element_end_double",
+ model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
+ desc = S("Element End Double")
+ },
+
+ { suffix = "technic_cnc_element_cross_double",
+ model = {
+ {0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
+ {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
+ {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
+ desc = S("Element Cross Double")
+ },
+
+ { suffix = "technic_cnc_element_t_double",
+ model = {
+ {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
+ {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}},
+ desc = S("Element T Double")
+ },
+
+ { suffix = "technic_cnc_element_edge_double",
+ model = {
+ {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
+ desc = S("Element Edge Double")
+ },
+
+ { suffix = "technic_cnc_element_straight_double",
+ model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
+ desc = S("Element Straight Double")
+ },
+
+ { suffix = "technic_cnc_element_end",
+ model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
+ desc = S("Element End")
+ },
+
+ { suffix = "technic_cnc_element_cross",
+ model = {
+ {0.3, -0.5, -0.3, 0.5, 0, 0.3},
+ {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
+ {-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
+ desc = S("Element Cross")
+ },
+
+ { suffix = "technic_cnc_element_t",
+ model = {
+ {-0.3, -0.5, -0.5, 0.3, 0, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0, 0.3},
+ {0.3, -0.5, -0.3, 0.5, 0, 0.3}},
+ desc = S("Element T")
+ },
+
+ { suffix = "technic_cnc_element_edge",
+ model = {
+ {-0.3, -0.5, -0.5, 0.3, 0, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
+ desc = S("Element Edge")
+ },
+
+ { suffix = "technic_cnc_element_straight",
+ model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
+ desc = S("Element Straight")
+ },
+
+ { suffix = "technic_cnc_oblate_spheroid",
+ model = "technic_cnc_oblate_spheroid.obj",
+ desc = S("Oblate spheroid"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -6/16, 4/16, -6/16, 6/16, 8/16, 6/16 },
+ { -8/16, -4/16, -8/16, 8/16, 4/16, 8/16 },
+ { -6/16, -8/16, -6/16, 6/16, -4/16, 6/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_sphere",
+ model = "technic_cnc_sphere.obj",
+ desc = S("Sphere")
+ },
+
+ { suffix = "technic_cnc_cylinder_horizontal",
+ model = "technic_cnc_cylinder_horizontal.obj",
+ desc = S("Horizontal Cylinder")
+ },
+
+ { suffix = "technic_cnc_cylinder",
+ model = "technic_cnc_cylinder.obj",
+ desc = S("Cylinder")
+ },
+
+ { suffix = "technic_cnc_twocurvededge",
+ model = "technic_cnc_two_curved_edge.obj",
+ desc = S("Two Curved Edge/Corner Block")
+ },
+
+ { suffix = "technic_cnc_onecurvededge",
+ model = "technic_cnc_one_curved_edge.obj",
+ desc = S("One Curved Edge Block")
+ },
+
+ { suffix = "technic_cnc_spike",
+ model = "technic_cnc_pyramid_spike.obj",
+ desc = S("Spike"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -2/16, 4/16, -2/16, 2/16, 8/16, 2/16 },
+ { -4/16, 0, -4/16, 4/16, 4/16, 4/16 },
+ { -6/16, -4/16, -6/16, 6/16, 0, 6/16 },
+ { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_pyramid",
+ model = "technic_cnc_pyramid.obj",
+ desc = S("Pyramid"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -2/16, -2/16, -2/16, 2/16, 0, 2/16 },
+ { -4/16, -4/16, -4/16, 4/16, -2/16, 4/16 },
+ { -6/16, -6/16, -6/16, 6/16, -4/16, 6/16 },
+ { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_inner_edge_upsdown",
+ model = "technic_cnc_innercorner_upsdown.obj",
+ desc = S("Slope Upside Down Inner Edge/Corner"),
+ sbox = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { 0.25, -0.25, -0.5, 0.5, -0.5, 0.5 },
+ { -0.5, -0.25, 0.25, 0.5, -0.5, 0.5 },
+ { 0, 0, -0.5, 0.5, -0.25, 0.5 },
+ { -0.5, 0, 0, 0.5, -0.25, 0.5 },
+ { -0.25, 0.25, -0.5, 0.5, 0, -0.25 },
+ { -0.5, 0.25, -0.25, 0.5, 0, 0.5 },
+ { -0.5, 0.5, -0.5, 0.5, 0.25, 0.5 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_edge_upsdown",
+ model = "technic_cnc_outercorner_upsdown.obj",
+ desc = S("Slope Upside Down Outer Edge/Corner"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
+ { -4/16, 4/16, -4/16, 8/16, 0, 8/16 },
+ { 0, 0, 0, 8/16, -4/16, 8/16 },
+ { 4/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_inner_edge",
+ model = "technic_cnc_innercorner.obj",
+ desc = S("Slope Inner Edge/Corner"),
+ sbox = {
+ type = "fixed",
+ fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
+ },
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
+ { -0.5, -0.25, -0.25, 0.5, 0, 0.5 },
+ { -0.25, -0.25, -0.5, 0.5, 0, -0.25 },
+ { -0.5, 0, 0, 0.5, 0.25, 0.5 },
+ { 0, 0, -0.5, 0.5, 0.25, 0.5 },
+ { -0.5, 0.25, 0.25, 0.5, 0.5, 0.5 },
+ { 0.25, 0.25, -0.5, 0.5, 0.5, 0.5 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_edge",
+ model = "technic_cnc_outercorner.obj",
+ desc = S("Slope Outer Edge/Corner"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { 4/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
+ { 0, 0, 0, 8/16, 4/16, 8/16 },
+ { -4/16, -4/16, -4/16, 8/16, 0, 8/16 },
+ { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_upsdown",
+ model = "technic_cnc_slope_upsdown.obj",
+ desc = S("Slope Upside Down"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
+ { -8/16, 4/16, -4/16, 8/16, 0, 8/16 },
+ { -8/16, 0, 0, 8/16, -4/16, 8/16 },
+ { -8/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope_lying",
+ model = "technic_cnc_slope_horizontal.obj",
+ desc = S("Slope Lying"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { 4/16, -8/16, 4/16, 8/16, 8/16, 8/16 },
+ { 0, -8/16, 0, 4/16, 8/16, 8/16 },
+ { -4/16, -8/16, -4/16, 0, 8/16, 8/16 },
+ { -8/16, -8/16, -8/16, -4/16, 8/16, 8/16 }
+ }
+ }
+ },
+
+ { suffix = "technic_cnc_slope",
+ model = "technic_cnc_slope.obj",
+ desc = S("Slope"),
+ cbox = {
+ type = "fixed",
+ fixed = {
+ { -8/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
+ { -8/16, 0, 0, 8/16, 4/16, 8/16 },
+ { -8/16, -4/16, -4/16, 8/16, 0, 8/16 },
+ { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
+ }
+ }
+ },
+
+}
+
+-- Allow disabling certain programs for some node. Default is allowing all types for all nodes
+technic_cnc.programs_disable = {
+ -- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
+ -- ...
+ ["default:dirt"] = {"technic_cnc_oblate_spheroid", "technic_cnc_slope_upsdown", "technic_cnc_edge",
+ "technic_cnc_inner_edge", "technic_cnc_slope_edge_upsdown",
+ "technic_cnc_slope_inner_edge_upsdown", "technic_cnc_stick",
+ "technic_cnc_cylinder_horizontal"}
+}
+
+-- Generic function for registering all the different node types
+function technic_cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
+
+ local dtype
+ local nodeboxdef
+ local meshdef
+
+ if type(model) ~= "string" then -- assume a nodebox if it's a table or function call
+ dtype = "nodebox"
+ nodeboxdef = {
+ type = "fixed",
+ fixed = model
+ }
+ else
+ dtype = "mesh"
+ meshdef = model
+ end
+
+ if cbox and not sbox then sbox = cbox end
+
+ minetest.register_node(":"..recipeitem.."_"..suffix, {
+ description = description,
+ drawtype = dtype,
+ node_box = nodeboxdef,
+ mesh = meshdef,
+ tiles = images,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ walkable = true,
+ groups = groups,
+ selection_box = sbox,
+ collision_box = cbox
+ })
+end
+
+-- function to iterate over all the programs the CNC machine knows
+function technic_cnc.register_all(recipeitem, groups, images, description)
+ for _, data in ipairs(technic_cnc.programs) do
+ -- Disable node creation for disabled node types for some material
+ local do_register = true
+ if technic_cnc.programs_disable[recipeitem] ~= nil then
+ for __, disable in ipairs(technic_cnc.programs_disable[recipeitem]) do
+ if disable == data.suffix then
+ do_register = false
+ end
+ end
+ end
+ -- Create the node if it passes the test
+ if do_register then
+ technic_cnc.register_program(recipeitem, data.suffix, data.model,
+ groups, images, description.." "..data.desc, data.cbox, data.sbox)
+ end
+ end
+end
+
+
+-- REGISTER NEW TECHNIC_CNC_API's PART 2: technic_cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
+-----------------------------------------------------------------------------------------------------------------------
+function technic_cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_spheroid, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end)
+
+ technic_cnc.register_slope(recipeitem, groups, images, desc_slope)
+ technic_cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying)
+ technic_cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
+ technic_cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
+ technic_cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
+ technic_cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
+ technic_cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
+ technic_cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
+ technic_cnc.register_spike(recipeitem, groups, images, desc_spike)
+ technic_cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
+ technic_cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
+ technic_cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
+ technic_cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
+ technic_cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
+ technic_cnc.register_element_straight(recipeitem, groups, images, desc_element_straight)
+ technic_cnc.register_element_edge(recipeitem, groups, images, desc_element_edge)
+ technic_cnc.register_element_t(recipeitem, groups, images, desc_element_t)
+ technic_cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
+ technic_cnc.register_element_end(recipeitem, groups, images, desc_element_end)
+end
+
+-- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
+------------------------------------------------------------------------------------------------------------
+function technic_cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
+ technic_cnc.register_stick(recipeitem, groups, images, desc_stick)
+end
+
+function technic_cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
+ technic_cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
+ technic_cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
+ technic_cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
+ technic_cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
+ technic_cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
+end
+
diff --git a/technic_cnc/cnc_materials.lua b/technic_cnc/cnc_materials.lua
new file mode 100644
index 0000000..e63c792
--- /dev/null
+++ b/technic_cnc/cnc_materials.lua
@@ -0,0 +1,131 @@
+-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
+-----------------------------------------------------------
+
+local S = technic_cnc.getter
+
+-- DIRT
+-------
+technic_cnc.register_all("default:dirt",
+ {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
+ {"default_dirt.png"},
+ S("Dirt"))
+-- (DIRT WITH) GRASS
+--------------------
+technic_cnc.register_all("default:dirt_with_grass",
+ {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
+ {"default_grass.png"},
+ S("Grassy dirt"))
+-- WOOD
+-------
+technic_cnc.register_all("default:wood",
+ {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1},
+ {"default_wood.png"},
+ S("Wooden"))
+-- STONE
+--------
+technic_cnc.register_all("default:stone",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_stone.png"},
+ S("Stone"))
+-- COBBLE
+---------
+technic_cnc.register_all("default:cobble",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_cobble.png"},
+ S("Cobble"))
+-- BRICK
+--------
+technic_cnc.register_all("default:brick",
+ {cracky=3, not_in_creative_inventory=1},
+ {"default_brick.png"},
+ S("Brick"))
+
+-- SANDSTONE
+------------
+technic_cnc.register_all("default:sandstone",
+ {crumbly=2, cracky=3, not_in_creative_inventory=1},
+ {"default_sandstone.png"},
+ S("Sandstone"))
+
+-- LEAVES
+---------
+technic_cnc.register_all("default:leaves",
+ {snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1},
+ {"default_leaves.png"},
+ S("Leaves"))
+-- TREE
+-------
+technic_cnc.register_all("default:tree",
+ {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1},
+ {"default_tree.png"},
+ S("Tree"))
+
+-- Bronze
+--------
+technic_cnc.register_all("default:bronzeblock",
+ {cracky=1, level=2, not_in_creative_inventory=1},
+ {"default_bronze_block.png"},
+ S("Bronze"))
+
+
+local steeltex = "default_steel_block.png"
+local steelname = "Steel"
+
+if technic_cnc.technic_modpath then
+ steeltex = "technic_wrought_iron_block.png"
+ steelname = "Wrought Iron"
+
+ -- Stainless Steel
+ --------
+ technic_cnc.register_all("technic:stainless_steel_block",
+ {cracky=1, level=2, not_in_creative_inventory=1},
+ {"technic_stainless_steel_block.png"},
+ S("Stainless Steel"))
+
+ -- Marble
+ ------------
+ technic_cnc.register_all("technic:marble",
+ {cracky=3, not_in_creative_inventory=1},
+ {"technic_marble.png"},
+ S("Marble"))
+
+ -- Granite
+ ------------
+ technic_cnc.register_all("technic:granite",
+ {cracky=1, not_in_creative_inventory=1},
+ {"technic_granite.png"},
+ S("Granite"))
+
+ -- Blast-resistant concrete
+ ---------------------------
+
+ technic_cnc.register_all("technic:blast_resistant_concrete",
+ {cracky=2, level=2, not_in_creative_inventory=1},
+ {"technic_blast_resistant_concrete_block.png"},
+ S("Blast-resistant concrete"))
+end
+
+-- STEEL
+---------------
+technic_cnc.register_all("default:steelblock",
+ {cracky=1, level=2, not_in_creative_inventory=1},
+ {steeltex},
+ S(steelname))
+
+-- CONCRETE AND CEMENT
+----------------------
+
+technic_cnc.register_all("basic_materials:concrete_block",
+ {cracky=2, level=2, not_in_creative_inventory=1},
+ {"basic_materials_concrete_block.png"},
+ S("Concrete"))
+
+technic_cnc.register_all("basic_materials:cement_block",
+ {cracky=2, level=2, not_in_creative_inventory=1},
+ {"basic_materials_cement_block.png"},
+ S("Cement"))
+
+technic_cnc.register_all("basic_materials:brass_block",
+ {cracky=1, level=2, not_in_creative_inventory=1},
+ {"basic_materials_brass_block.png"},
+ S("Brass block"))
diff --git a/technic_cnc/depends.txt b/technic_cnc/depends.txt
new file mode 100644
index 0000000..bdaa161
--- /dev/null
+++ b/technic_cnc/depends.txt
@@ -0,0 +1,3 @@
+default
+basic_materials
+technic?
diff --git a/technic_cnc/init.lua b/technic_cnc/init.lua
new file mode 100644
index 0000000..3c4da3e
--- /dev/null
+++ b/technic_cnc/init.lua
@@ -0,0 +1,18 @@
+local modpath = minetest.get_modpath("technic_cnc")
+
+technic_cnc = {}
+
+technic_cnc.technic_modpath = minetest.get_modpath("technic")
+
+technic_cnc.use_technic = technic_cnc.technic_modpath
+ and minetest.settings:get_bool("technic_cnc_use_technic") ~= false
+
+if rawget(_G, "intllib") then
+ technic_cnc.getter = intllib.Getter()
+else
+ technic_cnc.getter = function(s,a,...)if a==nil then return s end a={a,...}return s:gsub("(@?)@(%(?)(%d+)(%)?)",function(e,o,n,c)if e==""then return a[tonumber(n)]..(o==""and c or"")else return"@"..o..n..c end end) end
+end
+
+dofile(modpath.."/cnc.lua")
+dofile(modpath.."/cnc_api.lua")
+dofile(modpath.."/cnc_materials.lua")
diff --git a/technic_cnc/locale/de.txt b/technic_cnc/locale/de.txt
new file mode 100644
index 0000000..8b4e5ff
--- /dev/null
+++ b/technic_cnc/locale/de.txt
@@ -0,0 +1,36 @@
+## CNC
+CNC Machine = CNC-Maschine
+%s CNC Machine = %s CNC-Maschine
+Cylinder = Zylinder
+Element Cross = Halbes Kreuzelement
+Element Cross Double = Kreuzelement
+Element Edge = Halbes Eckelement
+Element Edge Double = Eckelement
+Element End = Halbes Endelement
+Element End Double = Endelement
+Element Straight = Halbes aufrechtes Element
+Element Straight Double = Aufrechtes Element
+Element T = Halbes T-Element
+Element T Double = T-Element
+Horizontal Cylinder = Liegender Zylinder
+One Curved Edge Block = Block mit einer abgerundeten Kante
+Pyramid = Pyramide
+Slope = Schraege
+Slope Edge = Schraege mit Ecke
+Slope Inner Edge = Schraege mit Innenecke
+Slope Lying = Liegende Schraege
+Slope Upside Down = Umgedrehte Schraege
+Slope Upside Down Edge = Umgedrehte Schraege mit Ecke
+Slope Upside Down Inner Edge = Umgedrehte Schraege mit Innenecke
+Sphere = Kugel
+Spike = Spitze
+Stick = Stange
+Two Curved Edge Block = Block mit zwei abgerundeten Kanten
+Brick = Ziegel:
+Cobble = Pflasterstein:
+Dirt = Erde:
+Leaves = Laub:
+Sandstone = Sandstein:
+Stone = Stein:
+Tree = Baumstamm:
+Wooden = Holz:
diff --git a/technic_cnc/locale/es.txt b/technic_cnc/locale/es.txt
new file mode 100644
index 0000000..f18fdfa
--- /dev/null
+++ b/technic_cnc/locale/es.txt
@@ -0,0 +1,35 @@
+## CNC
+CNC Machine = Maquina CNC
+%s CNC Machine = Maquina CNC %s
+Element Edge = Elemento Borde
+Tree = Arbol
+Element Cross Double = Elemento Cruz Doble
+Spike = Pica
+Element Edge Double = Elemento Borde Doble
+Two Curved Edge Block = Dos Bloques de Borde Curvados
+Pyramid = Piramide
+Slope Upside Down Inner Edge = Borde Interno de Rampa Al Reves
+Slope Upside Down Edge = Borde de Rampa Al Reves
+Element Straight Double = Elemento Doble Recto
+Sphere = Esfera
+Element End Double = Doble Fin de Elemento
+Element Straight = Recta de Elemento
+Horizontal Cylinder = Cilindro Horizontal
+Slope Inner Edge = Borde Interno de Rampa
+One Curved Edge Block = Un Bloque de Borde Curvado
+Element Cross = Cruce de Elementos
+Stick = Varita
+Element End = Fin de Elemento
+Slope Lying = Rampa en Reposo
+Slope Upside Down = Rampa Al Reves
+Slope Edge = Borde de Rampa
+Slope = Rampa
+Element T = Elemento T
+Cylinder = Cilindro
+Cobble = Adoquines
+Stone = Piedra
+Brick = Ladrillo
+Dirt = Tierra
+Sandstone = Arenisca
+Wooden = Madera
+Leaves = Hojas
diff --git a/technic_cnc/locale/it.txt b/technic_cnc/locale/it.txt
new file mode 100644
index 0000000..e50fd74
--- /dev/null
+++ b/technic_cnc/locale/it.txt
@@ -0,0 +1,36 @@
+## CNC
+CNC Machine = Tornio CNC
+%s CNC Machine = Tornio CNC %s
+Cylinder = Cilindro
+Element Cross = Elemento a croce
+Element Cross Double = Elemento a croce doppio
+Element Edge = Elemento bordo
+Element Edge Double = Elemento bordo doppio
+Element End = Elemento finale
+Element End Double = Elemento finale doppio
+Element Straight = Elemento dritto
+Element Straight Double = Elemento dritto doppio
+Element T = Elemento a T
+Element T Double = Elemento a T doppio
+Horizontal Cylinder = Cilindro orizzontale
+One Curved Edge Block = Blocco con bordo curvo
+Pyramid = Piramide
+Slope = Inclinato
+Slope Edge = Bordo inclinato
+Slope Inner Edge = Bordo interno inclinato
+Slope Lying = Pendenza bugiarda
+Slope Upside Down = Pendenza capovolta
+Slope Upside Down Edge = Bordo inclinato capovolto
+Slope Upside Down Inner Edge = Bordo interno inclinato capovolto
+Sphere = Sfera
+Spike = Spuntone
+Stick = Bastone
+Two Curved Edge Block = Blocco con bordo a doppia curva
+Brick = Mattone
+Cobble = Ciottolato
+Dirt = Terra
+Leaves = Foglie
+Sandstone = Arenaria
+Stone = Pietra
+Tree = Albero
+Wooden = Legno
diff --git a/technic_cnc/locale/template.txt b/technic_cnc/locale/template.txt
new file mode 100644
index 0000000..bf3cb08
--- /dev/null
+++ b/technic_cnc/locale/template.txt
@@ -0,0 +1,36 @@
+## CNC
+CNC Machine =
+%s CNC Machine =
+Cylinder =
+Element Cross =
+Element Cross Double =
+Element Edge =
+Element Edge Double =
+Element End =
+Element End Double =
+Element Straight =
+Element Straight Double =
+Element T =
+Element T Double =
+Horizontal Cylinder =
+One Curved Edge Block =
+Pyramid =
+Slope =
+Slope Edge =
+Slope Inner Edge =
+Slope Lying =
+Slope Upside Down =
+Slope Upside Down Edge =
+Slope Upside Down Inner Edge =
+Sphere =
+Spike =
+Stick =
+Two Curved Edge Block =
+Brick =
+Cobble =
+Dirt =
+Leaves =
+Sandstone =
+Stone =
+Tree =
+Wooden =
diff --git a/technic_cnc/models/technic_cnc_cylinder.obj b/technic_cnc/models/technic_cnc_cylinder.obj
new file mode 100644
index 0000000..2622347
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_cylinder.obj
@@ -0,0 +1,238 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_cylinder_onetexture.blend'
+# www.blender.org
+o Cylinder_Cylinder.001
+v 0.000000 -0.500000 -0.500000
+v 0.000000 0.500000 -0.500000
+v 0.097545 -0.500000 -0.490393
+v 0.097545 0.500000 -0.490393
+v 0.191342 -0.500000 -0.461940
+v 0.191342 0.500000 -0.461940
+v 0.277785 -0.500000 -0.415735
+v 0.277785 0.500000 -0.415735
+v 0.353553 -0.500000 -0.353554
+v 0.353553 0.500000 -0.353554
+v 0.415735 -0.500000 -0.277785
+v 0.415735 0.500000 -0.277785
+v 0.461940 -0.500000 -0.191342
+v 0.461940 0.500000 -0.191342
+v 0.490393 -0.500000 -0.097545
+v 0.490393 0.500000 -0.097545
+v 0.500000 -0.500000 -0.000000
+v 0.500000 0.500000 -0.000000
+v 0.490393 -0.500000 0.097545
+v 0.490393 0.500000 0.097545
+v 0.461940 -0.500000 0.191341
+v 0.461940 0.500000 0.191341
+v 0.415735 -0.500000 0.277785
+v 0.415735 0.500000 0.277785
+v 0.353553 -0.500000 0.353553
+v 0.353553 0.500000 0.353553
+v 0.277785 -0.500000 0.415735
+v 0.277785 0.500000 0.415735
+v 0.191342 -0.500000 0.461940
+v 0.191342 0.500000 0.461940
+v 0.097545 -0.500000 0.490392
+v 0.097545 0.500000 0.490392
+v -0.000000 -0.500000 0.500000
+v -0.000000 0.500000 0.500000
+v -0.097545 -0.500000 0.490392
+v -0.097545 0.500000 0.490392
+v -0.191342 -0.500000 0.461939
+v -0.191342 0.500000 0.461939
+v -0.277785 -0.500000 0.415734
+v -0.277785 0.500000 0.415734
+v -0.353554 -0.500000 0.353553
+v -0.353554 0.500000 0.353553
+v -0.415735 -0.500000 0.277785
+v -0.415735 0.500000 0.277785
+v -0.461940 -0.500000 0.191341
+v -0.461940 0.500000 0.191341
+v -0.490393 -0.500000 0.097545
+v -0.490393 0.500000 0.097545
+v -0.500000 -0.500000 -0.000001
+v -0.500000 0.500000 -0.000001
+v -0.490393 -0.500000 -0.097546
+v -0.490393 0.500000 -0.097546
+v -0.461940 -0.500000 -0.191342
+v -0.461940 0.500000 -0.191342
+v -0.415734 -0.500000 -0.277786
+v -0.415734 0.500000 -0.277786
+v -0.353553 -0.500000 -0.353554
+v -0.353553 0.500000 -0.353554
+v -0.277785 -0.500000 -0.415735
+v -0.277785 0.500000 -0.415735
+v -0.191341 -0.500000 -0.461940
+v -0.191341 0.500000 -0.461940
+v -0.097544 -0.500000 -0.490393
+v -0.097544 0.500000 -0.490393
+vt 0.499996 0.999997
+vt 0.499995 0.000005
+vt 0.562495 0.000004
+vt 0.562496 0.999997
+vt 0.624995 0.000003
+vt 0.624997 0.999997
+vt 0.687496 0.000002
+vt 0.687497 0.999998
+vt 0.749997 0.000001
+vt 0.749997 0.999998
+vt 0.812497 0.000001
+vt 0.812497 0.999998
+vt 0.874997 -0.000000
+vt 0.874997 0.999998
+vt 0.937498 -0.000000
+vt 0.937498 0.999998
+vt 0.999998 -0.000000
+vt 0.999998 0.999998
+vt 0.000005 0.999997
+vt 0.000001 0.000024
+vt 0.062500 0.000023
+vt 0.062505 0.999996
+vt 0.124999 0.000021
+vt 0.125004 0.999996
+vt 0.187498 0.000020
+vt 0.187503 0.999995
+vt 0.249997 0.000018
+vt 0.250003 0.999994
+vt 0.312497 0.000017
+vt 0.312502 0.999994
+vt 0.374997 0.000015
+vt 0.375002 0.999993
+vt 0.437496 0.000014
+vt 0.437501 0.999993
+vt 0.402487 0.009601
+vt 0.597576 0.009614
+vt 0.691371 0.038072
+vt 0.777811 0.084282
+vt 0.853576 0.146469
+vt 0.915753 0.222242
+vt 0.961953 0.308689
+vt 0.990399 0.402487
+vt 1.000000 0.500033
+vt 0.990386 0.597577
+vt 0.961928 0.691370
+vt 0.915717 0.777811
+vt 0.853531 0.853575
+vt 0.777758 0.915753
+vt 0.691312 0.961952
+vt 0.597514 0.990398
+vt 0.402424 0.990386
+vt 0.308630 0.961928
+vt 0.222188 0.915717
+vt 0.146424 0.853531
+vt 0.084248 0.777759
+vt 0.038049 0.691313
+vt 0.009602 0.597515
+vt 0.000000 0.499970
+vt 0.009614 0.402425
+vt 0.038073 0.308630
+vt 0.084283 0.222189
+vt 0.146470 0.146424
+vt 0.222243 0.084248
+vt 0.308689 0.038048
+vt 0.499927 0.999999
+vt 0.084226 0.777725
+vt 0.000000 0.499927
+vt 0.222277 0.084224
+vt 0.500074 0.000000
+vt 0.915777 0.222279
+vt 1.000000 0.500077
+vt 0.777724 0.915775
+vn 0.000000 -0.685700 -0.727900
+vn 0.000000 0.685700 -0.727900
+vn 0.142000 0.685700 -0.713900
+vn 0.142000 -0.685700 -0.713900
+vn 0.278500 0.685700 -0.672500
+vn 0.278500 -0.685700 -0.672500
+vn 0.404400 0.685700 -0.605200
+vn 0.404400 -0.685700 -0.605200
+vn 0.514700 0.685700 -0.514700
+vn 0.514700 -0.685700 -0.514700
+vn 0.605200 0.685700 -0.404400
+vn 0.605200 -0.685700 -0.404400
+vn 0.672500 0.685700 -0.278500
+vn 0.672500 -0.685700 -0.278500
+vn 0.713900 0.685700 -0.142000
+vn 0.713900 -0.685700 -0.142000
+vn 0.727900 0.685700 0.000000
+vn 0.727900 -0.685700 0.000000
+vn 0.713900 0.685700 0.142000
+vn 0.713900 -0.685700 0.142000
+vn 0.672500 0.685700 0.278500
+vn 0.672500 -0.685700 0.278500
+vn 0.605200 0.685700 0.404400
+vn 0.605200 -0.685700 0.404400
+vn 0.514700 0.685700 0.514700
+vn 0.514700 -0.685700 0.514700
+vn 0.404400 0.685700 0.605200
+vn 0.404400 -0.685700 0.605200
+vn 0.278500 0.685700 0.672500
+vn 0.278500 -0.685700 0.672500
+vn 0.142000 0.685700 0.713900
+vn 0.142000 -0.685700 0.713900
+vn 0.000000 0.685700 0.727900
+vn 0.000000 -0.685700 0.727900
+vn -0.142000 0.685700 0.713900
+vn -0.142000 -0.685700 0.713900
+vn -0.278500 0.685700 0.672500
+vn -0.278500 -0.685700 0.672500
+vn -0.404400 0.685700 0.605200
+vn -0.404400 -0.685700 0.605200
+vn -0.514700 0.685700 0.514700
+vn -0.514700 -0.685700 0.514700
+vn -0.605200 0.685700 0.404400
+vn -0.605200 -0.685700 0.404400
+vn -0.672500 0.685700 0.278500
+vn -0.672500 -0.685700 0.278500
+vn -0.713900 0.685700 0.142000
+vn -0.713900 -0.685700 0.142000
+vn -0.727900 0.685700 0.000000
+vn -0.727900 -0.685700 0.000000
+vn -0.713900 0.685700 -0.142000
+vn -0.713900 -0.685700 -0.142000
+vn -0.672500 0.685700 -0.278500
+vn -0.672500 -0.685700 -0.278500
+vn -0.605200 0.685700 -0.404400
+vn -0.605200 -0.685700 -0.404400
+vn -0.514700 0.685700 -0.514700
+vn -0.514700 -0.685700 -0.514700
+vn -0.404400 0.685700 -0.605200
+vn -0.404400 -0.685700 -0.605200
+vn -0.278500 0.685700 -0.672500
+vn -0.278500 -0.685700 -0.672500
+vn -0.142000 0.685700 -0.713900
+vn -0.142000 -0.685700 -0.713900
+s 1
+f 1/1/1 2/2/2 4/3/3 3/4/4
+f 3/4/4 4/3/3 6/5/5 5/6/6
+f 5/6/6 6/5/5 8/7/7 7/8/8
+f 7/8/8 8/7/7 10/9/9 9/10/10
+f 9/10/10 10/9/9 12/11/11 11/12/12
+f 11/12/12 12/11/11 14/13/13 13/14/14
+f 13/14/14 14/13/13 16/15/15 15/16/16
+f 15/16/16 16/15/15 18/17/17 17/18/18
+f 17/19/18 18/20/17 20/21/19 19/22/20
+f 19/22/20 20/21/19 22/23/21 21/24/22
+f 21/24/22 22/23/21 24/25/23 23/26/24
+f 23/26/24 24/25/23 26/27/25 25/28/26
+f 25/28/26 26/27/25 28/29/27 27/30/28
+f 27/30/28 28/29/27 30/31/29 29/32/30
+f 29/32/30 30/31/29 32/33/31 31/34/32
+f 31/34/32 32/33/31 34/2/33 33/1/34
+f 33/1/34 34/2/33 36/3/35 35/4/36
+f 35/4/36 36/3/35 38/5/37 37/6/38
+f 37/6/38 38/5/37 40/7/39 39/8/40
+f 39/8/40 40/7/39 42/9/41 41/10/42
+f 41/10/42 42/9/41 44/11/43 43/12/44
+f 43/12/44 44/11/43 46/13/45 45/14/46
+f 45/14/46 46/13/45 48/15/47 47/16/48
+f 47/16/48 48/15/47 50/17/49 49/18/50
+f 49/19/50 50/20/49 52/21/51 51/22/52
+f 51/22/52 52/21/51 54/23/53 53/24/54
+f 53/24/54 54/23/53 56/25/55 55/26/56
+f 55/26/56 56/25/55 58/27/57 57/28/58
+f 57/28/58 58/27/57 60/29/59 59/30/60
+f 59/30/60 60/29/59 62/31/61 61/32/62
+f 4/35/3 2/2/2 64/36/63 62/37/61 60/38/59 58/39/57 56/40/55 54/41/53 52/42/51 50/43/49 48/44/47 46/45/45 44/46/43 42/47/41 40/48/39 38/49/37 36/50/35 34/1/33 32/51/31 30/52/29 28/53/27 26/54/25 24/55/23 22/56/21 20/57/19 18/58/17 16/59/15 14/60/13 12/61/11 10/62/9 8/63/7 6/64/5
+f 63/34/64 64/33/63 2/2/2 1/1/1
+f 61/32/62 62/31/61 64/33/63 63/34/64
+f 1/65/1 3/51/4 5/52/6 7/53/8 9/54/10 11/66/12 13/56/14 15/57/16 17/67/18 19/59/20 21/60/22 23/61/24 25/62/26 27/68/28 29/64/30 31/35/32 33/69/34 35/36/36 37/37/38 39/38/40 41/39/42 43/70/44 45/41/46 47/42/48 49/71/50 51/44/52 53/45/54 55/46/56 57/47/58 59/72/60 61/49/62 63/50/64
diff --git a/technic_cnc/models/technic_cnc_cylinder_horizontal.obj b/technic_cnc/models/technic_cnc_cylinder_horizontal.obj
new file mode 100644
index 0000000..d00b1d6
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_cylinder_horizontal.obj
@@ -0,0 +1,238 @@
+# Blender v2.73 (sub 0) OBJ File: 'technic-cylinder-horizontal.blend'
+# www.blender.org
+o Cylinder_Cylinder.001
+v 0.500000 0.000000 -0.500000
+v -0.500000 0.000000 -0.500000
+v 0.500000 0.097545 -0.490393
+v -0.500000 0.097545 -0.490393
+v 0.500000 0.191342 -0.461940
+v -0.500000 0.191342 -0.461940
+v 0.500000 0.277785 -0.415735
+v -0.500000 0.277785 -0.415735
+v 0.500000 0.353553 -0.353553
+v -0.500000 0.353553 -0.353554
+v 0.500000 0.415735 -0.277785
+v -0.500000 0.415735 -0.277785
+v 0.500000 0.461940 -0.191342
+v -0.500000 0.461940 -0.191342
+v 0.500000 0.490393 -0.097545
+v -0.500000 0.490393 -0.097545
+v 0.500000 0.500000 -0.000000
+v -0.500000 0.500000 -0.000000
+v 0.500000 0.490393 0.097545
+v -0.500000 0.490393 0.097545
+v 0.500000 0.461940 0.191342
+v -0.500000 0.461940 0.191341
+v 0.500000 0.415735 0.277785
+v -0.500000 0.415735 0.277785
+v 0.500000 0.353553 0.353553
+v -0.500000 0.353553 0.353553
+v 0.500000 0.277785 0.415735
+v -0.500000 0.277785 0.415735
+v 0.500000 0.191342 0.461940
+v -0.500000 0.191342 0.461940
+v 0.500000 0.097545 0.490393
+v -0.500000 0.097545 0.490392
+v 0.500000 -0.000000 0.500000
+v -0.500000 -0.000000 0.500000
+v 0.500000 -0.097546 0.490392
+v -0.500000 -0.097545 0.490392
+v 0.500000 -0.191342 0.461940
+v -0.500000 -0.191342 0.461939
+v 0.500000 -0.277785 0.415734
+v -0.500000 -0.277785 0.415734
+v 0.500000 -0.353554 0.353553
+v -0.500000 -0.353554 0.353553
+v 0.500000 -0.415735 0.277785
+v -0.500000 -0.415735 0.277785
+v 0.500000 -0.461940 0.191341
+v -0.500000 -0.461940 0.191341
+v 0.500000 -0.490393 0.097545
+v -0.500000 -0.490393 0.097544
+v 0.500000 -0.500000 -0.000001
+v -0.500000 -0.500000 -0.000001
+v 0.500000 -0.490393 -0.097546
+v -0.500000 -0.490393 -0.097546
+v 0.500000 -0.461940 -0.191342
+v -0.500000 -0.461940 -0.191343
+v 0.500000 -0.415734 -0.277786
+v -0.500000 -0.415734 -0.277786
+v 0.500000 -0.353553 -0.353554
+v -0.500000 -0.353553 -0.353554
+v 0.500000 -0.277785 -0.415735
+v -0.500000 -0.277784 -0.415735
+v 0.500000 -0.191341 -0.461940
+v -0.500000 -0.191341 -0.461940
+v 0.500000 -0.097544 -0.490393
+v -0.500000 -0.097544 -0.490393
+vt 0.000003 0.499996
+vt 0.999995 0.499995
+vt 0.999996 0.562495
+vt 0.000002 0.562496
+vt 0.999997 0.624995
+vt 0.000003 0.624996
+vt 0.999998 0.687496
+vt 0.000002 0.687496
+vt 0.999999 0.749997
+vt 0.000002 0.749996
+vt 0.999999 0.812497
+vt 0.000002 0.812497
+vt 1.000000 0.874997
+vt 0.000001 0.874997
+vt 1.000000 0.937498
+vt 0.000001 0.937497
+vt 1.000000 0.999998
+vt 0.000001 0.999998
+vt 0.000003 0.000005
+vt 0.999976 0.000001
+vt 0.999977 0.062500
+vt 0.000003 0.062505
+vt 0.999978 0.124999
+vt 0.000004 0.125004
+vt 0.999980 0.187498
+vt 0.000005 0.187503
+vt 0.999982 0.249997
+vt 0.000005 0.250003
+vt 0.999983 0.312497
+vt 0.000006 0.312502
+vt 0.999985 0.374997
+vt 0.000007 0.375001
+vt 0.999986 0.437496
+vt 0.000007 0.437501
+vt 0.009601 0.597512
+vt 0.009614 0.402424
+vt 0.038072 0.308628
+vt 0.084283 0.222189
+vt 0.146469 0.146424
+vt 0.222242 0.084247
+vt 0.308689 0.038047
+vt 0.402487 0.009601
+vt 0.500033 -0.000000
+vt 0.597577 0.009613
+vt 0.691371 0.038072
+vt 0.777811 0.084283
+vt 0.853575 0.146469
+vt 0.915753 0.222242
+vt 0.961952 0.308688
+vt 0.990398 0.402486
+vt 0.990386 0.597576
+vt 0.961928 0.691370
+vt 0.915717 0.777812
+vt 0.853531 0.853576
+vt 0.777759 0.915752
+vt 0.691313 0.961951
+vt 0.597515 0.990398
+vt 0.499970 1.000000
+vt 0.402425 0.990386
+vt 0.308630 0.961927
+vt 0.222189 0.915717
+vt 0.146424 0.853530
+vt 0.084248 0.777757
+vt 0.038048 0.691311
+vt 0.999999 0.500073
+vt 0.777724 0.915774
+vt 0.499927 0.999999
+vt 0.084224 0.777723
+vt 0.000000 0.499925
+vt 0.222279 0.084223
+vt 0.500078 -0.000000
+vt 0.915775 0.222276
+vn 0.685700 0.000000 -0.727900
+vn -0.685700 0.000000 -0.727900
+vn -0.685700 0.142000 -0.713900
+vn 0.685700 0.142000 -0.713900
+vn -0.685700 0.278500 -0.672500
+vn 0.685700 0.278500 -0.672500
+vn -0.685700 0.404400 -0.605200
+vn 0.685700 0.404400 -0.605200
+vn -0.685700 0.514700 -0.514700
+vn 0.685700 0.514700 -0.514700
+vn -0.685700 0.605200 -0.404400
+vn 0.685700 0.605200 -0.404400
+vn -0.685700 0.672500 -0.278500
+vn 0.685700 0.672500 -0.278500
+vn -0.685700 0.713900 -0.142000
+vn 0.685700 0.713900 -0.142000
+vn -0.685700 0.727900 0.000000
+vn 0.685700 0.727900 0.000000
+vn -0.685700 0.713900 0.142000
+vn 0.685700 0.713900 0.142000
+vn -0.685700 0.672500 0.278500
+vn 0.685700 0.672500 0.278500
+vn -0.685700 0.605200 0.404400
+vn 0.685700 0.605200 0.404400
+vn -0.685700 0.514700 0.514700
+vn 0.685700 0.514700 0.514700
+vn -0.685700 0.404400 0.605200
+vn 0.685700 0.404400 0.605200
+vn -0.685700 0.278500 0.672500
+vn 0.685700 0.278500 0.672500
+vn -0.685700 0.142000 0.713900
+vn 0.685700 0.142000 0.713900
+vn -0.685700 0.000000 0.727900
+vn 0.685700 0.000000 0.727900
+vn -0.685700 -0.142000 0.713900
+vn 0.685700 -0.142000 0.713900
+vn -0.685700 -0.278500 0.672500
+vn 0.685700 -0.278500 0.672500
+vn -0.685700 -0.404400 0.605200
+vn 0.685700 -0.404400 0.605200
+vn -0.685700 -0.514700 0.514700
+vn 0.685700 -0.514700 0.514700
+vn -0.685700 -0.605200 0.404400
+vn 0.685700 -0.605200 0.404400
+vn -0.685700 -0.672500 0.278500
+vn 0.685700 -0.672500 0.278500
+vn -0.685700 -0.713900 0.142000
+vn 0.685700 -0.713900 0.142000
+vn -0.685700 -0.727900 0.000000
+vn 0.685700 -0.727900 0.000000
+vn -0.685700 -0.713900 -0.142000
+vn 0.685700 -0.713900 -0.142000
+vn -0.685700 -0.672500 -0.278500
+vn 0.685700 -0.672500 -0.278500
+vn -0.685700 -0.605200 -0.404400
+vn 0.685700 -0.605200 -0.404400
+vn -0.685700 -0.514700 -0.514700
+vn 0.685700 -0.514700 -0.514700
+vn -0.685700 -0.404400 -0.605200
+vn 0.685700 -0.404400 -0.605200
+vn -0.685700 -0.278500 -0.672500
+vn 0.685700 -0.278500 -0.672500
+vn -0.685700 -0.142000 -0.713900
+vn 0.685700 -0.142000 -0.713900
+s 1
+f 1/1/1 2/2/2 4/3/3 3/4/4
+f 3/4/4 4/3/3 6/5/5 5/6/6
+f 5/6/6 6/5/5 8/7/7 7/8/8
+f 7/8/8 8/7/7 10/9/9 9/10/10
+f 9/10/10 10/9/9 12/11/11 11/12/12
+f 11/12/12 12/11/11 14/13/13 13/14/14
+f 13/14/14 14/13/13 16/15/15 15/16/16
+f 15/16/16 16/15/15 18/17/17 17/18/18
+f 17/19/18 18/20/17 20/21/19 19/22/20
+f 19/22/20 20/21/19 22/23/21 21/24/22
+f 21/24/22 22/23/21 24/25/23 23/26/24
+f 23/26/24 24/25/23 26/27/25 25/28/26
+f 25/28/26 26/27/25 28/29/27 27/30/28
+f 27/30/28 28/29/27 30/31/29 29/32/30
+f 29/32/30 30/31/29 32/33/31 31/34/32
+f 31/34/32 32/33/31 34/2/33 33/1/34
+f 33/1/34 34/2/33 36/3/35 35/4/36
+f 35/4/36 36/3/35 38/5/37 37/6/38
+f 37/6/38 38/5/37 40/7/39 39/8/40
+f 39/8/40 40/7/39 42/9/41 41/10/42
+f 41/10/42 42/9/41 44/11/43 43/12/44
+f 43/12/44 44/11/43 46/13/45 45/14/46
+f 45/14/46 46/13/45 48/15/47 47/16/48
+f 47/16/48 48/15/47 50/17/49 49/18/50
+f 49/19/50 50/20/49 52/21/51 51/22/52
+f 51/22/52 52/21/51 54/23/53 53/24/54
+f 53/24/54 54/23/53 56/25/55 55/26/56
+f 55/26/56 56/25/55 58/27/57 57/28/58
+f 57/28/58 58/27/57 60/29/59 59/30/60
+f 59/30/60 60/29/59 62/31/61 61/32/62
+f 4/35/3 2/1/2 64/36/63 62/37/61 60/38/59 58/39/57 56/40/55 54/41/53 52/42/51 50/43/49 48/44/47 46/45/45 44/46/43 42/47/41 40/48/39 38/49/37 36/50/35 34/2/33 32/51/31 30/52/29 28/53/27 26/54/25 24/55/23 22/56/21 20/57/19 18/58/17 16/59/15 14/60/13 12/61/11 10/62/9 8/63/7 6/64/5
+f 63/34/64 64/33/63 2/2/2 1/1/1
+f 61/32/62 62/31/61 64/33/63 63/34/64
+f 1/65/1 3/51/4 5/52/6 7/53/8 9/54/10 11/66/12 13/56/14 15/57/16 17/67/18 19/59/20 21/60/22 23/61/24 25/62/26 27/68/28 29/64/30 31/35/32 33/69/34 35/36/36 37/37/38 39/38/40 41/39/42 43/70/44 45/41/46 47/42/48 49/71/50 51/44/52 53/45/54 55/46/56 57/47/58 59/72/60 61/49/62 63/50/64
diff --git a/technic_cnc/models/technic_cnc_innercorner.obj b/technic_cnc/models/technic_cnc_innercorner.obj
new file mode 100644
index 0000000..c962aeb
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_innercorner.obj
@@ -0,0 +1,33 @@
+# Blender v2.73 (sub 0) OBJ File: 'technic-icorner.blend'
+# www.blender.org
+o Cube_Cube.000
+v -0.500000 0.500000 0.500000
+v -0.500000 0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 -0.500000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vn -0.000000 -0.000000 1.000000
+vn -0.000000 -0.000000 -1.000000
+vn 0.707100 0.707100 -0.000000
+vn 1.000000 0.000000 -0.000000
+vn 0.000000 -1.000000 -0.000000
+vn -1.000000 -0.000000 -0.000000
+vn 0.000000 0.707100 -0.707100
+s off
+f 6/1/1 1/2/1 7/3/1 8/4/1
+f 2/1/2 5/3/2 3/4/2
+f 2/1/3 1/2/3 5/4/3
+f 6/2/4 8/3/4 9/4/4
+f 9/1/5 8/2/5 7/3/5 3/4/5
+f 3/3/6 7/4/6 1/1/6 2/2/6
+f 1/1/7 6/2/7 9/3/7
+l 1 4
+l 3 4
diff --git a/technic_cnc/models/technic_cnc_innercorner_upsdown.obj b/technic_cnc/models/technic_cnc_innercorner_upsdown.obj
new file mode 100644
index 0000000..68eb560
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_innercorner_upsdown.obj
@@ -0,0 +1,33 @@
+# Blender v2.73 (sub 0) OBJ File: 'technic-icorner-upsdown.blend'
+# www.blender.org
+o Cube_Cube.000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 0.500000 0.500000
+v -0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn -1.000000 0.000000 0.000000
+vn 1.000000 -0.000000 0.000000
+vn -0.000000 -0.707100 -0.707100
+vn -0.000000 0.000000 -1.000000
+vn 0.000000 1.000000 0.000000
+vn 0.000000 -0.000000 1.000000
+vn 0.707100 -0.707100 -0.000000
+s off
+f 6/1/1 1/2/1 7/3/1 8/4/1
+f 2/1/2 5/3/2 3/4/2
+f 2/1/3 1/2/3 5/4/3
+f 6/2/4 8/3/4 9/4/4
+f 9/1/5 8/2/5 7/3/5 3/4/5
+f 3/3/6 7/4/6 1/1/6 2/2/6
+f 1/1/7 6/2/7 9/3/7
+l 1 4
+l 3 4
diff --git a/technic_cnc/models/technic_cnc_oblate_spheroid.obj b/technic_cnc/models/technic_cnc_oblate_spheroid.obj
new file mode 100644
index 0000000..e949f5b
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_oblate_spheroid.obj
@@ -0,0 +1,300 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_blob_onetexture.blend'
+# www.blender.org
+o Cube
+v 0.213679 -0.450000 -0.213679
+v -0.213679 -0.450000 0.213680
+v 0.213680 -0.450000 0.213680
+v -0.213679 -0.450000 -0.213679
+v 0.213679 0.450000 -0.213679
+v -0.213679 0.450000 -0.213679
+v 0.213679 0.450000 0.213680
+v 0.500000 -0.000003 0.500000
+v 0.277785 -0.415735 0.277785
+v -0.277785 -0.415735 0.277785
+v 0.353553 -0.353554 0.353553
+v -0.353553 -0.353554 0.353553
+v -0.500000 -0.000002 0.500000
+v 0.415735 -0.277786 0.415735
+v -0.277785 0.415735 0.277785
+v 0.277785 0.415735 0.277785
+v -0.415735 -0.277785 0.415735
+v 0.353554 0.353553 0.353554
+v -0.500000 -0.000002 -0.499983
+v 0.461940 -0.191342 0.461940
+v -0.461940 -0.191342 0.461940
+v -0.353553 0.353553 0.353554
+v 0.490393 -0.097546 0.490393
+v 0.500000 -0.000002 -0.500000
+v 0.490393 0.097545 -0.490392
+v 0.490393 0.097545 0.490393
+v -0.490393 -0.097546 0.490393
+v 0.490393 -0.097545 -0.490393
+v 0.461940 0.191341 0.461940
+v -0.461940 0.191341 0.461940
+v 0.461940 0.191342 -0.461940
+v -0.490393 0.097545 0.490393
+v 0.415735 0.277785 0.415735
+v -0.490393 0.097545 -0.490392
+v -0.415735 0.277785 0.415735
+v 0.461940 -0.191341 -0.461940
+v 0.415735 0.277785 -0.415735
+v -0.461940 0.191341 -0.461940
+v -0.415735 0.277785 -0.415735
+v 0.415735 -0.277785 -0.415735
+v -0.490393 -0.097546 -0.490392
+v 0.353553 0.353553 -0.353553
+v -0.213679 0.450000 0.213680
+v -0.353553 0.353553 -0.353553
+v 0.277785 0.415735 -0.277785
+v -0.461940 -0.191342 -0.461939
+v 0.353554 -0.353553 -0.353554
+v -0.277785 0.415735 -0.277785
+v -0.415735 -0.277785 -0.415734
+v 0.277786 -0.415735 -0.277785
+v -0.353553 -0.353554 -0.353553
+v -0.277785 -0.415735 -0.277784
+vt 0.038487 0.679029
+vt 0.010047 0.589789
+vt 0.990397 0.589790
+vt 0.915772 0.767073
+vt 0.084671 0.767071
+vt 0.961957 0.679029
+vt 0.852473 0.146294
+vt 0.914576 0.232749
+vt 0.084146 0.232744
+vt 0.712776 0.000003
+vt 0.221926 0.061588
+vt 0.285951 0.000000
+vt 0.285945 0.999818
+vt 0.221920 0.938229
+vt 0.712771 0.999818
+vt 0.009578 0.589789
+vt 0.989138 0.589792
+vt 0.960721 0.679031
+vt 0.286638 0.000000
+vt 0.777884 0.061589
+vt 0.222561 0.061589
+vt 0.777608 0.938229
+vt 0.222164 0.938229
+vt 0.146413 0.853527
+vt 0.286255 0.999818
+vt 0.713517 0.999818
+vt 0.776800 0.061592
+vt 0.146251 0.146290
+vt 0.000000 0.499907
+vt 0.989139 0.410032
+vt 0.998734 0.499910
+vt 0.853618 0.146291
+vt 0.915772 0.232746
+vt 0.146826 0.146290
+vt 0.961957 0.320789
+vt 0.084672 0.232745
+vt 0.990397 0.410029
+vt 0.038487 0.320789
+vt 0.776796 0.938230
+vt 0.777790 0.938229
+vt 0.146467 0.853526
+vt 0.853556 0.853527
+vt 0.146825 0.853526
+vt 1.000000 0.499907
+vt 0.010047 0.410028
+vt 0.146246 0.853527
+vt 0.222559 0.938228
+vt 0.777882 0.938230
+vt 0.915737 0.767073
+vt 0.084287 0.767072
+vt 0.038083 0.679029
+vt 0.961941 0.679029
+vt 0.037995 0.679029
+vt 0.960723 0.320792
+vt 0.037998 0.320787
+vt 0.009580 0.410028
+vt 0.990167 0.589790
+vt 0.999772 0.499909
+vt 0.961721 0.679029
+vt 0.084246 0.767072
+vt 0.915526 0.767072
+vt 0.853359 0.853527
+vt 0.914573 0.767074
+vt 0.084142 0.767072
+vt 0.852470 0.853528
+vt 0.777609 0.061590
+vt 0.853360 0.146293
+vt 0.222166 0.061589
+vt 0.146414 0.146291
+vt 0.915527 0.232748
+vt 0.084247 0.232746
+vt 0.961721 0.320791
+vt 0.038052 0.320789
+vt 0.990167 0.410031
+vt 0.713686 0.999818
+vt 0.749950 0.250050
+vt 0.749950 0.749950
+vt 0.250050 0.749950
+vt 0.250050 0.250050
+vt 0.713807 0.000000
+vt 0.286258 0.000000
+vt 0.713519 0.000001
+vt 0.250050 0.250050
+vt 0.749950 0.250050
+vt 0.749950 0.749950
+vt 0.286636 0.999817
+vt 0.777791 0.061589
+vt 0.146467 0.146291
+vt 0.084287 0.232745
+vt 0.915737 0.232746
+vt 0.961941 0.320789
+vt 0.000444 0.499907
+vt 0.713687 0.000000
+vt 0.713805 0.999818
+vn -0.620400 0.479600 0.620400
+vn -0.683900 0.254100 0.683900
+vn 0.683900 0.254100 0.683900
+vn 0.531000 0.660300 0.531000
+vn -0.531000 0.660300 0.531000
+vn 0.620400 0.479600 0.620400
+vn -0.429700 -0.794100 0.429700
+vn -0.531000 -0.660300 0.531000
+vn -0.531000 -0.660300 -0.531000
+vn -0.185700 -0.964900 0.185700
+vn -0.325800 -0.887500 -0.325800
+vn -0.185700 -0.964900 -0.185700
+vn -0.185700 0.964900 -0.185700
+vn -0.325800 0.887500 -0.325800
+vn -0.185700 0.964900 0.185700
+vn -0.683900 0.254000 -0.683900
+vn 0.325800 -0.887500 0.325800
+vn -0.325800 -0.887500 0.325800
+vn 0.325800 0.887500 -0.325800
+vn 0.429700 0.794100 -0.429700
+vn 0.185700 0.964900 -0.185700
+vn -0.429700 -0.794100 -0.429700
+vn -0.707100 0.000000 -0.707100
+vn -0.683900 -0.254100 0.683900
+vn -0.707100 0.000000 0.707100
+vn 0.429700 -0.794100 0.429700
+vn 0.531000 -0.660300 0.531000
+vn 0.620400 -0.479600 0.620400
+vn 0.683900 -0.254100 0.683900
+vn -0.620400 -0.479600 0.620400
+vn -0.325800 0.887500 0.325800
+vn 0.185700 0.964900 0.185700
+vn 0.325800 0.887500 0.325800
+vn 0.429700 0.794100 0.429700
+vn -0.429700 0.794100 0.429700
+vn 0.707100 0.000000 0.707100
+vn -0.429700 0.794100 -0.429700
+vn 0.531000 0.660300 -0.531000
+vn 0.683900 0.254100 -0.683900
+vn 0.707100 0.000000 -0.707100
+vn 0.620400 0.479600 -0.620400
+vn -0.620400 0.479600 -0.620400
+vn -0.620400 -0.479600 -0.620400
+vn -0.683900 -0.254000 -0.683900
+vn 0.683900 -0.254100 -0.683900
+vn -0.531000 0.660300 -0.531000
+vn 0.325800 -0.887500 -0.325800
+vn 0.429700 -0.794100 -0.429700
+vn 0.531000 -0.660300 -0.531000
+vn 0.620400 -0.479600 -0.620400
+vn 0.185700 -0.964900 -0.185700
+vn 0.185700 -0.964900 0.185700
+s 1
+f 30/1/1 32/2/2 26/3/3
+f 33/4/4 35/5/5 29/6/6
+f 12/7/7 17/8/8 49/9/9
+f 2/10/10 52/11/11 4/12/12
+f 6/13/13 48/14/14 43/15/15
+f 34/16/16 32/17/2 30/18/1
+f 2/19/10 9/20/17 10/21/18
+f 48/22/14 45/23/19 42/24/20
+f 5/25/21 45/23/19 6/26/13
+f 10/27/18 12/7/7 51/28/22
+f 19/29/23 27/30/24 13/31/25
+f 9/20/17 11/32/26 10/21/18
+f 11/32/26 14/33/27 12/34/7
+f 14/33/27 20/35/28 17/36/8
+f 20/35/28 23/37/29 21/38/30
+f 43/15/15 48/14/14 15/39/31
+f 7/25/32 16/23/33 45/40/19
+f 18/41/34 42/42/20 45/40/19
+f 29/6/6 30/1/1 26/3/3
+f 22/43/35 33/4/4 18/42/34
+f 26/3/3 32/2/2 8/44/36
+f 8/44/36 27/45/24 23/37/29
+f 11/32/26 12/34/7 10/21/18
+f 14/33/27 17/36/8 12/34/7
+f 20/35/28 21/38/30 17/36/8
+f 23/37/29 27/45/24 21/38/30
+f 10/27/18 52/11/11 2/10/10
+f 15/39/31 48/14/14 44/46/37
+f 22/43/35 35/5/5 33/4/4
+f 15/47/31 22/43/35 16/48/33
+f 37/49/38 42/42/20 18/41/34
+f 33/50/4 29/51/6 37/49/38
+f 8/29/36 25/3/39 26/16/3
+f 24/44/40 25/3/39 8/29/36
+f 29/51/6 26/16/3 31/52/41
+f 26/16/3 25/3/39 31/52/41
+f 29/51/6 31/52/41 37/49/38
+f 38/53/42 34/16/16 30/18/1
+f 19/29/23 32/17/2 34/16/16
+f 13/31/25 32/17/2 19/29/23
+f 17/8/8 21/54/30 46/55/43
+f 21/54/30 27/30/24 41/56/44
+f 8/29/36 28/37/45 24/44/40
+f 34/57/16 25/16/39 19/58/23
+f 38/59/42 31/51/41 34/57/16
+f 31/51/41 25/16/39 34/57/16
+f 37/60/38 38/59/42 39/61/46
+f 37/60/38 31/51/41 38/59/42
+f 44/62/37 42/24/20 37/60/38
+f 38/53/42 30/18/1 35/63/5
+f 39/64/46 35/63/5 22/65/35
+f 52/66/11 51/67/22 50/68/47
+f 51/67/22 47/69/48 50/68/47
+f 51/67/22 49/70/9 47/69/48
+f 49/70/9 40/71/49 47/69/48
+f 49/70/9 46/72/43 40/71/49
+f 46/72/43 36/73/50 40/71/49
+f 19/58/23 28/56/45 41/74/44
+f 46/72/43 41/74/44 36/73/50
+f 41/74/44 28/56/45 36/73/50
+f 22/43/35 18/42/34 16/48/33
+f 5/75/21 7/25/32 45/40/19
+f 2/76/10 4/77/12 1/78/51 3/79/52
+f 44/62/37 48/22/14 42/24/20
+f 35/5/5 30/1/1 29/6/6
+f 3/80/52 9/20/17 2/19/10
+f 45/23/19 48/22/14 6/26/13
+f 1/81/51 52/66/11 50/68/47
+f 39/61/46 44/62/37 37/60/38
+f 52/66/11 1/81/51 4/82/12
+f 24/29/40 28/56/45 19/58/23
+f 7/78/32 5/83/21 6/84/13 43/85/15
+f 24/29/40 19/58/23 25/16/39
+f 15/47/31 16/48/33 43/86/15
+f 22/65/35 44/46/37 39/64/46
+f 39/64/46 38/53/42 35/63/5
+f 41/56/44 27/30/24 19/29/23
+f 46/55/43 21/54/30 41/56/44
+f 49/9/9 17/8/8 46/55/43
+f 51/28/22 12/7/7 49/9/9
+f 52/11/11 10/27/18 51/28/22
+f 9/68/17 50/87/47 11/88/26
+f 50/87/47 47/32/48 11/88/26
+f 11/88/26 47/32/48 14/89/27
+f 47/32/48 40/90/49 14/89/27
+f 14/89/27 40/90/49 20/73/28
+f 40/90/49 36/91/50 20/73/28
+f 23/56/29 28/37/45 8/29/36
+f 20/73/28 36/91/50 23/56/29
+f 36/91/50 28/37/45 23/56/29
+f 13/92/25 8/44/36 32/2/2
+f 50/87/47 9/68/17 1/93/51
+f 13/92/25 27/45/24 8/44/36
+f 16/23/33 18/41/34 45/40/19
+f 22/65/35 15/39/31 44/46/37
+f 9/68/17 3/81/52 1/93/51
+f 33/50/4 37/49/38 18/41/34
+f 43/86/15 16/48/33 7/94/32
diff --git a/technic_cnc/models/technic_cnc_one_curved_edge.obj b/technic_cnc/models/technic_cnc_one_curved_edge.obj
new file mode 100644
index 0000000..bb82040
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_one_curved_edge.obj
@@ -0,0 +1,132 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_onetexture.blend'
+# www.blender.org
+o Cylinder
+v -0.500000 0.490393 -0.097545
+v 0.500000 0.490393 -0.097545
+v -0.500000 0.461940 -0.191342
+v 0.500000 0.461940 -0.191342
+v -0.500000 0.415735 -0.277785
+v 0.500000 0.415735 -0.277785
+v -0.500000 0.353553 -0.353553
+v 0.500000 0.353553 -0.353553
+v -0.500000 0.277785 -0.415735
+v 0.500000 0.277785 -0.415735
+v -0.500000 0.191342 -0.461940
+v 0.500000 0.191342 -0.461940
+v -0.500000 0.097545 -0.490393
+v 0.500000 0.097545 -0.490393
+v 0.500000 -0.000000 -0.500000
+v 0.500000 0.490393 -0.097545
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 0.000000 -0.500000
+v -0.500000 0.500000 -0.000000
+v 0.500000 0.500000 0.000000
+v -0.500000 0.490393 -0.097545
+v -0.500000 0.461940 -0.191342
+v -0.500000 0.415735 -0.277785
+v -0.500000 0.353553 -0.353553
+v -0.500000 0.277785 -0.415735
+v -0.500000 0.191342 -0.461940
+v -0.500000 0.097545 -0.490393
+v -0.500000 0.000000 0.000000
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 0.500000 0.500000
+v -0.500000 0.000000 -0.500000
+v -0.500000 0.500000 -0.000000
+v 0.500000 0.461940 -0.191342
+v 0.500000 0.415735 -0.277785
+v 0.500000 0.353553 -0.353553
+v 0.500000 0.277785 -0.415735
+v 0.500000 0.191342 -0.461940
+v 0.500000 0.097545 -0.490393
+v 0.500000 -0.000000 -0.500000
+v 0.500000 -0.000000 -0.000000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v 0.500000 0.500000 0.000000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 0.500000
+vt 1.000000 0.000000
+vt 1.000000 0.500000
+vt 0.500001 0.500000
+vt 0.500001 1.000000
+vt 0.000003 1.000000
+vt 0.000003 0.000000
+vt 0.597546 0.990393
+vt 0.691342 0.961940
+vt 1.000000 1.000000
+vt 0.990393 0.597545
+vt 0.961940 0.691341
+vt 0.777786 0.915735
+vt 0.853554 0.853553
+vt 0.915735 0.777785
+vt 0.146446 0.853552
+vt 0.084265 0.777783
+vt 0.038060 0.691340
+vt 0.308658 0.961938
+vt 0.222214 0.915733
+vt 0.000000 0.499999
+vt 0.402454 0.990391
+vt 0.009607 0.597544
+vt 1.000000 0.375000
+vt 0.000000 0.375000
+vt 0.000000 0.250000
+vt 1.000000 0.250000
+vt 0.000000 0.125000
+vt 1.000000 0.125000
+vt 0.000000 0.875000
+vt 1.000000 0.875000
+vt 0.000000 0.750000
+vt 1.000000 0.750000
+vt 0.000000 0.625000
+vt 1.000000 0.625000
+vn 1.000000 -0.000000 0.000000
+vn -0.000000 0.000000 1.000000
+vn -0.000000 -1.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.980800 -0.195100
+vn 0.000000 0.923900 -0.382700
+vn -0.000000 0.831500 -0.555600
+vn -0.000000 0.707100 -0.707100
+vn -0.000000 0.555600 -0.831500
+vn -0.000000 0.382700 -0.923900
+vn -0.000000 0.195100 -0.980800
+vn 0.000000 1.000000 -0.000000
+vn 0.000000 0.998800 -0.049100
+vn -0.000000 0.049100 -0.998800
+vn -0.000000 0.000000 -1.000000
+s off
+f 46/1/1 44/2/1 45/3/1 49/4/1 48/5/1 47/6/1
+f 16/7/1 49/4/1 45/3/1 38/8/1
+f 55/5/2 53/6/2 54/1/2 56/9/2
+f 43/10/1 42/11/1 45/3/1 44/2/1
+f 39/12/1 38/8/1 45/3/1 40/13/1
+f 41/14/1 40/13/1 45/3/1 42/11/1
+f 50/9/3 51/5/3 52/6/3 17/1/3
+f 28/15/4 29/16/4 30/17/4 32/3/4
+f 26/18/4 27/19/4 28/15/4 32/3/4
+f 35/9/4 37/4/4 32/3/4 36/20/4 34/6/4 33/1/4
+f 37/4/4 25/21/4 26/18/4 32/3/4
+f 30/17/4 31/22/4 36/20/4 32/3/4
+s 1
+f 1/23/5 2/24/5 4/25/6 3/26/6
+f 3/26/6 4/25/6 6/27/7 5/28/7
+f 5/28/7 6/27/7 8/6/8 7/1/8
+f 7/9/8 8/5/8 10/29/9 9/30/9
+f 9/30/9 10/29/9 12/31/10 11/32/10
+f 11/32/10 12/31/10 14/33/11 13/34/11
+f 21/5/12 24/20/13 23/2/13 20/9/12
+f 13/34/11 14/33/11 15/20/14 22/2/14
+f 23/2/13 24/20/13 2/24/5 1/23/5
+f 18/1/15 22/2/14 15/20/14 19/6/15
diff --git a/technic_cnc/models/technic_cnc_outercorner.obj b/technic_cnc/models/technic_cnc_outercorner.obj
new file mode 100644
index 0000000..60ccae6
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_outercorner.obj
@@ -0,0 +1,23 @@
+# Blender v2.73 (sub 0) OBJ File: 'technic-ocorner.blend'
+# www.blender.org
+o Cube_Cube.002
+v -0.500000 0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vn 0.000000 -1.000000 -0.000000
+vn 0.000000 0.000000 1.000000
+vn -1.000000 -0.000000 0.000000
+vn -0.000000 0.707100 -0.707100
+vn 0.707100 0.707100 -0.000000
+s off
+f 3/1/1 2/2/1 4/3/1 5/4/1
+f 1/2/2 3/3/2 5/4/2
+f 1/1/3 2/3/3 3/4/3
+f 1/1/4 4/3/4 2/4/4
+f 1/2/5 5/3/5 4/4/5
diff --git a/technic_cnc/models/technic_cnc_outercorner_upsdown.obj b/technic_cnc/models/technic_cnc_outercorner_upsdown.obj
new file mode 100644
index 0000000..c89de8a
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_outercorner_upsdown.obj
@@ -0,0 +1,23 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend'
+# www.blender.org
+o Cube_Cube.002
+v -0.500000 -0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 -0.500000
+v -0.500000 0.500000 -0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn 0.000000 1.000000 -0.000000
+vn -1.000000 0.000000 -0.000000
+vn 0.000000 0.000000 1.000000
+vn 0.707100 -0.707100 0.000000
+vn -0.000000 -0.707100 -0.707100
+s off
+f 3/1/1 2/2/1 4/3/1 5/4/1
+f 1/2/2 3/3/2 5/4/2
+f 1/1/3 2/3/3 3/4/3
+f 1/1/4 4/3/4 2/4/4
+f 1/2/5 5/3/5 4/4/5
diff --git a/technic_cnc/models/technic_cnc_pyramid.obj b/technic_cnc/models/technic_cnc_pyramid.obj
new file mode 100644
index 0000000..a618dcf
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_pyramid.obj
@@ -0,0 +1,24 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_short_onetexture.blend'
+# www.blender.org
+o Cube
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.000000 0.000000 -0.000000
+vt 1.000000 0.500000
+vt 0.000000 0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.500000 0.500000
+vn 0.000000 -1.000000 0.000000
+vn -0.707100 0.707100 -0.000000
+vn 0.000000 0.707100 -0.707100
+vn 0.707100 0.707100 0.000000
+vn -0.000000 0.707100 0.707100
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 3/4/2 5/5/2 4/3/2
+f 5/5/3 1/3/3 4/4/3
+f 1/4/4 5/5/4 2/3/4
+f 2/4/5 5/5/5 3/3/5
diff --git a/technic_cnc/models/technic_cnc_pyramid_spike.obj b/technic_cnc/models/technic_cnc_pyramid_spike.obj
new file mode 100644
index 0000000..b305af2
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_pyramid_spike.obj
@@ -0,0 +1,24 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_onetexture.blend'
+# www.blender.org
+o Cube
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v -0.000000 0.500000 -0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.500000 1.000000
+vn 0.000000 -1.000000 0.000000
+vn -0.894400 0.447200 -0.000000
+vn 0.000000 0.447200 -0.894400
+vn 0.894400 0.447200 0.000000
+vn -0.000000 0.447200 0.894400
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 3/4/2 5/5/2 4/3/2
+f 5/5/3 1/3/3 4/4/3
+f 1/4/4 5/5/4 2/3/4
+f 2/4/5 5/5/5 3/3/5
diff --git a/technic_cnc/models/technic_cnc_slope.obj b/technic_cnc/models/technic_cnc_slope.obj
new file mode 100644
index 0000000..f6f4860
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_slope.obj
@@ -0,0 +1,24 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
+# www.blender.org
+o Cube_Cube.002
+v 0.500000 0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vn 0.000000 -0.000000 1.000000
+vn 0.000000 -1.000000 -0.000000
+vn -1.000000 0.000000 0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.000000 0.707100 -0.707100
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 4/3/2 3/4/2 5/1/2 6/2/2
+f 2/1/3 5/3/3 3/4/3
+f 1/2/4 4/3/4 6/4/4
+f 2/1/5 1/2/5 6/3/5 5/4/5
diff --git a/technic_cnc/models/technic_cnc_slope_horizontal.obj b/technic_cnc/models/technic_cnc_slope_horizontal.obj
new file mode 100644
index 0000000..4866a92
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_slope_horizontal.obj
@@ -0,0 +1,24 @@
+# Blender v2.73 (sub 0) OBJ File: 'technic-slope-horizontal.blend'
+# www.blender.org
+o Cube_Cube.002
+v -0.500000 0.500000 0.500000
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 0.500000 -0.500000
+vt 0.000000 1.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vn 0.000000 -0.000000 1.000000
+vn 1.000000 -0.000000 -0.000000
+vn -0.000000 -1.000000 0.000000
+vn 0.000000 1.000000 -0.000000
+vn -0.707100 0.000000 -0.707100
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 4/1/2 3/2/2 5/3/2 6/4/2
+f 2/3/3 5/1/3 3/2/3
+f 1/4/4 4/1/4 6/2/4
+f 2/3/5 1/4/5 6/1/5 5/2/5
diff --git a/technic_cnc/models/technic_cnc_slope_upsdown.obj b/technic_cnc/models/technic_cnc_slope_upsdown.obj
new file mode 100644
index 0000000..6880595
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_slope_upsdown.obj
@@ -0,0 +1,24 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
+# www.blender.org
+o Cube_Cube.002
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 -0.500000
+v -0.500000 0.500000 -0.500000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt 0.000000 1.000000
+vn 0.000000 0.000000 1.000000
+vn 0.000000 1.000000 -0.000000
+vn 1.000000 -0.000000 0.000000
+vn -1.000000 0.000000 -0.000000
+vn -0.000000 -0.707100 -0.707100
+s off
+f 1/1/1 2/2/1 3/3/1 4/4/1
+f 4/3/2 3/4/2 5/1/2 6/2/2
+f 2/1/3 5/3/3 3/4/3
+f 1/2/4 4/3/4 6/4/4
+f 2/1/5 1/2/5 6/3/5 5/4/5
diff --git a/technic_cnc/models/technic_cnc_sphere.obj b/technic_cnc/models/technic_cnc_sphere.obj
new file mode 100644
index 0000000..772b570
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_sphere.obj
@@ -0,0 +1,1927 @@
+# Blender v2.73 (sub 0) OBJ File: 'globe.blend'
+# www.blender.org
+o Sphere
+v -0.097545 0.490393 0.000000
+v -0.191342 0.461940 0.000000
+v -0.277785 0.415735 0.000000
+v -0.353553 0.353553 0.000000
+v -0.415735 0.277785 0.000000
+v -0.461940 0.191342 0.000000
+v -0.490393 0.097545 0.000000
+v -0.500000 0.000000 0.000000
+v -0.490393 -0.097545 0.000000
+v -0.461940 -0.191342 0.000000
+v -0.415735 -0.277785 0.000000
+v -0.353553 -0.353553 0.000000
+v -0.277785 -0.415735 0.000000
+v -0.191342 -0.461940 0.000000
+v -0.097545 -0.490393 0.000000
+v -0.095671 0.490393 -0.019030
+v -0.187665 0.461940 -0.037329
+v -0.272448 0.415735 -0.054193
+v -0.346760 0.353553 -0.068975
+v -0.407747 0.277785 -0.081106
+v -0.453064 0.191342 -0.090120
+v -0.480970 0.097545 -0.095671
+v -0.490393 0.000000 -0.097545
+v -0.480970 -0.097545 -0.095671
+v -0.453064 -0.191342 -0.090120
+v -0.407747 -0.277785 -0.081106
+v -0.346760 -0.353553 -0.068975
+v -0.272448 -0.415735 -0.054193
+v -0.187665 -0.461940 -0.037329
+v -0.095671 -0.490393 -0.019030
+v -0.090120 0.490393 -0.037329
+v -0.176777 0.461940 -0.073223
+v -0.256640 0.415735 -0.106304
+v -0.326641 0.353553 -0.135299
+v -0.384089 0.277785 -0.159095
+v -0.426777 0.191342 -0.176777
+v -0.453064 0.097545 -0.187665
+v -0.461940 0.000000 -0.191342
+v -0.453064 -0.097545 -0.187665
+v -0.426777 -0.191342 -0.176777
+v -0.384089 -0.277785 -0.159095
+v -0.326641 -0.353553 -0.135299
+v -0.256640 -0.415735 -0.106304
+v -0.176777 -0.461940 -0.073223
+v -0.090120 -0.490393 -0.037329
+v -0.081106 0.490393 -0.054193
+v -0.159095 0.461940 -0.106304
+v -0.230970 0.415735 -0.154329
+v -0.293969 0.353553 -0.196424
+v -0.345671 0.277785 -0.230970
+v -0.384089 0.191342 -0.256640
+v -0.407746 0.097545 -0.272448
+v -0.415735 0.000000 -0.277785
+v -0.407746 -0.097545 -0.272448
+v -0.384089 -0.191342 -0.256640
+v -0.345671 -0.277785 -0.230970
+v -0.293969 -0.353553 -0.196424
+v -0.230970 -0.415735 -0.154329
+v -0.159095 -0.461940 -0.106304
+v -0.081106 -0.490393 -0.054193
+v -0.068975 0.490393 -0.068975
+v -0.135299 0.461940 -0.135299
+v -0.196424 0.415735 -0.196424
+v -0.250000 0.353553 -0.250000
+v -0.293969 0.277785 -0.293969
+v -0.326641 0.191342 -0.326641
+v -0.346760 0.097545 -0.346760
+v -0.353553 0.000000 -0.353554
+v -0.346760 -0.097545 -0.346760
+v -0.326641 -0.191342 -0.326641
+v -0.293969 -0.277785 -0.293969
+v -0.250000 -0.353553 -0.250000
+v -0.196424 -0.415735 -0.196424
+v -0.135299 -0.461940 -0.135299
+v -0.068975 -0.490393 -0.068975
+v -0.054193 0.490393 -0.081106
+v -0.106304 0.461940 -0.159095
+v -0.154329 0.415735 -0.230970
+v -0.196424 0.353553 -0.293969
+v -0.230970 0.277785 -0.345671
+v -0.256640 0.191342 -0.384089
+v -0.272447 0.097545 -0.407747
+v -0.277785 0.000000 -0.415735
+v -0.272447 -0.097545 -0.407747
+v -0.256640 -0.191342 -0.384089
+v -0.230970 -0.277785 -0.345671
+v -0.196424 -0.353553 -0.293969
+v -0.154329 -0.415735 -0.230970
+v -0.106304 -0.461940 -0.159095
+v -0.054193 -0.490393 -0.081106
+v -0.037329 0.490393 -0.090120
+v -0.073223 0.461940 -0.176777
+v -0.106304 0.415735 -0.256640
+v -0.135299 0.353553 -0.326641
+v -0.159095 0.277785 -0.384089
+v -0.176777 0.191342 -0.426777
+v -0.187665 0.097545 -0.453064
+v -0.191342 0.000000 -0.461940
+v -0.187665 -0.097545 -0.453064
+v -0.176777 -0.191342 -0.426777
+v -0.159095 -0.277785 -0.384089
+v -0.135299 -0.353553 -0.326641
+v -0.106304 -0.415735 -0.256640
+v -0.073223 -0.461940 -0.176777
+v -0.037329 -0.490393 -0.090120
+v -0.019030 0.490393 -0.095671
+v -0.037329 0.461940 -0.187665
+v -0.054193 0.415735 -0.272448
+v -0.068975 0.353553 -0.346760
+v -0.081106 0.277785 -0.407747
+v -0.090120 0.191342 -0.453064
+v -0.095671 0.097545 -0.480970
+v -0.097545 0.000000 -0.490393
+v -0.095671 -0.097545 -0.480970
+v -0.090120 -0.191342 -0.453064
+v -0.081106 -0.277785 -0.407747
+v -0.068975 -0.353553 -0.346760
+v -0.054193 -0.415735 -0.272448
+v -0.037329 -0.461940 -0.187665
+v -0.019030 -0.490393 -0.095671
+v 0.000000 0.490393 -0.097545
+v 0.000000 0.461940 -0.191342
+v 0.000000 0.415735 -0.277785
+v 0.000000 0.353553 -0.353553
+v 0.000000 0.277785 -0.415735
+v 0.000000 0.191342 -0.461940
+v 0.000000 0.097545 -0.490393
+v 0.000000 0.000000 -0.500000
+v 0.000000 -0.097545 -0.490393
+v 0.000000 -0.191342 -0.461940
+v 0.000000 -0.277785 -0.415735
+v 0.000000 -0.353553 -0.353553
+v 0.000000 -0.415735 -0.277785
+v 0.000000 -0.461940 -0.191342
+v 0.000000 -0.490393 -0.097545
+v 0.019030 0.490393 -0.095671
+v 0.037329 0.461940 -0.187665
+v 0.054193 0.415735 -0.272448
+v 0.068975 0.353553 -0.346760
+v 0.081106 0.277785 -0.407747
+v 0.090120 0.191342 -0.453064
+v 0.095671 0.097545 -0.480970
+v 0.097545 0.000000 -0.490393
+v 0.095671 -0.097545 -0.480970
+v 0.090120 -0.191342 -0.453064
+v 0.081106 -0.277785 -0.407747
+v 0.068975 -0.353553 -0.346760
+v 0.054193 -0.415735 -0.272448
+v 0.037329 -0.461940 -0.187665
+v 0.019030 -0.490393 -0.095671
+v 0.037329 0.490393 -0.090120
+v 0.073224 0.461940 -0.176777
+v 0.106304 0.415735 -0.256640
+v 0.135299 0.353553 -0.326641
+v 0.159095 0.277785 -0.384089
+v 0.176777 0.191342 -0.426777
+v 0.187665 0.097545 -0.453064
+v 0.191342 0.000000 -0.461940
+v 0.187665 -0.097545 -0.453064
+v 0.176777 -0.191342 -0.426777
+v 0.159095 -0.277785 -0.384089
+v 0.135299 -0.353553 -0.326641
+v 0.106304 -0.415735 -0.256640
+v 0.073223 -0.461940 -0.176777
+v 0.037329 -0.490393 -0.090120
+v 0.054193 0.490393 -0.081106
+v 0.106304 0.461940 -0.159095
+v 0.154329 0.415735 -0.230970
+v 0.196424 0.353553 -0.293969
+v 0.230970 0.277785 -0.345671
+v 0.256640 0.191342 -0.384089
+v 0.272448 0.097545 -0.407747
+v 0.277785 0.000000 -0.415735
+v 0.272448 -0.097545 -0.407747
+v 0.256640 -0.191342 -0.384089
+v 0.230970 -0.277785 -0.345671
+v 0.196424 -0.353553 -0.293969
+v 0.154329 -0.415735 -0.230970
+v 0.106304 -0.461940 -0.159095
+v 0.054193 -0.490393 -0.081106
+v 0.068975 0.490393 -0.068975
+v 0.135299 0.461940 -0.135299
+v 0.196424 0.415735 -0.196424
+v 0.250000 0.353553 -0.250000
+v 0.293969 0.277785 -0.293969
+v 0.326641 0.191342 -0.326641
+v 0.346760 0.097545 -0.346760
+v 0.353554 0.000000 -0.353553
+v 0.346760 -0.097545 -0.346760
+v 0.326641 -0.191342 -0.326641
+v 0.293969 -0.277785 -0.293969
+v 0.250000 -0.353553 -0.250000
+v 0.196424 -0.415735 -0.196424
+v 0.135299 -0.461940 -0.135299
+v 0.068975 -0.490393 -0.068975
+v 0.081106 0.490393 -0.054193
+v 0.159095 0.461940 -0.106304
+v 0.230970 0.415735 -0.154329
+v 0.293969 0.353553 -0.196424
+v 0.345671 0.277785 -0.230970
+v 0.384089 0.191342 -0.256640
+v 0.407747 0.097545 -0.272447
+v 0.415735 0.000000 -0.277785
+v 0.407747 -0.097545 -0.272447
+v 0.384089 -0.191342 -0.256640
+v 0.345671 -0.277785 -0.230970
+v 0.293969 -0.353553 -0.196424
+v 0.230970 -0.415735 -0.154329
+v 0.159095 -0.461940 -0.106304
+v 0.081106 -0.490393 -0.054193
+v 0.090120 0.490393 -0.037329
+v 0.176777 0.461940 -0.073223
+v 0.256640 0.415735 -0.106304
+v 0.326641 0.353553 -0.135299
+v 0.384089 0.277785 -0.159095
+v 0.426777 0.191342 -0.176777
+v 0.453064 0.097545 -0.187665
+v 0.461940 0.000000 -0.191342
+v 0.453064 -0.097545 -0.187665
+v 0.426777 -0.191342 -0.176777
+v 0.384089 -0.277785 -0.159095
+v 0.326641 -0.353553 -0.135299
+v 0.256640 -0.415735 -0.106304
+v 0.176777 -0.461940 -0.073223
+v 0.090120 -0.490393 -0.037329
+v 0.095671 0.490393 -0.019030
+v 0.187665 0.461940 -0.037329
+v 0.272448 0.415735 -0.054193
+v 0.346760 0.353553 -0.068975
+v 0.407747 0.277785 -0.081106
+v 0.453064 0.191342 -0.090120
+v 0.480970 0.097545 -0.095671
+v 0.490393 0.000000 -0.097545
+v 0.480970 -0.097545 -0.095671
+v 0.453064 -0.191342 -0.090120
+v 0.407747 -0.277785 -0.081106
+v 0.346760 -0.353553 -0.068975
+v 0.272448 -0.415735 -0.054193
+v 0.187665 -0.461940 -0.037329
+v 0.095671 -0.490393 -0.019030
+v 0.097545 0.490393 0.000000
+v 0.191342 0.461940 -0.000000
+v 0.277785 0.415735 -0.000000
+v 0.353554 0.353553 0.000000
+v 0.415735 0.277785 0.000000
+v 0.461940 0.191342 -0.000000
+v 0.490393 0.097545 0.000000
+v 0.500000 0.000000 0.000000
+v 0.490393 -0.097545 0.000000
+v 0.461940 -0.191342 -0.000000
+v 0.415735 -0.277785 0.000000
+v 0.353554 -0.353553 0.000000
+v 0.277785 -0.415735 0.000000
+v 0.191342 -0.461940 -0.000000
+v 0.097545 -0.490393 -0.000000
+v 0.095671 0.490393 0.019030
+v 0.187665 0.461940 0.037329
+v 0.272448 0.415735 0.054193
+v 0.346760 0.353553 0.068975
+v 0.407747 0.277785 0.081106
+v 0.453064 0.191342 0.090120
+v 0.480970 0.097545 0.095671
+v 0.490393 0.000000 0.097545
+v 0.480970 -0.097545 0.095671
+v 0.453064 -0.191342 0.090120
+v 0.407747 -0.277785 0.081106
+v 0.346760 -0.353553 0.068975
+v 0.272448 -0.415735 0.054193
+v 0.187665 -0.461940 0.037329
+v 0.095671 -0.490393 0.019030
+v 0.090120 0.490393 0.037329
+v 0.176777 0.461940 0.073223
+v 0.256640 0.415735 0.106304
+v 0.326641 0.353553 0.135299
+v 0.384089 0.277785 0.159095
+v 0.426777 0.191342 0.176777
+v 0.453064 0.097545 0.187665
+v 0.461940 0.000000 0.191342
+v 0.453064 -0.097545 0.187665
+v 0.426777 -0.191342 0.176777
+v 0.384089 -0.277785 0.159095
+v 0.326641 -0.353553 0.135299
+v 0.256640 -0.415735 0.106304
+v 0.176777 -0.461940 0.073223
+v 0.090120 -0.490393 0.037329
+v 0.081106 0.490393 0.054193
+v 0.159095 0.461940 0.106304
+v 0.230970 0.415735 0.154329
+v 0.293969 0.353553 0.196424
+v 0.345671 0.277785 0.230970
+v 0.384089 0.191342 0.256640
+v 0.407747 0.097545 0.272448
+v 0.415735 0.000000 0.277785
+v 0.407747 -0.097545 0.272448
+v 0.384089 -0.191342 0.256640
+v 0.345671 -0.277785 0.230970
+v 0.293969 -0.353553 0.196424
+v 0.230970 -0.415735 0.154329
+v 0.159095 -0.461940 0.106304
+v 0.081106 -0.490393 0.054193
+v 0.068975 0.490393 0.068975
+v 0.135299 0.461940 0.135299
+v 0.196424 0.415735 0.196424
+v 0.250000 0.353553 0.250000
+v 0.293969 0.277785 0.293969
+v 0.326641 0.191342 0.326641
+v 0.346760 0.097545 0.346760
+v 0.353553 0.000000 0.353553
+v 0.346760 -0.097545 0.346760
+v 0.326641 -0.191342 0.326641
+v 0.293969 -0.277785 0.293969
+v 0.250000 -0.353553 0.250000
+v 0.196424 -0.415735 0.196424
+v 0.135299 -0.461940 0.135299
+v 0.068975 -0.490393 0.068975
+v 0.054193 0.490393 0.081106
+v 0.106304 0.461940 0.159095
+v 0.154329 0.415735 0.230970
+v 0.196424 0.353553 0.293969
+v 0.230970 0.277785 0.345671
+v 0.256640 0.191342 0.384089
+v 0.272448 0.097545 0.407746
+v 0.277785 0.000000 0.415735
+v 0.272448 -0.097545 0.407746
+v 0.256640 -0.191342 0.384089
+v 0.230970 -0.277785 0.345671
+v 0.196424 -0.353553 0.293969
+v 0.154329 -0.415735 0.230970
+v 0.106304 -0.461940 0.159095
+v 0.054193 -0.490393 0.081106
+v 0.037329 0.490393 0.090120
+v 0.073223 0.461940 0.176777
+v 0.106304 0.415735 0.256640
+v 0.135299 0.353553 0.326641
+v 0.159095 0.277785 0.384089
+v 0.176777 0.191342 0.426777
+v 0.187665 0.097545 0.453064
+v 0.191342 0.000000 0.461940
+v 0.187665 -0.097545 0.453064
+v 0.176777 -0.191342 0.426777
+v 0.159095 -0.277785 0.384089
+v 0.135299 -0.353553 0.326641
+v 0.106304 -0.415735 0.256640
+v 0.073223 -0.461940 0.176777
+v 0.037329 -0.490393 0.090120
+v 0.019030 0.490393 0.095671
+v 0.037329 0.461940 0.187665
+v 0.054193 0.415735 0.272448
+v 0.068975 0.353553 0.346760
+v 0.081106 0.277785 0.407746
+v 0.090120 0.191342 0.453064
+v 0.095671 0.097545 0.480970
+v 0.097545 0.000000 0.490393
+v 0.095671 -0.097545 0.480970
+v 0.090120 -0.191342 0.453064
+v 0.081106 -0.277785 0.407746
+v 0.068975 -0.353553 0.346760
+v 0.054193 -0.415735 0.272447
+v 0.037329 -0.461940 0.187665
+v 0.019030 -0.490393 0.095671
+v 0.000000 0.490393 0.097545
+v 0.000000 0.461940 0.191342
+v 0.000000 0.415735 0.277785
+v 0.000000 0.353553 0.353553
+v 0.000000 0.277785 0.415735
+v 0.000000 0.191342 0.461940
+v 0.000000 0.097545 0.490392
+v 0.000000 0.000000 0.500000
+v 0.000000 -0.097545 0.490392
+v 0.000000 -0.191342 0.461940
+v 0.000000 -0.277785 0.415735
+v 0.000000 -0.353553 0.353553
+v 0.000000 -0.415735 0.277785
+v 0.000000 -0.461940 0.191342
+v 0.000000 -0.490393 0.097545
+v -0.019030 0.490393 0.095671
+v -0.037329 0.461940 0.187665
+v -0.054193 0.415735 0.272448
+v -0.068975 0.353553 0.346760
+v -0.081106 0.277785 0.407746
+v -0.090120 0.191342 0.453064
+v -0.095671 0.097545 0.480970
+v -0.097545 0.000000 0.490393
+v -0.095671 -0.097545 0.480970
+v -0.090120 -0.191342 0.453064
+v -0.081106 -0.277785 0.407746
+v -0.068975 -0.353553 0.346760
+v -0.054193 -0.415735 0.272447
+v -0.037329 -0.461940 0.187665
+v -0.019030 -0.490393 0.095671
+v -0.037329 0.490393 0.090120
+v -0.073223 0.461940 0.176777
+v -0.106304 0.415735 0.256640
+v -0.135299 0.353553 0.326641
+v -0.159095 0.277785 0.384089
+v -0.176777 0.191342 0.426777
+v -0.187665 0.097545 0.453063
+v -0.191342 0.000000 0.461940
+v -0.187665 -0.097545 0.453063
+v -0.176777 -0.191342 0.426777
+v -0.159095 -0.277785 0.384089
+v -0.135299 -0.353553 0.326641
+v -0.106304 -0.415735 0.256640
+v -0.073223 -0.461940 0.176777
+v -0.037329 -0.490393 0.090120
+v -0.054193 0.490393 0.081106
+v -0.106304 0.461940 0.159095
+v -0.154329 0.415735 0.230970
+v -0.196424 0.353553 0.293969
+v -0.230970 0.277785 0.345671
+v -0.256640 0.191342 0.384089
+v -0.272447 0.097545 0.407746
+v -0.277785 0.000000 0.415735
+v -0.272447 -0.097545 0.407746
+v -0.256640 -0.191342 0.384089
+v -0.230970 -0.277785 0.345671
+v -0.196424 -0.353553 0.293969
+v -0.154329 -0.415735 0.230970
+v -0.106304 -0.461940 0.159095
+v -0.054193 -0.490393 0.081106
+v -0.068975 0.490393 0.068975
+v -0.135299 0.461940 0.135299
+v -0.196424 0.415735 0.196424
+v -0.250000 0.353553 0.250000
+v -0.293969 0.277785 0.293969
+v -0.326641 0.191342 0.326641
+v -0.346760 0.097545 0.346760
+v -0.353553 0.000000 0.353553
+v -0.346760 -0.097545 0.346760
+v -0.326641 -0.191342 0.326641
+v -0.293969 -0.277785 0.293969
+v -0.250000 -0.353553 0.250000
+v -0.196424 -0.415735 0.196424
+v -0.135299 -0.461940 0.135299
+v -0.068975 -0.490393 0.068975
+v -0.081106 0.490393 0.054193
+v -0.159095 0.461940 0.106304
+v -0.230970 0.415735 0.154329
+v -0.293969 0.353553 0.196424
+v -0.345671 0.277785 0.230970
+v -0.384089 0.191342 0.256640
+v -0.407746 0.097545 0.272447
+v -0.415735 0.000000 0.277785
+v -0.407746 -0.097545 0.272447
+v -0.384089 -0.191342 0.256640
+v -0.345671 -0.277785 0.230970
+v -0.293969 -0.353553 0.196424
+v -0.230970 -0.415735 0.154329
+v -0.159095 -0.461940 0.106304
+v -0.081106 -0.490393 0.054193
+v -0.090120 0.490393 0.037329
+v -0.176776 0.461940 0.073223
+v -0.256640 0.415735 0.106304
+v -0.326641 0.353553 0.135299
+v -0.384089 0.277785 0.159095
+v -0.426776 0.191342 0.176777
+v -0.453063 0.097545 0.187665
+v -0.461939 0.000000 0.191342
+v -0.453063 -0.097545 0.187665
+v -0.426776 -0.191342 0.176777
+v -0.384089 -0.277785 0.159095
+v -0.326641 -0.353553 0.135299
+v -0.256640 -0.415735 0.106304
+v -0.176776 -0.461940 0.073223
+v -0.090120 -0.490393 0.037329
+v -0.095671 0.490393 0.019030
+v -0.187665 0.461940 0.037329
+v -0.272447 0.415735 0.054193
+v -0.346760 0.353553 0.068975
+v -0.407746 0.277785 0.081106
+v -0.453063 0.191342 0.090120
+v -0.480969 0.097545 0.095671
+v -0.490392 0.000000 0.097545
+v -0.480969 -0.097545 0.095671
+v -0.453063 -0.191342 0.090120
+v -0.407746 -0.277785 0.081106
+v -0.346760 -0.353553 0.068975
+v -0.272447 -0.415735 0.054193
+v -0.187665 -0.461940 0.037329
+v -0.095671 -0.490393 0.019030
+v -0.013167 -0.495196 0.000000
+v -0.005039 0.495196 0.012165
+v -0.013167 0.495196 0.000000
+v -0.012914 0.495196 -0.002569
+v -0.012914 -0.495196 -0.002569
+v -0.012165 0.495196 -0.005039
+v -0.012165 -0.495196 -0.005039
+v -0.010948 0.495196 -0.007315
+v -0.010948 -0.495196 -0.007315
+v -0.009311 0.495196 -0.009311
+v -0.009311 -0.495196 -0.009311
+v -0.007315 0.495196 -0.010948
+v -0.007315 -0.495196 -0.010948
+v -0.005039 0.495196 -0.012165
+v -0.005039 -0.495196 -0.012165
+v -0.002569 0.495196 -0.012914
+v -0.002569 -0.495196 -0.012914
+v 0.000000 0.495196 -0.013167
+v 0.000000 -0.495196 -0.013167
+v 0.002569 0.495196 -0.012914
+v 0.002569 -0.495196 -0.012914
+v 0.005039 0.495196 -0.012165
+v 0.005039 -0.495196 -0.012165
+v 0.007316 0.495196 -0.010948
+v 0.007316 -0.495196 -0.010948
+v 0.009311 0.495196 -0.009311
+v 0.009311 -0.495196 -0.009311
+v 0.010948 0.495196 -0.007315
+v 0.010948 -0.495196 -0.007315
+v 0.012165 0.495196 -0.005039
+v 0.012165 -0.495196 -0.005039
+v 0.012915 0.495196 -0.002569
+v 0.012915 -0.495196 -0.002569
+v 0.013168 0.495196 0.000000
+v 0.013168 -0.495196 0.000000
+v 0.012915 0.495196 0.002569
+v 0.012915 -0.495196 0.002569
+v 0.012165 0.495196 0.005039
+v 0.012165 -0.495196 0.005039
+v 0.010948 0.495196 0.007315
+v 0.010948 -0.495196 0.007315
+v 0.009311 0.495196 0.009311
+v 0.009311 -0.495196 0.009311
+v 0.007316 0.495196 0.010948
+v 0.007316 -0.495196 0.010948
+v 0.005039 0.495196 0.012165
+v 0.005039 -0.495196 0.012165
+v 0.002569 0.495196 0.012914
+v 0.002569 -0.495196 0.012914
+v 0.000000 0.495196 0.013167
+v 0.000000 -0.495196 0.013167
+v -0.002569 0.495196 0.012914
+v -0.002569 -0.495196 0.012914
+v -0.005039 -0.495196 0.012165
+v -0.007315 0.495196 0.010948
+v -0.007315 -0.495196 0.010948
+v -0.009311 0.495196 0.009311
+v -0.009311 -0.495196 0.009311
+v -0.010948 0.495196 0.007315
+v -0.010948 -0.495196 0.007315
+v -0.012165 0.495196 0.005039
+v -0.012165 -0.495196 0.005039
+v -0.012914 0.495196 0.002569
+v -0.012914 -0.495196 0.002569
+vt 0.437500 0.750000
+vt 0.437500 0.812500
+vt 0.375000 0.812500
+vt 0.375000 0.750000
+vt 0.437500 0.062500
+vt 0.437500 0.125000
+vt 0.375000 0.125000
+vt 0.375000 0.062500
+vt 0.437500 0.875000
+vt 0.437500 0.937500
+vt 0.375000 0.937500
+vt 0.375000 0.875000
+vt 0.437500 0.187500
+vt 0.437500 0.250000
+vt 0.375000 0.250000
+vt 0.375000 0.187500
+vt 0.437500 0.312500
+vt 0.437500 0.375000
+vt 0.375000 0.375000
+vt 0.375000 0.312500
+vt 0.437500 0.437500
+vt 0.437500 0.500000
+vt 0.375000 0.500000
+vt 0.375000 0.437500
+vt 0.437500 0.562500
+vt 0.437500 0.625000
+vt 0.375000 0.625000
+vt 0.375000 0.562500
+vt 0.437500 0.687500
+vt 0.375000 0.687500
+vt 0.312500 0.437500
+vt 0.312500 0.375000
+vt 0.312500 0.562500
+vt 0.312500 0.500000
+vt 0.312500 0.687500
+vt 0.312500 0.625000
+vt 0.312500 0.812500
+vt 0.312500 0.750000
+vt 0.312500 0.125000
+vt 0.312500 0.062500
+vt 0.312500 0.937500
+vt 0.312500 0.875000
+vt 0.312500 0.250000
+vt 0.312500 0.187500
+vt 0.312500 0.312500
+vt 0.250000 0.437500
+vt 0.250000 0.375000
+vt 0.250000 0.562500
+vt 0.250000 0.500000
+vt 0.250000 0.687500
+vt 0.250000 0.625000
+vt 0.250000 0.812500
+vt 0.250000 0.750000
+vt 0.250000 0.125000
+vt 0.250000 0.062500
+vt 0.250000 0.937500
+vt 0.250000 0.875000
+vt 0.250000 0.250000
+vt 0.250000 0.187500
+vt 0.250000 0.312500
+vt 0.187500 0.437500
+vt 0.187500 0.375000
+vt 0.187500 0.562500
+vt 0.187500 0.500000
+vt 0.187500 0.687500
+vt 0.187500 0.625000
+vt 0.187500 0.812500
+vt 0.187500 0.750000
+vt 0.187500 0.125000
+vt 0.187500 0.062500
+vt 0.187500 0.937500
+vt 0.187500 0.875000
+vt 0.187500 0.250000
+vt 0.187500 0.187500
+vt 0.187500 0.312500
+vt 0.125000 0.437500
+vt 0.125000 0.375000
+vt 0.125000 0.562500
+vt 0.125000 0.500000
+vt 0.125000 0.687500
+vt 0.125000 0.625000
+vt 0.125000 0.812500
+vt 0.125000 0.750000
+vt 0.125000 0.125000
+vt 0.125000 0.062500
+vt 0.125000 0.937500
+vt 0.125000 0.875000
+vt 0.125000 0.250000
+vt 0.125000 0.187500
+vt 0.125000 0.312500
+vt 0.062500 0.437500
+vt 0.062500 0.375000
+vt 0.062500 0.562500
+vt 0.062500 0.500000
+vt 0.062500 0.687500
+vt 0.062500 0.625000
+vt 0.062500 0.812500
+vt 0.062500 0.750000
+vt 0.062500 0.125000
+vt 0.062500 0.062500
+vt 0.062500 0.937500
+vt 0.062500 0.875000
+vt 0.062500 0.250000
+vt 0.062500 0.187500
+vt 0.062500 0.312500
+vt 0.000000 0.437500
+vt 0.000000 0.375000
+vt 0.000000 0.562500
+vt 0.000000 0.500000
+vt 0.000000 0.687500
+vt 0.000000 0.625000
+vt 0.000000 0.812500
+vt 0.000000 0.750000
+vt 0.000000 0.125000
+vt 0.000000 0.062500
+vt 0.000000 0.937500
+vt 0.000000 0.875000
+vt 0.000000 0.250000
+vt 0.000000 0.187500
+vt 0.000000 0.312500
+vt 1.000000 0.375000
+vt 1.000000 0.437500
+vt 0.937500 0.437500
+vt 0.937500 0.375000
+vt 1.000000 0.500000
+vt 1.000000 0.562500
+vt 0.937500 0.562500
+vt 0.937500 0.500000
+vt 1.000000 0.625000
+vt 1.000000 0.687500
+vt 0.937500 0.687500
+vt 0.937500 0.625000
+vt 1.000000 0.750000
+vt 1.000000 0.812500
+vt 0.937500 0.812500
+vt 0.937500 0.750000
+vt 1.000000 0.062500
+vt 1.000000 0.125000
+vt 0.937500 0.125000
+vt 0.937500 0.062500
+vt 1.000000 0.875000
+vt 1.000000 0.937500
+vt 0.937500 0.937500
+vt 0.937500 0.875000
+vt 1.000000 0.187500
+vt 1.000000 0.250000
+vt 0.937500 0.250000
+vt 0.937500 0.187500
+vt 1.000000 0.312500
+vt 0.937500 0.312500
+vt 0.875000 0.437500
+vt 0.875000 0.375000
+vt 0.875000 0.562500
+vt 0.875000 0.500000
+vt 0.875000 0.687500
+vt 0.875000 0.625000
+vt 0.875000 0.812500
+vt 0.875000 0.750000
+vt 0.875000 0.125000
+vt 0.875000 0.062500
+vt 0.875000 0.937500
+vt 0.875000 0.875000
+vt 0.875000 0.250000
+vt 0.875000 0.187500
+vt 0.875000 0.312500
+vt 0.812500 0.437500
+vt 0.812500 0.375000
+vt 0.812500 0.562500
+vt 0.812500 0.500000
+vt 0.812500 0.687500
+vt 0.812500 0.625000
+vt 0.812500 0.812500
+vt 0.812500 0.750000
+vt 0.812500 0.125000
+vt 0.812500 0.062500
+vt 0.812500 0.937500
+vt 0.812500 0.875000
+vt 0.812500 0.250000
+vt 0.812500 0.187500
+vt 0.812500 0.312500
+vt 0.750000 0.437500
+vt 0.750000 0.375000
+vt 0.750000 0.562500
+vt 0.750000 0.500000
+vt 0.750000 0.687500
+vt 0.750000 0.625000
+vt 0.750000 0.812500
+vt 0.750000 0.750000
+vt 0.750000 0.125000
+vt 0.750000 0.062500
+vt 0.750000 0.937500
+vt 0.750000 0.875000
+vt 0.750000 0.250000
+vt 0.750000 0.187500
+vt 0.750000 0.312500
+vt 0.687500 0.437500
+vt 0.687500 0.375000
+vt 0.687500 0.562500
+vt 0.687500 0.500000
+vt 0.687500 0.687500
+vt 0.687500 0.625000
+vt 0.687500 0.812500
+vt 0.687500 0.750000
+vt 0.687500 0.125000
+vt 0.687500 0.062500
+vt 0.687500 0.937500
+vt 0.687500 0.875000
+vt 0.687500 0.250000
+vt 0.687500 0.187500
+vt 0.687500 0.312500
+vt 0.625000 0.437500
+vt 0.625000 0.375000
+vt 0.625000 0.562500
+vt 0.625000 0.500000
+vt 0.625000 0.687500
+vt 0.625000 0.625000
+vt 0.625000 0.812500
+vt 0.625000 0.750000
+vt 0.625000 0.125000
+vt 0.625000 0.062500
+vt 0.625000 0.937500
+vt 0.625000 0.875000
+vt 0.625000 0.250000
+vt 0.625000 0.187500
+vt 0.625000 0.312500
+vt 0.562500 0.437500
+vt 0.562500 0.375000
+vt 0.562500 0.562500
+vt 0.562500 0.500000
+vt 0.562500 0.687500
+vt 0.562500 0.625000
+vt 0.562500 0.812500
+vt 0.562500 0.750000
+vt 0.562500 0.125000
+vt 0.562500 0.062500
+vt 0.562500 0.937500
+vt 0.562500 0.875000
+vt 0.562500 0.250000
+vt 0.562500 0.187500
+vt 0.562500 0.312500
+vt 0.500000 0.437500
+vt 0.500000 0.375000
+vt 0.500000 0.562500
+vt 0.500000 0.500000
+vt 0.500000 0.687500
+vt 0.500000 0.625000
+vt 0.500000 0.812500
+vt 0.500000 0.750000
+vt 0.500000 0.125000
+vt 0.500000 0.062500
+vt 0.500000 0.937500
+vt 0.500000 0.875000
+vt 0.500000 0.250000
+vt 0.500000 0.187500
+vt 0.500000 0.312500
+vt 0.437500 0.000000
+vt 0.375000 0.000000
+vt 0.312500 0.000000
+vt 0.250000 0.000000
+vt 0.187500 0.000000
+vt 0.125000 0.000000
+vt 0.062500 0.000000
+vt 0.000000 0.000000
+vt 1.000000 0.000000
+vt 0.937500 0.000000
+vt 0.875000 0.000000
+vt 0.812500 0.000000
+vt 0.750000 0.000000
+vt 0.687500 0.000000
+vt 0.625000 0.000000
+vt 0.562500 0.000000
+vt 0.500000 0.000000
+vt 0.500000 1.000000
+vt 0.437500 1.000000
+vt 0.562500 1.000000
+vt 0.625000 1.000000
+vt 0.687500 1.000000
+vt 0.750000 1.000000
+vt 0.812500 1.000000
+vt 0.875000 1.000000
+vt 0.937500 1.000000
+vt 1.000000 1.000000
+vt 0.062500 1.000000
+vt -0.000000 1.000000
+vt 0.125000 1.000000
+vt 0.187500 1.000000
+vt 0.250000 1.000000
+vt 0.312500 1.000000
+vt 0.375000 1.000000
+vt 0.031303 0.999906
+vt 0.037377 0.999307
+vt 0.043218 0.997535
+vt 0.048601 0.994658
+vt 0.053319 0.990786
+vt 0.057192 0.986068
+vt 0.060069 0.980685
+vt 0.061841 0.974844
+vt 0.062439 0.968769
+vt 0.061841 0.962695
+vt 0.060069 0.956854
+vt 0.057192 0.951471
+vt 0.053319 0.946753
+vt 0.048601 0.942881
+vt 0.043218 0.940004
+vt 0.037377 0.938232
+vt 0.031303 0.937633
+vt 0.025229 0.938232
+vt 0.019388 0.940004
+vt 0.014005 0.942881
+vt 0.009286 0.946753
+vt 0.005414 0.951471
+vt 0.002537 0.956854
+vt 0.000765 0.962695
+vt 0.000167 0.968770
+vt 0.000765 0.974844
+vt 0.002537 0.980685
+vt 0.005414 0.986068
+vt 0.009286 0.990786
+vt 0.014005 0.994658
+vt 0.019388 0.997535
+vt 0.025229 0.999307
+vn -0.710100 0.704000 0.000000
+vn -0.559800 0.828600 0.000000
+vn -0.549000 0.828600 -0.109200
+vn -0.696500 0.704000 -0.138500
+vn -0.182000 -0.983300 0.000000
+vn -0.387900 -0.921700 0.000000
+vn -0.380400 -0.921700 -0.075700
+vn -0.178400 -0.983300 -0.035500
+vn -0.387900 0.921700 0.000000
+vn -0.182000 0.983300 0.000000
+vn -0.178400 0.983300 -0.035500
+vn -0.380400 0.921700 -0.075700
+vn -0.559800 -0.828600 0.000000
+vn -0.710100 -0.704000 0.000000
+vn -0.696500 -0.704000 -0.138500
+vn -0.549000 -0.828600 -0.109200
+vn -0.833300 -0.552800 0.000000
+vn -0.924700 -0.380500 0.000000
+vn -0.907000 -0.380500 -0.180400
+vn -0.817300 -0.552800 -0.162600
+vn -0.981000 -0.193900 0.000000
+vn -1.000000 0.000000 0.000000
+vn -0.980800 0.000000 -0.195100
+vn -0.962200 -0.193900 -0.191400
+vn -0.981000 0.193900 0.000000
+vn -0.924700 0.380500 0.000000
+vn -0.907000 0.380500 -0.180400
+vn -0.962200 0.193900 -0.191400
+vn -0.833300 0.552800 0.000000
+vn -0.817300 0.552800 -0.162600
+vn -0.906300 -0.193900 -0.375400
+vn -0.854400 -0.380500 -0.353900
+vn -0.906300 0.193900 -0.375400
+vn -0.923900 0.000000 -0.382700
+vn -0.769900 0.552800 -0.318900
+vn -0.854400 0.380500 -0.353900
+vn -0.517100 0.828600 -0.214200
+vn -0.656100 0.704000 -0.271700
+vn -0.358300 -0.921700 -0.148400
+vn -0.168100 -0.983300 -0.069600
+vn -0.168100 0.983300 -0.069600
+vn -0.358300 0.921700 -0.148400
+vn -0.656100 -0.704000 -0.271700
+vn -0.517100 -0.828600 -0.214200
+vn -0.769900 -0.552800 -0.318900
+vn -0.815700 -0.193900 -0.545000
+vn -0.768900 -0.380500 -0.513700
+vn -0.815700 0.193900 -0.545000
+vn -0.831400 0.000000 -0.555600
+vn -0.692900 0.552800 -0.463000
+vn -0.768900 0.380500 -0.513700
+vn -0.465400 0.828600 -0.311000
+vn -0.590400 0.704000 -0.394500
+vn -0.322500 -0.921700 -0.215500
+vn -0.151300 -0.983300 -0.101100
+vn -0.151300 0.983300 -0.101100
+vn -0.322500 0.921700 -0.215500
+vn -0.590400 -0.704000 -0.394500
+vn -0.465400 -0.828600 -0.311000
+vn -0.692900 -0.552800 -0.463000
+vn -0.693700 -0.193900 -0.693700
+vn -0.653900 -0.380500 -0.653900
+vn -0.693700 0.193900 -0.693700
+vn -0.707100 0.000000 -0.707100
+vn -0.589300 0.552800 -0.589300
+vn -0.653900 0.380500 -0.653900
+vn -0.395800 0.828600 -0.395800
+vn -0.502100 0.704000 -0.502100
+vn -0.274300 -0.921700 -0.274300
+vn -0.128600 -0.983300 -0.128600
+vn -0.128600 0.983300 -0.128600
+vn -0.274300 0.921700 -0.274300
+vn -0.502100 -0.704000 -0.502100
+vn -0.395800 -0.828600 -0.395800
+vn -0.589300 -0.552800 -0.589300
+vn -0.545000 -0.193900 -0.815700
+vn -0.513700 -0.380500 -0.768900
+vn -0.545000 0.193900 -0.815700
+vn -0.555600 0.000000 -0.831400
+vn -0.463000 0.552800 -0.692900
+vn -0.513700 0.380500 -0.768900
+vn -0.311000 0.828600 -0.465400
+vn -0.394500 0.704000 -0.590400
+vn -0.215500 -0.921700 -0.322500
+vn -0.101100 -0.983300 -0.151300
+vn -0.101100 0.983300 -0.151300
+vn -0.215500 0.921700 -0.322500
+vn -0.394500 -0.704000 -0.590400
+vn -0.311000 -0.828600 -0.465400
+vn -0.463000 -0.552800 -0.692900
+vn -0.375400 -0.193900 -0.906300
+vn -0.353900 -0.380500 -0.854400
+vn -0.375400 0.193900 -0.906300
+vn -0.382700 0.000000 -0.923900
+vn -0.318900 0.552800 -0.769900
+vn -0.353900 0.380500 -0.854400
+vn -0.214200 0.828600 -0.517100
+vn -0.271700 0.704000 -0.656100
+vn -0.148400 -0.921700 -0.358300
+vn -0.069600 -0.983300 -0.168100
+vn -0.069600 0.983300 -0.168100
+vn -0.148400 0.921700 -0.358300
+vn -0.271700 -0.704000 -0.656100
+vn -0.214200 -0.828600 -0.517100
+vn -0.318900 -0.552800 -0.769900
+vn -0.191400 -0.193900 -0.962200
+vn -0.180400 -0.380500 -0.907000
+vn -0.191400 0.193900 -0.962200
+vn -0.195100 0.000000 -0.980800
+vn -0.162600 0.552800 -0.817300
+vn -0.180400 0.380500 -0.907000
+vn -0.109200 0.828600 -0.549000
+vn -0.138500 0.704000 -0.696500
+vn -0.075700 -0.921700 -0.380400
+vn -0.035500 -0.983300 -0.178400
+vn -0.035500 0.983300 -0.178400
+vn -0.075700 0.921700 -0.380400
+vn -0.138500 -0.704000 -0.696500
+vn -0.109200 -0.828600 -0.549000
+vn -0.162600 -0.552800 -0.817300
+vn 0.000000 -0.193900 -0.981000
+vn 0.000000 -0.380500 -0.924700
+vn 0.000000 0.193900 -0.981000
+vn 0.000000 0.000000 -1.000000
+vn 0.000000 0.552800 -0.833300
+vn 0.000000 0.380500 -0.924700
+vn 0.000000 0.828600 -0.559800
+vn 0.000000 0.704000 -0.710100
+vn 0.000000 -0.921700 -0.387900
+vn 0.000000 -0.983300 -0.182000
+vn 0.000000 0.983300 -0.182000
+vn 0.000000 0.921700 -0.387900
+vn 0.000000 -0.704000 -0.710100
+vn 0.000000 -0.828600 -0.559800
+vn 0.000000 -0.552800 -0.833300
+vn 0.191400 -0.193900 -0.962200
+vn 0.180400 -0.380500 -0.907000
+vn 0.191400 0.193900 -0.962200
+vn 0.195100 0.000000 -0.980800
+vn 0.162600 0.552800 -0.817300
+vn 0.180400 0.380500 -0.907000
+vn 0.109200 0.828600 -0.549000
+vn 0.138500 0.704000 -0.696500
+vn 0.075700 -0.921700 -0.380400
+vn 0.035500 -0.983300 -0.178400
+vn 0.035500 0.983300 -0.178400
+vn 0.075700 0.921700 -0.380400
+vn 0.138500 -0.704000 -0.696500
+vn 0.109200 -0.828600 -0.549000
+vn 0.162600 -0.552800 -0.817300
+vn 0.375400 -0.193900 -0.906300
+vn 0.353900 -0.380500 -0.854400
+vn 0.375400 0.193900 -0.906300
+vn 0.382700 0.000000 -0.923900
+vn 0.318900 0.552800 -0.769900
+vn 0.353900 0.380500 -0.854400
+vn 0.214200 0.828600 -0.517100
+vn 0.271700 0.704000 -0.656100
+vn 0.148400 -0.921700 -0.358300
+vn 0.069600 -0.983300 -0.168100
+vn 0.069600 0.983300 -0.168100
+vn 0.148400 0.921700 -0.358300
+vn 0.271700 -0.704000 -0.656100
+vn 0.214200 -0.828600 -0.517100
+vn 0.318900 -0.552800 -0.769900
+vn 0.545000 -0.193900 -0.815700
+vn 0.513700 -0.380500 -0.768900
+vn 0.545000 0.193900 -0.815700
+vn 0.555600 0.000000 -0.831400
+vn 0.463000 0.552800 -0.692900
+vn 0.513700 0.380500 -0.768900
+vn 0.311000 0.828600 -0.465400
+vn 0.394500 0.704000 -0.590400
+vn 0.215500 -0.921700 -0.322500
+vn 0.101100 -0.983300 -0.151300
+vn 0.101100 0.983300 -0.151300
+vn 0.215500 0.921700 -0.322500
+vn 0.394500 -0.704000 -0.590400
+vn 0.311000 -0.828600 -0.465400
+vn 0.463000 -0.552800 -0.692900
+vn 0.693700 -0.193900 -0.693700
+vn 0.653900 -0.380500 -0.653900
+vn 0.693700 0.193900 -0.693700
+vn 0.707100 0.000000 -0.707100
+vn 0.589300 0.552800 -0.589300
+vn 0.653900 0.380500 -0.653900
+vn 0.395800 0.828600 -0.395800
+vn 0.502100 0.704000 -0.502100
+vn 0.274300 -0.921700 -0.274300
+vn 0.128600 -0.983300 -0.128600
+vn 0.128600 0.983300 -0.128600
+vn 0.274300 0.921700 -0.274300
+vn 0.502100 -0.704000 -0.502100
+vn 0.395800 -0.828600 -0.395800
+vn 0.589300 -0.552800 -0.589300
+vn 0.815700 -0.193900 -0.545000
+vn 0.768900 -0.380500 -0.513700
+vn 0.815700 0.193900 -0.545000
+vn 0.831400 0.000000 -0.555600
+vn 0.692900 0.552800 -0.463000
+vn 0.768900 0.380500 -0.513700
+vn 0.465400 0.828600 -0.311000
+vn 0.590400 0.704000 -0.394500
+vn 0.322500 -0.921700 -0.215500
+vn 0.151300 -0.983300 -0.101100
+vn 0.151300 0.983300 -0.101100
+vn 0.322500 0.921700 -0.215500
+vn 0.590400 -0.704000 -0.394500
+vn 0.465400 -0.828600 -0.311000
+vn 0.692900 -0.552800 -0.463000
+vn 0.906300 -0.193900 -0.375400
+vn 0.854400 -0.380500 -0.353900
+vn 0.906300 0.193900 -0.375400
+vn 0.923900 0.000000 -0.382700
+vn 0.769900 0.552800 -0.318900
+vn 0.854400 0.380500 -0.353900
+vn 0.517100 0.828600 -0.214200
+vn 0.656100 0.704000 -0.271700
+vn 0.358300 -0.921700 -0.148400
+vn 0.168100 -0.983300 -0.069600
+vn 0.168100 0.983300 -0.069600
+vn 0.358300 0.921700 -0.148400
+vn 0.656100 -0.704000 -0.271700
+vn 0.517100 -0.828600 -0.214200
+vn 0.769900 -0.552800 -0.318900
+vn 0.962200 -0.193900 -0.191400
+vn 0.907000 -0.380500 -0.180400
+vn 0.962200 0.193900 -0.191400
+vn 0.980800 0.000000 -0.195100
+vn 0.817300 0.552800 -0.162600
+vn 0.907000 0.380500 -0.180400
+vn 0.549000 0.828600 -0.109200
+vn 0.696500 0.704000 -0.138500
+vn 0.380400 -0.921700 -0.075700
+vn 0.178400 -0.983300 -0.035500
+vn 0.178400 0.983300 -0.035500
+vn 0.380400 0.921700 -0.075700
+vn 0.696500 -0.704000 -0.138500
+vn 0.549000 -0.828600 -0.109200
+vn 0.817300 -0.552800 -0.162600
+vn 0.981000 -0.193900 0.000000
+vn 0.924700 -0.380500 0.000000
+vn 0.981000 0.193900 0.000000
+vn 1.000000 0.000000 0.000000
+vn 0.833300 0.552800 0.000000
+vn 0.924700 0.380500 0.000000
+vn 0.559800 0.828600 0.000000
+vn 0.710100 0.704000 0.000000
+vn 0.387900 -0.921700 0.000000
+vn 0.182000 -0.983300 0.000000
+vn 0.182000 0.983300 0.000000
+vn 0.387900 0.921700 0.000000
+vn 0.710100 -0.704000 0.000000
+vn 0.559800 -0.828600 0.000000
+vn 0.833300 -0.552800 0.000000
+vn 0.962200 -0.193900 0.191400
+vn 0.907000 -0.380500 0.180400
+vn 0.962200 0.193900 0.191400
+vn 0.980800 0.000000 0.195100
+vn 0.817300 0.552800 0.162600
+vn 0.907000 0.380500 0.180400
+vn 0.549000 0.828600 0.109200
+vn 0.696500 0.704000 0.138500
+vn 0.380400 -0.921700 0.075700
+vn 0.178400 -0.983300 0.035500
+vn 0.178400 0.983300 0.035500
+vn 0.380400 0.921700 0.075700
+vn 0.696500 -0.704000 0.138500
+vn 0.549000 -0.828600 0.109200
+vn 0.817300 -0.552800 0.162600
+vn 0.906300 -0.193900 0.375400
+vn 0.854400 -0.380500 0.353900
+vn 0.906300 0.193900 0.375400
+vn 0.923900 0.000000 0.382700
+vn 0.769900 0.552800 0.318900
+vn 0.854400 0.380500 0.353900
+vn 0.517100 0.828600 0.214200
+vn 0.656100 0.704000 0.271700
+vn 0.358300 -0.921700 0.148400
+vn 0.168100 -0.983300 0.069600
+vn 0.168100 0.983300 0.069600
+vn 0.358300 0.921700 0.148400
+vn 0.656100 -0.704000 0.271700
+vn 0.517100 -0.828600 0.214200
+vn 0.769900 -0.552800 0.318900
+vn 0.815700 -0.193900 0.545000
+vn 0.768900 -0.380500 0.513700
+vn 0.815700 0.193900 0.545000
+vn 0.831400 0.000000 0.555600
+vn 0.692900 0.552800 0.463000
+vn 0.768900 0.380500 0.513700
+vn 0.465400 0.828600 0.311000
+vn 0.590400 0.704000 0.394500
+vn 0.322500 -0.921700 0.215500
+vn 0.151300 -0.983300 0.101100
+vn 0.151300 0.983300 0.101100
+vn 0.322500 0.921700 0.215500
+vn 0.590400 -0.704000 0.394500
+vn 0.465400 -0.828600 0.311000
+vn 0.692900 -0.552800 0.463000
+vn 0.693700 -0.193900 0.693700
+vn 0.653900 -0.380500 0.653900
+vn 0.693700 0.193900 0.693700
+vn 0.707100 0.000000 0.707100
+vn 0.589300 0.552800 0.589300
+vn 0.653900 0.380500 0.653900
+vn 0.395800 0.828600 0.395800
+vn 0.502100 0.704000 0.502100
+vn 0.274300 -0.921700 0.274300
+vn 0.128600 -0.983300 0.128600
+vn 0.128600 0.983300 0.128600
+vn 0.274300 0.921700 0.274300
+vn 0.502100 -0.704000 0.502100
+vn 0.395800 -0.828600 0.395800
+vn 0.589300 -0.552800 0.589300
+vn 0.545000 -0.193900 0.815700
+vn 0.513700 -0.380500 0.768900
+vn 0.545000 0.193900 0.815700
+vn 0.555600 0.000000 0.831400
+vn 0.463000 0.552800 0.692900
+vn 0.513700 0.380500 0.768900
+vn 0.311000 0.828600 0.465400
+vn 0.394500 0.704000 0.590400
+vn 0.215500 -0.921700 0.322500
+vn 0.101100 -0.983300 0.151300
+vn 0.101100 0.983300 0.151300
+vn 0.215500 0.921700 0.322500
+vn 0.394500 -0.704000 0.590400
+vn 0.311000 -0.828600 0.465400
+vn 0.463000 -0.552800 0.692900
+vn 0.375400 -0.193900 0.906300
+vn 0.353900 -0.380500 0.854400
+vn 0.375400 0.193900 0.906300
+vn 0.382700 0.000000 0.923900
+vn 0.318900 0.552800 0.769900
+vn 0.353900 0.380500 0.854400
+vn 0.214200 0.828600 0.517100
+vn 0.271700 0.704000 0.656100
+vn 0.148400 -0.921700 0.358300
+vn 0.069600 -0.983300 0.168100
+vn 0.069600 0.983300 0.168100
+vn 0.148400 0.921700 0.358300
+vn 0.271700 -0.704000 0.656100
+vn 0.214200 -0.828600 0.517100
+vn 0.318900 -0.552800 0.769900
+vn 0.191400 -0.193900 0.962200
+vn 0.180400 -0.380500 0.907000
+vn 0.191400 0.193900 0.962200
+vn 0.195100 0.000000 0.980800
+vn 0.162600 0.552800 0.817300
+vn 0.180400 0.380500 0.907000
+vn 0.109200 0.828600 0.549000
+vn 0.138500 0.704000 0.696500
+vn 0.075700 -0.921700 0.380400
+vn 0.035500 -0.983300 0.178400
+vn 0.035500 0.983300 0.178400
+vn 0.075700 0.921700 0.380400
+vn 0.138500 -0.704000 0.696500
+vn 0.109200 -0.828600 0.549000
+vn 0.162600 -0.552800 0.817300
+vn 0.000000 -0.193900 0.981000
+vn 0.000000 -0.380500 0.924700
+vn 0.000000 0.193900 0.981000
+vn 0.000000 0.000000 1.000000
+vn 0.000000 0.552800 0.833300
+vn 0.000000 0.380500 0.924700
+vn 0.000000 0.828600 0.559800
+vn 0.000000 0.704000 0.710100
+vn 0.000000 -0.921700 0.387900
+vn 0.000000 -0.983300 0.182000
+vn 0.000000 0.983300 0.182000
+vn 0.000000 0.921700 0.387900
+vn 0.000000 -0.704000 0.710100
+vn 0.000000 -0.828600 0.559800
+vn 0.000000 -0.552800 0.833300
+vn -0.191400 -0.193900 0.962200
+vn -0.180400 -0.380500 0.907000
+vn -0.191400 0.193900 0.962200
+vn -0.195100 0.000000 0.980800
+vn -0.162600 0.552800 0.817300
+vn -0.180400 0.380500 0.907000
+vn -0.109200 0.828600 0.549000
+vn -0.138500 0.704000 0.696500
+vn -0.075700 -0.921700 0.380400
+vn -0.035500 -0.983300 0.178400
+vn -0.035500 0.983300 0.178400
+vn -0.075700 0.921700 0.380400
+vn -0.138500 -0.704000 0.696500
+vn -0.109200 -0.828600 0.549000
+vn -0.162600 -0.552800 0.817300
+vn -0.375400 -0.193900 0.906300
+vn -0.353900 -0.380500 0.854400
+vn -0.375400 0.193900 0.906300
+vn -0.382700 0.000000 0.923900
+vn -0.318900 0.552800 0.769900
+vn -0.353900 0.380500 0.854400
+vn -0.214200 0.828600 0.517100
+vn -0.271700 0.704000 0.656100
+vn -0.148400 -0.921700 0.358300
+vn -0.069600 -0.983300 0.168100
+vn -0.069600 0.983300 0.168100
+vn -0.148400 0.921700 0.358300
+vn -0.271700 -0.704000 0.656100
+vn -0.214200 -0.828600 0.517100
+vn -0.318900 -0.552800 0.769900
+vn -0.545000 -0.193900 0.815700
+vn -0.513700 -0.380500 0.768900
+vn -0.545000 0.193900 0.815700
+vn -0.555600 0.000000 0.831400
+vn -0.463000 0.552800 0.692900
+vn -0.513700 0.380500 0.768900
+vn -0.311000 0.828600 0.465400
+vn -0.394500 0.704000 0.590400
+vn -0.215500 -0.921700 0.322500
+vn -0.101100 -0.983300 0.151300
+vn -0.101100 0.983300 0.151300
+vn -0.215500 0.921700 0.322500
+vn -0.394500 -0.704000 0.590400
+vn -0.311000 -0.828600 0.465400
+vn -0.463000 -0.552800 0.692900
+vn -0.693700 -0.193900 0.693700
+vn -0.653900 -0.380500 0.653900
+vn -0.693700 0.193900 0.693700
+vn -0.707100 0.000000 0.707100
+vn -0.589300 0.552800 0.589300
+vn -0.653900 0.380500 0.653900
+vn -0.395800 0.828600 0.395800
+vn -0.502100 0.704000 0.502100
+vn -0.274300 -0.921700 0.274300
+vn -0.128600 -0.983300 0.128600
+vn -0.128600 0.983300 0.128600
+vn -0.274300 0.921700 0.274300
+vn -0.502100 -0.704000 0.502100
+vn -0.395800 -0.828600 0.395800
+vn -0.589300 -0.552800 0.589300
+vn -0.815700 -0.193900 0.545000
+vn -0.768900 -0.380500 0.513700
+vn -0.815700 0.193900 0.545000
+vn -0.831400 0.000000 0.555600
+vn -0.692900 0.552800 0.463000
+vn -0.768900 0.380500 0.513700
+vn -0.465400 0.828600 0.311000
+vn -0.590400 0.704000 0.394500
+vn -0.322500 -0.921700 0.215500
+vn -0.151300 -0.983300 0.101100
+vn -0.151300 0.983300 0.101100
+vn -0.322500 0.921700 0.215500
+vn -0.590400 -0.704000 0.394500
+vn -0.465400 -0.828600 0.311000
+vn -0.692900 -0.552800 0.463000
+vn -0.906300 -0.193900 0.375400
+vn -0.854400 -0.380500 0.353900
+vn -0.906300 0.193900 0.375400
+vn -0.923900 0.000000 0.382700
+vn -0.769900 0.552800 0.318900
+vn -0.854400 0.380500 0.353900
+vn -0.517100 0.828600 0.214200
+vn -0.656100 0.704000 0.271700
+vn -0.358300 -0.921700 0.148400
+vn -0.168100 -0.983300 0.069600
+vn -0.168100 0.983300 0.069600
+vn -0.358300 0.921700 0.148400
+vn -0.656100 -0.704000 0.271700
+vn -0.517100 -0.828600 0.214200
+vn -0.769900 -0.552800 0.318900
+vn -0.962200 -0.193900 0.191400
+vn -0.907000 -0.380500 0.180400
+vn -0.962200 0.193900 0.191400
+vn -0.980800 0.000000 0.195100
+vn -0.817300 0.552800 0.162600
+vn -0.907000 0.380500 0.180400
+vn -0.549000 0.828600 0.109200
+vn -0.696500 0.704000 0.138500
+vn -0.380400 -0.921700 0.075700
+vn -0.178400 -0.983300 0.035500
+vn -0.178400 0.983300 0.035500
+vn -0.380400 0.921700 0.075700
+vn -0.696500 -0.704000 0.138500
+vn -0.549000 -0.828600 0.109200
+vn -0.817300 -0.552800 0.162600
+vn -0.030200 -0.999500 0.000000
+vn -0.029600 -0.999500 -0.005900
+vn -0.027900 -0.999500 -0.011500
+vn -0.025100 -0.999500 -0.016800
+vn -0.021300 -0.999500 -0.021300
+vn -0.016800 -0.999500 -0.025100
+vn -0.011500 -0.999500 -0.027900
+vn -0.005900 -0.999500 -0.029600
+vn 0.000000 -0.999500 -0.030200
+vn 0.005900 -0.999500 -0.029600
+vn 0.011500 -0.999500 -0.027900
+vn 0.016800 -0.999500 -0.025100
+vn 0.021300 -0.999500 -0.021300
+vn 0.025100 -0.999500 -0.016800
+vn 0.027900 -0.999500 -0.011500
+vn 0.029600 -0.999500 -0.005900
+vn 0.030200 -0.999500 0.000000
+vn 0.029600 -0.999500 0.005900
+vn 0.027900 -0.999500 0.011500
+vn 0.025100 -0.999500 0.016800
+vn 0.021300 -0.999500 0.021300
+vn 0.016800 -0.999500 0.025100
+vn 0.011500 -0.999500 0.027900
+vn 0.005900 -0.999500 0.029600
+vn 0.000000 -0.999500 0.030200
+vn -0.005900 -0.999500 0.029600
+vn -0.011500 -0.999500 0.027900
+vn -0.016800 -0.999500 0.025100
+vn -0.021300 -0.999500 0.021300
+vn -0.025100 -0.999500 0.016800
+vn -0.027900 -0.999500 0.011500
+vn -0.029600 -0.999500 0.005900
+vn -0.029600 0.999500 0.005900
+vn -0.030200 0.999500 0.000000
+vn -0.027900 0.999500 0.011500
+vn -0.025100 0.999500 0.016800
+vn -0.021300 0.999500 0.021300
+vn -0.016800 0.999500 0.025100
+vn -0.011500 0.999500 0.027900
+vn -0.005900 0.999500 0.029600
+vn 0.000000 0.999500 0.030200
+vn 0.005900 0.999500 0.029600
+vn 0.011500 0.999500 0.027900
+vn 0.016800 0.999500 0.025100
+vn 0.021300 0.999500 0.021300
+vn 0.025100 0.999500 0.016800
+vn 0.027900 0.999500 0.011500
+vn 0.029600 0.999500 0.005900
+vn 0.030200 0.999500 0.000000
+vn 0.029600 0.999500 -0.005900
+vn 0.027900 0.999500 -0.011500
+vn 0.025100 0.999500 -0.016800
+vn 0.021300 0.999500 -0.021300
+vn 0.016800 0.999500 -0.025100
+vn 0.011500 0.999500 -0.027900
+vn 0.005900 0.999500 -0.029600
+vn 0.000000 0.999500 -0.030200
+vn -0.005900 0.999500 -0.029600
+vn -0.011500 0.999500 -0.027900
+vn -0.016800 0.999500 -0.025100
+vn -0.021300 0.999500 -0.021300
+vn -0.025100 0.999500 -0.016800
+vn -0.027900 0.999500 -0.011500
+vn -0.029600 0.999500 -0.005900
+s 1
+f 4/1/1 3/2/2 18/3/3 19/4/4
+f 15/5/5 14/6/6 29/7/7 30/8/8
+f 2/9/9 1/10/10 16/11/11 17/12/12
+f 13/13/13 12/14/14 27/15/15 28/16/16
+f 11/17/17 10/18/18 25/19/19 26/20/20
+f 9/21/21 8/22/22 23/23/23 24/24/24
+f 7/25/25 6/26/26 21/27/27 22/28/28
+f 5/29/29 4/1/1 19/4/4 20/30/30
+f 3/2/2 2/9/9 17/12/12 18/3/3
+f 14/6/6 13/13/13 28/16/16 29/7/7
+f 12/14/14 11/17/17 26/20/20 27/15/15
+f 10/18/18 9/21/21 24/24/24 25/19/19
+f 8/22/22 7/25/25 22/28/28 23/23/23
+f 6/26/26 5/29/29 20/30/30 21/27/27
+f 25/19/19 24/24/24 39/31/31 40/32/32
+f 23/23/23 22/28/28 37/33/33 38/34/34
+f 21/27/27 20/30/30 35/35/35 36/36/36
+f 19/4/4 18/3/3 33/37/37 34/38/38
+f 30/8/8 29/7/7 44/39/39 45/40/40
+f 17/12/12 16/11/11 31/41/41 32/42/42
+f 28/16/16 27/15/15 42/43/43 43/44/44
+f 26/20/20 25/19/19 40/32/32 41/45/45
+f 24/24/24 23/23/23 38/34/34 39/31/31
+f 22/28/28 21/27/27 36/36/36 37/33/33
+f 20/30/30 19/4/4 34/38/38 35/35/35
+f 18/3/3 17/12/12 32/42/42 33/37/37
+f 29/7/7 28/16/16 43/44/44 44/39/39
+f 27/15/15 26/20/20 41/45/45 42/43/43
+f 40/32/32 39/31/31 54/46/46 55/47/47
+f 38/34/34 37/33/33 52/48/48 53/49/49
+f 36/36/36 35/35/35 50/50/50 51/51/51
+f 34/38/38 33/37/37 48/52/52 49/53/53
+f 45/40/40 44/39/39 59/54/54 60/55/55
+f 32/42/42 31/41/41 46/56/56 47/57/57
+f 43/44/44 42/43/43 57/58/58 58/59/59
+f 41/45/45 40/32/32 55/47/47 56/60/60
+f 39/31/31 38/34/34 53/49/49 54/46/46
+f 37/33/33 36/36/36 51/51/51 52/48/48
+f 35/35/35 34/38/38 49/53/53 50/50/50
+f 33/37/37 32/42/42 47/57/57 48/52/52
+f 44/39/39 43/44/44 58/59/59 59/54/54
+f 42/43/43 41/45/45 56/60/60 57/58/58
+f 55/47/47 54/46/46 69/61/61 70/62/62
+f 53/49/49 52/48/48 67/63/63 68/64/64
+f 51/51/51 50/50/50 65/65/65 66/66/66
+f 49/53/53 48/52/52 63/67/67 64/68/68
+f 60/55/55 59/54/54 74/69/69 75/70/70
+f 47/57/57 46/56/56 61/71/71 62/72/72
+f 58/59/59 57/58/58 72/73/73 73/74/74
+f 56/60/60 55/47/47 70/62/62 71/75/75
+f 54/46/46 53/49/49 68/64/64 69/61/61
+f 52/48/48 51/51/51 66/66/66 67/63/63
+f 50/50/50 49/53/53 64/68/68 65/65/65
+f 48/52/52 47/57/57 62/72/72 63/67/67
+f 59/54/54 58/59/59 73/74/74 74/69/69
+f 57/58/58 56/60/60 71/75/75 72/73/73
+f 70/62/62 69/61/61 84/76/76 85/77/77
+f 68/64/64 67/63/63 82/78/78 83/79/79
+f 66/66/66 65/65/65 80/80/80 81/81/81
+f 64/68/68 63/67/67 78/82/82 79/83/83
+f 75/70/70 74/69/69 89/84/84 90/85/85
+f 62/72/72 61/71/71 76/86/86 77/87/87
+f 73/74/74 72/73/73 87/88/88 88/89/89
+f 71/75/75 70/62/62 85/77/77 86/90/90
+f 69/61/61 68/64/64 83/79/79 84/76/76
+f 67/63/63 66/66/66 81/81/81 82/78/78
+f 65/65/65 64/68/68 79/83/83 80/80/80
+f 63/67/67 62/72/72 77/87/87 78/82/82
+f 74/69/69 73/74/74 88/89/89 89/84/84
+f 72/73/73 71/75/75 86/90/90 87/88/88
+f 85/77/77 84/76/76 99/91/91 100/92/92
+f 83/79/79 82/78/78 97/93/93 98/94/94
+f 81/81/81 80/80/80 95/95/95 96/96/96
+f 79/83/83 78/82/82 93/97/97 94/98/98
+f 90/85/85 89/84/84 104/99/99 105/100/100
+f 77/87/87 76/86/86 91/101/101 92/102/102
+f 88/89/89 87/88/88 102/103/103 103/104/104
+f 86/90/90 85/77/77 100/92/92 101/105/105
+f 84/76/76 83/79/79 98/94/94 99/91/91
+f 82/78/78 81/81/81 96/96/96 97/93/93
+f 80/80/80 79/83/83 94/98/98 95/95/95
+f 78/82/82 77/87/87 92/102/102 93/97/97
+f 89/84/84 88/89/89 103/104/104 104/99/99
+f 87/88/88 86/90/90 101/105/105 102/103/103
+f 100/92/92 99/91/91 114/106/106 115/107/107
+f 98/94/94 97/93/93 112/108/108 113/109/109
+f 96/96/96 95/95/95 110/110/110 111/111/111
+f 94/98/98 93/97/97 108/112/112 109/113/113
+f 105/100/100 104/99/99 119/114/114 120/115/115
+f 92/102/102 91/101/101 106/116/116 107/117/117
+f 103/104/104 102/103/103 117/118/118 118/119/119
+f 101/105/105 100/92/92 115/107/107 116/120/120
+f 99/91/91 98/94/94 113/109/109 114/106/106
+f 97/93/93 96/96/96 111/111/111 112/108/108
+f 95/95/95 94/98/98 109/113/113 110/110/110
+f 93/97/97 92/102/102 107/117/117 108/112/112
+f 104/99/99 103/104/104 118/119/119 119/114/114
+f 102/103/103 101/105/105 116/120/120 117/118/118
+f 115/121/107 114/122/106 129/123/121 130/124/122
+f 113/125/109 112/126/108 127/127/123 128/128/124
+f 111/129/111 110/130/110 125/131/125 126/132/126
+f 109/133/113 108/134/112 123/135/127 124/136/128
+f 120/137/115 119/138/114 134/139/129 135/140/130
+f 107/141/117 106/142/116 121/143/131 122/144/132
+f 118/145/119 117/146/118 132/147/133 133/148/134
+f 116/149/120 115/121/107 130/124/122 131/150/135
+f 114/122/106 113/125/109 128/128/124 129/123/121
+f 112/126/108 111/129/111 126/132/126 127/127/123
+f 110/130/110 109/133/113 124/136/128 125/131/125
+f 108/134/112 107/141/117 122/144/132 123/135/127
+f 119/138/114 118/145/119 133/148/134 134/139/129
+f 117/146/118 116/149/120 131/150/135 132/147/133
+f 130/124/122 129/123/121 144/151/136 145/152/137
+f 128/128/124 127/127/123 142/153/138 143/154/139
+f 126/132/126 125/131/125 140/155/140 141/156/141
+f 124/136/128 123/135/127 138/157/142 139/158/143
+f 135/140/130 134/139/129 149/159/144 150/160/145
+f 122/144/132 121/143/131 136/161/146 137/162/147
+f 133/148/134 132/147/133 147/163/148 148/164/149
+f 131/150/135 130/124/122 145/152/137 146/165/150
+f 129/123/121 128/128/124 143/154/139 144/151/136
+f 127/127/123 126/132/126 141/156/141 142/153/138
+f 125/131/125 124/136/128 139/158/143 140/155/140
+f 123/135/127 122/144/132 137/162/147 138/157/142
+f 134/139/129 133/148/134 148/164/149 149/159/144
+f 132/147/133 131/150/135 146/165/150 147/163/148
+f 145/152/137 144/151/136 159/166/151 160/167/152
+f 143/154/139 142/153/138 157/168/153 158/169/154
+f 141/156/141 140/155/140 155/170/155 156/171/156
+f 139/158/143 138/157/142 153/172/157 154/173/158
+f 150/160/145 149/159/144 164/174/159 165/175/160
+f 137/162/147 136/161/146 151/176/161 152/177/162
+f 148/164/149 147/163/148 162/178/163 163/179/164
+f 146/165/150 145/152/137 160/167/152 161/180/165
+f 144/151/136 143/154/139 158/169/154 159/166/151
+f 142/153/138 141/156/141 156/171/156 157/168/153
+f 140/155/140 139/158/143 154/173/158 155/170/155
+f 138/157/142 137/162/147 152/177/162 153/172/157
+f 149/159/144 148/164/149 163/179/164 164/174/159
+f 147/163/148 146/165/150 161/180/165 162/178/163
+f 160/167/152 159/166/151 174/181/166 175/182/167
+f 158/169/154 157/168/153 172/183/168 173/184/169
+f 156/171/156 155/170/155 170/185/170 171/186/171
+f 154/173/158 153/172/157 168/187/172 169/188/173
+f 165/175/160 164/174/159 179/189/174 180/190/175
+f 152/177/162 151/176/161 166/191/176 167/192/177
+f 163/179/164 162/178/163 177/193/178 178/194/179
+f 161/180/165 160/167/152 175/182/167 176/195/180
+f 159/166/151 158/169/154 173/184/169 174/181/166
+f 157/168/153 156/171/156 171/186/171 172/183/168
+f 155/170/155 154/173/158 169/188/173 170/185/170
+f 153/172/157 152/177/162 167/192/177 168/187/172
+f 164/174/159 163/179/164 178/194/179 179/189/174
+f 162/178/163 161/180/165 176/195/180 177/193/178
+f 175/182/167 174/181/166 189/196/181 190/197/182
+f 173/184/169 172/183/168 187/198/183 188/199/184
+f 171/186/171 170/185/170 185/200/185 186/201/186
+f 169/188/173 168/187/172 183/202/187 184/203/188
+f 180/190/175 179/189/174 194/204/189 195/205/190
+f 167/192/177 166/191/176 181/206/191 182/207/192
+f 178/194/179 177/193/178 192/208/193 193/209/194
+f 176/195/180 175/182/167 190/197/182 191/210/195
+f 174/181/166 173/184/169 188/199/184 189/196/181
+f 172/183/168 171/186/171 186/201/186 187/198/183
+f 170/185/170 169/188/173 184/203/188 185/200/185
+f 168/187/172 167/192/177 182/207/192 183/202/187
+f 179/189/174 178/194/179 193/209/194 194/204/189
+f 177/193/178 176/195/180 191/210/195 192/208/193
+f 190/197/182 189/196/181 204/211/196 205/212/197
+f 188/199/184 187/198/183 202/213/198 203/214/199
+f 186/201/186 185/200/185 200/215/200 201/216/201
+f 184/203/188 183/202/187 198/217/202 199/218/203
+f 195/205/190 194/204/189 209/219/204 210/220/205
+f 182/207/192 181/206/191 196/221/206 197/222/207
+f 193/209/194 192/208/193 207/223/208 208/224/209
+f 191/210/195 190/197/182 205/212/197 206/225/210
+f 189/196/181 188/199/184 203/214/199 204/211/196
+f 187/198/183 186/201/186 201/216/201 202/213/198
+f 185/200/185 184/203/188 199/218/203 200/215/200
+f 183/202/187 182/207/192 197/222/207 198/217/202
+f 194/204/189 193/209/194 208/224/209 209/219/204
+f 192/208/193 191/210/195 206/225/210 207/223/208
+f 205/212/197 204/211/196 219/226/211 220/227/212
+f 203/214/199 202/213/198 217/228/213 218/229/214
+f 201/216/201 200/215/200 215/230/215 216/231/216
+f 199/218/203 198/217/202 213/232/217 214/233/218
+f 210/220/205 209/219/204 224/234/219 225/235/220
+f 197/222/207 196/221/206 211/236/221 212/237/222
+f 208/224/209 207/223/208 222/238/223 223/239/224
+f 206/225/210 205/212/197 220/227/212 221/240/225
+f 204/211/196 203/214/199 218/229/214 219/226/211
+f 202/213/198 201/216/201 216/231/216 217/228/213
+f 200/215/200 199/218/203 214/233/218 215/230/215
+f 198/217/202 197/222/207 212/237/222 213/232/217
+f 209/219/204 208/224/209 223/239/224 224/234/219
+f 207/223/208 206/225/210 221/240/225 222/238/223
+f 220/227/212 219/226/211 234/241/226 235/242/227
+f 218/229/214 217/228/213 232/243/228 233/244/229
+f 216/231/216 215/230/215 230/245/230 231/246/231
+f 214/233/218 213/232/217 228/247/232 229/248/233
+f 225/235/220 224/234/219 239/249/234 240/250/235
+f 212/237/222 211/236/221 226/251/236 227/252/237
+f 223/239/224 222/238/223 237/253/238 238/254/239
+f 221/240/225 220/227/212 235/242/227 236/255/240
+f 219/226/211 218/229/214 233/244/229 234/241/226
+f 217/228/213 216/231/216 231/246/231 232/243/228
+f 215/230/215 214/233/218 229/248/233 230/245/230
+f 213/232/217 212/237/222 227/252/237 228/247/232
+f 224/234/219 223/239/224 238/254/239 239/249/234
+f 222/238/223 221/240/225 236/255/240 237/253/238
+f 235/242/227 234/241/226 249/21/241 250/18/242
+f 233/244/229 232/243/228 247/25/243 248/22/244
+f 231/246/231 230/245/230 245/29/245 246/26/246
+f 229/248/233 228/247/232 243/2/247 244/1/248
+f 240/250/235 239/249/234 254/6/249 255/5/250
+f 227/252/237 226/251/236 241/10/251 242/9/252
+f 238/254/239 237/253/238 252/14/253 253/13/254
+f 236/255/240 235/242/227 250/18/242 251/17/255
+f 234/241/226 233/244/229 248/22/244 249/21/241
+f 232/243/228 231/246/231 246/26/246 247/25/243
+f 230/245/230 229/248/233 244/1/248 245/29/245
+f 228/247/232 227/252/237 242/9/252 243/2/247
+f 239/249/234 238/254/239 253/13/254 254/6/249
+f 237/253/238 236/255/240 251/17/255 252/14/253
+f 250/18/242 249/21/241 264/24/256 265/19/257
+f 248/22/244 247/25/243 262/28/258 263/23/259
+f 246/26/246 245/29/245 260/30/260 261/27/261
+f 244/1/248 243/2/247 258/3/262 259/4/263
+f 255/5/250 254/6/249 269/7/264 270/8/265
+f 242/9/252 241/10/251 256/11/266 257/12/267
+f 253/13/254 252/14/253 267/15/268 268/16/269
+f 251/17/255 250/18/242 265/19/257 266/20/270
+f 249/21/241 248/22/244 263/23/259 264/24/256
+f 247/25/243 246/26/246 261/27/261 262/28/258
+f 245/29/245 244/1/248 259/4/263 260/30/260
+f 243/2/247 242/9/252 257/12/267 258/3/262
+f 254/6/249 253/13/254 268/16/269 269/7/264
+f 252/14/253 251/17/255 266/20/270 267/15/268
+f 265/19/257 264/24/256 279/31/271 280/32/272
+f 263/23/259 262/28/258 277/33/273 278/34/274
+f 261/27/261 260/30/260 275/35/275 276/36/276
+f 259/4/263 258/3/262 273/37/277 274/38/278
+f 270/8/265 269/7/264 284/39/279 285/40/280
+f 257/12/267 256/11/266 271/41/281 272/42/282
+f 268/16/269 267/15/268 282/43/283 283/44/284
+f 266/20/270 265/19/257 280/32/272 281/45/285
+f 264/24/256 263/23/259 278/34/274 279/31/271
+f 262/28/258 261/27/261 276/36/276 277/33/273
+f 260/30/260 259/4/263 274/38/278 275/35/275
+f 258/3/262 257/12/267 272/42/282 273/37/277
+f 269/7/264 268/16/269 283/44/284 284/39/279
+f 267/15/268 266/20/270 281/45/285 282/43/283
+f 280/32/272 279/31/271 294/46/286 295/47/287
+f 278/34/274 277/33/273 292/48/288 293/49/289
+f 276/36/276 275/35/275 290/50/290 291/51/291
+f 274/38/278 273/37/277 288/52/292 289/53/293
+f 285/40/280 284/39/279 299/54/294 300/55/295
+f 272/42/282 271/41/281 286/56/296 287/57/297
+f 283/44/284 282/43/283 297/58/298 298/59/299
+f 281/45/285 280/32/272 295/47/287 296/60/300
+f 279/31/271 278/34/274 293/49/289 294/46/286
+f 277/33/273 276/36/276 291/51/291 292/48/288
+f 275/35/275 274/38/278 289/53/293 290/50/290
+f 273/37/277 272/42/282 287/57/297 288/52/292
+f 284/39/279 283/44/284 298/59/299 299/54/294
+f 282/43/283 281/45/285 296/60/300 297/58/298
+f 295/47/287 294/46/286 309/61/301 310/62/302
+f 293/49/289 292/48/288 307/63/303 308/64/304
+f 291/51/291 290/50/290 305/65/305 306/66/306
+f 289/53/293 288/52/292 303/67/307 304/68/308
+f 300/55/295 299/54/294 314/69/309 315/70/310
+f 287/57/297 286/56/296 301/71/311 302/72/312
+f 298/59/299 297/58/298 312/73/313 313/74/314
+f 296/60/300 295/47/287 310/62/302 311/75/315
+f 294/46/286 293/49/289 308/64/304 309/61/301
+f 292/48/288 291/51/291 306/66/306 307/63/303
+f 290/50/290 289/53/293 304/68/308 305/65/305
+f 288/52/292 287/57/297 302/72/312 303/67/307
+f 299/54/294 298/59/299 313/74/314 314/69/309
+f 297/58/298 296/60/300 311/75/315 312/73/313
+f 310/62/302 309/61/301 324/76/316 325/77/317
+f 308/64/304 307/63/303 322/78/318 323/79/319
+f 306/66/306 305/65/305 320/80/320 321/81/321
+f 304/68/308 303/67/307 318/82/322 319/83/323
+f 315/70/310 314/69/309 329/84/324 330/85/325
+f 302/72/312 301/71/311 316/86/326 317/87/327
+f 313/74/314 312/73/313 327/88/328 328/89/329
+f 311/75/315 310/62/302 325/77/317 326/90/330
+f 309/61/301 308/64/304 323/79/319 324/76/316
+f 307/63/303 306/66/306 321/81/321 322/78/318
+f 305/65/305 304/68/308 319/83/323 320/80/320
+f 303/67/307 302/72/312 317/87/327 318/82/322
+f 314/69/309 313/74/314 328/89/329 329/84/324
+f 312/73/313 311/75/315 326/90/330 327/88/328
+f 325/77/317 324/76/316 339/91/331 340/92/332
+f 323/79/319 322/78/318 337/93/333 338/94/334
+f 321/81/321 320/80/320 335/95/335 336/96/336
+f 319/83/323 318/82/322 333/97/337 334/98/338
+f 330/85/325 329/84/324 344/99/339 345/100/340
+f 317/87/327 316/86/326 331/101/341 332/102/342
+f 328/89/329 327/88/328 342/103/343 343/104/344
+f 326/90/330 325/77/317 340/92/332 341/105/345
+f 324/76/316 323/79/319 338/94/334 339/91/331
+f 322/78/318 321/81/321 336/96/336 337/93/333
+f 320/80/320 319/83/323 334/98/338 335/95/335
+f 318/82/322 317/87/327 332/102/342 333/97/337
+f 329/84/324 328/89/329 343/104/344 344/99/339
+f 327/88/328 326/90/330 341/105/345 342/103/343
+f 340/92/332 339/91/331 354/106/346 355/107/347
+f 338/94/334 337/93/333 352/108/348 353/109/349
+f 336/96/336 335/95/335 350/110/350 351/111/351
+f 334/98/338 333/97/337 348/112/352 349/113/353
+f 345/100/340 344/99/339 359/114/354 360/115/355
+f 332/102/342 331/101/341 346/116/356 347/117/357
+f 343/104/344 342/103/343 357/118/358 358/119/359
+f 341/105/345 340/92/332 355/107/347 356/120/360
+f 339/91/331 338/94/334 353/109/349 354/106/346
+f 337/93/333 336/96/336 351/111/351 352/108/348
+f 335/95/335 334/98/338 349/113/353 350/110/350
+f 333/97/337 332/102/342 347/117/357 348/112/352
+f 344/99/339 343/104/344 358/119/359 359/114/354
+f 342/103/343 341/105/345 356/120/360 357/118/358
+f 355/121/347 354/122/346 369/123/361 370/124/362
+f 353/125/349 352/126/348 367/127/363 368/128/364
+f 351/129/351 350/130/350 365/131/365 366/132/366
+f 349/133/353 348/134/352 363/135/367 364/136/368
+f 360/137/355 359/138/354 374/139/369 375/140/370
+f 347/141/357 346/142/356 361/143/371 362/144/372
+f 358/145/359 357/146/358 372/147/373 373/148/374
+f 356/149/360 355/121/347 370/124/362 371/150/375
+f 354/122/346 353/125/349 368/128/364 369/123/361
+f 352/126/348 351/129/351 366/132/366 367/127/363
+f 350/130/350 349/133/353 364/136/368 365/131/365
+f 348/134/352 347/141/357 362/144/372 363/135/367
+f 359/138/354 358/145/359 373/148/374 374/139/369
+f 357/146/358 356/149/360 371/150/375 372/147/373
+f 370/124/362 369/123/361 384/151/376 385/152/377
+f 368/128/364 367/127/363 382/153/378 383/154/379
+f 366/132/366 365/131/365 380/155/380 381/156/381
+f 364/136/368 363/135/367 378/157/382 379/158/383
+f 375/140/370 374/139/369 389/159/384 390/160/385
+f 362/144/372 361/143/371 376/161/386 377/162/387
+f 373/148/374 372/147/373 387/163/388 388/164/389
+f 371/150/375 370/124/362 385/152/377 386/165/390
+f 369/123/361 368/128/364 383/154/379 384/151/376
+f 367/127/363 366/132/366 381/156/381 382/153/378
+f 365/131/365 364/136/368 379/158/383 380/155/380
+f 363/135/367 362/144/372 377/162/387 378/157/382
+f 374/139/369 373/148/374 388/164/389 389/159/384
+f 372/147/373 371/150/375 386/165/390 387/163/388
+f 385/152/377 384/151/376 399/166/391 400/167/392
+f 383/154/379 382/153/378 397/168/393 398/169/394
+f 381/156/381 380/155/380 395/170/395 396/171/396
+f 379/158/383 378/157/382 393/172/397 394/173/398
+f 390/160/385 389/159/384 404/174/399 405/175/400
+f 377/162/387 376/161/386 391/176/401 392/177/402
+f 388/164/389 387/163/388 402/178/403 403/179/404
+f 386/165/390 385/152/377 400/167/392 401/180/405
+f 384/151/376 383/154/379 398/169/394 399/166/391
+f 382/153/378 381/156/381 396/171/396 397/168/393
+f 380/155/380 379/158/383 394/173/398 395/170/395
+f 378/157/382 377/162/387 392/177/402 393/172/397
+f 389/159/384 388/164/389 403/179/404 404/174/399
+f 387/163/388 386/165/390 401/180/405 402/178/403
+f 400/167/392 399/166/391 414/181/406 415/182/407
+f 398/169/394 397/168/393 412/183/408 413/184/409
+f 396/171/396 395/170/395 410/185/410 411/186/411
+f 394/173/398 393/172/397 408/187/412 409/188/413
+f 405/175/400 404/174/399 419/189/414 420/190/415
+f 392/177/402 391/176/401 406/191/416 407/192/417
+f 403/179/404 402/178/403 417/193/418 418/194/419
+f 401/180/405 400/167/392 415/182/407 416/195/420
+f 399/166/391 398/169/394 413/184/409 414/181/406
+f 397/168/393 396/171/396 411/186/411 412/183/408
+f 395/170/395 394/173/398 409/188/413 410/185/410
+f 393/172/397 392/177/402 407/192/417 408/187/412
+f 404/174/399 403/179/404 418/194/419 419/189/414
+f 402/178/403 401/180/405 416/195/420 417/193/418
+f 415/182/407 414/181/406 429/196/421 430/197/422
+f 413/184/409 412/183/408 427/198/423 428/199/424
+f 411/186/411 410/185/410 425/200/425 426/201/426
+f 409/188/413 408/187/412 423/202/427 424/203/428
+f 420/190/415 419/189/414 434/204/429 435/205/430
+f 407/192/417 406/191/416 421/206/431 422/207/432
+f 418/194/419 417/193/418 432/208/433 433/209/434
+f 416/195/420 415/182/407 430/197/422 431/210/435
+f 414/181/406 413/184/409 428/199/424 429/196/421
+f 412/183/408 411/186/411 426/201/426 427/198/423
+f 410/185/410 409/188/413 424/203/428 425/200/425
+f 408/187/412 407/192/417 422/207/432 423/202/427
+f 419/189/414 418/194/419 433/209/434 434/204/429
+f 417/193/418 416/195/420 431/210/435 432/208/433
+f 430/197/422 429/196/421 444/211/436 445/212/437
+f 428/199/424 427/198/423 442/213/438 443/214/439
+f 426/201/426 425/200/425 440/215/440 441/216/441
+f 424/203/428 423/202/427 438/217/442 439/218/443
+f 435/205/430 434/204/429 449/219/444 450/220/445
+f 422/207/432 421/206/431 436/221/446 437/222/447
+f 433/209/434 432/208/433 447/223/448 448/224/449
+f 431/210/435 430/197/422 445/212/437 446/225/450
+f 429/196/421 428/199/424 443/214/439 444/211/436
+f 427/198/423 426/201/426 441/216/441 442/213/438
+f 425/200/425 424/203/428 439/218/443 440/215/440
+f 423/202/427 422/207/432 437/222/447 438/217/442
+f 434/204/429 433/209/434 448/224/449 449/219/444
+f 432/208/433 431/210/435 446/225/450 447/223/448
+f 445/212/437 444/211/436 459/226/451 460/227/452
+f 443/214/439 442/213/438 457/228/453 458/229/454
+f 441/216/441 440/215/440 455/230/455 456/231/456
+f 439/218/443 438/217/442 453/232/457 454/233/458
+f 450/220/445 449/219/444 464/234/459 465/235/460
+f 437/222/447 436/221/446 451/236/461 452/237/462
+f 448/224/449 447/223/448 462/238/463 463/239/464
+f 446/225/450 445/212/437 460/227/452 461/240/465
+f 444/211/436 443/214/439 458/229/454 459/226/451
+f 442/213/438 441/216/441 456/231/456 457/228/453
+f 440/215/440 439/218/443 454/233/458 455/230/455
+f 438/217/442 437/222/447 452/237/462 453/232/457
+f 449/219/444 448/224/449 463/239/464 464/234/459
+f 447/223/448 446/225/450 461/240/465 462/238/463
+f 460/227/452 459/226/451 474/241/466 475/242/467
+f 458/229/454 457/228/453 472/243/468 473/244/469
+f 456/231/456 455/230/455 470/245/470 471/246/471
+f 454/233/458 453/232/457 468/247/472 469/248/473
+f 465/235/460 464/234/459 479/249/474 480/250/475
+f 452/237/462 451/236/461 466/251/476 467/252/477
+f 463/239/464 462/238/463 477/253/478 478/254/479
+f 461/240/465 460/227/452 475/242/467 476/255/480
+f 459/226/451 458/229/454 473/244/469 474/241/466
+f 457/228/453 456/231/456 471/246/471 472/243/468
+f 455/230/455 454/233/458 469/248/473 470/245/470
+f 453/232/457 452/237/462 467/252/477 468/247/472
+f 464/234/459 463/239/464 478/254/479 479/249/474
+f 462/238/463 461/240/465 476/255/480 477/253/478
+f 481/256/481 15/5/5 30/8/8 485/257/482
+f 485/257/482 30/8/8 45/40/40 487/258/483
+f 487/258/483 45/40/40 60/55/55 489/259/484
+f 489/259/484 60/55/55 75/70/70 491/260/485
+f 491/260/485 75/70/70 90/85/85 493/261/486
+f 493/261/486 90/85/85 105/100/100 495/262/487
+f 495/262/487 105/100/100 120/115/115 497/263/488
+f 497/264/488 120/137/115 135/140/130 499/265/489
+f 499/265/489 135/140/130 150/160/145 501/266/490
+f 501/266/490 150/160/145 165/175/160 503/267/491
+f 503/267/491 165/175/160 180/190/175 505/268/492
+f 505/268/492 180/190/175 195/205/190 507/269/493
+f 507/269/493 195/205/190 210/220/205 509/270/494
+f 509/270/494 210/220/205 225/235/220 511/271/495
+f 511/271/495 225/235/220 240/250/235 513/272/496
+f 513/272/496 240/250/235 255/5/250 515/256/497
+f 515/256/497 255/5/250 270/8/265 517/257/498
+f 517/257/498 270/8/265 285/40/280 519/258/499
+f 519/258/499 285/40/280 300/55/295 521/259/500
+f 521/259/500 300/55/295 315/70/310 523/260/501
+f 523/260/501 315/70/310 330/85/325 525/261/502
+f 525/261/502 330/85/325 345/100/340 527/262/503
+f 527/262/503 345/100/340 360/115/355 529/263/504
+f 529/264/504 360/137/355 375/140/370 531/265/505
+f 531/265/505 375/140/370 390/160/385 533/266/506
+f 533/266/506 390/160/385 405/175/400 534/267/507
+f 534/267/507 405/175/400 420/190/415 536/268/508
+f 536/268/508 420/190/415 435/205/430 538/269/509
+f 538/269/509 435/205/430 450/220/445 540/270/510
+f 540/270/510 450/220/445 465/235/460 542/271/511
+f 542/271/511 465/235/460 480/250/475 544/272/512
+f 475/242/467 474/241/466 9/21/21 10/18/18
+f 473/244/469 472/243/468 7/25/25 8/22/22
+f 471/246/471 470/245/470 5/29/29 6/26/26
+f 469/248/473 468/247/472 3/2/2 4/1/1
+f 480/250/475 479/249/474 14/6/6 15/5/5
+f 467/252/477 466/251/476 1/10/10 2/9/9
+f 478/254/479 477/253/478 12/14/14 13/13/13
+f 476/255/480 475/242/467 10/18/18 11/17/17
+f 474/241/466 473/244/469 8/22/22 9/21/21
+f 472/243/468 471/246/471 6/26/26 7/25/25
+f 470/245/470 469/248/473 4/1/1 5/29/29
+f 544/272/512 480/250/475 15/5/5 481/256/481
+f 468/247/472 467/252/477 2/9/9 3/2/2
+f 479/249/474 478/254/479 13/13/13 14/6/6
+f 477/253/478 476/255/480 11/17/17 12/14/14
+f 466/251/476 543/273/513 483/274/514 1/10/10
+f 451/236/461 541/275/515 543/273/513 466/251/476
+f 436/221/446 539/276/516 541/275/515 451/236/461
+f 421/206/431 537/277/517 539/276/516 436/221/446
+f 406/191/416 535/278/518 537/277/517 421/206/431
+f 391/176/401 482/279/519 535/278/518 406/191/416
+f 376/161/386 532/280/520 482/279/519 391/176/401
+f 361/143/371 530/281/521 532/280/520 376/161/386
+f 346/142/356 528/282/522 530/281/521 361/143/371
+f 331/101/341 526/283/523 528/284/522 346/116/356
+f 316/86/326 524/285/524 526/283/523 331/101/341
+f 301/71/311 522/286/525 524/285/524 316/86/326
+f 286/56/296 520/287/526 522/286/525 301/71/311
+f 271/41/281 518/288/527 520/287/526 286/56/296
+f 256/11/266 516/289/528 518/288/527 271/41/281
+f 241/10/251 514/274/529 516/289/528 256/11/266
+f 226/251/236 512/273/530 514/274/529 241/10/251
+f 211/236/221 510/275/531 512/273/530 226/251/236
+f 196/221/206 508/276/532 510/275/531 211/236/221
+f 181/206/191 506/277/533 508/276/532 196/221/206
+f 166/191/176 504/278/534 506/277/533 181/206/191
+f 151/176/161 502/279/535 504/278/534 166/191/176
+f 136/161/146 500/280/536 502/279/535 151/176/161
+f 121/143/131 498/281/537 500/280/536 136/161/146
+f 106/142/116 496/282/538 498/281/537 121/143/131
+f 91/101/101 494/283/539 496/284/538 106/116/116
+f 76/86/86 492/285/540 494/283/539 91/101/101
+f 61/71/71 490/286/541 492/285/540 76/86/86
+f 46/56/56 488/287/542 490/286/541 61/71/71
+f 31/41/41 486/288/543 488/287/542 46/56/56
+f 16/11/11 484/289/544 486/288/543 31/41/41
+f 1/10/10 483/274/514 484/289/544 16/11/11
+f 543/290/513 541/291/515 539/292/516 537/293/517 535/294/518 482/295/519 532/296/520 530/297/521 528/298/522 526/299/523 524/300/524 522/301/525 520/302/526 518/303/527 516/304/528 514/305/529 512/306/530 510/307/531 508/308/532 506/309/533 504/310/534 502/311/535 500/312/536 498/313/537 496/314/538 494/315/539 492/316/540 490/317/541 488/318/542 486/319/543 484/320/544 483/321/514
+f 544/290/512 481/291/481 485/292/482 487/293/483 489/294/484 491/295/485 493/296/486 495/297/487 497/298/488 499/299/489 501/300/490 503/301/491 505/302/492 507/303/493 509/304/494 511/305/495 513/306/496 515/307/497 517/308/498 519/309/499 521/310/500 523/311/501 525/312/502 527/313/503 529/314/504 531/315/505 533/316/506 534/317/507 536/318/508 538/319/509 540/320/510 542/321/511
diff --git a/technic_cnc/models/technic_cnc_two_curved_edge.obj b/technic_cnc/models/technic_cnc_two_curved_edge.obj
new file mode 100644
index 0000000..a468ddf
--- /dev/null
+++ b/technic_cnc/models/technic_cnc_two_curved_edge.obj
@@ -0,0 +1,207 @@
+# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_corner_onetexture.blend'
+# www.blender.org
+o corner1_Cylinder
+v 0.415732 0.277783 0.499997
+v 0.461936 0.191340 0.499997
+v 0.415735 0.277783 -0.415732
+v 0.461940 0.191340 -0.461937
+v 0.490389 0.097544 0.499997
+v 0.353551 0.353551 0.499997
+v 0.353555 0.353551 -0.353551
+v 0.499996 -0.000000 0.499997
+v 0.277783 0.415732 0.499997
+v 0.490393 0.097544 -0.490389
+v 0.277787 0.415732 -0.277784
+v 0.191340 0.461936 0.499997
+v 0.191344 0.461937 -0.191341
+v 0.097544 0.490389 0.499997
+v 0.097547 0.490391 -0.097545
+v -0.000000 0.499996 0.499997
+v -0.499997 0.499997 0.499997
+v -0.499997 0.499997 -0.000030
+v -0.499997 0.415735 -0.277785
+v -0.499997 0.461940 -0.191342
+v -0.499997 0.490393 -0.097545
+v -0.500000 -0.500000 -0.500000
+v -0.499997 -0.499997 0.499997
+v 0.000000 0.499998 0.000000
+v -0.499998 0.000014 -0.499999
+v -0.499997 0.353553 -0.353554
+v -0.499998 0.097545 -0.490393
+v -0.499997 0.277785 -0.415735
+v -0.499998 0.191342 -0.461940
+v 0.499997 -0.000000 -0.499996
+v 0.500000 -0.500000 -0.500000
+v 0.499997 -0.499997 0.499997
+v -0.499997 -0.499997 0.499997
+v -0.499997 0.499997 0.499997
+v -0.499997 0.499997 -0.000030
+v -0.499997 0.415735 -0.277785
+v -0.499997 0.461940 -0.191342
+v -0.499997 0.490393 -0.097545
+v -0.500000 -0.500000 -0.500000
+v -0.499998 0.000014 -0.499999
+v -0.499997 0.353553 -0.353554
+v -0.499998 0.097545 -0.490393
+v -0.499997 0.277785 -0.415735
+v -0.499998 0.191342 -0.461940
+v -0.499998 -0.033351 0.033348
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+v 0.499997 -0.499997 0.499997
+v 0.415732 0.277783 0.499997
+v 0.461936 0.191340 0.499997
+v 0.490389 0.097544 0.499997
+v 0.353551 0.353551 0.499997
+v 0.499996 -0.000000 0.499997
+v 0.277783 0.415732 0.499997
+v 0.191340 0.461936 0.499997
+v -0.499997 -0.499997 0.499997
+v 0.097544 0.490389 0.499997
+v -0.000000 0.499996 0.499997
+v -0.499997 0.499997 0.499997
+v -0.033351 -0.033351 0.499997
+v 0.499997 -0.499997 0.499997
+vt 1.000000 0.500100
+vt 0.990395 0.597625
+vt 0.466756 0.466756
+vt 1.000000 0.000200
+vt 0.000201 0.000201
+vt 0.597626 0.990394
+vt 0.500101 1.000000
+vt 0.691404 0.961947
+vt 0.777830 0.915751
+vt 0.853583 0.853583
+vt 0.915752 0.777829
+vt 0.000201 1.000000
+vt 0.961948 0.691403
+vt -0.000000 0.000000
+vt 1.000000 0.000000
+vt 1.000000 1.000000
+vt -0.000000 1.000000
+vt 0.533443 0.466757
+vt 0.000202 0.500115
+vt 0.402575 0.990397
+vt 0.308797 0.961949
+vt 0.222371 0.915753
+vt 0.146617 0.853584
+vt 0.084449 0.777831
+vt 0.038253 0.691405
+vt 0.009806 0.597626
+vt 0.999996 0.125448
+vt 0.222353 0.125462
+vt 0.146597 0.000612
+vt 0.999995 0.000594
+vt 0.000178 0.874582
+vt 0.915751 0.874577
+vt 0.853580 0.999436
+vt 0.000178 0.999439
+vt 0.999808 0.625427
+vt 0.009599 0.625446
+vt -0.000005 0.500594
+vt 0.999807 0.500594
+vt 0.597441 0.374574
+vt 0.499912 0.499435
+vt 0.000000 0.499434
+vt 0.000000 0.374576
+vt 0.999999 0.375154
+vt 1.000000 0.499969
+vt 0.500093 0.500015
+vt 0.402562 0.375164
+vt 0.999812 0.999983
+vt 0.146415 1.000000
+vt 0.084244 0.875149
+vt 0.999811 0.875131
+vt 0.990396 0.624861
+vt 0.961947 0.749719
+vt 0.000178 0.749724
+vt 0.000178 0.624866
+vt 0.777649 0.124857
+vt 0.691221 0.249715
+vt 0.000001 0.249719
+vt 0.000001 0.124861
+vt 0.308782 0.250314
+vt 0.999998 0.250301
+vt 0.853403 -0.000000
+vt 0.038047 0.750298
+vt 0.999809 0.750280
+vt 0.000177 0.500008
+vt 0.000000 0.500000
+vt 0.500000 1.000000
+vt 0.500000 0.500000
+vn 0.000000 -0.000000 1.000000
+vn -0.000000 -1.000000 0.000000
+vn -1.000000 0.000000 0.000000
+vn 0.000000 0.831500 -0.555600
+vn 0.325800 0.887500 -0.325800
+vn 0.429700 0.794100 -0.429700
+vn 0.000000 0.707100 -0.707100
+vn 0.831500 0.555600 0.000000
+vn 0.531000 0.660300 -0.531000
+vn 0.707100 0.707100 0.000000
+vn 0.000000 0.195100 -0.980800
+vn 0.683900 0.254100 -0.683900
+vn 0.705500 0.067100 -0.705500
+vn 0.000000 0.049100 -0.998800
+vn 0.123100 0.984700 -0.123100
+vn 0.036800 0.998600 -0.036800
+vn 0.049100 0.998800 0.000000
+vn 0.195100 0.980800 0.000000
+vn 0.000000 0.980800 -0.195100
+vn 0.000000 0.998800 -0.049100
+vn 0.000000 0.555600 -0.831500
+vn 0.620400 0.479600 -0.620400
+vn 0.923900 0.382700 0.000000
+vn 0.980800 0.195100 0.000000
+vn 0.223300 0.948800 -0.223200
+vn 0.382700 0.923900 0.000000
+vn 0.555600 0.831500 0.000000
+vn 0.000000 0.923900 -0.382700
+vn 0.000000 0.382700 -0.923900
+vn 0.998800 0.049100 0.000000
+vn 0.707100 0.000000 -0.707100
+vn 0.000000 0.000000 -1.000000
+vn -0.000000 1.000000 0.000000
+vn 1.000000 0.000000 0.000000
+s off
+f 53/1/1 51/2/1 60/3/1
+f 61/4/1 53/1/1 60/3/1 56/5/1
+f 57/6/1 58/7/1 60/3/1
+f 55/8/1 57/6/1 60/3/1
+f 54/9/1 55/8/1 60/3/1
+f 52/10/1 54/9/1 60/3/1
+f 49/11/1 52/10/1 60/3/1
+f 59/12/1 56/5/1 60/3/1 58/7/1
+f 50/13/1 49/11/1 60/3/1
+f 48/14/2 23/15/2 46/16/2 47/17/2
+f 39/5/3 33/4/3 45/18/3 40/19/3
+f 35/7/3 38/20/3 45/18/3
+f 38/20/3 37/21/3 45/18/3
+f 37/21/3 36/22/3 45/18/3
+f 36/22/3 41/23/3 45/18/3
+f 41/23/3 43/24/3 45/18/3
+f 43/24/3 44/25/3 45/18/3
+f 44/25/3 42/26/3 45/18/3
+f 42/26/3 40/19/3 45/18/3
+f 34/16/3 35/7/3 45/18/3 33/4/3
+f 51/2/1 50/13/1 60/3/1
+s 1
+f 19/27/4 11/28/5 7/29/6 26/30/7
+f 1/31/8 3/32/9 7/33/6 6/34/10
+f 27/35/11 10/36/12 30/37/13 25/38/14
+f 15/39/15 24/40/16 16/41/17 14/42/18
+f 21/43/19 18/44/20 24/45/16 15/46/15
+f 26/47/7 7/48/6 3/49/9 28/50/21
+f 10/51/12 4/52/22 2/53/23 5/54/24
+f 11/55/5 13/56/25 12/57/26 9/58/27
+f 21/43/19 15/46/15 13/59/25 20/60/28
+f 20/60/28 13/59/25 11/28/5 19/27/4
+f 9/58/27 6/14/10 7/61/6 11/55/5
+f 4/52/22 3/32/9 1/31/8 2/53/23
+f 3/49/9 4/62/22 29/63/29 28/50/21
+f 10/51/12 5/54/24 8/64/30 30/44/13
+f 29/63/29 4/62/22 10/36/12 27/35/11
+f 25/44/14 30/65/13 31/14/31 22/15/32
+f 16/66/17 24/67/16 18/44/20 17/16/33
+f 8/65/30 32/14/34 31/15/31 30/44/13
+f 12/57/26 13/56/25 15/39/15 14/42/18
diff --git a/technic_cnc/textures/technic_cnc_bottom.png b/technic_cnc/textures/technic_cnc_bottom.png
new file mode 100644
index 0000000..e600cb1
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_bottom.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_cylinder.png b/technic_cnc/textures/technic_cnc_cylinder.png
new file mode 100644
index 0000000..48921bd
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_cylinder.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_cylinder_horizontal.png b/technic_cnc/textures/technic_cnc_cylinder_horizontal.png
new file mode 100644
index 0000000..82eb24c
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_cylinder_horizontal.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_element_cross.png b/technic_cnc/textures/technic_cnc_element_cross.png
new file mode 100644
index 0000000..cc66571
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_element_cross.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_element_edge.png b/technic_cnc/textures/technic_cnc_element_edge.png
new file mode 100644
index 0000000..1245ea7
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_element_edge.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_element_end.png b/technic_cnc/textures/technic_cnc_element_end.png
new file mode 100644
index 0000000..562eb2b
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_element_end.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_element_straight.png b/technic_cnc/textures/technic_cnc_element_straight.png
new file mode 100644
index 0000000..d42966e
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_element_straight.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_element_t.png b/technic_cnc/textures/technic_cnc_element_t.png
new file mode 100644
index 0000000..a462764
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_element_t.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_front.png b/technic_cnc/textures/technic_cnc_front.png
new file mode 100644
index 0000000..6cc0490
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_front.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_front_active.png b/technic_cnc/textures/technic_cnc_front_active.png
new file mode 100644
index 0000000..f7a3c7f
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_front_active.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_full.png b/technic_cnc/textures/technic_cnc_full.png
new file mode 100644
index 0000000..60f8a81
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_full.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_half.png b/technic_cnc/textures/technic_cnc_half.png
new file mode 100644
index 0000000..2c4d3a8
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_half.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_milling_background.png b/technic_cnc/textures/technic_cnc_milling_background.png
new file mode 100644
index 0000000..6a9c2f4
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_milling_background.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_oblate_spheroid.png b/technic_cnc/textures/technic_cnc_oblate_spheroid.png
new file mode 100644
index 0000000..b196e7d
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_oblate_spheroid.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_onecurvededge.png b/technic_cnc/textures/technic_cnc_onecurvededge.png
new file mode 100644
index 0000000..8325846
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_onecurvededge.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_pyramid.png b/technic_cnc/textures/technic_cnc_pyramid.png
new file mode 100644
index 0000000..d8cc713
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_pyramid.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_side.png b/technic_cnc/textures/technic_cnc_side.png
new file mode 100644
index 0000000..1ecbbac
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_side.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope.png b/technic_cnc/textures/technic_cnc_slope.png
new file mode 100644
index 0000000..493d560
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_edge.png b/technic_cnc/textures/technic_cnc_slope_edge.png
new file mode 100644
index 0000000..1b601c4
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_edge.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png b/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png
new file mode 100644
index 0000000..350c22d
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_inner_edge.png b/technic_cnc/textures/technic_cnc_slope_inner_edge.png
new file mode 100644
index 0000000..3f5ab9e
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_inner_edge.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png b/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png
new file mode 100644
index 0000000..a1fee78
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_lying.png b/technic_cnc/textures/technic_cnc_slope_lying.png
new file mode 100644
index 0000000..099ed59
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_lying.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_slope_upsdwn.png b/technic_cnc/textures/technic_cnc_slope_upsdwn.png
new file mode 100644
index 0000000..2a34b8b
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_slope_upsdwn.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_sphere.png b/technic_cnc/textures/technic_cnc_sphere.png
new file mode 100644
index 0000000..791b32b
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_sphere.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_spike.png b/technic_cnc/textures/technic_cnc_spike.png
new file mode 100644
index 0000000..b445b40
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_spike.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_stick.png b/technic_cnc/textures/technic_cnc_stick.png
new file mode 100644
index 0000000..acaf1cb
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_stick.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_top.png b/technic_cnc/textures/technic_cnc_top.png
new file mode 100644
index 0000000..5123334
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_top.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_top_active.png b/technic_cnc/textures/technic_cnc_top_active.png
new file mode 100644
index 0000000..2bc9d81
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_top_active.png
Binary files differ
diff --git a/technic_cnc/textures/technic_cnc_twocurvededge.png b/technic_cnc/textures/technic_cnc_twocurvededge.png
new file mode 100644
index 0000000..b50a257
--- /dev/null
+++ b/technic_cnc/textures/technic_cnc_twocurvededge.png
Binary files differ