⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ads.fi

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 FI
字号:
!   ADS.FI  -    Definitions of the AutoCAD functions for Applications
!                This takes the place of xlacad.h (from LISP) and contains
!                the changes to the function definitions to make them
!                compatible with the application interface.

c$noreference

        integer NULL
        parameter (NULL = 0)

! Define null pointer (a dynamically allocatable array that is never
! allocated will always pass a null pointer)

        integer NULL_PTR(:)

! The ADS_INITGET control bits

        integer RSG_NONULL
        integer RSG_NOZERO
        integer RSG_NONEG
        integer RSG_NOLIM
        integer RSG_GETZ
        integer RSG_DASH
        integer RSG_2D
        integer RSG_OTHER

        parameter (RSG_NONULL = '01'x)  ! Disallow null input
        parameter (RSG_NOZERO = '02'x)  ! Disallow zero input
        parameter (RSG_NONEG  = '04'x)  ! Disallow negative input
        parameter (RSG_NOLIM  = '08'x)  ! Do not check limits
        parameter (RSG_GETZ   = '10'x)  ! Get Z coordinate
        parameter (RSG_DASH   = '20'x)  ! Draw dashed rubber band/box (not a
                                        ! GEDIT control bit)
        parameter (RSG_2D     = '40'x)  ! Restrict (getdist) to 2D (causes the
                                        ! UD_GETZ control bit to be cleared)
        parameter (RSG_OTHER  = '80'x)  ! Return input string if unknown

! Binary data stream structure

        structure /ads_binary/          ! Binary data chunk structure
            integer*2           clen    ! length of chunk in bytes
            integer*4           buf     ! pointer to binary data
        end structure

!  Union for storing different ADS data types.

        structure /ads_u_val/
            union
                map
                    double precision rreal
                end map
                map
                    double precision rpoint(3)
                end map
                map
                    integer*2 rint
                end map
                map
                    integer*4 rstring
                end map
                map
                    integer*4 rlname(2)
                end map
                map
                    integer*4 rlong
                end map
                map
                    record /ads_binary/ rbinary
                end map
            end union
        end structure

! The following is the structure definition of the general result buffer.
! This is used for both passing back results from functions, as well
! as exotic applications like entity lists, and command function lists.
! It is as close as we come to the AutoLISP node structure.

        structure /resbuf/
            integer*4           rbnext  ! Allows them to be "linked"
            integer*2           restype
            record /ads_u_val/  resval
        end structure

! External function definitions accessible from applications

! Application initialization  function
        external ads_init

! General failure (prints message) mechanism
        external ads_fail

! General abort mechanism.  Return RSABORT to Lisp.
        external ads_abort

! ADS exit() function used for transparent exit of programs
        external ads_exit

! Register an ADS function handler
        integer*4 ads_regfunc

        external ads_regfunc

! Link back to host with request code
        integer*4 ads_link

        external ads_link

! Get a new result buffer
        integer*4 ads_newrb

        external ads_newrb

! Release a result buffer as well as those linked to it
        integer*4 ads_relrb

        external ads_relrb

! Check for a console break
        integer*4 ads_usrbrk

        external ads_usrbrk


! Define an external subroutine in AutoLISP
        integer*4 ads_defun

        external ads_defun

! Undefine an external subroutine in AutoLISP
        integer*4 ads_undef

        external ads_undef

! Utilities for external subroutine interface
        integer*4 ads_getfuncode
        integer*4 ads_getargs

        external ads_getfuncode
        external ads_getargs

! Return the specified type as a result of external subroutine
        integer*4 ads_retlist
        integer*4 ads_retval
        integer*4 ads_retpoint
        integer*4 ads_retstr
        integer*4 ads_retname
        integer*4 ads_retint
        integer*4 ads_retreal
        integer*4 ads_rett
        integer*4 ads_retnil
        integer*4 ads_retvoid

        external ads_retlist
        external ads_retval
        external ads_retpoint
        external ads_retstr
        external ads_retname
        external ads_retint
        external ads_retreal
        external ads_rett
        external ads_retnil
        external ads_retvoid

! AutoCAD Entity access routines
        integer*4 ads_entdel
        integer*4 ads_entgetx
        integer*4 ads_entget
        integer*4 ads_entlast
        integer*4 ads_entnext
        integer*4 ads_entupd
        integer*4 ads_entmod
        integer*4 ads_entmake
        integer*4 ads_entsel
        integer*4 ads_nentsel
        integer*4 ads_nentselp
        integer*4 ads_ssget
        integer*4 ads_ssfree
        integer*4 ads_sslength
        integer*4 ads_ssadd
        integer*4 ads_ssdel
        integer*4 ads_ssmemb
        integer*4 ads_ssname

        external ads_entdel
        external ads_entgetx
        external ads_entget
        external ads_entlast
        external ads_entnext
        external ads_entupd
        external ads_entmod
        external ads_entmake
        external ads_entsel
        external ads_nentsel
        external ads_nentselp
        external ads_ssget
        external ads_ssfree
        external ads_sslength
        external ads_ssadd
        external ads_ssdel
        external ads_ssmemb
        external ads_ssname

