Summary of the invention
The objective of the invention is to, a kind of automatic rivet bracket distortion Method for data modification and supplement that is used for is provided.
In order to realize above-mentioned task, the present invention takes following technical solution:
A kind of automatic rivet bracket distortion Method for data modification and supplement that is used for is characterized in that this method is carried out real-time correction-compensation to the distortion and the coordinate offset of the riveted joint workpiece of clamping on wallboard on c type automatic rivet bracket, may further comprise the steps:
1) baseline indicates and measures
When carriage is made, under the carriage horizontality, draw and the straight line of A angle center of rotation line parallel along inside and outside each mark on the carriage length direction at carriage, the straight line subscript is drawn some points as bracket deadweight distortion datum line Control Node;
Deadweight deformation curve DATA REASONING is under zero the state, when not having field riveting workpiece and frock clamp, to measure to provide and measure two baseline reference mark coordinates that the carriage subscript is drawn at A, B angle;
Loading riveted joint workpiece and anchor clamps deformation curve DATA REASONING later on, is zero condition at A, B angle, and under field riveting workpiece and the frock clamp situation, measures to provide and measure two baseline reference mark coordinates that the carriage subscript is drawn;
According to the baseline reference mark coordinate of measuring, set up loaded-up condition that two deadweight states, two load riveted joint workpiece and frock clamp totally 4 Deformation control curves;
2) according to the base-line data Changing Pattern, set up distorted pattern
According to the control curve of step 1), set up two deformation surfaces of distorted pattern, wherein one is the deadweight state, another forms the deflection envelope interval that changes with the carriage attitude for loading workpiece and anchor clamps state;
3), theoretical model is revised according to distorted pattern
Difference is mended before the distortion corrected Calculation, must make deformation measurement coordinate and part model coordinate, and the coordinate system of theoretical model flushes, i.e. benchmark alignment; Bracket is after load distribution is determined, the variation of carriage attitude is equivalent to the even increase and decrease or the minimizing of carriage horizontality load, carriage vertical direction deflection and the linear variation of magnitude of load with same distribution;
Evaluation comprises: and the theoretical coordinate of riveting point (X, Y, Z), normal vector (Nx, Ny, Nz);
Calculation procedure:
1. on the deadweight deformation surface, calculate (X, Y) Z of position is to deadweight deflection V1;
2. on the deformation measurement curved surface of load, calculate (X, Y) the deflection V2 of position;
3. with the theoretical normal of theoretical riveting point, calculate a movement of bracket A, the B angle;
4. press linear rule, (X, Y) the deflection V3 of position under assumed (specified) load W*COS (A) * COS (B) situation;
5. the mathematical point position coordinates is repaired the position coordinates (X, Y, Z ') that forms after being out of shape;
6. on theoretical model curved surface, (X, Y) position is looked for and is closed on 3 points, forms the planar delta sheet, calculates 3 deformation coordinate;
7. utilize (X, Y, Z ') and (NX ' NY ' NZ ') revise the APT file, after handling, postposition forms control bracket movement instruction, control c type automatic rivet bracket moves to arbitrfary point and the normal direction attitude thereof on the practical work piece, reaches dynamically to repair control in riveted joint.
C type automatic rivet bracket distortion Method for data modification and supplement of the present invention, adopt bracket deformation to repair after the data processing technique, utilize the west to fly the G4026SXX-120 full-automatic drilling riveting system that company introduces, reached the wallboard theoretical model in the CATIA V5 system has been carried out numerical control journey volume, the target of wallboard class Components Digital automatic riveting.The feasibility and the correctness of this technical method verified in experimental result and actual processing, and its positional precision and normal direction precision satisfy the accuracy requirement of ARJ aircraft wing wallboard product.
Embodiment
Referring to accompanying drawing 1,2, suppose that the theoretical position phasor coordinate is P, normal direction is V.Plate clamping benchmark, measurement data benchmark, machine tool structure intersection point and machine coordinates system are whole and be transformed to Ω, and the A angular transformation is χ, and the B angular transformation is
, deformation process is transformed to K, SIMMENS system directive conversion is transformed to , P ' be (P, final control Image Results V), then:
The final processing is transformed to:
Consider the workpiece processing tolerance, carry out the riveting of digital control boring and riveting machine automatic drill, computer theory model and clamping must be set up accurately reflection between the riveted joint workpiece (wooden partition) on the wallboard.In order to set up this accurate reflection, the influence to distortion is rotated at bracket deadweight and deformation under load, A angle and B angle, must consider to some extent the factors such as skew that theoretical coordinate causes.To distortion and coordinate offset, need carry out real-time correction-compensation, make the computer theory model consistent corresponding at the riveted joint workpiece on the wallboard (wooden partition is in the machine tooling coordinate system) with clamping.
1) baseline indicates and measures
When carriage is made, under the carriage horizontality, draw two (along the carriage length directions, inside and outside each one) and the straight line subscript of A angle theory center of rotation line parallel is drawn some points at the carriage subscript.As these two straight lines of distortion datum line Control Node (bracket deadweight distortion) is level in theory, but after carriage is installed or the frock workpiece is installed or distortion is arranged, becomes curve.(as Fig. 1, shown in Figure 2) wherein Y is to the Y coordinate direction of expression machine coordinates system, and Y is to the Y coordinate direction of expression machine coordinates system, and Z is to the Z coordinate direction of expression machine coordinates system; A angle rotary centerline be carriage around the axis of rotation, under horizontality with X to parallel.Structural rotation intersection point when O represents carriage formation A angle and B angle.The B angle as shown in Figure 3
● deadweight deformation curve DATA REASONING is that when the frock workpiece was not installed, measurement provided: two baseline reference mark coordinates that the carriage subscript is drawn under zero the state at A, B angle; As shown in Figure 4
● load workpiece and anchor clamps deformation curve DATA REASONING later on, be zero (level) state at A, B angle, and install under the frock workpiece situation that measurement provides: two baseline reference mark coordinates that the carriage subscript is drawn; As shown in Figure 5
● according to the baseline reference mark coordinate of measuring, set up 4 Deformation control curves (two deadweight state, two load workpiece and anchor clamps state) as Fig. 4, shown in Figure 5
2) according to two pairs of deformation measurement baselines, set up two deformation surfaces (deadweight state, loads workpiece and anchor clamps state) of distorted pattern, form the deflection envelope interval that changes with the carriage attitude; As shown in Figure 6
3), theoretical model is revised according to distorted pattern
Difference is mended before the distortion corrected Calculation, must make deformation measurement coordinate and part model coordinate, and the coordinate system of theoretical model flushes (benchmark alignment).Bracket is after load distribution is determined, the variation of carriage attitude is equivalent to the even increase and decrease or the minimizing of carriage horizontality load.Carriage vertical direction deflection and the linear variation of magnitude of load with same distribution.
Numerical computation method
Desired data:
Workpiece and frock theory load W
The theoretical coordinate of riveting point (X, Y, Z)
Normal vector be (Nx, Ny, Nz)
Distorted pattern (as Fig. 4, shown in 5,6)
Calculate:
1. on the deadweight deformation surface, calculate (X, Y) Z of position is to deadweight deflection V1;
2. on load W (frock and workpiece are arranged) deformation measurement curved surface, calculate (X, Y) the deflection V2 of position;
3. with the theoretical normal of theoretical riveting point,, calculate a movement of bracket A, B angle (initial normal direction leveling) in conjunction with the machine tool motion structure;
4. press linear rule, assumed (specified) load is (X, Y) the deflection V3 of position under W*COS (A) * COS (B) situation;
5. the mathematical point position coordinates is repaired the position coordinates (X, Y, Z ') that forms after being out of shape;
6. on theoretical model curved surface, (X, Y) position is looked for and is closed on 3 points, forms the planar delta sheet, calculates 3 deformation coordinate, the planar process of utilizing three point deformation coordinates to, as theory deformation normal direction (NX ', NY, ' NZ ') (formation approaches leveling method vector);
7. utilize (X, Y, Z ') and (NX ', NY ', NZ ') to revise the APT file, handle the back through postposition and form control bracket movement instruction, reach in riveted joint, dynamically to repair and control.ATP file processing front and back are as Figure 11, shown in Figure 12, wherein:
GOTO represents cutter reached position and attitude, and preceding 2 numerical value are position vector, and back three numerical value are the normal vector coordinate figure, and red line has marked the wherein situation of change of its numerical value of deformation process front and back.Other APT instruction is little with data processing relation of the present invention, no longer describes in detail.
Development environment, developing instrument and subprogram
This program is under CATIA V5 environment, adopt CAA secondary exploitation technology, VB, the VBSCRIPT of CATIA V5, DEPHI, programming development instruments such as MACRO, designed the data processing software and the numerical control post processing program of the mathematical model needs that meet bracket deformation, integrated figure of its data processing and method flow diagram are referring to Fig. 7 and Fig. 8.Bottom is the subprogram code: procedure TForm1.bxClick (Sender:TObject); Type Tcood=array[0..1] of string; Var instr, outstr, sepchar, datas, x, y, z, dx, dy, dz, zp:string; Mask1:Tmask; Catiadoc, op, ep, part1, hybridShapeFactory1, PointCoord1_f, refpoint1_f, bxm_f, hybridBody1, hybridBody2, op_ref_b, op_ref_e:OleVariant; Op_e, bxjd_f, l1, bxm, bxjd, selection, params, PointCoord1, refpoint1, PointCoord2, refpoint2:OleVariant; Dirline, cood, Parameters1, bxname, hybridBody3, fs_bx_op, bxv, fsbxname, fsbxv, bx_op, fs_bx_line, fs_pb_ref, fs_pe_ref, fs_pb, fs_pe, fs_bxjd:Variant;
zb:string;
i:integer;
fsbx,bx,fx,fy,fz,f_bx,fze,l,z_0:real;
begin
sepchar:=’,’;
reset(inputfile);
rewrite(outfile); mask1:=tmask.Create(’GOTO/*’);
CATIA.Visible:=True; Catiadoc:=CATIA.ActiveDocument; Part1:=catiadoc.Part; HybridShapeFactory1:=part1.HybridShapeFactory; HybridBody1:=part1.HybridBodies.add; HybridBody1.Name:=' riveting point and deformation point '; HybridBody2:=part1.FindObjectByName (' deadweight deformation surface model '); The bxm:=hybridBody2.HybridShapes.item (' deformation surface of conducting oneself with dignity '); HybridBody3:=part1.FindObjectByName (' load deformation surface model '); Bxm_f:=hybridBody3.HybridShapes.item (' load deformation curved surface '); //========initial (0,0,0) Z distortion
x:=floattostr(0);
y:=floattostr(0);
z:=floattostr(0);
dx:=floattostr(0);
dy:=floattostr(0);
dz:=floattostr(0);
// deformation process // riveting point deformation processing op:=hybridShapeFactory1.AddNewPointCoord (x, y, z); Op.name:=' 0 point '; HybridBody1.AppendHybridShape (op); Part1.UpdateObject (hybridBody1); Op_ref_b:=part1.CreateReferenceFromObject (op); Zp:=FloatToStr (strtoFloat (z)-10000); Op_e:=hybridShapeFactory1.AddNewPointCoord (x, y, zp); Op_ref_e:=part1.CreateReferenceFromObject (op_e) l1:=hybridShapeFactory1.AddNewLinePtPt (op_ref_b, op_ref_e); //hybridBody1.AppendHybridShape (l1); //part1.UpdateObject (hybridBody1); Bxjd:=hybridShapeFactory1.AddNewIntersection (l1, bxm); HybridBody1.AppendHybridShape (bxjd); Bxjd_f:=hybridShapeFactory1.AddNewIntersection (l1, bxm_f); HybridBody1.AppendHybridShape (bxjd_f); Part1.UpdateObject (hybridBody1); PointCoord1:=hybridShapeFactory1.AddNewPointCoord (0.000000,0.000000,0.000000); Refpoint1:=part1.CreateReferenceFromObject (bxjd); PointCoord1.PtRef:=refpoint1; HybridBody1.AppendHybridShape (PointCoord1); PointCoord1_f:=hybridShapeFactory1.AddNewPointCoord (0.000000,0.000000,0.000000);
refpoint1_f:=part1.CreateReferenceFromObject(bxjd_f);
PointCoord1_f.PtRef:=refpoint1_f;
hybridBody1.AppendHybridShape(PointCoord1_f);
// riveting point deformation is handled
// method is vowed and is revised
fx:=strtoFloat(x)+strtoFloat(dx)*l;
fy:=strtoFloat(y)+strtoFloat(dy)*l;
fz:=strtoFloat(z)+strtoFloat(dz)*l;
fs_pb:=hybridShapeFactory1.AddNewPointCoord(fx,fy,fz);
//hybridBody1.AppendHybridShape(fs_pb);
//part1.UpdateObject(hybridBody1);
fs_pb_ref:=part1.CreateReferenceFromObject(fs_pb);
fze:=fz-10000;
fs_pe:=hybridShapeFactory1.AddNewPointCoord(fx,fy,fze);
fs_pe_ref:=part1.CreateReferenceFromObject(fs_pe);
fs_bx_line:=hybridShapeFactory1.AddNewLinePtPt(fs_pb_ref,fs_pe_ref);
Fs_bxjd:=hybridShapeFactory1.AddNewIntersection (fs_bx_line, bxm); HybridBody1.AppendHybridShape (fs_bxjd); Part1.UpdateObject (hybridBody1) c type automatic drill riveting PointCoord2:=hybridShapeFactory1.AddNewPointCoord (0.000000,
0.000000,0.000000);
refpoint2:=part1.CreateReferenceFromObject(fs_bxjd);
PointCoord2.PtRef:=refpoint2;
hybridBody1.AppendHybridShape(PointCoord2);
// method is vowed and is revised
//cood:=VarArrayCreate([0,2],varVariant);
params:=VarArrayCreate([0,5],varVariant);
params[0]:=x;
params[1]:=y;
params[2]:=z;
params[3]:=dx;
params[4]:=dy;
params[5]:=dz;
//PointCoord1.GetCoordinates(cood);
part1.UpdateObject(hybridBody1);
selection:=catiadoc.Selection;
selection.clear;
selection.add(PointCoord1);
selection.add(op);
selection.add(PointCoord2);
selection.add(PointCoord1_f);
//selection.Item(1).value.GetCoordinates(cood);
//CATIA.SystemService.Evaluate(’Sub?CATMain(f,v)\ndimcood1(2)\nselection.Item(1).value.GetCoordinates(cood1)\nEnd?Sub’,CATVBScriptLanguage,’CATMain’,cood);
//CATIA.SystemService.Evaluate(’Sub?CATMain(f,v)\nEnd?Sub’,CATVBScriptLanguage,’CATMain’,cood);
CATIA.SystemService.ExecuteScript(’c:\’,catScriptLibraryTypeDirectory,’getz3.CATScript’,’CATMain’,params);
Parameters1:=part1.Parameters.SubList(op,True);
Bxname:=op.Name+ ' _ Z revises ';
bxv:=Parameters1.item(bxname).value;
bx:=bxv*1.00000;
//zb:=cood[0];
memo2.Lines.Append(floattostr(bx));
z:=floattostr(StrToFloat(z)+bx);
bx_op:=hybridShapeFactory1.AddNewPointCoord(x,y,z);
Bx_op.name:=' revises 0 point ';
hybridBody1.AppendHybridShape(bx_op);
//
// deformation process
z_0:=bx;
//========initial (0,0,0) Z distortion
i:=0;
l:=200;
Repeatbeginreadln (inputfile, instr); If mask1.Matches (instr) thenbegini:=i+1; Datas:=RegulateStr (copy (instr, 8, length (instr)-7), sepchar); //x:=copy (datas, 1, pos (sepchar, datas)-1); X:=GetSubStr (datas, sepchar); Y:=GetSubStr (datas, sepchar); Z:=GetSubStr (datas, sepchar); Dx:=GetSubStr (datas, sepchar); Dy:=GetSubStr (datas, sepchar); Dz:=GetSubStr (datas, sepchar); // deformation process // riveting point deformation processing op:=hybridShapeFactory1.AddNewPointCoord (x, y, z); The theoretical riveting point of op.name:=' '+inttostr (i); HybridBody1.AppendHybridShape (op); Part1.UpdateObject (hybridBody1); Op_ref_b:=part1.CreateReferenceFromObject (op); Zp:=FloatToStr (strtoFloat (z)-10000); Op_e:=hybridShapeFactory1.AddNewPointCoord (x, y, zp); Op_ref_e:=part1.CreateReferenceFromObject (op_e);
l1:=hybridShapeFactory1.AddNewLinePtPt(op_ref_b,op_ref_e);
//hybridBody1.AppendHybridShape(l1);
//part1.UpdateObject(hybridBody1);
bxjd:=hybridShapeFactory1.AddNewIntersection(l1,bxm);
hybridBody1.AppendHybridShape(bxjd);
jd_f:=hybridShapeFactory1.AddNewIntersection(l1,bxm_f);
hybridBody1.AppendHybridShape(bxjd_f);
part1.UpdateObject(hybridBody1);
PointCoord1:=hybridShapeFactory1.AddNewPointCoord(0.000000,0.000000,0.000000);
refpoint1:=part1.CreateReferenceFromObject(bxjd);
PointCoord1.PtRef:=refpoint1;
hybridBody1.AppendHybridShape(PointCoord1);
PointCoord1_f:=hybridShapeFactory1.AddNewPointCoord(0.000000,0.000000,0.000000);
refpoint1_f:=part1.CreateReferenceFromObject(bxjd_f);
PointCoord1_f.PtRef:=refpoint1_f;
hybridBody1.AppendHybridShape(PointCoord1_f);
// riveting point deformation is handled
// method is vowed and is revised
fx:=strtoFloat(x)+strtoFloat(dx)*l;
fy:=strtoFloat(y)+strtoFloat(dy)*l;
fz:=strtoFloat(z)+strtoFloat(dz)*l;
fs_pb:=hybridShapeFactory1.AddNewPointCoord(fx,fy,fz);
//hybridBody1.AppendHybridShape(fs_pb);
//part1.UpdateObject(hybridBody1);
fs_pb_ref:=part1.CreateReferenceFromObject(fs_pb);
fze:=fz-10000;
fs_pe:=hybridShapeFactory1.AddNewPointCoord(fx,fy,fze);
fs_pe_ref:=part1.CreateReferenceFromObject(fs_pe);
fs_bx_line:=hybridShapeFactory1.AddNewLinePtPt(fs_pb_ref,fs_pe_ref);
fs_bxjd:=hybridShapeFactory1.AddNewIntersection(fs_bx_line,bxm);
hybridBody1.AppendHybridShape(fs_bxjd);
part1.UpdateObject(hybridBody1);
PointCoord2:=hybridShapeFactory1.AddNewPointCoord(0.000000,0.000000,0.000000);
refpoint2:=part1.CreateReferenceFromObject(fs_bxjd);
PointCoord2.PtRef:=refpoint2;
hybridBody1.AppendHybridShape(PointCoord2);
// method is vowed and is revised
//cood:=VarArrayCreate([0,2],varVariant);
params:=VarArrayCreate([0,5],varVariant);
params[0]:=x;
params[1]:=y;
params[2]:=z;
params[3]:=dx;
params[4]:=dy;
params[5]:=dz;
//PointCoord1.GetCoordinates(cood);
part1.UpdateObject(hybridBody1);
selection:=catiadoc.Selection;
selection.clear;
selection.add(PointCoord1);
selection.add(op);
selection.add(PointCoord2);
selection.add(PointCoord1_f);
//selection.Item(1).value.GetCoordinates(cood);
//CATIA.SystemService.Evaluate(’Sub?CATMain(f,v)\ndimcood1(2)\nselection.Item(1).value.GetCoordinates(cood1)\nEnd?Sub’,CATVBScriptLanguage,’CATMain’,cood);
//CATIA.SystemService.Evaluate(’Sub?CATMain(f,v)\nEnd?Sub’,CATVBScriptLanguage,’CATMain’,cood);
CATIA.SystemService.ExecuteScript(’c:\’,catScriptLibraryTypeDirectory,’getz3.CATScript’,’CATMain’,params);
Parameters1:=part1.Parameters.SubList(op,True);
Bxname:=op.Name+ ' _ Z revises ';
bxv:=Parameters1.item(bxname).value;
bx:=(bxv-z_0)*0.5*abs(StrToFloat(dz))*(StrToFloat(dz)*StrToFloat(dz)+StrToFloat(dy)*StrToFloat(dy));
Parameters1.item(bxname).value:=floattostr(bx);
// method extremity point _ Z revises
Fsbxname:=op.Name+ ' _ method vows that Z revises ';
fsbxv:=Parameters1.item(fsbxname).value;
fsbx:=fsbxv*abs(StrToFloat(dz))*(StrToFloat(dz)*StrToFloat(dz)+StrToFloat(dy)*StrToFloat(dy));
Parameters1.item(fsbxname).value:=floattostr(fsbx);
// method extremity point _ Z revises
//zb:=cood[0];
memo2.Lines.Append(floattostr(bx));
z:=floattostr(StrToFloat(z)+bx);
bx_op:=hybridShapeFactory1.AddNewPointCoord(x,y,z);
Bx_op.name:=' revises the riveting point '+inttostr (i);
hybridBody1.AppendHybridShape(bx_op);
//
// method is vowed and is revised
fz:=fz+fsbx;
fs_bx_op:=hybridShapeFactory1.AddNewPointCoord(fx,fy,fz);
dirline:=hybridShapeFactory1.AddNewLinePtPt(bx_op,fs_bx_op);
hybridBody1.AppendHybridShape(dirline);
// method is vowed and is revised
// deformation process
outstr:=’GOTO/’+x+’,’+y+’,’+z+’,’+dx+’,’+dy+’,’+dz;
//memol.Lines.Append(y);
end
else
outstr:=instr;
writeln(outfile,outstr);
memol.Lines.Append(outstr);
end;
until?eof(inputfile);
closefile(outfile);
end;
Concrete application example:
Automatic rivet bracket distortion Method for data modification and supplement of the present invention is used in G4026SXX-120 full-automatic drilling riveting system, directly in CATIA V5 system, set up the workpiece digital-to-analogue, carrying out rivet technology distributes, machining prgraming, reached the target that full-automatic numerical control is riveted through evidence, its positional precision and normal direction precision satisfy the accuracy requirement of ARJ aircraft wing wallboard product.Following set of diagrams sheet be ARJ aircraft wing wallboard after distortion repairing technique data processing, the example picture of automatic riveting processing is referring to Fig. 9, Figure 10, Figure 13 (squab panel length is near 13 meters on the maximum product, and the inferoposterior wall plate is the workpiece of hyperbolic curvature maximum).