Another useful command for searching for SKILL commands in general (even what you've wrote) is:
listFunctions( t_pattern )
t_pattern is similar to rexCompile
Very interesting! Thanks guys!
I expanded a bit on what you sent, Dave, and included Craig's code to get:
; Courtesy of Dave Elder and Craig Lewis at http://www.cadence.com/community/forums/T/15760.aspx; Find functions containing keyword passed as argument, e.g. AxlSearch("Shape") or AxlSearch("") for all functions; use arglist() to find arguments of function, e.g. arglist('axlDBCreateOpenShape)procedure(AxlSearch(txt @optional caseSensitive) let(((chktxt "") funcFile) if(caseSensitive then chktxt = txt else foreach(ch parseString(txt "") chktxt = strcat(chktxt "[" lowerCase(ch) upperCase(ch) "]") ) ) funcFile = axlDMOpenFile("ALLEGRO_REPORT" "funcList" "w") fprintf(funcFile "Complete list of Allegro functions in %s\n" axlVersion('fullVersion)) foreach(func listFunctions(chktxt) fprintf(funcFile "%L\n" func)) axlDMClose(funcFile) setof(n rexMatchList(strcat("axl.*" chktxt ".*") oblist), isCallable(n)); oblist is a system variable ))
There are certainly other ways to get functions that what I put above, but this is what I want becuse in addition to returning functions to the Command Window, a funcList.rpt file will be written which works well for comparison with the function list files included in the SKILL documentation like $CDSROOT\share\pcb\examples\skill\DOC\16.3.txt. I can easily find undocumented AXL functions by comparing (using diff file comparison) 16.3.txt with the funcList.rpt created when running AxlSearch("axl").
Using them I discovered axlCursorGet and axlCursorWarp. Seems interesting, although this issue is apparently resolved thanks to the brilliant code http://www.cadence.com/community/forums/T/13997.aspx. Nonetheless, let's use it as an example. If I enter arglist('axlCursorWarp) into the Command Window, I get (g_general g_general "gg"). I assume this means there are 2 arguments: the first is t/nil and the other is a text string? Even better, try arglist('axlWizFormCreate), which returns (s_symbol t_string l_list g_general \@optional l_list "stlgl"). How does one interpret the results of arglist() to figure out how to use undocumented functions?
FYI, since I mentioned the cursor location above, axlCursorGet(t) returns some XY coordinate I can't totally figure out, but axlCursorGet(nil) seems to return the cursor's correct location on the schematic canvas, same as reported in Allegro's status bar. Yay! Then again, as you said Dave, who knows if these functions will stay around in the future or have the same functionality.
axlCursorWarp (g_pixell_xy) ==> t/nil
from the help:
g_pixelIf t return xy in pixels else return cursor position where it stands in current design.l_xyThe xy values may be specified in pixel (g_pixel=t) or design units (g_pixel=nil)
axlCursorWarp(nil '(0 0 ))
-> the cursor jumps to 0,0, but only if coordinate 0,0 is in the current view
-> returns 1 if succeeded.
axlCursorWarp(t '(20 20 ))
-> jumps from top left of the view -20 in x and -20 y direction.