! Extended Entity data utilities
        integer*4 ads_xdroom
        integer*4 ads_xdsize

        external ads_xdroom
        external ads_xdsize

! AutoCAD table access routines
        integer*4 ads_tblnext
        integer*4 ads_tblsearch

        external ads_tblnext
        external ads_tblsearch

! Drawing database utilities
        integer*4 ads_handent
        integer*4 ads_trans

        external ads_handent
        external ads_trans

! General AutoCAD utility routines
        integer*4 ads_angtos
        integer*4 ads_cvunit
        integer*4 ads_wcmatch
        integer*4 ads_rtos
        integer*4 ads_angtof
        integer*4 ads_distof
        integer*4 ads_setvar
        integer*4 ads_initget
        integer*4 ads_getsym
        integer*4 ads_putsym
        integer*4 ads_loaded
        integer*4 ads_xload
        integer*4 ads_xunload
        integer*4 ads_command
        integer*4 ads_buildlist
        integer*4 ads_printf
        integer*4 ads_cmd
        integer*4 ads_invoke
        integer*4 ads_inters

        external ads_angtos
        external ads_cvunit
        external ads_wcmatch
        external ads_rtos
        external ads_angtof
        external ads_distof
        external ads_setvar
        external ads_initget
        external ads_getsym
        external ads_putsym
        external ads_loaded
        external ads_xload
        external ads_xunload
        external ads_command
        external ads_buildlist
        external ads_printf
        external ads_cmd
        external ads_invoke
        external ads_inters

! Functions that get system variables
        integer*4 ads_getvar
        integer*4 ads_findfile

        external ads_getvar
        external ads_findfile

! Function that gets a string
        integer*4 ads_getstring

        external ads_getstring

! Functions that pass AutoCAD a single string
        integer*4 ads_menucmd
        integer*4 ads_prompt
        integer*4 ads_alert

        external ads_menucmd
        external ads_prompt
        external ads_alert

! Function to register an application with AutoCAD
        integer*4 ads_regapp

        external ads_regapp

! Functions used to get user input
        integer*4 ads_getangle
        integer*4 ads_getcorner
        integer*4 ads_getdist
        integer*4 ads_getorient
        integer*4 ads_getpoint
        integer*4 ads_getint
        integer*4 ads_getkword
        integer*4 ads_getreal
        integer*4 ads_getinput
        integer*4 ads_vports

        external ads_getangle
        external ads_getcorner
        external ads_getdist
        external ads_getorient
        external ads_getpoint
        external ads_getint
        external ads_getkword
        external ads_getreal
        external ads_getinput
        external ads_vports

! Functions for screen flipping
        integer*4 ads_textscr
        integer*4 ads_graphscr
        integer*4 ads_textpage

        external ads_textscr
        external ads_graphscr
        external ads_textpage

! Graphics related functions
        integer*4 ads_grclear
        integer*4 ads_redraw
        integer*4 ads_osnap
        integer*4 ads_grread
        integer*4 ads_grtext
        integer*4 ads_grdraw
        integer*4 ads_grvecs
        integer*4 ads_xformss
        integer*4 ads_draggen

        external ads_grclear
        external ads_redraw
        external ads_osnap
        external ads_grread
        external ads_grtext
        external ads_grdraw
        external ads_grvecs
        external ads_xformss
        external ads_draggen

! Geometry utilities
        double precision ads_angle
        double precision ads_distance

        external ads_angle
        external ads_distance
        external ads_polar

! Functions that put up standard dialogs for user input
        integer*4 ads_getfiled
        integer*4 ads_textbox

        external ads_getfiled
        external ads_textbox

!  Function to retrieve or establish AutoCAD's tablet transformation:
        integer*4 ads_tablet

        external ads_tablet

! Functions to support ADS / ADI communications
        integer*4 ads_recfgport

        external ads_recfgport
        external ads_adiinfo
        external ads_dscfg
        external ads_dsxqt
        external ads_dispt
        external ads_adistart
        external ads_adiend

c$ifdef WIN
! Call before termination to clean up Windows, DDE, memory, etc
        external adsi_machexit
void           adsi_machexit(int exitval);
c$endif

! Functions for character handling

        integer*4 ads_isalpha
        integer*4 ads_isupper
        integer*4 ads_islower
        integer*4 ads_isdigit
        integer*4 ads_isxdigit
        integer*4 ads_isspace
        integer*4 ads_ispunct
        integer*4 ads_isalnum
        integer*4 ads_isprint
        integer*4 ads_isgraph
        integer*4 ads_iscntrl
        integer*4 ads_toupper
        integer*4 ads_tolower

        external ads_isalpha
        external ads_isupper
        external ads_islower
        external ads_isdigit
        external ads_isxdigit
        external ads_isspace
        external ads_ispunct
        external ads_isalnum
        external ads_isprint
        external ads_isgraph
        external ads_iscntrl
        external ads_toupper
        external ads_tolower

! Useful pragmas

        integer*4 call_handler

c$reference

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -