⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unt_readgra.pas

📁 煤矿行业采掘接替计划自动生成系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit Unt_ReadGra;

interface
  uses Unt_CAD_Pro_Tool,QDialogs,SysUtils,QForms,
       Variants,Classes,Graphics,DB,windows,forms;

type

  TTsN=record   //通用工序名称及其类型,如风巷(类型为风巷掘进),机巷(类型为机巷掘进),开切眼(类型为开切眼掘进),回采(类型为回采)
    //Ncou:integer;
    Type_Id:integer;
    CommonTaskName:string;
    CommonTaskTypeName:string;
    //TsN:array of string;
    //TsNT:array of string;
   end;

  TRead_Graph=class(TObject)
    Layers,LineTypes,TextStyles,Fontfiles:TStrings;
    StartPoint,EndPoint,CenterPoint:TPoint1; //起点,终点,中心点
    ListPoints:TPoints; //连续的点
    TCol:integer; //颜色
    THandle,TTextStr,TTextSty,TLayer,TLineType:string; //图层、线型
    TClosed:boolean; //是否闭合线
    TStartAng,TEndAng:double; //起终角度
    Rotation,Radius,Width,Height:double; //半径
    WidthList,Buglelist:Tlistvalue;
    procedure Add_Layer;
    procedure Add_TextStyle;
    procedure Add_LineType;
    procedure Add_Point(p:TPoint1;Swidthval,Ewidthval,Bugleval:double);//向数据库中添加点
    procedure Add_Line;
    procedure Add_3DPoly;
    procedure Add_Spline;
    procedure Add_Arc;
    procedure Add_Circle;
    procedure Add_Text;
    procedure Add_Ellipse;
    procedure Add_StopLine(Sp_F:integer;IdStr:string);
    procedure ReadGraph(GraphName:string);//读图
    procedure Deal_Area_lane; //处理采区
    procedure EncodeStr(MStr:string;var MName,Mh,MAng:string);
    //画图
    procedure Get_Point(i:integer;var p:TPoint1);
    procedure DrawGraphic(GraphName:string);
  private
  public
    Graphic_Id,PCou,ObjectCount:integer;
    Sp_Id,Ep_Id,CenP_Id,SpT_ID,EpT_ID:integer;
    IsSimple,ObjId:integer;
    Gra_Scale:double;
    CommonTask:array of TTsN;
 end;

var
  Read_Graph:TRead_Graph;
implementation
  uses Unt_Data,Hint_Unt,Unt_Gra;
  
{ TRead_Graph }

procedure TRead_Graph.Add_Layer; //把图层信息加入到数据表ADOT_Layer中去
var PId,i:integer;
    Isexist:boolean;
begin
 with Frm_Data.ADOT_Layer do
  begin
   if not active then open;
   for i:=0 to Layers.Count-1 do
    begin
     inc(ObjectCount);
     //inc(frm_main.PosId);
     //frm_main.SbarFull;
     Isexist:=Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,Layers.Strings[i]]),[LocaseInsensitive]);
     if Isexist then continue;
     PId:=GetId(frm_data.ADOT_Layer,'Layer_Id');
     append;
     fieldbyname('Layer_Id').AsInteger:=PId+1;
     fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
     fieldbyname('Layer').AsString:=Layers.Strings[i];
     post;
    end;
  end;
 Layers.Free;
end;

procedure TRead_Graph.Add_TextStyle;
var PId,i:integer;
    Isexist:boolean;
begin
 with frm_data.ADOT_TextT do
  begin
   if not active then open;
   for i:=0 to TextStyles.Count-1 do
    begin
     inc(ObjectCount);
     //inc(frm_main.PosId);
     //frm_main.SbarFull;
     Isexist:=Locate('Graphic_Id;TextStyle',vararrayof([Graphic_Id,TextStyles.Strings[i]]),[LocaseInsensitive]);
     if Isexist then continue;
     PId:=GetId(frm_data.ADOT_TextT,'TextS_Id');
     append;
     fieldbyname('TextS_Id').AsInteger:=PId+1;
     fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
     fieldbyname('TextStyle').AsString:=TextStyles.strings[i];
     fieldbyname('Fontfile').AsString:=Fontfiles.Strings[i];
     post;
    end;
  end;
 TextStyles.Free;
 Fontfiles.Free;
end;

procedure TRead_Graph.Add_LineType;
var PId,i:integer;
    Isexist:boolean;
begin
 with frm_data.ADOT_LineT do
 begin
  if not active then open;
  for i:=0 to LineTypes.Count-1 do
   begin
    inc(ObjectCount);
    //inc(frm_main.PosId);
    //frm_main.SbarFull;
    Isexist:=Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,LineTypes.Strings[i]]),[LocaseInsensitive]);
    if Isexist then continue;
    PId:=GetId(frm_data.ADOT_LineT,'LineT_Id');
    append;
    fieldbyname('LineT_Id').AsInteger:=PId+1;
    fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
    fieldbyname('LineType').AsString:=LineTypes.Strings[i];
    post;
   end;
 end;
 LineTypes.Free;
