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 |