About Common Jigs

The common Jigs and JigEnts listed in the hierarchy above have options that can be specified in the <Options> section of the Recipe Spec, and in some cases, they have common Recipes that can be utilized without writing any new code.

Brief descriptions for some of the common Jigs are provided below, along with information on the <Options> or Recipe func that can be used with each one, if applicable.

Stamp Jig

The Stamp Jig is similar to the INSERT command in that it does a basic block insertion (with a few extra controls). Here is an example showing how the Options section is used to control the Jig’s behavior.

<Options>
<Jig>
<AllowScaling>false</AllowScaling>
<AllowRotation>true</AllowRotation>
<AllowXFlip>true</AllowXFlip>
<AllowYFlip>true</AllowYFlip>
<AllowBasePt>true</AllowBasePt>
</Jig>
</Options>

In each case, the value listed is the default, which would be used if nothing was specified.

The following table lists the options for Stamp Jigs

Option Comment
<AllowScaling>  
<AllowRotation>  
<AllowXFlip>  
<AllowYFlip>  
<AllowBasePt> Boolean value specifying whether the common command line options of the Jig are valid options for this Recipe.

To use this Jig directly from a common recipe function, use the following section of RecipeSpec:

<Implementation>
<ObjectARX>
<AppName>AecRcpBase40</AppName>
<RcpFunc>Stamp</RcpFunc>
</ObjectARX>
</Implementation>

Linear Array Jig

The Linear Array Jig puts multiple copies of a block reference in a line, oriented in either the X or Y direction, with a specified spacing between each instance. Here is an example showing how the Options section is used to control the Jig’s behavior.

<Options>
<Jig>
<IsOrientedX>true</IsOrientedX>
<PromptStart>Start point</PromptStart>
<PromptEnd>End point</PromptEnd>
<PromptCount>Count</PromptCount>
<AllowXFlip>true</AllowXFlip>
<AllowYFlip>true</AllowYFlip>
<AllowCount>true</AllowCount>
</Jig> <JigEnt>
<IsOrientedX>true</IsOrientedX>
<Width>0.0</Width>
<GapSpacing>0.0</GapSpacing>
<JigEnt>
</Options>

In each case, the value listed is the default and would be used if nothing was specified.

The following table lists the Jig options for Linear Array Jigs

Jig Option Comment
<IsOrientedX> Boolean value specifying whether items along the line are oriented in the X direction or the Y direction.
<PromptStart> Text string to use for the start point prompt.
<PromptEnd> Text string to use for the endpoint prompt.
<PromptCount> Text string to use for the count prompt.
<AllowXFlip>  
<AllowYFlip>  
<AllowCount> Boolean value specifying whether the common command line options of the Jig are valid options for this Recipe.

The following table lists the JigEnt options for Linear Array Jigs

JigEnt Option Comment
<IsOrientedX> Boolean value specifying whether items along the line are oriented in the X direction or the Y direction.
<Width> Specifies the exact width of the Block Reference being arrayed. If you do not know this value and leave this element out, the extents of the block will be dynamically measured. If you know this value, you should specify it, because measuring the extents dynamically can sometimes introduce rounding errors that can affect the overall dimensions of the array.
<GapSpacing> The distance between each arrayed item. You can use a negative value to get items to overlap.

To use this Jig directly from a common recipe function, use the following section of Recipe Spec.

<Implementation>
<ObjectARX>
<AppName>AecRcpBase40</AppName>
<RcpFunc>LinearArray</RcpFunc>
</ObjectARX>
</Implementation>

When using this function, you can also specify an <RcpFunc> directive that will allow you to package all the individual blocks in the array into a single block reference. By default, this value is set to “false” and each item in the array will be its own block reference.

<Options>
<RcpFunc>
<PackageAsBlock>true</PackageAsBlock>
</RcpFunc>
</Options>

Bookends Jig

The Bookends Jig is similar to the Linear Array Jig, but allows for a different block on each end as well as a block that is arrayed to fill the gap between the two ends. The “start” and “end” blocks are used once, and the “repeat” block is used however many times it needs to be in order to fill the space between. Here is an example usage:

<Options>
<Jig>
<IsOrientedX>true</IsOrientedX>
<PromptStart>Start point</PromptStart>
<PromptEnd>End point</PromptEnd>
<AllowXFlip>true</AllowXFlip>
<AllowYFlip>true</AllowYFlip>
</Jig> <JigEnt>
<IsOrientedX>true</IsOrientedX>
<WidthStart>0.0</WidthStart>
<WidthRepeat>0.0</WidthRepeat>
<WidthEnd>0.0</WidthEnd>
<GapSpacing>0.0</GapSpacing>
</JigEnt>
</Options>

In each case, the value listed is the default and would be used if nothing was specified.

The following table lists the Jig options for Bookends Jigs

Jig Option Comment
<IsOrientedX> Boolean value specifying whether items along the line are oriented in the X direction or the Y direction.
<PromptStart> Text string to use for the start point prompt.
<PromptEnd> Text string to use for the endpoint prompt.
<PromptCount> Text string to use for the count prompt.
<AllowXFlip>  
<AllowYFlip> Boolean value specifying whether the common command line options of the Jig are valid options for this Recipe.

The following table lists the JigEnt options for Bookends Jigs

JigEnt Option Comment
<IsOrientedX> Boolean value specifying whether items along the line are oriented in the X direction or the Y direction.
<WidthStart> Specifies the exact width of the Block Reference at the beginning of the array. If you do not know this value and leave this element out, the extents of the block will be dynamically measured. If you know this value, you should specify it, because measuring the extents dynamically can sometimes introduce rounding errors that can affect the overall dimensions of the array.
<WidthEnd> Same as above, but for the ending block of the array.
<WidthRepeat> Same as above, but for the repeating block of the array
<GapSpacing> The distance between each arrayed item.

To use this Jig directly from a common recipe function, use the following section of RecipeSpec.

<Implementation>
<ObjectARX>
<AppName>AecRcpBase40</AppName>
<RcpFunc>Bookends</RcpFunc>
</ObjectARX>
</Implementation>

When using this function, you can also specify an <RcpFunc> directive that will allow you to package all the individual blocks in the array into a single block reference. By default, this value is set to “false” and each item in the array will be its own block reference.

<Options>
<RcpFunc>
<PackageAsBlock>true</PackageAsBlock>
</RcpFunc>
</Options>

Surface Jig

This Jig creates a basic rectangular boundary of a given depth, where the user is asked for an arbitrary start and endpoint (similar to adding Walls in AutoCAD Architecture). Here is an example usage:

<Options>
<Jig>
<PromptStart>Start point</PromptStart>
<PromptEnd>End point</PromptEnd>
<AllowXFlip>true</AllowXFlip>
<AllowYFlip>true</AllowYFlip>
</Jig>
</Options>

In each case, the value listed is the default and would be used if nothing was specified.

To use this Jig directly from a common recipe function, use the following section of RecipeSpec.

<Implementation>
<ObjectARX>
<AppName>AecRcpBase40</AppName>
<RcpFunc>Surface</RcpFunc>
</ObjectARX>
</Implementation>

StampMInsert Jig

The StampMInsert Jig is the same as the Stamp Jig, except that it uses an MInsert instead of a simple Block Reference.

SurfaceBound Jig

The SurfaceBound Jig is the same as the Surface Jig, except that it keeps only the top three edges of the rectangle. It is used for components that are poured onto or bounded by another entity that provides the bottom edge of the rectangle. For an example, see Concrete Topping.

SurfaceLtype Jig

The SurfaceLType Jig is the same as the Surface Jig, except that it fills with a wide polyline of a given linetype, instead of a hatch.

ApplyToLinework Jig

The ApplyToLinework Jig is used when you simply need to “brand” existing linework geometry as a specific component. For example, you could draw a detail using basic AutoCAD commands and then use this Jig to apply the Xdata and keynote for a particular component in the database. It will move the selected geometry to a new layer, if specified, but will not create any geometry of its own.