>> Rodney Roberts IS & Education Professional Homepage   >> Model Rockets & Boost/Gliders Programming

Science makes it known,
Engineering makes it work,
Art makes it beautiful.


Rocket/Glider External Structural/Stabilizing Body Tubes

Estes TR-4 Model Rocket Technical Report Boost Gliders, p. 12 (image reproduced and modified at right) depicts a swing wing rocket/glider with external body tubes attached to the central (or main fuselage) body tube, which in turn may have vertical and horizontal stabilizers attached as a H-Tail variant.

RG001 / FrmStabTubes is a sub-form used in Lazarus multiform application glider01 to input external body tubes data, including which fins/wings/stabilizers (if any) are attached.  Fins/wings/stabilizers (or flight surfaces) are identified using a csDropDownList; these may be Main Wing, Horzontal Stabilizer, Vertical_Stabilizer, Left Vertical Stabilizer, Right Vertical Stabilizer, or Forward Canard Stabilizer for rocket/gliders.  Since TStrings.CommaText treats a space as a delimiter, using '_' for space.

Uses TStringGrid for external body tube I/O, PickList editor to select which fin/wing/stabilizer are attached to external body tube.  Up to two fins/wings/stabilizers may be attached to external body tube.  The grid's event OnSelectEditor is used.

As long as the external body tubes are hollow and thin-walled, its CD 1 can be calculated as a launch lug.  Sub-form can be expanded to include model rockets (some model rocket designs use these instead of fins) and lifting bodies.

  1. rg001.pas - Lazarus External Structural/Stabilizing Body Tubes unit source file (class name TFrmStabTubes); contains user interface event procedures; has { public declarations } data and interface procedures that can be accessed by other units
  2. rg001.lfm - Lazarus External Structural/Stabilizing Body Tubes Sub-Form (FrmStabTubes; shown below)
  3. NumRecGlbl.pas - Numerical Recipes2 global constants/variables/procedures Lazarus unit, reused in other Lazarus projects & Object Pascal Librarys; has rudimentary data validation functions
    genetyp.inc3 - include file developed from major rewrite of Dawkins8 Biomorphs; contains useful CONSTant and TYPE declarations
    nrtyp.inc - Numerical Recipes include file; CONSTant and TYPE declarations
  4. MRcommon.pas - Model Rocket global constants/variables/procedures Lazarus unit; refer to source file comments for global variables' description; MRcommon.pas is still being developed for future sub-forms
    missle.inc - include file used by MRcommon.pas; rocket related CONSTant and TYPE declarations
  5. missle18.pas - Fin/Wing/Stabilizer Lazarus unit source file (class name TFrmFinShpArea); uses { public declarations } data and interface functions.
    aero021.inc - include file used by missle18.pas; glider related CONSTant declarations
  6. RGhelp.pas - RGhelp / FrmRGhlp; simple help unit with public CONSTant declarations and { public declarations } data, currently incomplete and not available for download.  References to it may be safely commented out for now.
  7. missle02.pas - source code for Object Pascal Library missle02.dll (rocket related functions/procedures); callable by Object Pascal command console programs, Object Pascal Windows programs, Lazarus, and D programs.  Uses include files genetyp.inc, nrtyp.inc, and missle.inc; UOM conversion, Error Message, compute glider/rocket components' surface area, overall rocket cp/C, and other functions/procedures; calls FORTRAN subroutines in mathproc.dll and Pascal procedures in hwndio.dll; refer to source file comments for variables' description

For rocket/gliders, only the first row is used; for model rockets, up to <number of stages> rows may be used (row 1 is for stage 1, etc.).

Nmbr Stab. Tubes : Number of external body tubes, restricted by Radius

Dist. Nose Tip : X axis length from nose cone tip to leading edge of external body tube

Length : external body tube length; used to calculate external body tube CD (missle13.dll function eTubeCD (...)4).

Radius : external body tube radius; used to calculate external body tube CD.
External body tube radius is added to the central body tube radius to determine total radial distance (Y-Z plane; radius) from fuselage centerline to any flight surfaces attached to external body tube.  Total radius is used to calculate CDint (attached flight surfaces' interference drag coefficient, missle13.dll function intrfncCD (...)4).

Mass  : mass of one external body tube

Radial Pos is the angle (Y-Z plane) φ in diagram at page top; radial position of first body tube.  Limited to 0° through 359°.

Flght Surface Attached specifies the first flight surface (Main_Wing, Horzontal_Stabilizer, etc.) attached to external body tube (csDropDownList).

2nd Flght Surface Attchd specifies the second flight surface (if any) attached to external body tube (csDropDownList).

    File Commands:
  1. Close Form
    sets  ModalResult:=mrClose;
    returns control to main form
    Help Commands:
  1. Overview
    invokes  FrmRGhlp.ShowModal( )

glider01 event procedure TmrGliderFrm.BtnStabTubesClick(...) invoking RG001 / FrmStabTubes
Event Procedure

    Compiling / Linking :5
  1. compile Missle18 / FrmFinShpArea
  2. add RG001 / FrmStabTubes to project, Save (only have to do this step during initial build)
  3. compile

At present, will need to supply your own version of glider01.lpr (Lazarus Project) and glider1.pas (main form).

1. Gregorek, Gerald M.  TIR-11 Aerodynamic Drag of Model Rockets
2. Press, William H., Brian P. Flannery, Saul A Teukolsky, and William T. Vetterling (1986).  Numerical Recipes: The Art of Scientific Computing.  New York : Press Syndicate of the University of Cambridge.  A student version (in English) of Numerical Recipes In 'C': The Art Of Scientific Computing, Second Edition, © 1988-1992 is available from the University of Trieste at no cost.
3. Rietman, Edward (1994).  Genesis Redux: Experiments Creating Artificial Life. Windcrest (McGraw-Hill).
4. Called in another application.
5. This is a complex project demonstrating as much re-use as possible of Librarys from other projects, resulting in a large compile/link list and multiple .dlls.  For compatibility with other programs, using 32 bit compilers.

Any and all © copyrights, ® ™ trademarks, or other intellectual property (IP) mentioned here are the property of their respective owners.  No infringement is intended.  Some images generated using Pixel Squid.

Feel free to use any of the above in your project (without violating any intellectual property rights); please give credit (same idea as Copyleft).

Page best viewed with Mozilla FireFox 3.6.13 (or higher) and Google Chrome Version 40.0.2214.94 (or higher); Microsoft Edge may not display correctly.

Website is supported on DESKTOP platforms only.

Web hosting provided by:
, Free Web Hosting. ,  & Gigarank Web Hosting

>> Rodney Roberts IS & Education Professional Homepage   >> Model Rockets & Boost/Gliders Programming