Lofting of Bodies with Conic Cross Sections Using AutoCAD - RC Groups
Shop our Airplanes Products Drone Products Sales

Lofting of Bodies with Conic Cross Sections Using AutoCAD

Scott Black shows you how to use a simple routine in AutoCAD that greatly simplifies the lofting of fuselages.

Article Thumbnail



This document briefly describes a series of 3 routines written in the AutoLISP language which will help model designers to loft fuselages and other bodies.

When tracing a 3 view drawing, it is often difficult to define cross sections for a specific location along a fuselage when there are only 3 or 4 defined sections that are not in the desired longitudinal location. Using the method of conics, the outer surface of a fuselage can be mathematically defined at any point based on a side view, top view and a few known sections. Then sections can be defined in any desired location. With some effort, even canted sections or vertical or horizontal slices could be generated.



In order to define and then loft a fuselage, the following steps must be performed:

  1. Trace the top view and side view of a 3 view drawing
  2. Trace whatever sectional information is available. If there is none, some estimates must be made but there things to look for that will make it easier
  3. Define the vertical location of the maximum width on the side view at each station – this is very important as it describes the character of the fuselage
  4. Define K factors for the upper and lower halves of each known fuselage station
  5. Define the variation of the upper and lower K factors over the length of the fuselage and plot them aligned with the top and side view.
  6. Loft the fuselage at any desired station or at a series of evenly spaced stations as desired – automatically and in seconds!


Introduction to Conic Sections

A conic section is simply a curve of a specific mathematical family. Without going in to unnecessary detail, it can simply be stated that a quarter of a cross section can be described by its width, height and K factor. K is defined as in Figure 1.

Figure 1. Definition of K factor

It can be seen from the figure that a K value of 1.0 will give a perfect square or rectangle (depending on the ratio of width to height) and a value of 0.707 will give a perfect circle or ellipse, again depending upon the aspect ratio. To have a better feel for the effect on the curvature of varying K, refer to Figure 2:

image51.jpg (17532 bytes)

Figure 2. Cross Sections drawn with "Conic"


Setting up to Loft a Fuselage

Now, if we know the height and width of any part of the fuselage from the top and side views and if we define the K for the upper and lower quarters of the fuselage, we have defined the outer surface for the entire fuselage. If the lines defining the top view and side view are smooth and contain no lumps or bumps and if the value of K has no discontinuities in it, we can be assured that the fuselage contours will be smooth, pleasing to the eye, and most likely aerodynamically efficient as well.

But there is one more piece of information that must be accurately defined, and that is the vertical location of the maximum width of the fuselage. If you look in Figure 2 at the full cross-section, you will see that its widest point is below the mid-height of the section. This location is usually not provided as a line along the fuselage on most 3 views, but it is critical. Also, since many 3 views are "artists impressions", the variation in the height of the maximum width based on the provided sections is often erratic and does not represent the real aircraft.

In order to ensure the smooth progression of the fuselage contour, this line must be correctly defined and it must be smooth. One trick to help in this regard is to look at as many pictures as possible of the subject aircraft. Sooner or later you will find one with the right lighting that clearly shows a line of shadow along the entire aircraft. From these types of photos, combined with known cross section information, it is usually not too difficult to define this line correctly. I have seen this line referred to as the OML (outer mould line) or maximum buttock line among other things. In this document it will be called the Maximum Width Line or MWL. This description applies to the outline of the top view as well – they describe the same location in space, so I will try to be specific and consistent in my explanation.

To define the MWL, draw its location on the known sections on the side view and connect these locations with a polyline. Combine this with a careful inspection of all available photos and whatever other knowledge you have of the airplane. I know on the Sabre that the aft most section is a round jet nozzle and this helped me define the cross sections aft of the widest point, since I had no known sections there. Smooth the MWL using spline or fit, which ever works best. Fit will respect the points that you defined where as spline will deviate from the middle points while respecting the end points.

The next task is to define the variation of K along the fuselage for both the upper and lower quadrants as shown in the left section in Figure 2. This is done in much the same way as the MWL was defined. Take the known sections and define their K values using the conic command.

Conic Command

