| BfX_Help(integer) - help on the use of BfX functions | ||||||||||
| (if you see this information on a web page, click here to go back to the BfX Home page: ) | http://www.bfxyz.nl/ | |||||||||
| Create a column 0, 1, 2, 3, …, enter in the adjacent row =Bfx_Help(reference to the cell) | ||||||||||
| 0 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||
| 1 | BfX Excel 2015 32bit(C) Lydia Meijer Bld: Jan 15 2019 15:33:34 Release | |||||||||
| 2 | Compiler _MSC_VER 1916, Visual Studio 2017 15.9 | |||||||||
| 3 | ==============================Help on BfX add-ins=============================== | |||||||||
| 4 | All examples are in European locale, e.g. =bfx_vx(740,3;200,1;0,5) | |||||||||
| 5 | However, your computer might expect input as =bfx_vx(740.3,200.1,0.5) | |||||||||
| 6 | Function arguments with default values can be omitted | |||||||||
| 7 | Empty first arguments eg BfX_Xv( or BfX_Xv() or BfX_Xv(;400;300;0,5) return help | |||||||||
| 8 | =============================Atmospheric condition============================== | |||||||||
| 9 | BfX assumes 15 degrees Celsius, 101325 Pascal, 0% humidity (ICAO conditions) | |||||||||
| 10 | ========Calculating projectile velocity, flight time and flight distance======== | |||||||||
| 11 | v0: muzzle velocity [m/s], | |||||||||
| 12 | v: velocity of slowed down projectile <v0 [m/s] | |||||||||
| 13 | x: distance >0 [m], c: ballistic coefficient [lb/in^2] >0, take c of the | |||||||||
| 14 | highest supersonic velocity range | |||||||||
| 15 | df: drag function. BfX uses by default the Pejsa drag function in combination | |||||||||
| 16 | with the G1 ballistic coefficient, BfX_Help2 lists available drag functions | |||||||||
| 17 | v=BfX_Vx(v0; x; c; df=GP) [m/s] | |||||||||
| 18 | v=BfX_Vt(v0; t; c; df=GP) [m/s] | |||||||||
| 19 | t=BfX_Tv(v0; v; c; df=GP) [s] | |||||||||
| 20 | t=BfX_Tx(v0; x; c; df=GP) [s] | |||||||||
| 21 | x=BfX_Xv(v0; v; c; df=GP) [m] | |||||||||
| 22 | x=BfX_Xt(v0; t; c; df=GP) [m] | |||||||||
| 23 | Examples: =BfX_Vx(750;300;0,45) =BfX_Vx(750;300;0,23;"G7") | |||||||||
| 24 | =BfX_Vx("fps";750;30000;"cm";0,45), <dt> indicates a user defined | |||||||||
| 25 | drag table =BfX_Vx(750;300;1.0;<dt>) | |||||||||
| 26 | ======================================Drop====================================== | |||||||||
| 27 | drop=BfX_D(v0; x; c; df=GP) [m] or converted to angle | |||||||||
| 28 | to convert to angle specify an unit of angle as output unit | |||||||||
| 29 | ================================Wind deflection================================= | |||||||||
| 30 | <xw> <vw> are ranges (possible multiple Excel cells) containing | |||||||||
| 31 | wind velocities vw [m/s] at xw [m] | |||||||||
| 32 | wind_deflection=BfX_Y(v0; <xw>; <vw>; x; c; df=GP) [m] or converted to angle | |||||||||
| 33 | to convert to angle specify an unit of angle as output unit | |||||||||
| 34 | ===========================Bullet path and elevation============================ | |||||||||
| 35 | zx: distance [m] at which impact is h [m] | |||||||||
| 36 | s: distance line of sight to bore at muzzle >0 [m] | |||||||||
| 37 | e: elevation, -pi/2 < e <pi/2 [radians] | |||||||||
| 38 | height_at_x=BfX_Zx(v0; s; h; zx; x; c; df=GP) [m] or converted to angle | |||||||||
| 39 | height_at_x=BfX_Ze(v0; s; e; x; c; df=GP) [m] or converted to angle | |||||||||
| 40 | to convert to angle specify an unit of angle as output unit | |||||||||
| 41 | elevation=BfX_E(v0; s; h; zx; c; df=GP) [radians] | |||||||||
| 42 | ============================Weather influences on bc============================ | |||||||||
| 43 | P: pressure [Pascal], T: temperature [C], H: humidity [fraction of 1]. | |||||||||
| 44 | for other than default atmospheric conditions, multiply ballistic | |||||||||
| 45 | coefficient with | |||||||||
| 46 | BfX_C(T=15 [Celcius]; P=101324.6 [Pa], H=0.0 [fraction of 1]) [] | |||||||||
| 47 | =================================Air properties================================= | |||||||||
| 48 | P: pressure [Pascal], T: temperature [C], H: humidity [fraction of 1]. | |||||||||
| 49 | air density = BfX_Ad(T=15 [C]; P=101324.6 [Pa]; H=0.0 [fraction of 1]) [kg/m^3] | |||||||||
| 50 | ======================Input output unit conversion in BfX======================= | |||||||||
| 51 | Functions can produce output in other units: specify as first | |||||||||
| 52 | argument the desired unit, e.g. =BFX_D("cm"; v0; x; c). The | |||||||||
| 53 | functions accept also input in other units, just input the | |||||||||
| 54 | desired unit after the value as an separate argument, e.g. | |||||||||
| 55 | =BFX_D("cm"; v0; "fps"; x; "yd"; c; "G7"), here input in Imperial | |||||||||
| 56 | units and output in centimeters and c according to the G7 drag tables. | |||||||||
| 57 | ==============================Conversion of units=============================== | |||||||||
| 58 | Unit conversion, v is a value, specify either or both input and output unit | |||||||||
| 59 | units might be of different(!), eg. "ft" and "kg" | |||||||||
| 60 | value_in_other_unit = BfX_U(value) e.g. v=BfX_U("km";120;"ft") | |||||||||
| 61 | Calculation of an angle from distance and height: | |||||||||
| 62 | angle = bfx_ax(x; h) [radians] | |||||||||
| 63 | ===================List of supported units and drag functions=================== | |||||||||
| 64 | use =BfX_Help2(i) with i=0,1,2, ... | |||||||||
| 65 | ================================Error reporting================================= | |||||||||
| 66 | <r> is an optional range | |||||||||
| 67 | use =BfX_IQ(<r>) for information on your recent (un)succesful calculation | |||||||||
| 68 | use =BfX_Info(i,<r>) with i=0,1,2,... for a history on calculations | |||||||||
| 69 | ==============================Display Cell Formula============================== | |||||||||
| 70 | use =BfX_Cell(<r>) to display the formula of the cell left top cell of a range | |||||||||
| 71 | use if necessary, ANY change, wherever in the WHOLE workbook updates BFX_Cell | |||||||||
| 72 | BfX_Cell is a volatile function, incompatible with some other Excel functions | |||||||||
| 73 | Volatile Excel functions are currently crashing the Excel SOLVER addin | |||||||||
| 74 | Remove BfX_Cell when ready | |||||||||
| 75 | =================================Interpolation================================== | |||||||||
| 76 | <xi> a (possible unordered) range with at least two elements, | |||||||||
| 77 | <gxi> a range containing g(xi) where g(x) is a function of x | |||||||||
| 78 | x is a value for which g(x) is to be estimated with an accuracy a (if possible) | |||||||||
| 79 | m is the output mode, m= I, A, N, T, | |||||||||
| 80 | I: returns the inter/extra polated value, (default if m is omitted) | |||||||||
| 81 | A: returns the estimated accuracy of interpolated value, | |||||||||
| 82 | N: returns the the number of points used in the interpolation, | |||||||||
| 83 | T: returns the type of the result, | |||||||||
| 84 | -1 interpolation with better then the requested accuracy | |||||||||
| 85 | -2 interpolation not neccessary, x was present in <xi> and <gi> returned | |||||||||
| 86 | -3 extrapolation with better then the requested accuracy | |||||||||
| 87 | 0 interpolation with less then the requested accuracy | |||||||||
| 88 | 1 extrapolation with less then the requested accuracy | |||||||||
| 89 | interpolation g(x)= BfX_I(<xi>; <gxi>; x; accuracy=1E-5; m=I) | |||||||||
| 90 | ===============================Drag coefficients================================ | |||||||||
| 91 | Cd=BfX_Cd(v0; df=GP) [] | |||||||||
| 92 | ==========================Non volatile random numbers=========================== | |||||||||
| 93 | i is a positive integer number, b is the bottom value, t (>b) is the top value | |||||||||
| 94 | <r> is an optional range | |||||||||
| 95 | random_number = BfX_Ran(i; <r>) 0 <= random_number <= 1] | |||||||||
| 96 | b <= random_number <= t = BfX_Ranb(i; b; t; <r>) | |||||||||
| 97 | c and s are center and width of normal distribution | |||||||||
| 98 | normal distribution b <= random_number <= t= BfX_Rang(i; c; s; b; t; <r>) | |||||||||
| 99 | use <r> to link cells to guide Excels calculation order | |||||||||
| 100 | ==========================check if a range has changed========================== | |||||||||
| 101 | Compute a short text that uniquely identifies all values in a range <r>, | |||||||||
| 102 | m specifies what is included in the check, m=FC, OV, ON, OT, OB, OE, OD | |||||||||
| 103 | FC: full check - range dimensions, all contents and their place (default) | |||||||||
| 104 | OV: only values - skip empty cells | |||||||||
| 105 | ON: only numbers - skip empty cells, booleans and text, ignore position | |||||||||
| 106 | OT: only text - skip empty cells, booleans and numbers, ignore position | |||||||||
| 107 | OB: only booleans - skip empty cells, text and numbers, ignore position | |||||||||
| 108 | OE: only empty cells - skip booleans, text and numbers, ignore position | |||||||||
| 109 | OD: only drag table - required for drag tables | |||||||||
| 110 | 32 bit Cyclic Redundancy Check = BfX_CRC(<r>; m=FC) (AUTODIN II polynomial) | |||||||||
| 111 | ====================================Contact===================================== | |||||||||
| 112 | use =BfX_Help(i) with i=-2,-3 for email and website address | |||||||||
| 113 | use =BfX_Info(i) with i=-2,-3 for email and website address | |||||||||
| 114 | =================Visual Basic for Applications (VBA) interface================== | |||||||||
| 115 | The argments are passed in the same order as with the BfX worksheet functions | |||||||||
| 116 | All arguments are VARIANTS - the default type of VBA. | |||||||||
| 117 | However, arrays should be declared as e.g. Dim x(10), vw(10) | |||||||||
| 118 | then declare Dim xv, vwv to create VARIANTS that will contain x and vw | |||||||||
| 119 | and just before calling vb_y (the only procedure that need arrays) set: | |||||||||
| 120 | xv=x and yv=y and make the call e.g. returnval=vb_y(v0,x,vw,r,c) | |||||||||
| 121 | Declare the VBA interfaces as: | |||||||||
| 122 | Private Declare Function vb_y Lib "FullPath\BfX.XLL" Alias "BfX_VB_Y" _ | |||||||||
| 123 | (Optional, v1 As Variant, Optional v2 As Variant, ...) As Variant | |||||||||
| 124 | The naming convention is VBA Alias name = Worksheet name with _VB_in the | |||||||||
| 125 | middle: BfX_VB_Zx, BfX_VB_C, etc. Use BfX_IQ() on the worksheet to obtain | |||||||||
| 126 | error/succes information | |||||||||
| 127 | ===================================About BfX==================================== | |||||||||
| 128 | Created: Robert Meijer (c) 2008, 2009, 2010, 2011, 2015 | |||||||||
| 129 | inspired on Arthur Pejsa's book: Modern Practical Ballistics. | |||||||||
| 130 | BfX has however less approximations and more drag functions. Calculated results | |||||||||
| 131 | DO include sub and super sonic regions. Implementation is checked | |||||||||
| 132 | against numerical simulations of projectile behavior. Significant | |||||||||
| 133 | errors in BfX results start to occur for elevations above | |||||||||
| 134 | 15 degrees. | |||||||||
| 135 | ==========================Right to use and distribute=========================== | |||||||||
| 136 | Use and re-distribution of this addin is only granted to private persons | |||||||||
| 137 | having non-commercial purposes. Dit werk is auteursrechtelijk beschermd | |||||||||
| 138 | Formula's, source code etc of the BfX add-in cannot be distributed or claimed | |||||||||
| 139 | =============================Disclaimer of Warranty============================= | |||||||||
| 140 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE | |||||||||
| 141 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR | |||||||||
| 142 | OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER | |||||||||
| 143 | EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||||||
| 144 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO | |||||||||
| 145 | THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM | |||||||||
| 146 | PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR | |||||||||
| 147 | CORRECTION | |||||||||
| 148 | ============================Limitation of Liability============================= | |||||||||
| 149 | IN NO EVENT WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO CONVEYS THE | |||||||||
| 150 | PROGRAM, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, | |||||||||
| 151 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO | |||||||||
| 152 | USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING | |||||||||
| 153 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE | |||||||||
| 154 | OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR | |||||||||
| 155 | OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES | |||||||||
| 156 | In short: the use of this addin is completely your own responsibility | |||||||||
| 157 | and all consequences are yours. | |||||||||
| 158 | Take care, firearms are potentially lethal | |||||||||
| 159 | ================================End of BfX_Help================================= | |||||||||
| 160 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||
| 161 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||
| 162 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||
| 163 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||
| 164 | Ballistics for Excel - use =BfX_Help(i) with i=1,2,3,...159 for more | |||||||||