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,...157 for more | |||||||||

1 | ===BfX Excel 2010 64bit==(C) Robert Meijer==Bld: Aug 22 2011 14:27:21 (Debug)=== | |||||||||

2 | All examples are in European locale, e.g. =bfx_vx(740,3;200,1;0,5) | |||||||||

3 | However, your computer might expect the USA locale e.g. =bfx_vx(740.3,200.1,0.5) | |||||||||

4 | Function arguments with default values can be omitted | |||||||||

5 | Empty first arguments eg BfX_Xv( or BfX_Xv() or BfX_Xv(;400;300;0,5) return help | |||||||||

6 | =============================Atmospheric condition============================== | |||||||||

7 | BfX assumes 15 degrees Celsius, 101325 Pascal, 0% humidity (ICAO conditions) | |||||||||

8 | ========Calculating projectile velocity, flight time and flight distance======== | |||||||||

9 | v0: muzzle velocity [m/s], | |||||||||

10 | v: velocity of slowed down projectile <v0 [m/s] | |||||||||

11 | x: distance >0 [m], c: ballistic coefficient [lb/in^2] >0, take c of the | |||||||||

12 | highest supersonic velocity range | |||||||||

13 | df: drag function. BfX uses by default the Pejsa drag function in combination | |||||||||

14 | with the G1 ballistic coefficient, BfX_Help2 lists available drag functions | |||||||||

15 | v=BfX_Vx(v0; x; c; df=GP) [m/s] | |||||||||

16 | v=BfX_Vt(v0; t; c; df=GP) [m/s] | |||||||||

17 | t=BfX_Tv(v0; v; c; df=GP) [s] | |||||||||

18 | t=BfX_Tx(v0; x; c; df=GP) [s] | |||||||||

19 | x=BfX_Xv(v0; v; c; df=GP) [m] | |||||||||

20 | x=BfX_Xt(v0; t; c; df=GP) [m] | |||||||||

21 | Examples: =BfX_Vx(750;300;0,45) =BfX_Vx(750;300;0,23;"G7") | |||||||||

22 | =BfX_Vx("fps";750;30000;"cm";0,45), <dt> indicates a user defined | |||||||||

23 | drag table =BfX_Vx(750;300;1.0;<dt>) | |||||||||

24 | ======================================Drop====================================== | |||||||||

25 | drop=BfX_D(v0; x; c; df=GP) [m] or converted to angle | |||||||||

26 | to convert to angle specify an unit of angle as output unit | |||||||||

27 | ================================Wind deflection================================= | |||||||||

28 | <xw> <vw> are ranges (possible multiple Excel cells) containing | |||||||||

29 | wind velocities vw [m/s] at xw [m] | |||||||||

30 | wind_deflection=BfX_Y(v0; <xw>; <vw>; x; c; df=GP) [m] or converted to angle | |||||||||

31 | to convert to angle specify an unit of angle as output unit | |||||||||

32 | ===========================Bullet path and elevation============================ | |||||||||

33 | zx: distance [m] at which impact is h [m] | |||||||||

34 | s: distance line of sight to bore at muzzle >0 [m] | |||||||||

35 | e: elevation, -pi/2 < e <pi/2 [radians] | |||||||||

36 | height_at_x=BfX_Zx(v0; s; h; zx; x; c; df=GP) [m] or converted to angle | |||||||||

37 | height_at_x=BfX_Ze(v0; s; e; x; c; df=GP) [m] or converted to angle | |||||||||

38 | to convert to angle specify an unit of angle as output unit | |||||||||

39 | elevation=BfX_E(v0; s; h; zx; c; df=GP) [radians] | |||||||||

40 | ============================Weather influences on bc============================ | |||||||||

41 | P: pressure [Pascal], T: temperature [C], H: humidity [fraction of 1]. | |||||||||

42 | for other than default atmospheric conditions, multiply ballistic | |||||||||

43 | coefficient with | |||||||||

44 | BfX_C(T=15 [Celcius]; P=101324.6 [Pa], H=0.0 [fraction of 1]) [] | |||||||||

45 | =================================Air properties================================= | |||||||||

46 | P: pressure [Pascal], T: temperature [C], H: humidity [fraction of 1]. | |||||||||

47 | air density = BfX_Ad(T=15 [C]; P=101324.6 [Pa]; H=0.0 [fraction of 1]) [kg/m^3] | |||||||||

48 | ======================Input output unit conversion in BfX======================= | |||||||||

49 | Functions can produce output in other units: specify as first | |||||||||

50 | argument the desired unit, e.g. =BFX_D("cm"; v0; x; c). The | |||||||||

51 | functions accept also input in other units, just input the | |||||||||

52 | desired unit after the value as an separate argument, e.g. | |||||||||

53 | =BFX_D("cm"; v0; "fps"; x; "yd"; c; "G7"), here input in Imperial | |||||||||

54 | units and output in centimeters and c according to the G7 drag tables. | |||||||||

55 | ==============================Conversion of units=============================== | |||||||||

56 | Unit conversion, v is a value, specify either or both input and output unit | |||||||||

57 | units might be of different(!), eg. "ft" and "kg" | |||||||||

58 | value_in_other_unit = BfX_U(value) e.g. v=BfX_U("km";120;"ft") | |||||||||

59 | Calculation of an angle from distance and height: | |||||||||

60 | angle = bfx_ax(x; h) [radians] | |||||||||

61 | ===================List of supported units and drag functions=================== | |||||||||

62 | use =BfX_Help2(i) with i=0,1,2, ... | |||||||||

63 | ================================Error reporting================================= | |||||||||

64 | <r> is an optional range | |||||||||

65 | use =BfX_IQ(<r>) for information on your recent (un)succesful calculation | |||||||||

66 | use =BfX_Info(i,<r>) with i=0,1,2,... for a history on calculations | |||||||||

67 | ==============================Display Cell Formula============================== | |||||||||

68 | use =BfX_Cell(<r>) to display the formula of the cell left top cell of a range | |||||||||

69 | use if necessary, ANY change, wherever in the WHOLE workbook updates BFX_Cell | |||||||||

70 | BfX_Cell is a volatile function, incompatible with some other Excel functions | |||||||||

71 | Volatile Excel functions are currently crashing the Excel SOLVER addin | |||||||||

72 | Remove BfX_Cell when ready | |||||||||

73 | =================================Interpolation================================== | |||||||||

74 | <xi> a (possible unordered) range with at least two elements, | |||||||||

75 | <gxi> a range containing g(xi) where g(x) is a function of x | |||||||||

76 | x is a value for which g(x) is to be estimated with an accuracy a (if possible) | |||||||||

77 | m is the output mode, m= I, A, N, T, | |||||||||

78 | I: returns the inter/extra polated value, (default if m is omitted) | |||||||||

79 | A: returns the estimated accuracy of interpolated value, | |||||||||

80 | N: returns the the number of points used in the interpolation, | |||||||||

81 | T: returns the type of the result, | |||||||||

82 | -1 interpolation with better then the requested accuracy | |||||||||

83 | -2 interpolation not neccessary, x was present in <xi> and <gi> returned | |||||||||

84 | -3 extrapolation with better then the requested accuracy | |||||||||

85 | 0 interpolation with less then the requested accuracy | |||||||||

86 | 1 extrapolation with less then the requested accuracy | |||||||||

87 | interpolation g(x)= BfX_I(<xi>; <gxi>; x; accuracy=1E-5; m=I) | |||||||||

88 | ===============================Drag coefficients================================ | |||||||||

89 | Cd=BfX_Cd(v0; df=GP) [] | |||||||||

90 | ==========================Non volatile random numbers=========================== | |||||||||

91 | i is a positive integer number, b is the bottom value, t (>b) is the top value | |||||||||

92 | <r> is an optional range | |||||||||

93 | random_number = BfX_Ran(i; <r>) 0 <= random_number <= 1] | |||||||||

94 | b <= random_number <= t = BfX_Ranb(i; b; t; <r>) | |||||||||

95 | c and s are center and width of normal distribution | |||||||||

96 | normal distribution b <= random_number <= t= BfX_Rang(i; c; s; b; t; <r>) | |||||||||

97 | use <r> to link cells to guide Excels calculation order | |||||||||

98 | ==========================check if a range has changed========================== | |||||||||

99 | Compute a short text that uniquely identifies all values in a range <r>, | |||||||||

100 | m specifies what is included in the check, m=FC, OV, ON, OT, OB, OE, OD | |||||||||

101 | FC: full check - range dimensions, all contents and their place (default) | |||||||||

102 | OV: only values - skip empty cells | |||||||||

103 | ON: only numbers - skip empty cells, booleans and text, ignore position | |||||||||

104 | OT: only text - skip empty cells, booleans and numbers, ignore position | |||||||||

105 | OB: only booleans - skip empty cells, text and numbers, ignore position | |||||||||

106 | OE: only empty cells - skip booleans, text and numbers, ignore position | |||||||||

107 | OD: only drag table - required for drag tables | |||||||||

108 | 32 bit Cyclic Redundancy Check = BfX_CRC(<r>; m=FC) (AUTODIN II polynomial) | |||||||||

