Circuit Builder: To Map Motor Parameters to the Motor Symbol Attributes

When a motor circuit is selected, a special motor setup/annotation function is called. This special function is flagged by a marker block on the template with a CODE value which maps to a line in the circuit codes sheet marked "!MCC_CTRL" in the UI_TITLE field. This function references the ace_electrical_standards.mdb file to determine full load current and wire size values for a selected set of motor input parameters.

The values generated by this motor setup/annotation function are not automatically written to attributes on the components or wire types on the circuit. These values are saved as an indexed list in an AutoLISP global variable called “#data”. Global means that the data is saved in memory and is available while the Circuit Builder continues to construct the circuit. As Circuit Builder processes subsequent marker blocks of the circuit, it can be set up to pull one or more of these saved values from the global and push them out to attributes on the components or used to format appropriate wiretype layer names

This motor setup/annotation must be flagged to happen early on. It is done with an ORDER value which is set to a low number or 0. For example, if the motor full load amps value is used to determine the main disconnect circuit breaker sizing, this data must be in memory before the main disconnecting means marker block is processed.

The elements in the first sublist of the "#data" list are held in memory in the following order. The values related to the motor are held in the first eight elements. See the API documentation for a complete list of elements.

  1. Motor Type
  2. Power
  3. Units
  4. Voltage
  5. Phase
  6. Hertz (Hz)
  7. Speed (RPM)
  8. Full Load Amps (FLA)
Note: Circuit Builder numbers this indexed list starting at 0 rather than 1.

There are two ways to map these values to the attributes on a component.

Note: The attribute value defined on the marker block overrides any value defined in the spreadsheet.

Marker block method

  1. Open the circuit template drawing that contains the marker block for the motor, fuse, or circuit breaker symbol.
  2. Find the correct marker block for the symbol.
  3. Edit its MISC1 attribute value using the format “{attribute name}=@#@”. Replace the “#” with the appropriate index digit to map the correct element. For example, to map the horsepower to the RATING2 attribute, enter "RATING2=HP: @1@". To also map the full load amp value to the RATING4 attribute, enter "RATING2=HP: @1@;RATING4=Full load: @7@ amps". Remember, the indexed list of values is zero based.
    Note: The MISC1 attribute value can contain multiple special text flags which direct Circuit Builder to handle the component or underlying wire in a special way. When you add new values, do not overwrite any other special flag values. Separate each one with a semicolon.
  4. Save the circuit template drawing.

Spreadsheet method

  1. Open the Circuit Builder spreadsheet, ace_circuit_builder.xls.
  2. Find the circuit CATEGORY and TYPE, for example CATEGORY: 3ph Motor Circuit and TYPE: Horizontal - FVNR - non reversing.
  3. Open the circuit code sheet with the same name as the SHEET_NAME value, for example SHEET_NAME: 3ph_H.
  4. Find the motor symbol section, for example CODE: MTR03, COMMENTS: Motor symbol, UI_PROMPT_LIST: 3ph motor.

    There can be multiple selections within the group. For example, there is a selection for the type of disconnecting means, and a selection to include an auxiliary contact. Each selection is assigned a numerical value from the UI_VAL field. The values are added to determine the appropriate action for this combination of selections. The sum is matched to a value in the UI_SEL field. Once this match is made, the COMMAND_LIST value, ANNOTATE_LIST value, and so on, are used to insert and annotate the selections.

  5. Edit the API call in the COMMAND_LIST column for this motor symbol. For example, the last argument of this Insert Component API call is used to predefine MISC1 coded values with nil when nothing extra is defined.

    Before and after are shown:

    Before:(c:ace_cb_insym #xyz nil "HMO13" #scl 8 nil)

    After:(c:ace_cb_insym #xyz nil "HMO13" #scl 8 “RATING2=HP: @1@”)

    Note: See the API documentation for more information.
  6. Save the spreadsheet.