📄 newunit.pas
字号:
begin
BLJKD := BLKD+BL_FXKD-N_NJXZZ_B ;
GDKD := BLKD+BL_FXKD-N_NJXZZ_G ;//单片玻璃宽度+边封缝隙宽度+玻璃缝隙宽度-内角轨道修
BLJ_CJLD := 0.00 ;
BLJ_CJRD := N_CJD ;
L_CJ := 'L';
R_CJ := N_CJ ;
JD := 0.00 ;
JDD := SDD ;
end ;
if (Sub_Num<>1) and (Sub_Num<>DS) then
begin
BLJKD := BLKD+BL_FXKD ;
GDKD := BLKD+BL_FXKD ;//单片玻璃宽度+边封缝隙宽度+玻璃缝隙宽度-内角轨道修
BLJ_CJLD := 0.00 ;
BLJ_CJRD := 0.00 ;
L_CJ := 'L';
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
OrderSQLInsert := 'Insert into OrderTbl(OrderNum,ClassType,NUM,GDZC,BLZK,Sub_Num,BLKD,GDKD,BLJKD,BLJ_CJ,BLJ_CJLD,BLJ_CJRD,L_CJ,R_CJ,JD,JDD,GHD,XC,YTGD,BLGD) values('''+OrderNum+''','''+ClassType+''','+IntToStr(SN)+','+FloatToStr(GDZC)+','+FloatToStr(BLZK)+','+IntToStr(Sub_Num)+','+FloatToStr(BLKD)+','+FloatToStr(GDKD)+','+FloatToStr(BLJKD)+','''+BLJ_CJ+''','+FloatToStr(BLJ_CJLD)+','+FloatToStr(BLJ_CJRD)+','''+L_CJ+''','''+R_CJ+''','+FloatToStr(JD)+','+FloatToStr(JDD)+','+FloatToStr(GHD)+','''+Class_XC+''','+FloatToStr(YTGD)+','+FloatToStr(BLGD)+')' ;
DM.Order_Query.Close ;DM.Order_Query.SQL.Clear ;DM.Order_Query.SQL.Add(OrderSQLInsert) ;DM.Order_Query.ExecSQL ;
Sub_Num := Sub_Num + 1 ;
end ;
end ;
if (T_Record=Total_JS-1) and (Total_JS>1) then //多于一段,最后一段的情况
begin
if XC.Text ='06' then //06型材
begin
GDZC := SL-1*BF_HD-1*ZFHD ;//轨道长度=L3-中封厚度-边封厚度
BLZK := GDZC+2*BF_FXKD+(DS-1)*BL_FXKD ;//玻璃区总宽=轨道长度+2×玻璃伸出轨道的长度+(n-1)*14
BLKD := (BLZK/DS) ;//玻璃宽度=玻璃总宽÷玻璃片数
end
else
begin
GDZC := SL-1*BF_HD ; //轨道总长
BLZK := GDZC-DS*BL_FXKD-1*BF_FXKD+P_NJXZZ_G ;//b=玻璃总宽
BLKD := BLZK/DS ;//玻璃宽度
end ;
//wr db
while Sub_Num<DS+1 do
begin
if Sub_Num=1 then
begin
BLJKD := BLKD+BL_FXKD-P_NJXZZ_B ;
GDKD := BLKD+BL_FXKD-P_NJXZZ_G ;
BLJ_CJLD := P_CJD ;
BLJ_CJRD := 0.00 ;
L_CJ := P_CJ ;
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
if Sub_num=DS then
begin
BLJKD := BLKD+BL_FXKD ;
GDKD := BLKD+BL_FXKD ;
BLJ_CJLD := 0.00 ;
BLJ_CJRD := 0.00 ;
L_CJ := 'L' ;
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
if (Sub_Num<>1) and (Sub_Num<>DS) then
begin
BLJKD := BLKD+BL_FXKD ;
GDKD := BLKD+BL_FXKD ;
BLJ_CJLD := 0.00 ;
BLJ_CJRD := 0.00 ;
L_CJ := 'L' ;
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
OrderSQLInsert := 'Insert into OrderTbl(OrderNum,ClassType,NUM,GDZC,BLZK,Sub_Num,BLKD,GDKD,BLJKD,BLJ_CJ,BLJ_CJLD,BLJ_CJRD,L_CJ,R_CJ,JD,JDD,GHD,XC,YTGD,BLGD) values('''+OrderNum+''','''+ClassType+''','+IntToStr(SN)+','+FloatToStr(GDZC)+','+FloatToStr(BLZK)+','+IntToStr(Sub_Num)+','+FloatToStr(BLKD)+','+FloatToStr(GDKD)+','+FloatToStr(BLJKD)+','''+BLJ_CJ+''','+FloatToStr(BLJ_CJLD)+','+FloatToStr(BLJ_CJRD)+','''+L_CJ+''','''+R_CJ+''','+FloatToStr(JD)+','+FloatToStr(JDD)+','+FloatToStr(GHD)+','''+Class_XC+''','+FloatToStr(YTGD)+','+FloatToStr(BLGD)+')' ;
DM.Order_Query.Close ;DM.Order_Query.SQL.Clear ;DM.Order_Query.SQL.Add(OrderSQLInsert) ;DM.Order_Query.ExecSQL ;
Sub_Num := Sub_Num + 1 ;
end ;
end ;
if(T_Record>0) and (T_Record<>Total_JS-1) then //中间的2至n-1段的情况
begin
if XC.Text ='06' then //06型材
begin
GDZC := SL-1*ZFHD-1*ZFHD ;//轨道长度=L3-中封厚度-边封厚度
BLZK := GDZC+2*BF_FXKD+(DS-1)*BL_FXKD ;//玻璃区总宽=轨道长度+2×玻璃伸出轨道的长度+(n-1)*14
BLKD := (BLZK/DS) ;//玻璃宽度=玻璃总宽÷玻璃片数
end
else
begin
GDZC := SL-0*BF_HD ; //轨道总长
BLZK := GDZC-DS*BL_FXKD-0*BF_FXKD+P_NJXZZ_G+N_NJXZZ_G ;//b=玻璃总宽
BLKD := BLZK/DS ;//玻璃宽度
end ;
//wr db
while Sub_Num<DS+1 do
begin
if Sub_Num=1 then
begin
BLJKD := BLKD+BL_FXKD-P_NJXZZ_B ;
GDKD := BLKD+BL_FXKD+NJXZZ_G-P_NJXZZ_G ;
BLJ_CJLD := P_CJD ;
BLJ_CJRD := 0.00 ;
L_CJ := P_CJ ;
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
if Sub_num=DS then
begin
BLJKD := BLKD+BL_FXKD-N_NJXZZ_B ;
GDKD := BLKD+BL_FXKD+NJXZZ_G-N_NJXZZ_G ;
BLJ_CJLD := 0.00 ;
BLJ_CJRD := N_CJD ;
L_CJ := 'L' ;
R_CJ := N_CJ ;
JD := 0.00 ;
JDD := SDD ;
end ;
if (Sub_Num<>1) and (Sub_Num<>DS) then
begin
BLJKD := BLKD+BL_FXKD ;
GDKD := BLKD+BL_FXKD+NJXZZ_G ;
BLJ_CJLD := 0.00 ;
BLJ_CJRD := 0.00 ;
L_CJ := 'L' ;
R_CJ := 'L' ;
JD := 0.00 ;
JDD := SDD ;
end ;
OrderSQLInsert := 'Insert into OrderTbl(OrderNum,ClassType,NUM,GDZC,BLZK,Sub_Num,BLKD,GDKD,BLJKD,BLJ_CJ,BLJ_CJLD,BLJ_CJRD,L_CJ,R_CJ,JD,JDD,GHD,XC,YTGD,BLGD) values('''+OrderNum+''','''+ClassType+''','+IntToStr(SN)+','+FloatToStr(GDZC)+','+FloatToStr(BLZK)+','+IntToStr(Sub_Num)+','+FloatToStr(BLKD)+','+FloatToStr(GDKD)+','+FloatToStr(BLJKD)+','''+BLJ_CJ+''','+FloatToStr(BLJ_CJLD)+','+FloatToStr(BLJ_CJRD)+','''+L_CJ+''','''+R_CJ+''','+FloatToStr(JD)+','+FloatToStr(JDD)+','+FloatToStr(GHD)+','''+Class_XC+''','+FloatToStr(YTGD)+','+FloatToStr(BLGD)+')' ;
DM.Order_Query.Close ;DM.Order_Query.SQL.Clear ;DM.Order_Query.SQL.Add(OrderSQLInsert) ;DM.Order_Query.ExecSQL ;
Sub_Num := Sub_Num + 1 ;
end ;
end ;
END ;
///直线 end
T_Record := T_Record +1 ;
DM.Temp_Query.Next ;
end;
END ;
//
//end ;//区分型材计算完毕!
MessageDlg('计算完毕!', mtInformation,[mbOk], 0);
BitBtn1.Enabled := false ;
BitBtn1.Repaint ; //}
end ;
procedure TNew_Form.BitBtn2Click(Sender: TObject);
begin
WAITUH.Visible := False ;
NEIAOH.Visible := False ;
ZHIXIAN.Visible := False ;
My_Image.Repaint ;
end;
procedure TNew_Form.Button1Click(Sender: TObject);
begin
BitBtn2.Click ;
BitBtn1.Enabled := true ;
BitBtn1.Repaint ;
Right_Wall.Visible := true ;
Right_Wall.Left := StrToInt(L_SX.Text )+My_Image.Left;
Right_Wall.Top := StrToInt(L_SY.Text )+My_Image.Top - 15 ;
button1.Visible := false ;
Button4.Visible := False ;
end;
procedure TNew_Form.Button2Click(Sender: TObject);
begin
LineWidth.Enabled := false ;
XC.Enabled := false ;
OrderName.Enabled := false ;
Label20.Visible :=true ;
Class_Select.Visible := true ;
button2.Visible := false ;
BF_HD:=StrToInt(MY_BF_HD.Text) ; //边封厚度
BF_FXKD:=StrToInt(MY_BF_FXKD.Text) ; //边封缝隙宽度
BL_FXKD:=StrToInt(MY_BL_FXKD.Text) ; //玻璃缝隙宽度
end;
procedure TNew_Form.Button3Click(Sender: TObject);
begin
Application.CreateForm(TCX_Form,CX_Form);
CX_Form.Caption := Application.Title + '--查询重现' ;
CX_Form.ShowModal ;
CX_Form.Free ;
end;
procedure TNew_Form.Button4Click(Sender: TObject);
Var SQLString_De:String;
Var X1,Y1,X2,Y2,DS:Integer;
Var L,Q,H,SR,SJD,SNJD,SCJD :Double;
begin
{if (Now_Num > 1) then
BEGIN
Now_Num:=Now_Num-1 ;
//查询找出原纪录
SQLString_De:='select * from TempTbl where SN='+intToStr(Now_Num) ;
DM.Temp_De_Query.Close ;
DM.Temp_De_Query.SQL.Clear ;
DM.Temp_De_Query.SQL.Add(SQLString_De) ;
DM.Temp_De_Query.Open ;
//
//回写起点X,Y
L_SX.Text :=DM.Temp_De_Query.FieldByName('SX').AsString ;
W_SX.Text :=DM.Temp_De_Query.FieldByName('SX').AsString ;
N_SX.Text :=DM.Temp_De_Query.FieldByName('SX').AsString ;
L_SY.Text :=DM.Temp_De_Query.FieldByName('SY').AsString ;
W_SY.Text :=DM.Temp_De_Query.FieldByName('SY').AsString ;
N_SY.Text :=DM.Temp_De_Query.FieldByName('SY').AsString ;
//
//磨掉图像
My_Image.Canvas.Pen.Color := clWindow ;
if (DM.Temp_De_Query.FieldByName('ClassType').AsString ='L') then
begin
X1:=StrToInt(L_SX.Text) ;
Y1:=StrToInt(L_SY.Text) ;
L:=StrToFloat(L_L.Text) ;
// D:=StrToFloat(L_D.Text) ;
// DS:=StrToInt(L_DS.Text) ;
// D_Total:=D_Total+D ;
Q:=D_Total*Pi/180 ;
X2:=X1+Round(L*Cos(Q)/10) ;
Y2:=Y1-Round(L*Sin(Q)/10) ;
//Draw
My_Image.Canvas.MoveTo(X1,Y1);
My_Image.Canvas.LineTo(X2,Y2);
end
else if (DM.Temp_De_Query.FieldByName('ClassType').AsString = 'W') then
begin
X1:=StrToInt(W_SX.Text) ;
Y1:=StrToInt(W_SY.Text) ;
L:=StrToFloat(W_L.Text) ;
// D:=StrToFloat(W_D.Text) ;
H:=StrToFloat(W_H.Text) ;
DS:=StrToInt(W_DS.Text) ;
// D_Total:=D_Total+D ; //SDD
Q:=D_Total*Pi/180 ;
SR := (L*L+4*H*H)/(8*H) ;
if H > (L*L+4*H*H)/(8*H) then //弦对应的圆心角
begin
SJD := 180-ArcSin((4*L*H)/(L*L+4*H*H))*180/Pi ;
SNJD := 2*SJD/DS ;//两段之间的夹角(线内部)
end
else
begin //仂弧
SJD := ArcSin((4*L*H)/(L*L+4*H*H))*180/Pi ;
SNJD := 180-2*SJD/DS ;//两段之间的夹角(线内部)
end ;
SCJD := SJD*(DS-1)/DS ; //第一段与弦之间的夹角
X2:=X1+Round(L*Cos(Q)/10) ;
Y2:=Y1-Round(L*Sin(Q)/10) ;
My_Rec(X1,Y1,Q,Round(L/10),Round(H/10),0) ; //1为内
end
else if (DM.Temp_De_Query.FieldByName('ClassType').AsString ='N') then
begin
X1:=StrToInt(N_SX.Text) ;
Y1:=StrToInt(N_SY.Text) ;
L:=StrToFloat(N_L.Text) ;
// D:=StrToFloat(N_D.Text) ;
H:=StrToFloat(N_H.Text) ;
DS:=StrToInt(N_DS.Text) ;
// D_Total:=D_Total+D ; //SDD
Q:=D_Total*Pi/180 ;
SR := (L*L+4*H*H)/(8*H) ;
if H > (L*L+4*H*H)/(8*H) then //弦对应的圆心角
begin
SJD := 180-ArcSin((4*L*H)/(L*L+4*H*H))*180/Pi ;
SNJD := 2*SJD/DS ;//两段之间的夹角(线内部)
end
else
begin //仂弧
SJD := ArcSin((4*L*H)/(L*L+4*H*H))*180/Pi ;
SNJD := 180.00-2*SJD/DS ;//两段之间的夹角(线内部)
end ;
SCJD := - SJD*(DS-1)/DS ; //第一段与弦之间的夹角
X2:=X1+Round(L*Cos(Q)/10) ;
Y2:=Y1-Round(L*Sin(Q)/10) ;
My_Rec(X1,Y1,Q,Round(L/10),Round(H/10),1) ; //1为内
end ;
//调回画笔
My_Image.Canvas.Pen.Color := clWindowText ;
My_Image.Canvas.MoveTo(X1,Y1);
//回写角度
D_Total:=D_Total-DM.Temp_De_Query.FieldByName('SD').AsInteger ;
//关闭数据库
DM.Temp_De_Query.Close ;
//删除记录
SQLString_De:='Delete * from TempTbl where SN='+IntToStr(Now_Num) ;
DM.Temp_De_Query.Close ;
DM.Temp_De_Query.SQL.Clear ;
DM.Temp_De_Query.SQL.Add(SQLString_De) ;
DM.Temp_De_Query.ExecSQL ;
END ;
Button4.Visible := False ; //}
end;
procedure TNew_Form.XCChange(Sender: TObject);
begin
if XC.Text ='05小轨' then
begin
MY_BF_HD.Text := '45' ;
MY_BF_FXKD.Text := '3' ;
MY_BL_FXKD.Text := '2' ;
GDDX_05:=125 ;
end;
if XC.Text ='05大轨' then
begin
MY_BF_HD.Text := '45' ;
MY_BF_FXKD.Text := '3' ;
MY_BL_FXKD.Text := '2' ;
GDDX_05:= 145 ;
end;
if XC.Text ='04' then
begin
MY_BF_HD.Text := '45' ;
MY_BF_FXKD.Text := '3' ;
MY_BL_FXKD.Text := '2' ;
end;
if XC.Text ='03' then
begin
MY_BF_HD.Text := '45' ;
MY_BF_FXKD.Text := '3' ;
MY_BL_FXKD.Text := '2' ;
end;
if XC.Text ='06' then
begin
MY_BF_HD.Text := '30' ;
MY_BF_FXKD.Text := '15' ; //玻璃申出轨道的长度
MY_BL_FXKD.Text := '14' ; //玻璃重叠部分宽度
MY_ZFHD.Visible := True ;
Label23.Caption := '申出轨道' ;
Lablel28.Caption := '重叠部分' ;
Label24.Visible :=True ;
MY_ZFHD.Text := '45' ;
end
else
begin
MY_ZFHD.Visible := False ;
Label24.Visible :=False ;
Label23.Caption := '边封缝隙' ;
Lablel28.Caption := '玻璃缝隙' ;
end ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -