SDS is an acronym for Solutions Development System, a C/C++ language interface compatible with the ADS® (AutoCAD® Development System) interface found in other CAD systems. SDS provides hooks into IntelliCAD® 2001, allowing you to create custom applications.
SDS communicates with the user and IntelliCAD via LISP (akin to the way that ADS works with AutoLISP® and other CAD systems). However, SDS greatly augments the capabilities found in LISP with a much more powerful command base that can also access the operating system. This allows you to create even more sophisticated custom solutions. And, because SDS applications are compiled, they are typically faster than LISP applications.
If you're familiar with ADS, note that one primary difference between ADS and SDS is that most SDS functions have an sds_ prefix (except for special dialog-related SDS functions, which have the dlg_ prefix), whereas ADS functions have a variety of prefixes, such as ads_, acad_, and acrx_.
SDS offers several additional capabilities beyond those available in ADS.
Function | Description |
---|---|
sds_name_clear | Clears the entity name or selection set. |
sds_name_equal | Checks if two entity names or selection sets are equal. |
sds_name_nil | Checks if the entity name or selection set has been cleared. |
sds_name_set | Copies one entity name or selection set to another. |
sds_point_set | Copies a point from one variable to another. |
sds_progresspercent | Displays the percentage done in a progress bar. |
sds_progressstart | Starts the progress bar. |
sds_progressstop | Ends the progress bar. |
sds_readaliasfile | Loads the PGP file into IntelliCAD. |
sds_sendmessage | Sends a message to the IntelliCAD command line. |
sds_swapscreen | Flips the off-screen device context to the display. |
The following ADS functions are not supported by SDS: ads_arxload, ads_arxloaded, ads_arxunload, all ads_dict-related functions, ads__msize, ads_namedobjdict, ads_regappx, ads_ssgetx, ads_ssnamex, ads_tablet, ads_xstrcase, ads_xstrsave, ads_ssGetKwordCallbackPtr, ads_ssGetOtherCallbackPtr, adsw_acadMainWnd, and adsw_acadDocWnd.
IntelliCAD supports the following selection modes:
Mode | Meaning |
---|---|
NULL | (none) Single pick point |
"B" | Box |
"C" | Crossing |
"CC" | Crossing Circle |
"CP" | Crossing Polygon |
"F" | Fence |
"I" | Implied |
"L" | Last |
"O" | Outside |
"OC" | Outside Circle |
"OP" | Outside Polygon |
"P" | Previous |
"PO" | Point |
"W" | Window |
"WC" | Window Circle |
"WP" | Window Polygon |
"X" | All |
IntelliCAD does not support the following selection modes found in other CAD systems: "G", ":$", ":?", ":D", ":E", ":K", ":N", ":S", ".", "#", "A", and "M" nor the Boolean operators <NOT>, <OR>, and <AND>.
SDS functions return these request type codes:
Request | Code | Meaning |
---|---|---|
RSRSLT | 1 | Result is returned. |
RSERR | 3 | Error in evaluation; no result is returned. |
RQSAVE | 14 | IntelliCAD is saving the drawing. |
RQEND | 15 | IntelliCAD is exiting. |
RQQUIT | 16 | IntelliCAD is quitting. |
RQCFG | 22 | IntelliCAD is returning from the Config command. |
RQXLOAD | 100 | Load external functions. |
RQXUNLD | 101 | Unload the application. |
RQSUBR | 102 | External subroutine request. |
RQHUP | 105 | IntelliCAD is disconnected from the application. |
RQXHELP | 118 | Define help for the function. |
RTERROR | -5001 | An error has occurred. |
RTCAN | -5002 | User canceled the command by pressing Esc. |
RTREJ | -5003 | IntelliCAD rejected the request, probably due to invalid format. |
RTFAIL | -5004 | Link failure between SDS and IntelliCAD. |
RTKWORD | -5005 | Keyword returned from getxxx routine. |
RTNORM | 5100 | Request succeeded. |
Request | Code | Meaning |
---|---|---|
RTNONE | 5000 | No result. |
RTREAL | 5001 | Real number. |
RTPOINT | 5002 | 2-D point (x,y-coordinate). |
RTSHORT | 5003 | Short integer. |
RTANG | 5004 | Angle. |
RTSTR | 5005 | String. |
RTENAME | 5006 | Entity name. |
RTPICKS | 5007 | Pick set. |
RTORINT | 5008 | Orientation. |
RT3DPOINT | 5009 | 3-D point (x,y,z coordinate). |
RTLONG | 5010 | Long integer. |
RTVOID | 5014 | Blank symbol. |
RTLB | 5016 | Begin list. |
RTLE | 5017 | End of list. |
RTDOTE | 5018 | Dotted pair. |
RTNIL | 5019 | Nil |
RTDXF0 | 5020 | DXF code 0 (used only by sds_buildlist). |
RTT | 5021 | T (true) atom. |
RTRESBUF | 5023 | Result buffer. |
Tell me about...
Copying Code Examples from the IntelliCAD® Programmer’s Reference