To run conic (see Loading the Commands below), simply click on the widest part of the section, then either the top or bottom of the section along the center line and drag with the mouse until the desire curvature is achieved. I usually do this overlaid on top of a scanned drawing that I import into AutoCAD, but you could just do it by eye using vertical and lateral centerlines of the correct width. The resulting K value appears in the status box in the lower left corner of the screen. It also appears on the command line after you click to draw the final curve.

Then plot these known K values (both upper and lower) along an axis that represents the X axis of the fuselage. I find that Excel is great for this but you can even do it in AutoCAD. It is harder, however, to see a variation between say 0.73 and 0.75, depending on the scale. Since Excel will autoscale a plot, I use it. Plot all of the known K values and see if they change smoothly over the fuselage length. It is entirely probable, since the cross sections are not perfect, that they don’t. I fiddled them to approximate a smooth curve between known stations. The following figure shows how the variation of K looks before and after smoothing:

image52.jpg (35314 bytes)
Figure 3 Excel Spreadsheet Graph showing smoothing of K plots

Note the large numbers on the X axis. These are inches on the full scale F-86 Sabre. I used a structural drawing that had these stations marked to ensure that everything was in proportion. Note also the numbers on the Y axis – there is very little variation over the length of the fuselage. If we drew this line to scale on the drawing it would appear to be a straight line, but it isn’t really. What I did next was to scale these to the desired model size, but I DID NOT scale the K values – they are non-dimensional.

It is entirely possible that there is no variation in K along the fuselage, in which case this step is extremely simple. The K plot will just be 3 parallel lines. Such could be the case for things like wing tips or canopies, or even some fuselages.

Now that we have what we think is our best guess of the variation with K along the fuselage, we have to prepare a plot of both K curves aligned longitudinally with the top view and side view. The axis of the K plot must be drawn using the LINE command and it defines the length over which the FUSELOFT or PICK_STN commands will work. The Y location of the axis is not important as it serves as the 0 value from which the K curves are biased.

The K curves are drawn in the same manner as in Figure 4 except that the upper K plot is drawn above the axis (as in Figure 4) while the lower K plot is drawn below the axis; i.e. with negative K values relative to the axis. I did it this way to allow the two K curves to be picked easily in those cases where they might lie on top of each other. The drawing, fully prepared for lofting, is shown below in Figure 4:

image53.jpg (15194 bytes)
Figure 4. Top View, Side View and K plot ready for lofting

The 3 lines at the bottom represent the K plots. The middle line is the axis, the upper line is the K curve for the top section of the fuselage, and the bottom line is the K curve for the lower section.

Let’s just review again the rules for this drawing as it must be done properly for the routines to work:

  1. The top view center line and K axis must be LINES (i.e. created with the LINE command)
  2. The axis of the K plot serves as the definition for how long the fuselage is and what its X limits are. The other vectors must be at least as long and must be aligned, otherwise the lofting routines won’t find them for X values outside the limits of the K axis
  3. The other lines must all be POLYLINES (i.e. created with the PLINE command). These routines support fitted and splined polylines and I would recommend that you smooth all curves, including the K plots, before you proceed.

So now it looks like you are ready to roll!

Lofting Routine Overview

There are 2 routines for lofting the fuselage. Both are based on the same components and work the same way. The difference is the way that you define the location of the stations it creates.


Fuseloft creates stations based on a slice length that you enter. This is useful for drawing a 3D image for fun or for ensuring that the K values and MWL are well defined and representative of the scale subject. You can loft, look, change, and re-loft in seconds. It would also be useful if you are making a plug out of slices of foam or other material that have a consistent thickness. Just input the thickness and it will create all the cross sections you require.

Imagine a loaf of bread sliced into even pieces. Fuseloft draws the cross section at each slice location. At the right end, assuming that there is some leftover between the last slice and the end, it creates one oddly spaced slice to ensure that the end former is created. If you set fuseloft to draw the sections in 3D, i.e rotated outwards, each slice can be used to create a ruled surface which will allow you to create a 3D drawing. If this option is used, you will have to use a 3D view point to see the sections, otherwise it will just look like vertical lines being drawn at the slice locations (more on how to set this later in the Options section).


Pick_stn is primarily used for defining sections on a plan at a desired location; i.e. to interface with structure. Usually formers are used where wings attach or where motors are mounted, etc.  Pick_stn allows you insert a former with a pick of the mouse. It operates with a loop so that you can pick as many locations as you like without having to redefine the top view, side view and the other lines that make up the fuselage definition. To end the program, simply pick beyond the X limits of the K axis and it automatically exits. Before starting Pick_stn, draw vertical construction lines at every desired section location. The intersection of the vertical axis and MWL of the section will be placed at the location of the mouse pick. Object snap settings are default but can be turned off with the appropriate commands.

Using the Lofting Routines

Other than these differences, these 2 programs are very similar and are used the same way. Just type the program names at the prompt like you would any other AutoCAD command (see Loading Instructions below for information on how to have them loaded automatically every time you start AutoCAD). To use either program, you have to define the fuselage geometry. Follow the prompts and pick all the lines shown in Figure 4. The software is not bullet proof, and if you select the lines incorrectly, you miss the lines, or if they are not of the right type as explained above, the program will crash with no consequences – try again.

Once the geometry is defined, either start picking locations for Pick_stn or define the slice thickness for fuseloft and let the routine do its work. While it may have seemed like a bunch of work to get to this point, standing back and watching it draw perfectly smoothed, contoured fuselage sections makes it all worth while.


Like I’ve said before, this is not the fanciest code in the world. It is always a struggle between making it flexible and simple to use. There are several options that I have used since I started playing with this code. To use these options, edit the fuseloft.lsp or the pick_stn.lsp using the Notepad. Be sure to save it as a plain text file with a .lsp extension. Find the place in the code where there is a line made of equal signs like:


Note that a ";" in LISP is a comment character. The line above the double line contains the instructions that explain whether or not to include the comment to get the desire result.

The first option is to rotate the section 90 deg in the vertical axis to make it 3D. The section will then be drawn coming out of the screen towards you. To view the fuselage in 3D, use the 3D viewpoint option in the view menu or type VIEW, then R (for restore) then ISO1 in the sample drawing to restore the ISO1 view that I defined previously. Otherwise you will have only vertical lines. To rotate the section into 3D, remove the comment character (semi-colon).

The next option is to mirror the sections so that instead of one half-section, you get a full section. To mirror the section, uncomment that line of code.

The 3rd option is to draw a vertical section centerline. To draw this line, remove the comment from the applicable line of code. All three options can be used together or in any combination.

If you change any of these lines while in an AutoCAD section, you must reload the command in order to see the change (see below).


Loading the Commands

To load conic, fuseloft, or pick_stn, there are several options. To just try them with the included sample drawing called Sabretest.dwg, put all the files in a dedicated folder and, in the preferences menu under files, set a path under SUPPORT FILES SEARCH PATH to tell AutoCAD that this dedicated folder contains Support files. Or you could just put it in the folder called SUPPORT under AutoCAD, but I like to keep these things separate so that I can back them up automatically without backing up all the other AutoCAD files.

Once the files are in a directory where AutoCAD can find them, to load a single routine just type the following, including the brackets:

(load "conic")

This loads the command into AutoCAD. To execute the command, just type:

conic [conic.exe]

Note that these commands are not case sensitive. You can use capitals if you wish.

Now, if you want to have these loaded automatically, look at the ACADLSP file that was included. It should actually be called ACAD.LSP, but I did not want to accidentally overwrite the existing file. The great thing about this file, when properly named, is that AutoCAD will load it automatically if it can find a path to it. If you have a dedicated directory set up for these files (mine is called LISP), and you have the ACAD.LSP file containing the appropriate load commands in that directory and a path set to it, all of the conic lofting files will be loaded. Just before AutoCAD finishes booting up you will see "Loading Conic Lofting Tools". This is worth spending 2 minutes to set up as it is a real time saver.


Sample Drawing

