A “Jig” is a programming construct that defines how the user adds objects to the drawing. You can think of it as an “Add” command that gives visual feedback as you are specifying what the object looks like. For instance, the simple Arc Jig in AutoCAD dynamically sketches out the potential arc while you input various values.
A “JigEnt” is the object used to draw the visual feedback. In AutoCAD and AutoCAD Architecture, this is usually the same type of object that is being created (for example, the Wall Jig would use a Wall object). In the Recipe framework, most components are not represented by an object type, but by a collection of AutoCAD primitive objects such as hatch, polyline, and block. In this case, a JigEnt is a temporary in-memory object that is used to draw during the lifetime of the Jig, but is then thrown away when the real objects are added to the drawing.
The Recipe framework uses a system that plugs specific JigEnts into common Jigs. This allows a single Jig that is responsible for linear components (that is, one that prompts for “Start point” and “Endpoint”) to look completely different depending upon the JigEnt being used (for example, a row of bricks vs. a metal joist).
Although development of new Jigs and JigEnts is currently available only to ObjectARX programmers, many aspects of the existing Jigs and JigEnts can be controlled through lightweight customization techniques. In order to understand this, it is helpful to have an idea of how the existing Jigs and JigEnts are programmed.
AecEdJigRcpAecEdJigCircle AecEdJigLineAecEdJigLineBlockBasedAecEdJigStampAecEdJigLinearArray AecEdJigStretchAecEdJigLineOrientedAecEdJigLineExtend AecEdJigSurfaceAecEdJigRectangle
AecEdJigRcpAecEdJigEntCircle AecEdJigEntLineAecEdJigEntLineBlockBasedAecEdJigEntBookends AecEdJigEntLinearArray AecEdJigEntStretchAecEdJigEntLineOrientedAecEdJigEntLineExtend AecEdJigEntSurfaceAecEdJigEntMeasure AecEdJigEntRectangleAecEdJigEntSurfaceHlines
As you can see, Jigs and JigEnts correspond pretty closely at the upper levels. However, there are extra JigEnts that can re-use the same Jig. The ones listed here are only the common JigEnts. There are many specific JigEnts derived off of these. For example, there is a specific JigEnt for each type of wood and metal joist, all derived off AecEdJigEntLineExtend to get the majority of their behavior. No special Jig is needed for each of these, because they all ask for the same sequence of information. If all the internal programmed objects for detail components were listed, you would see many more JigEnts, but not many more Jigs.