end;

procedure TRead_Graph.Add_3DPoly;
var PId:integer;
begin
 with frm_data.ADOT_Pline do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_Pline,'Pline_Id');
  append;
  fieldbyname('Pline_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('Sp_Id').Asinteger:=Sp_Id;
  fieldbyname('Ep_Id').Asinteger:=Ep_Id;
  fieldbyname('Color').AsInteger:=TCol;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Close').AsBoolean:=TClosed;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

procedure TRead_Graph.Add_Arc;
var PId:integer;
begin
 with frm_data.ADOT_Arc do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_Arc,'Arc_Id');
  append;
  fieldbyname('Arc_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('CenP_Id').Asinteger:=CenP_Id;
  fieldbyname('Radius').AsFloat:=Radius;
  fieldbyname('S_Angle').AsFloat:=TStartAng;
  fieldbyname('E_Angle').AsFloat:=TEndAng;
  fieldbyname('Color').AsInteger:=TCol;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

procedure TRead_Graph.Add_Circle;
var PId:integer;
begin
 with frm_data.ADOT_Circle do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_Circle,'Circle_Id');
  append;
  fieldbyname('Circle_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('CenP_Id').Asinteger:=CenP_Id;
  fieldbyname('Radius').AsFloat:=Radius;
  fieldbyname('Color').AsInteger:=TCol;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

procedure TRead_Graph.Add_Ellipse;
var PId:integer;
begin
 with frm_data.ADOT_Ellipse do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_Ellipse,'Ell_Id');
  append;
  fieldbyname('Ell_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('CenP_Id').Asinteger:=CenP_Id;
  fieldbyname('MayP_Id').Asinteger:=EP_Id;
  fieldbyname('RRatio').AsFloat:=Radius;
  fieldbyname('Color').AsInteger:=TCol;
  fieldbyname('S_Angle').AsFloat:=TStartAng;
  fieldbyname('E_Angle').AsFloat:=TEndAng;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

procedure TRead_Graph.Add_Line;
var PId:integer;
begin
 with frm_data.ADOT_line do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_line,'Line_Id');
  append;
  fieldbyname('Line_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('Sp_Id').Asinteger:=Sp_Id;
  fieldbyname('Ep_Id').Asinteger:=Ep_Id;
  fieldbyname('Color').AsInteger:=TCol;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

procedure TRead_Graph.Add_Point(p:TPoint1;Swidthval,Ewidthval,Bugleval:double);//增加点
var PId:integer;
begin
 with frm_data.ADOT_Points do
 begin
  PId:=GetId(frm_data.ADOT_Points,'Point_Id');
  append;
  fieldbyname('Point_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('X').AsFloat:=p[0];
  fieldbyname('Y').AsFloat:=p[1];
  fieldbyname('Z').AsFloat:=p[2];
  fieldbyname('Bugle').AsFloat:=Bugleval;
  fieldbyname('SWidth').AsFloat:=Swidthval;
  fieldbyname('EWidth').AsFloat:=Ewidthval;
  post;
 end;
end;

procedure TRead_Graph.Add_Spline;
var PId:integer;
begin
 with frm_data.ADOT_Spline do
 begin
  if not active then open;
  PId:=GetId(frm_data.ADOT_Spline,'Spline_Id');
  append;
  fieldbyname('Spline_Id').AsInteger:=PId+1;
  fieldbyname('Graphic_Id').AsInteger:=Graphic_Id;
  fieldbyname('Sp_Id').Asinteger:=Sp_Id;
  fieldbyname('Ep_Id').Asinteger:=Ep_Id;
  fieldbyname('SpT_Id').Asinteger:=SpT_Id;
  fieldbyname('EpT_Id').Asinteger:=EpT_Id;
  fieldbyname('Color').AsInteger:=TCol;
  frm_data.ADOT_LineT.Locate('Graphic_Id;LineType',vararrayof([Graphic_Id,TLineType]),[loCaseInsensitive]);
  fieldbyname('LineT_Id').AsInteger:=frm_data.ADOT_LineT.fieldbyname('LineT_Id').AsInteger;
  frm_data.ADOT_Layer.Locate('Graphic_Id;Layer',vararrayof([Graphic_Id,TLayer]),[loCaseInsensitive]);
  fieldbyname('layer_Id').AsInteger:=frm_data.ADOT_Layer.fieldbyname('Layer_Id').AsInteger;
  fieldbyname('Close').AsBoolean:=TClosed;
  fieldbyname('Handle').AsString:=THandle;
  fieldbyname('LW').AsFloat:=0;
  post;
 end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -