; STANDARD.LSP v1.1 [05/30/90] (c)1990 Jason Osgood - Alacrity Software ; AutoLISP standard program template for AutoDude(tte)s, comments welcome ;------------------------------------------------------------------------------ ; WHO DUNNIT ; ~~~~~~~~~~ ; Jason Osgood ; Alacrity Software ; 12405 SE 25th St ; Bellevue, WA 98005 ; ; Voice: (206)746-0680 CompuServe: 73417,1756 ; ; The latest version of the STANDARD.LSP specifications can be downloaded ; as STANDARD.ZIP from Alacrity BBS (206)643-5477 8N1 1200/2400 24hrs. ; ; Alacrity BBS -- Where all the Truly Cool AutoDudes hang out! ; ~~~~~~~~ ~~~ ~~~~~ ~~~~ ~~~~~~~~~ ; ; Special thanks goes to Stan Bimson, Dennis Shinn and Ron Lloyd for their ; ready adoption of STANDARD.LSP and their constructive criticism. ; ; NOTICE ; ~~~~~~ ; [N.1.1] STANDARD.LSP is copyrighted material created by Alacrity Software. ; You are given permission to redistribute STANDARD.LSP in any manner you wish ; providing that: 1) STANDARD.LSP is not modified in any way; 2) no fee is ; charged for access or distribution of STANDARD.LSP; 3) STANDARD.LSP is only ; used for non-comercial non-profit purposes. ; ; [N.1.2] Alacrity Software does not guarantee the workmanship of STANDARD.LSP. ; Under no circumstances is Alacrity Software or Jason Osgood to be held liable ; for any damages incurred, inconsequencial or otherwise, as a result of using ; STANDARD.LSP. ; ; [N.1.3] Credit will be given to individuals who have made suggestions that ; have been incorporated into STANDARD.LSP in the REVISIONS section. ; ; [N.1.4] All claims of adherence to STANDARD.LSP should be in the following ; format. The version number and release date of STANDARD.LSP should be ; included. It is left to the developer to decide where to include the claim. ; ; ; EXAMPLE.LSP complies with STANDARD.LSP v1.1 [06/01/90] ; ; ; ; The latest version of the STANDARD.LSP specifications can be downloaded ; ; as STANDARD.ZIP from Alacrity BBS (206)643-5477 8N1 1200/2400 24hrs. ; ; COMMENTS ; ~~~~~~~~ ; [C.1.1] The primarily goal of STANDARD.LSP is to elevate the general level of ; quality of public domain and shareware AutoLISP programs. Commenting is a ; very important part of any program developement. It benefits you, the ; programmer, by encouraging organizational and problem solving skills. It ; benefits the users of your programs by informing them how to use, install and ; customize your software. ; ; [C.1.2] STANDARD.LSP is just a set of proposed guidelines. You are in no way ; forced to adhere to them. But note that there are benefits in doing so. Any ; AutoLISP code that adheres to STANDARD.LSP will cheerfully be reviewed by the ; AutoDudes on Alacrity BBS. For aspiring AutoDudes just learning the ropes, ; this would be a tremendous boon. The other major advantage, and the secondary ; goal of STANDARD.LSP, is that all AutoLISP code that adheres will have an ; increased likelihood of working with each other. ; ; [C.1.3] It is my intention to gradually expand the scope of STANDARD.LSP to ; encompass guidelines for programming style and a library of functions. Also, I ; would like to include example copyright notices for public domain, freeware and ; shareware software packages. Suggestions in this regard are encouraged. ; ; FORMAT & STYLE ; ~~~~~~~~~~~~~~ ; [FS.0.0] This section is only intended to be present within STANDARD.LSP. ; You can include it in your own programs if you wish. It's purpose is to ; explain aspects of STANDARD.LSP that otherwise might not be readily ; understood. ; ; [FS.1.0] The following pertains to program commenting. ; ; [FS.1.1] The following is an example header that adheres to STANDARD.LSP. ; ; The first line contains the program's filename, the version/release number, ; optional "(Beta)" signifies that it's a beta test release, the date (in ; brackets) is the release date and all followed by the copyright notice. ; ; The second line is a consise program description. ; ; The third line is a line of hyphens, which stretches to the right margin, ; separating the header from the rest of the routine. ; ; The reason for fitting all this information onto the first and second lines is ; to allow use of SCANLSP.LSP, a program for managing your AutoLISP routines, ; written by Ron Lloyd. ; ; ; EXAMPLE.LSP v0.0 (Beta) [01/01/90] (c)1990 Company Name ; ; This is a sample header ; ;------------------------------------------------------------ ; ; [FS.1.2] All sections are capitalized and underscored with a row of tildes. ; ; ; SECTION ; ; ~~~~~~~ ; ; [FS.1.3] All comment text is separated from the semicolon prefix by a space. ; ; ; Line one of comments... ; ; Line two of comments... ; ; [FS.1.4] All comment blocks are preceded and followed by a row of hypens, ; which stretch to the right margin. ; ; [FS.1.5] There is a semicolon at the left margin of every line within a ; comment block. ; ; [FS.1.6] The function header comment block directly proceeds the function ; that it documents. ; ; [FS.1.7] The syntax used to document functions should be the same as that used ; in the AutoLISP Programmer's Reference Manual. ; ; [FS.2.0] The following pertains to programming style. ; ; [FS.2.1] All AutoCAD commands called via the AutoLISP Command function should ; be prefixed by a period to avoid any conflicts with redefined commands. The ; only acception are the shelling commands which are defined in the ACAD.PGP ; file since AutoCAD doesn't permit their redefinition. ; ; [FS.2.2] All prompts to the user should have either a colon and single space ; (i.e. ": ") or a question mark suffix. This follows the AutoCAD prompting ; format. ; ; [FS.2.3] All symbols used by a routine should be made local to that routine. ; The only exceptions are global variables. ; ; [FS.2.4] All new AutoCAD commands created with AutoLISP should have either ; the PrinC or Prin1, without any arguments, function as it's last expression. ; This suppresses the display of "NIL" at the termination of the routine. ; ; INSTALLATION ; ~~~~~~~~~~~~ ; This section lists all the related files, their necessary locations in ; the DOS path directory and how to load the routine. ; ; PROMPTS ; ~~~~~~~ ; ; FUNCTIONS ; ~~~~~~~~~ ; List of functions included within your routine. ; ; GLOBAL SYMBOLS ; ~~~~~~~~~~~~~~ ; List of symbol names used by your routine. It is suggested that you use a ; unique prefix to all of your global symbol names to reduce the likelihood of ; conflicts between various routines. ; ; REVISIONS ; ~~~~~~~~~ ; 06/01/90 1:00pm - Jason Osgood ; ; !> The copyright notice has been changed to be more legitimate. It now ; gives any non-comercial non-profit party the permission to distribute ; STANDARD.LSP in any manner they wish while still protecting Alacrity's ; copyright. ; !> Section numbers have been added to aid in reference and revisions. ; !> The header of functions has been modified to include version number ; (Thanks to Stan Bimson). ; +> The addition of DEPENDANCIES and LOCAL SYMBOLS sections for the function ; comment header block. ; +> The addition of programming/commenting style comments has been made. ; +> The addition of the INSTALLATION section. ; +> The addition of the compliance statement, section N.1.4. (Thanks to ; Stan Bimson). ; ; 03/21/90 3:37pm - Jason Osgood ; ; ?> This would be a question about the routine to be resolved ; !> This would the details about a bug and it's fix ; !> This would detail another bug fix ; +> This would be a description of a program change, enhancement, addition ; ; ;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------ ; FUNCTION-NAME - v0.0 Author's Name [01/01/90] ; ~~~~~~~~~~~~~ ; Description goes here ; ; SYNTAX/ARGUMENTS ; ~~~~~~~~~~~~~~~~ ; (function-name ... ) ; ; ARG1 Description ; ARG2 Description ; ... ; ARGn Description ; ; LOCAL SYMBOLS ; ~~~~~~~~~~~~~ ; SYM1 Description ; SYM2 Description ; ... ; SYMn Description ; ; DEPENDANCIES ; ~~~~~~~~~~~~ ; This lists all the functions and global variables that function-name is ; dependant apon. ; ; SYM1 Description ; SYM2 Description ; ... ; SYMn Description ; ; FUNC1 - Description ; FUNC2 - Description ; ... ; FUNCn - Description ; ; EXAMPLE USAGE ; ~~~~~~~~~~~~~ ; This is an option section showing sample code that shows the usage of ; function-name. Useful for illustration purposes. ; ; RETURNED VALUE ; ~~~~~~~~~~~~~~ ; Description ; ; COMMENTS ; ~~~~~~~~ ; Miscellaneous comments go here. ; ;------------------------------------------------------------------------------ ;---< End Of File >---