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 |
|
|
|
|
|
|
|
|
|
|
|
|