Пример #1
0
        static void decode_tp(STEPNCLib.Finder Find, StringBuilder builder, long tp_id, int depth, bool last2, ref long count)
        {
            //time, distance, speed, feed
            double time = Find.GetExecutableBaseTime(tp_id);
            double distance = Find.GetExecutableDistance(tp_id);
            double feed = Find.GetProcessFeed(tp_id);
            double speed = Find.GetProcessSpeed(tp_id);

            for (int i = 0; i < depth; i++)
                builder.Append("\t");
            builder.Append("{\"toolpath\": {");

            builder.Append("\"base_time\": ");
            builder.Append(time);
            builder.Append(", ");

            builder.Append("\"distance\": ");
            builder.Append(distance);
            builder.Append(", ");

            builder.Append("\"feed_rate\": ");
            builder.Append(feed);
            builder.Append(", ");

            builder.Append("\"speed\": ");
            builder.Append(speed);

            if (last2)
            {
                builder.Append(" }}\n");
                count = count + 1;
            }
            else
                builder.Append(" }},\n");
        }
Пример #2
0
        /*static void decode_geom(STEPNCLib.Finder Find, StringBuilder builder, long crv_count, long tp_id) {
        for(int i = 0; i < crv_count; i++) {
            bool isArc;
            long crv_id = Find.GetPathCurveNext(tp_id, i, out isArc);
            String type = Find.GetPathCurveType(crv_id);

            Console.WriteLine("Curve type: " + type);
        }
        }*/
        static void Mark_pieces(STEPNCLib.Finder Find, STEPNCLib.AptStepMaker APT, StringBuilder builder)
        {
            long count = Find.GetWorkpieceCount();

            for (long i = 0; i < count; i++){
            long wp_id = Find.GetWorkpieceNext(i);
            String uu = APT.SetUUID_if_not_set(wp_id);
            //System.Console.WriteLine("Workpiece at " + wp_id + " has UUID: " + uu);
            }
        }
Пример #3
0
        static void Mark_tools(STEPNCLib.Finder Find, STEPNCLib.AptStepMaker APT, StringBuilder builder)
        {
            long count = Find.GetToolAllCount();

            for (long i = 0; i < count; i++){
            long tl_id = Find.GetToolAllNext(i);
            String uu = APT.SetUUID_if_not_set(tl_id);
            //System.Console.WriteLine("Tool at " + tl_id + " has UUID: " + uu);
            }
        }
Пример #4
0
        static void Mark_technologies(STEPNCLib.Finder Find, STEPNCLib.AptStepMaker APT, StringBuilder builder)
        {
            long count = Find.GetTechnologyAllCount();
            double feed, speed;

            for (long i = 0; i < count; i++){
            long tech_id = Find.GetTechnologyAllNext(i, out feed, out speed);
            String uu = APT.SetUUID_if_not_set(tech_id);
            //System.Console.WriteLine("Tool at " + tech_id + " has UUID: " + uu);
            }
        }
Пример #5
0
        //Marks a Workingstep with attributes: ["name" (if available), "base_time", "opt_time" (if available), "distance"]
        static void Mark_step(long ws_id, STEPNCLib.Finder Find, STEPNCLib.AptStepMaker APT, StringBuilder builder, int depth, bool last, ref long count)
        {
            string name = Find.GetWorkingstepName2(ws_id);
            double base_time = Find.GetExecutableBaseTime(ws_id);
            double opt_time = Find.GetExecutableOptimizedTime(ws_id);
            double distance = Find.GetExecutableDistance(ws_id);
            for (int i = 0; i < depth; i++)
            builder.Append("\t");
            builder.Append("{\"working_step\": {");
            if (name != "")
            {
            builder.Append("\"name\": \"");
            builder.Append(name);
            builder.Append("\", ");
            }
            builder.Append("\"base_time\": ");
            builder.Append(base_time);
            builder.Append(", ");
            if (opt_time != base_time)
            {
            builder.Append("\"opt_time\": ");
            builder.Append(opt_time);
            builder.Append(", ");
            }
            builder.Append("\"distance\": ");
            builder.Append(distance);
            builder.Append(", ");

            List<long> paths = Find.GetWorkingstepPathAll(ws_id);
            builder.Append("\"toolpaths\" : [\n");
            bool last2 = false;
            for(int i = 0; i < paths.Count; i++){
            long tp_id = paths[i];
            if(i == (paths.Count - 1))
                last2 = true;
            else
                last2 = false;
            String uu = APT.SetUUID_if_not_set(tp_id);
            decode_tp(Find, builder, tp_id, depth + 1, last2, ref count);
            }

            if (last)
            {
            builder.Append(" ]}}\n");
            count = count + 1;
            }
            else
            builder.Append(" ]}},\n");
        }