The included sample drawing Sabretest.dwg is a quick and dirty version of my Sabre, used to illustrate the use of these routines. The canopy is just there for fun. I have included it so that you can play with the routines without having to go through the hassle of setting everything up. But if you are pretty good at AutoCAD, setting up such a drawing is about an hour’s work, if that. Once it is done, you can do a lofted fuselage in no time. I intend to do another routine that will just do the top half of bodies for use with canopies and other shapes, although you could just do a dummy lower section with the existing routines. There is text on a separate layer that labels each of the lines to guide you through the routines for the first time. Feel free to turn that layer off as the text slows things down. However it is helpful for the first time.

Here is an example of the Sabre fuselage after lofting viewed from a 3D view point:

Image54-2.gif (2565 bytes)
Figure 5. Sabre Fuselage Lofted using Fuseloft and viewed from a 3d viewpoint – pretty slick!



That pretty much explains how to use these 3 routines. They really do a nice job and I have included some samples that include surfaces generated from the lofted fuselages. You can see that they really blend nicely. Again, this is rough and ready code and it might have the odd bug. I know that it will crash on K values of 0.500 or 1.0 because of a divide by zero, but there is no reason for you to use either value so I didn’t worry about it.

pond4.gif (17990 bytes)  tutor2.gif (28405 bytes)

sabre_frnt.gif (38771 bytes)  sabreback.gif (33738 bytes)  sabrefuse.gif (26799 bytes)

As always, an interface that seems obvious to me might not be to you. I thought this was the best way to define a fuselage to allow a routine to loft it. If you find the K plot tough to work with, and you can think of a better idea, let me know. Also, if you find that you are lofting at a large scale, the K plot might be too small; i.e. 0.8 might be a tiny distance making the 3 K plot lines appear as one. In this case, scale down your fuselage until the K plot looks right. I might put in a scale factor in the future for this if people think it is a problem.

Any other suggestions are welcome, as are questions regarding these routines. Basic AutoCAD questions should be directed elsewhere as you should have a reasonable background knowledge of AutoCAD before attempting this work, which I would consider to be advanced.

Thread Tools
Nov 21, 2007, 08:47 PM
Registered User

lofting of boat hulls with autolisp

Hello, I read your article with interest, and will try it out on my Autocad 2000 soon. I'm wondering about the application for boat hulls. I thought the spline command would do the job for side and top views. Could your software be used to draw a set of offsets from splined data which is the result of data taken from ship models and measurements?

I teach Autocad in high school, and our lab is equippped with Autocad LT 2008, and I don't think that the LT versions are capable of working with list commands. We also have Solidworks 2007, which I'll introduce my students to next semester. This software would make wonderful representations of curved surfaces, except it's so expensive.

Thank you for offering your work as freeware!
Tony Tammer
Dec 31, 2008, 12:54 PM
Registered User

Autocad Help

i am trying to draw 3D nose cone and fuselage for my work in supersonic aircraft. i am new in Autocad 2008. i do not know how to draw 3D nose cone and fuselage. Please help me to make my model for Gambit and Fluent.

Jan 06, 2010, 04:59 AM
Registered User
I tried it (fuseloft)but it returns "invalid window specification" in the "sabretest.dwg" drawing. I have 2008 maybe the routine was written and tested in another version.
It's a pitty though because it shines some light on the usebility of autocad for complex curved projects like airplanes so it boosted the hope to stay with it a little longer.
So I will have to learn autolisp to find the problem, with some luck this isn't the next waste of
brainpower that leads to a one_end_street.

I find this a very intersting article, many honors to the writer to share it with us.
Last edited by cuwaert; Jan 07, 2010 at 02:26 AM.
Jan 07, 2010, 02:25 AM
Registered User
It's this one
; Trim line to the polyline
(command "TRIM" poly "" (list xval ypic) "")

that poses the problem in 2008. See what has changed with the TRIM command.

The variable "length" is used as a restricted word in 2008 so this has to be changed too.
Jan 07, 2010, 02:25 PM
Registered User
OK, this is next

there is another restricted word used called T, I made TE of it.

to make it work in 2008 one must put the cursor on top of the window, that is to say above the max width line after the selections are done, otherwise "invalid window specification".
Maybe there is a way to do that in autolisp, but I, being a complete newbee, don't know.

Thread Tools