English

Error: A(n) CompositePen object does not recognize the request SetWidth

Error Message

When adding a Neatline to a Layout, clicking the OK button on the Neatline dialog causes ArcView to return the message:

Error in Graphic.Neatline at 3114

Stop: A(n) CompositePen object does not recognize the request SetWidth

Cause

A Composite Pen is currently selected in the Pen Palette. As programmed, the Neatline tool can not use complex line symbols.

Solution or Workaround

There are two solutions to this error message. Click Cancel on the Neatline Settings dialog to close the dialog before implementing either solution.

  • Change the current selected symbol to a Basic Pen instead of a Composite Pen.

    1. Select Show Symbol window from the Window menu.
    2. Switch to the Pen Palette on the Symbol window.
    3. Select the simple solid Pen (first pen in the default Pen Palette).
    You can now add a neatline to your layout.
  • Modify the Graphic.Neatline system script.

    1. Open a new script window.
    2. Load the Graphic.Neatline system script (use the "Load System Script" button).
    3. Search for the following lines of code:
    Code:
    r.GetSymbol.SetWidth(NeatWidth)
    r.GetSymbol.SetCapStyle(#BASICPEN_CAP_SQUARE)
    r.GetSymbol.SetJoinStyle(#BASICPEN_JOIN_MITER)

    Insert the following two lines of code:
    Code:
    if (r.GetSymbol.Is(BasicPen)) then 'Insert this line
    r.GetSymbol.SetWidth(NeatWidth)
    r.GetSymbol.SetCapStyle(#BASICPEN_CAP_SQUARE)
    r.GetSymbol.SetJoinStyle(#BASICPEN_JOIN_MITER)
    end 'Insert this line

    4. In Script/Properties menu, rename the script to "Graphic.Neatline".
    You can now add a neatline to your layout, even if a Composite Pen is selected in the Symbol window.
    Note:
    This script will now override the system script of the same name, but only for your current project. See the attached document for more information on system scripts.


Related Information