Navigation:  Programmer's Reference > Sending data to DPlot from another application >

SelectCurve macro command

Print this Topic Previous pageReturn to chapter overviewNext page

Macro commands may be used either in macros or by sending the commands to DPlot via dynamic data exchange (DDE). Some commands are valid only in macros (noted by Macros Only). Commands sent to DPlot via DDE must be enclosed by square brackets [     ]. Macro commands should not include the brackets.

Command parameters shown in the descriptions below are placeholders for the actual values. Command parameters are either numeric values, equations that evaluate to numbers, or character strings. Character string parameters are always bound by double quotation marks. Equations must be preceded by an equals sign (=).

The pipe symbol (|) in the command syntax indicates that a parameter is optional, and should not be included in your macro unless otherwise noted.

All indices into arrays are 1-based, e.g. Curve1=1 refers to the first curve in a plot.

A 0x prefix for numbers in the descriptions below indicates hexadecimal notation; e.g. 0x0010 = 16.

JR/Viewer indicates that the command is supported by DPlot Jr or DPlot Viewer.
JR/Viewer indicates that the command is NOT supported by DPlot Jr or DPlot Viewer.


 

[SelectCurve(n)]

JR   Viewer

Selects the curve or curves to perform subsequent operations on. Default = 1 (first curve). If curve n does not currently exist, DPlot creates a new curve. If n exceeds the maximum number of curves (set with FileArrays) DPlot attempts to resize the arrays to accommodate a new curve. If n is set to -1, then any subsequent command that operates on one or more curves will operate on all curves. For multiple selections (but fewer than exist in the entire plot), use multiple curve indices separated by commas. For example,

[SelectCurve(1,3,5)]

will select curves 1, 3, and 5 for subsequent operations for commands that allow multiple curves to be operated on.

Differences between macros and calling DPlot_Command from another program

In the context of a macro the SelectCurve command may be a separate command from all subsequent commands (and indeed, must be). For example:

SelectCurve(3)
EditOperateY("Y*1000")

will select curve 3 and multiply the amplitudes of curve 3 by 1000.

But in the context of calling DPlot_Command from another program, this works differently. In C:

DPlot_Command(docnum,"[SelectCurve(3)]");
DPlot_Command(docnum,"[EditOperateY("Y*1000")]);

At first glance this would appear to be equivalent to the macro. But every call to DPlot_Command establishes a new conversation, sends the command, then terminates the conversation. Upon every new conversation DPlot resets several variables, including the selected curve number (to 1). This is done primarily to prevent multiple programs or the user from running over each other with unintended selections/operations.

In the case above, the EditOperateY command will operate on curve 1. In general if there is an association between one command and another, those commands should be grouped into one call, as in:

DPlot_Command(docnum,"[SelectCurve(3)][EditOperateY("Y*1000")]);

The command string for DPlot_Command is limited to 32K characters, so in almost all cases you can group as many commands into one call as you need.

 


Numeric curve indices may be replaced by substituting LegendHas("substring1"|,"substring2"|,"substring3"||). When this feature is used, DPlot will search for a curve whose legend entry contains substring1 and optionally substring2 and substring3. The index of the first curve whose legend matches that criteria will be substituted for LegendHas(...). If no match is found, no substitution is performed. Searches are case-specific.

For example, [SelectCurve(LegendHas("ABC","GHI"))] will search for a curve whose legend contains both ABC and GHI.

"ABCDEFGHI" is a positive match; "ABCDEFGH" is not. Neither is "abcdefghi".

LegendHas(...) may be used in any command in place of a curve or data set index.

 


Page url: https://www.dplot.com/help/index.htm?selectcurvecommand.htm