109 | ====================================Contact===================================== | |||||||||

110 | use =BfX_Help(i) with i=-2,-3 for email and website address | |||||||||

111 | use =BfX_Info(i) with i=-2,-3 for email and website address | |||||||||

112 | =================Visual Basic for Applications (VBA) interface================== | |||||||||

113 | The argments are passed in the same order as with the BfX worksheet functions | |||||||||

114 | All arguments are VARIANTS - the default type of VBA. | |||||||||

115 | However, arrays should be declared as e.g. Dim x(10), vw(10) | |||||||||

116 | then declare Dim xv, vwv to create VARIANTS that will contain x and vw | |||||||||

117 | and just before calling vb_y (the only procedure that need arrays) set: | |||||||||

118 | xv=x and yv=y and make the call e.g. returnval=vb_y(v0,x,vw,r,c) | |||||||||

119 | Declare the VBA interfaces as: | |||||||||

120 | Private Declare Function vb_y Lib "FullPath\BfX.XLL" Alias "BfX_VB_Y" _ | |||||||||

121 | (Optional, v1 As Variant, Optional v2 As Variant, ...) As Variant | |||||||||

122 | The naming convention is VBA Alias name = Worksheet name with _VB_in the | |||||||||

123 | middle: BfX_VB_Zx, BfX_VB_C, etc. Use BfX_IQ() on the worksheet to obtain | |||||||||

124 | error/succes information | |||||||||

125 | ===================================About BfX==================================== | |||||||||

126 | Created: Robert Meijer (c) 2008, 2009, 2010, 2011 | |||||||||

127 | inspired on Arthur Pejsa's book: Modern Practical Ballistics. | |||||||||

128 | BfX has however less approximations and more drag functions. Calculated results | |||||||||

129 | DO include sub and super sonic regions. Implementation is checked | |||||||||

130 | against numerical simulations of projectile behavior. Significant | |||||||||

131 | errors in BfX results start to occur for elevations above | |||||||||

132 | 15 degrees. | |||||||||

133 | ==========================Right to use and distribute=========================== | |||||||||

134 | Use and re-distribution of this addin is only granted to private persons | |||||||||

135 | having non-commercial purposes. Dit werk is auteursrechtelijk beschermd | |||||||||

136 | Formula's, source code etc of the BfX add-in cannot be distributed or claimed | |||||||||

137 | =============================Disclaimer of Warranty============================= | |||||||||

138 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE | |||||||||

139 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR | |||||||||

140 | OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER | |||||||||

141 | EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||||||

142 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO | |||||||||

143 | THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM | |||||||||

144 | PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR | |||||||||

145 | CORRECTION | |||||||||

146 | ============================Limitation of Liability============================= | |||||||||

147 | IN NO EVENT WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO CONVEYS THE | |||||||||

148 | PROGRAM, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, | |||||||||

149 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO | |||||||||

150 | USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING | |||||||||

151 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE | |||||||||

152 | OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR | |||||||||

153 | OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES |