var LearnPathTable_Line_Arr=new Array(); var LearnPathTable_Line_Arr_Front=new Array(); var LearnPathTable_Line_Arr_Reverse=new Array(); var LearnPathTable_Arc_Arr=new Array(); var LearnPathTable_Arc_Arr_Front=new Array(); var LearnPathTable_Arc_Arr_Reverse=new Array(); var LearnPathTable_Bezier_Arr=new Array(); var LearnPathTable_Bezier_Arr_Front=new Array(); var LearnPathTable_Bezier_Arr_Reverse=new Array(); var LearnPathTable_WayPoint_Arr=new Array(); var LearnPathTable_WayPoint_Arr_Front=new Array(); var LearnPathTable_WayPoint_Arr_Reverse=new Array(); var LearnPathTable_OriginTurn_Arr=new Array(); var LearnPathTable_OriginTurn_Arr_Front=new Array(); var LearnPathTable_OriginTurn_Arr_Reverse=new Array(); var LearnNodePointManagerTable_PathNode_Arr=new Array(); var LearnNodePoint_Map=new Map(); var LearnPointCloud; var LearnPointCloud_Map=new Map(); var LearnPointCloud_Arr=new Array(); ////////////////////////////////////////////////////////////// function Lu_Parse_LearnPathTable(str){ var str_line_arr=str.split(/[(\r\n)\r\n]+/); for (let i = 0; i < str_line_arr.length; i++) { var str_line=str_line_arr[i]; Lu_Parse_LearnPathTableLine(str_line); } LearnPathTable_Line_Arr=LearnPathTable_Line_Arr_Front.concat(LearnPathTable_Line_Arr_Reverse); LearnPathTable_Arc_Arr=LearnPathTable_Arc_Arr_Front.concat(LearnPathTable_Arc_Arr_Reverse); LearnPathTable_Bezier_Arr=LearnPathTable_Bezier_Arr_Front.concat(LearnPathTable_Bezier_Arr_Reverse); LearnPathTable_WayPoint_Arr=LearnPathTable_WayPoint_Arr_Front.concat(LearnPathTable_WayPoint_Arr_Reverse); LearnPathTable_OriginTurn_Arr=LearnPathTable_OriginTurn_Arr_Front.concat(LearnPathTable_OriginTurn_Arr_Reverse); } function Lu_Parse_LearnPathTableLine(str){ var PathInfo_str0=""; var PathInfo_StringParam1=""; var PathInfo_StringParam2=""; var PathInfo_StringParam3=""; var PathInfo_StringParam4=""; var item_arr0=str.split('<'); if(item_arr0.length<1)return; PathInfo_str0=item_arr0[0]; if(item_arr0.length<2)return; var tmp_str1=item_arr0[1]; var tmp_str2=tmp_str1.split('>'); PathInfo_StringParam1=tmp_str2[0]; if(item_arr0.length<3)return; tmp_str1=item_arr0[2]; tmp_str2=tmp_str1.split('>'); PathInfo_StringParam2=tmp_str2[0]; if(item_arr0.length<4)return; tmp_str1=item_arr0[3]; tmp_str2=tmp_str1.split('>'); PathInfo_StringParam3=tmp_str2[0]; if(item_arr0.length<5)return; tmp_str1=item_arr0[4]; tmp_str2=tmp_str1.split('>'); PathInfo_StringParam4=tmp_str2[0]; //console.log("PathInfo_str0:"+PathInfo_str0+"\n"); //console.log("PathInfo_StringParam1:"+PathInfo_StringParam1+"\n"); //console.log("PathInfo_StringParam2:"+PathInfo_StringParam2+"\n"); //console.log("PathInfo_StringParam3:"+PathInfo_StringParam3+"\n"); //console.log("PathInfo_StringParam4:"+PathInfo_StringParam4+"\n"); //var obj = new Object(); //obj.x=Math.floor(x); //obj.y=Math.floor(y); var PathInfo0=Lu_Parse_PathInfo_str0(PathInfo_str0); switch(PathInfo0.PathType){ case "Line":{ //console.log(PathInfo0.PathType); var PathTable_StringParam1_Line=Lu_Parse_Line_PathInfo_StringParam1(PathInfo_StringParam1); var PathTable_Line=Lu_Trans_Line_PathInfo1_To_Paper_Line(PathTable_StringParam1_Line,PathInfo0); if(PathInfo0.RunDirection=="Front")LearnPathTable_Line_Arr_Front.push(PathTable_Line); else LearnPathTable_Line_Arr_Reverse.push(PathTable_Line); //LearnPathTable_Line_Arr.push(PathTable_Line); }break; case "Arc":{ //console.log(PathInfo0.PathType); var PathTable_StringParam1_Arc=Lu_Parse_Arc_PathInfo_StringParam1(PathInfo_StringParam1); var PathTable_Arc=Lu_Trans_Arc_PathInfo1_To_Paper_Arc(PathTable_StringParam1_Arc,PathInfo0); if(PathInfo0.RunDirection=="Front")LearnPathTable_Arc_Arr_Front.push(PathTable_Arc); else LearnPathTable_Arc_Arr_Reverse.push(PathTable_Arc); }break; case "Bezier":{ var PathTable_StringParam1_Bezier=Lu_Parse_Bezier_PathInfo_StringParam1(PathInfo_StringParam1); var PathTable_Bezier=Lu_Trans_Bezier_PathInfo1_To_Paper_Line(PathTable_StringParam1_Bezier,PathInfo0); //LearnPathTable_Bezier_Arr.push(PathTable_Bezier); if(PathInfo0.RunDirection=="Front")LearnPathTable_Bezier_Arr_Front.push(PathTable_Bezier); else LearnPathTable_Bezier_Arr_Reverse.push(PathTable_Bezier); //console.log(PathTable_Bezier); }break; case "WayPoint":{ var PathTable_StringParam1_WayPoint=Lu_Parse_WayPoint_PathInfo_StringParam1(PathInfo_StringParam1); var PathTable_WayPoint=Lu_Trans_WayPoint_PathInfo1_To_Paper_Line(PathTable_StringParam1_WayPoint,PathInfo0); //console.log(PathInfo0); if(PathInfo0.RunDirection=="Front")LearnPathTable_WayPoint_Arr_Front.push(PathTable_WayPoint); else LearnPathTable_WayPoint_Arr_Reverse.push(PathTable_WayPoint); //LearnPathTable_WayPoint_Arr.push(PathTable_WayPoint); }break; case "OriginTurn":{ var PathTable_StringParam1_OriginTurn=Lu_Parse_OriginTurn_PathInfo_StringParam1(PathInfo_StringParam1); var PathTable_OriginTurn=Lu_Trans_OriginTurn_PathInfo1_To_Paper_OriginTurn(PathTable_StringParam1_OriginTurn,PathInfo0); if(PathInfo0.RunDirection=="Front")LearnPathTable_OriginTurn_Arr_Front.push(PathTable_OriginTurn); else LearnPathTable_OriginTurn_Arr_Reverse.push(PathTable_OriginTurn); //console.log(PathTable_OriginTurn); }break; /* case "OriginTurn":{ var PathTable_StringParam1_OriginTurn=Lu_Parse_OriginTurn_PathInfo_StringParam1(PathInfo_StringParam1); //console.log(PathTable_StringParam1_OriginTurn); var PathTable_OriginTurn=Lu_Trans_OriginTurn_PathInfo1_To_Paper_OriginTurn(PathTable_StringParam1_OriginTurn); LearnPathTable_OriginTurn_Arr.push(PathTable_OriginTurn); //console.log(PathTable_OriginTurn); }break; */ default: break; } } function Lu_Parse_PathInfo_str0(str){ var PathID=0; var LayerID=0; var RunDirection=""; var StartNode=0; var EndNode=0; var PropNode=0; var ModeType=""; var Select=0; var PathType=""; var item_arr=str.split(' '); if(item_arr.length<1)return; PathID=item_arr[0]; if(item_arr.length<2)return; LayerID=item_arr[1]; if(item_arr.length<3)return; RunDirection=item_arr[2]; if(item_arr.length<4)return; StartNode=item_arr[3]; if(item_arr.length<5)return; EndNode=item_arr[4]; if(item_arr.length<6)return; PropNode=item_arr[5]; if(item_arr.length<7)return; ModeType=item_arr[6]; if(item_arr.length<8)return; Select=item_arr[7]; if(item_arr.length<9)return; PathType=item_arr[8]; var PathInfo0 = new Object(); PathInfo0.PathID=PathID; PathInfo0.LayerID=LayerID; PathInfo0.RunDirection=RunDirection; PathInfo0.StartNode=StartNode; PathInfo0.EndNode=EndNode; PathInfo0.PropNode=PropNode; PathInfo0.ModeType=ModeType; PathInfo0.Select=Select; PathInfo0.PathType=PathType; return PathInfo0; } function Lu_Parse_Line_PathInfo_StringParam1(str){ var start_point=new Point(0.0,0.0); var end_point=new Point(0.0,0.0); var thetax=0.0; var item_arr=str.split(' '); if(item_arr.length<1)return; start_point.x=parseFloat(item_arr[0]); if(item_arr.length<2)return; start_point.y=parseFloat(item_arr[1]); if(item_arr.length<3)return; end_point.x=parseFloat(item_arr[2]); if(item_arr.length<4)return; end_point.y=parseFloat(item_arr[3]); if(item_arr.length<5)return; thetax=parseFloat(item_arr[4]); var Line_PathInfo1=new Object(); Line_PathInfo1.start_point=start_point; Line_PathInfo1.end_point=end_point; Line_PathInfo1.thetax=thetax; return Line_PathInfo1; } function Lu_Parse_OriginTurn_PathInfo_StringParam1(str){ var arcpathclockwisedir=0; var centerpoint=new Point(0.0,0.0); var startanglex=0.0; var endanglex=0.0; var item_arr=str.split(' '); if(item_arr.length<1)return; arcpathclockwisedir=item_arr[0]; if(item_arr.length<2)return; centerpoint.x=parseFloat(item_arr[1]); if(item_arr.length<3)return; centerpoint.y=parseFloat(item_arr[2]); if(item_arr.length<4)return; startanglex=parseFloat(item_arr[3]); if(item_arr.length<5)return; endanglex=parseFloat(item_arr[4]); var OriginTurn_PathInfo1=new Object(); OriginTurn_PathInfo1.arcpathclockwisedir=arcpathclockwisedir; OriginTurn_PathInfo1.centerpoint=centerpoint; OriginTurn_PathInfo1.startanglex=startanglex; OriginTurn_PathInfo1.endanglex=endanglex; return OriginTurn_PathInfo1; } function Lu_Parse_Arc_PathInfo_StringParam1(str){ var arcpathclockwisedir=0; var centerpoint=new Point(0.0,0.0); var radius=0.0; var startangle=0.0; var endangle=0.0; var item_arr=str.split(' '); if(item_arr.length<1)return; arcpathclockwisedir=item_arr[0]; if(item_arr.length<2)return; centerpoint.x=parseFloat(item_arr[1]); if(item_arr.length<3)return; centerpoint.y=parseFloat(item_arr[2]); if(item_arr.length<4)return; radius=parseFloat(item_arr[3]); if(item_arr.length<5)return; startangle=parseFloat(item_arr[4]); if(item_arr.length<6)return; endangle=parseFloat(item_arr[5]); var Arc_PathInfo1=new Object(); Arc_PathInfo1.arcpathclockwisedir=arcpathclockwisedir; Arc_PathInfo1.centerpoint=centerpoint; Arc_PathInfo1.radius=radius; Arc_PathInfo1.startangle=startangle; Arc_PathInfo1.endangle=endangle; return Arc_PathInfo1; } function Lu_Parse_Bezier_PathInfo_StringParam1(str){ var Bezier_Point_List_str=""; var Point_List_str=""; var item_arr=str.split('[Point_List'); if(item_arr.length<2)return; var tmp0=item_arr[1]; var item_arr0=tmp0.split(']'); var Point_List_str=item_arr0[0]; //console.log("Point_List_str:"+Point_List_str); var tmp1=item_arr[0]; var item_arr1=tmp1.split(']|'); Bezier_Point_List_str=item_arr1[0]; //console.log(Bezier_Point_List_str); var item_arr2=Bezier_Point_List_str.split(':'); if(item_arr2.length<1)return; var tmp2=item_arr2[1]; var item_arr3=tmp2.split('@'); var Bezier_Point_List_Num=item_arr3[0]; //console.log(Bezier_Point_List_Num); var Bezier_Point_List_Str=item_arr3[1]; //console.log(Bezier_Point_List_Str); var item_arr4=Bezier_Point_List_Str.split('#'); if(item_arr4.length'); NPMStringParam1_str11=tmp_str2[0]; var NPMStringParam1=NPMStringParam1_str11; if(item_arr1.length<3)return; tmp_str1=item_arr1[2]; tmp_str2=tmp_str1.split('>'); NPMStringParam2_str12=tmp_str2[0]; var NPMStringParam2=NPMStringParam2_str12; var NodePointInfo=new Object(); NodePointInfo.NodeKeyID=NodeKeyID; NodePointInfo.NodeID=NodeID; NodePointInfo.NodeName=""; NodePointInfo.Select=Select; NodePointInfo.Node_x=Node_x; NodePointInfo.Node_y=Node_y; NodePointInfo.Node_thetax=Node_thetax; NodePointInfo.Node_z=Node_z; NodePointInfo.NodeParallelLift=NodeParallelLift; NodePointInfo.NodeFrontLift=NodeFrontLift; NodePointInfo.PrePathNode=PrePathNode; NodePointInfo.NodeType=NodeType; NodePointInfo.NPMStringParam1=NPMStringParam1; NodePointInfo.NPMStringParam2=NPMStringParam2; LearnNodePointManagerTable_PathNode_Arr.push(NodePointInfo); if(LearnNodePoint_Map.has(NodePointInfo)==false){ LearnNodePoint_Map.set(NodeID,NodePointInfo); } } function Lu_Parse_LearnPointCloud(str){ if(str!="") { var pointcloud = JSON.parse(str); LearnPointCloud = pointcloud; for (let i = 0; i < pointcloud.data.length; i++) { //console.log("x:" + pointcloud.data[i].x + " y:" + pointcloud.data[i].y); var x = pointcloud.data[i].x / 0.2; var y = pointcloud.data[i].y / 0.2; var point = new Point(parseInt(x), parseInt(y)); //console.log("point:" + point); if (LearnPointCloud_Map.has(point.toString()) == true) { //console.log("has point"); } else { //console.log("no point"); LearnPointCloud_Map.set(point.toString(), pointcloud.data[i]); LearnPointCloud_Arr.push(pointcloud.data[i]); } } //for(let i=0;i