Пример #6
0
        //Marks a Workplan or Selective with attributes: ["name" (if available), "base_time", "opt_time" (if available), "distance", "children"]
        static void Mark_plan(long wp_id, STEPNCLib.Finder Find, STEPNCLib.AptStepMaker APT, StringBuilder builder, int depth, bool last, ref long count)
        {
            long size = Find.GetNestedExecutableCount(wp_id);
            if (Find.IsWorkplan(wp_id))
            {
            if (count != 0)
            {
                builder.Append(",\n");
                count = 0;
            }

            for (int i = 0; i < depth; i++)
                builder.Append("\t");
            builder.Append("{\"workplan\": {");
            string name = Find.GetExecutableName(wp_id);
            double base_time = Find.GetExecutableBaseTime(wp_id);
            double opt_time = Find.GetExecutableOptimizedTime(wp_id);
            double distance = Find.GetExecutableDistance(wp_id);
            if (name != "")
            {
                builder.Append("\"name\": \"");
                builder.Append(name);
                builder.Append("\", ");
            }
            builder.Append("\"base_time\": ");
            builder.Append(base_time);
            builder.Append(", ");
            if (opt_time != base_time)
            {
                builder.Append("\"opt_time\": ");
                builder.Append(opt_time);
                builder.Append(", ");
            }
            builder.Append("\"distance\": ");
            builder.Append(distance);
            builder.Append(", ");
            builder.Append("\"children\" : [\n");
            }
            else if (Find.IsSelective(wp_id))
            {
            if (count != 0)
            {
                builder.Append(",\n");
                count = 0;
            }

            for (int i = 0; i < depth; i++)
                builder.Append("\t");
            builder.Append("{\"selective\": {");
            string name = Find.GetExecutableName(wp_id);
            double base_time = Find.GetExecutableBaseTime(wp_id);
            double opt_time = Find.GetExecutableOptimizedTime(wp_id);
            double distance = Find.GetExecutableDistance(wp_id);
            if (name != "")
            {
                builder.Append("\"name\": \"");
                builder.Append(name);
                builder.Append("\", ");
            }
            builder.Append("\"base_time\": ");
            builder.Append(base_time);
            builder.Append(", ");
            if (opt_time != base_time)
            {
                builder.Append("\"opt_time\": ");
                builder.Append(opt_time);
                builder.Append(", ");
            }
            builder.Append("\"distance\": ");
            builder.Append(distance);
            builder.Append(", ");
            builder.Append("\"children\" : [\n");
            }
            else {
            Console.WriteLine("ERROR IN STEPNC FILE");
            }
            for (int I = 0; I < size; I++)
            {
            long exe_id = Find.GetNestedExecutableNext(wp_id, I);
            String uu = APT.SetUUID_if_not_set(exe_id);

            String type = Find.GetExecutableType(exe_id);
            //System.Console.WriteLine("Item at " + I + " is a " + type + " has UUID: " + uu);
            if (I == (size - 1))
                last = true;
            else
                last = false;

            if (Find.IsWorkplan(exe_id) || Find.IsSelective(exe_id))
                Mark_plan(exe_id, Find, APT, builder, depth + 1, last, ref count);
            else if (Find.IsWorkingstep(exe_id))
                Mark_step(exe_id, Find, APT, builder, depth + 1, last, ref count);
            }

            for (int i = 0; i < depth; i++)
            builder.Append("\t");
            builder.Append("]}}");
        }