Index of Subroutines (GRIP) W/Summaries
(Hide Summaries)
(Index by Keywords)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
3
ABSTRACT: THIS ROUTINE DRAWS AN ACORN NUT.
ABSTRACT: THIS ROUTINE DRAWS A BEVEL WASHER.
ABSTRACT: THIS ROUTINE CREATES A DRILL THROUGH.
ABSTRACT: THIS ROUTINE CREATES A FLAT WASHER.
ABSTRACT: THIS ROUTINE DRAWS A FLAT HEAD TAP BOLT.
ABSTRACT: THIS ROUTINE DRAWS A FLAT HEAD THRU BOLT.
ABSTRACT: THIS ROUTINE DRAWS A HEX HEAD BOLT.
ABSTRACT: THIS ROUTINE DRAWS A HEX FLANGE NUT.
ABSTRACT: THIS ROUTINE DRAWS A HEX FLANGE NUT.
ABSTRACT: THIS ROUTINE DRAWS A HEX JAM NUT.
ABSTRACT: THIS ROUTINE DRAWS A HEX WASHER HEAD.
ABSTRACT: THIS ROUTINE DRAWS A LOCK WASHER.
ABSTRACT: THIS ROUTINE DRAWS A PAN HEAD BOLT.
ABSTRACT: THIS ROUTINE DRAWS A ROUND HEAD BOLT.
ABSTRACT: THIS ROUTINE DRAWS A SOCKET HEAD.
ABSTRACT: THIS ROUTINE MAKES A TAP HEAD BOLT.
A
ABSTRACT: THIS IS A PROGRAM TO CREATE A SINGLE LINE DIMENSION
(KEYED IN)
ABSTRACT: THIS IS A PROGRAM TO CREATE AN XY LABEL WITH RESPECT TO A
SELECTED POINT
ADD ALL AROUND TO BASIC WELD SYMBOL
ADD ALL AROUND TO BASIC WELD SYMBOL
THIS SUBPROGRAM GENERATES AN ARROW ON THE
END OF A LINE.
THIS SUBPROGRAM GENERATES AN ARROW ON THE
END OF A LINE.
B
ABSTRACT: THIS SUBPROGRAM LOOKS FOR CHANGES IN THE CUTTER AND GIVES
THE OPTION TO MILL OR DRILL
C
ABSTRACT: A SUBPROGRAM TO STR-FT-IN IN .VERFT TO CALCULATE FT, IN AND
A FRACTION FROM A DECIMAL VALUE IN INCHES.
THIS SUBROUTINE CALCULATES THE ROW NUMBER FOR A
PARTICULAR NUMBER.
Purpose: Change the case of a text string to upper or lower case.
See Also: _LCASE.GRS
_UCASE.GRS
THIS SUBROUTINE CHECKS THE COORDINATE SYSTEM TO
SEE IF IT IS SET TO ABSOLUTE AND UNLINKED FROM VIEW.
THIS SUBROUTINE PRESENTS A MENU OF COLORS, ASKING THE USER
WHICH ONE THEY WANT. IT DISPLAYS THE "]" BY THE CURRENT
SETTING, SO ENTRY COMPLETE WILL ACCEPT THAT COLOR.
WHEN #15 IS THE DEFAULT, THE MENU WILL LIST 2-15 AND USE
AA FOR COLOR #1.
Purpose: Strip all spaces from a input string
See also: _STRING_COMPRESS.GRS
THIS SUBROUTINE CONVERTS A B-SPLINE TO A REGULAR SPLINE
FOR USE WITH THE SPLINE MERGE ROUTINE.
IT CREATES A SERIES OF POINTS ON THE B-SPLINE AT
RESPECTIVE DISTANCES (LESS THAN OR EQUAL TO THE PNTDST
PARAMETER).
A SERIES OF LINES ARE CREATED AT THESE POINTS,
TANGENT TO THE B-SPLINE, AND THESE LINES ARE USED
TO DETERMINE TANGENTS (THIS IS MUCH MORE ACCURATE
THAN THE CTANF FUNCTION)
THESE TANGENTS AND THE POINTS ARE USED TO CREATE A
SPLINE VERY CLOSE (.00001) TO THE ORIGINAL
B-SPLINE. THE NEW SPLINE IS PUT IN NEWSPL, AND,
IF THE PROCESS IS SUCCESSFUL, SRESP IS SET TO 3.
THIS SUBROUTINE CONVERTS A B-SPLINE TO A REGULAR SPLINE
FOR USE WITH THE SPLINE MERGE ROUTINE.
IT CREATES A SERIES OF POINTS ON THE B-SPLINE AT
RESPECTIVE DISTANCES (LESS THAN OR EQUAL TO THE PNTDST
PARAMETER).
A SERIES OF LINES ARE CREATED AT THESE POINTS,
TANGENT TO THE B-SPLINE, AND THESE LINES ARE USED
TO DETERMINE TANGENTS (THIS IS MUCH MORE ACCURATE
THAN THE CTANF FUNCTION)
THESE TANGENTS AND THE POINTS ARE USED TO CREATE A
SPLINE VERY CLOSE (.00001) TO THE ORIGINAL
B-SPLINE. THE NEW SPLINE IS PUT IN NEWSPL, AND,
IF THE PROCESS IS SUCCESSFUL, SRESP IS SET TO 3.
THIS ROUTINE TAKE A DATE/TIME STRING (IN SEVERAL FORMATS)
AND CONVERTS IN TO A TIME STAMP (YYYMMDDYYMNSS)
ACCEPTABLE DATE FORMATS:
MM/DD/YY, MM/DD/YYYY, MM--DD--YY, MM--DD-YYYY,
DD-MMM-YY, DD-MMM-YYYY, YYMMDD,YYYYMMDD
ACCEPTABLE TIME FORMATS:
HH:MM, HH:MM:SS, HHMM, HHMMSS
THE RETURNED STRING IS 14 CHACTERS LONG, YYYYMMDDHHMNSS.
ONLY GROSS VALIDITY CHECKS ARE USED, SO 32-JAG-93 WILL
ERROR, BUT NOT 31-FEB-11
THIS ROUTINE TAKES A TIME STAMP (YYYMMDDHHMNSS), AND
CONVERTS IT TO A DATE/TIME STRING (IN SEVERAL FORMATS)
THIS SUBROUTINE CHECKS A SPLINE TO SEE IF ALL KNOT POINTS ARE
COPLANAR.
IT USES VECTORS TO DETERMINE IF THE SPLINE IS CO-LINEAR. IF
IT IS NOT, A COORDINATE SYSTEM IS CREATED USING THREE NON-
COLINEAR POINTS, AND CHECK THE REMAINING POINTS FOR
DEVIATION FROM THE PLANE FORMED BY THESE POINTS.
THIS SUBROUTINE COPIES THE ATTRIBUTES FOUND ON
THE SOURCE ENTITY OVER TO THE DESTINATION ENTITY.
IT DOES NOT CHECK THE DESTINATION ENTITY FOR
EXISTING ATTRIBUTES.
SUB PROGRAM TO TAPS-3D COUNTER
CALLS SET-WCS ALSO AS A SUBPROGRAM
FOR CLEARANCE HOLES CFLAG=1
FOR COUNTER BORE CFLAG=2
FOR COUNTERSINK CFLAG=3
THIS SUBROUTINE CREATES A COORDINATE SYSTEM BASED
ON A CENTER POINT AND TWO ANGLES.
IT USES DIRECTION COSINES TO CONVERT THE GIVEN ANGLES
INTO LINES AT THOSE ANGLES, THEN CREATES A COORDINATE
SYSTEM AT THIS ANGLE.
D
THIS ROUTINE OUTPUTS A DATE/TIME STAMP IN THE FORM:
YYYYMMDDHHMMSS. IF THE YEAR IS 69-99, THE PREFIX
19 WILL BE ADDED, OTHERWISE 20 IS ADDED.
THIS STAMP CAN BE SORTED, AND CONVERTED TO/FROM
PRESENT DATES VERY EASILY.
THIS FORMAT MATCHES THE FORMAT USED BY THE PC LOGGER
ROUTINE.
THE RETURNED STRING IS 14 CHACTERS LONG
OUTPUT THE DATE AND TIME IN A STRING:
DD-MMM-YYYY HH:MM:SS
(EG: 23-MAR-1961 12:58:00)
OUTPUT STRING IS 20 CHARACTERS LONG
THIS SUBROUTINE CONVERTS A CONVENTIONAL DATE STRING TO
A COMPUTATIONAL DATE INTEGER. SIMILAR TO UF3611 EXCEPT ZERO
DAY IS DECEMBER 31, 1899. TO USE WITH MCAUTO COMPUTATIONAL DATE,
SUBTRACT 25564 FROM VALUE BEFORE CALLING THIS ROUTINE OR CALL
UF3611A WHICH DOES THIS FOR YOU.
THIS SUBROUTINE CONVERTS A COMPUTATIONAL DATE TO A DATE STRING
FUNCTIONAL OPERATION SIMILAR TO UF3611.OB, EXCEPT ZERO DAY
IS DECEMBER 31, 1899. TO USE WITH MCAUTO COMPUTATIONAL DATE,
ADD 25564 TO VALUE BEFORE CALLING THIS ROUTINE OR CALL
UF3610A.OB WHICH DOES THIS FOR YOU.
DFORMAT VALUE FORMAT
1 MM/DD/YYYY (03/23/1961)
2 MM--DD--YYYY (03--23--1961)
3 DD-MMM-YYYY (23-MAR-1961)
4 MM/DD/YYYY (03/23/1961)
5 MM--DD--YY (03--23--61)
6 DD-MMM-YY (23-MAR-61)
7 MMM DD YY (MAR 23 61)
8 YYMMDD (610323)
9 YYYYMMDD (19610323)
This subroutine interpets comments from a text file and
assigns attributes according to "commands" in the file.
This file could be expanded to include other commands,
such as color & layer control.
These commands can be:
;PART_ATTRIB:[title]=[value] (Assigns the attribute to the part)
;GROUP_ATTRIB:[title]=[value] (Assigns the attribute to the group entity)
;ENT_ATTRIB:[title]=[value] (Assigns the attribute to the memeber entity)
STRX - Input string, containing comments.
GRP - Group to assign attributes TO
ENT - Entity to assign the attributes TO
SRESP - Subroutine Response.
1 - No command found,
2 - Command found, but invalid
3 - Command found, and processed without error
THIS ROUTINE READS TOOL PATH STATEMENT, EXTRACTING
VARIOUS FIELD VALUES. IT PROCESSES MILL & DRILL PATHS
COMPLETELY. LATHE TOOL PATHS RETURN ONLY TOOL, OPERATION TYPE
AND PATH NAME.
VARIABLE USAGE:
TLPATH - STRING CONTAINING TOOL PATH/ STATEMENT:
TLDATA - STRING CONTAINING TLDATA/ STATEMENT (V10 ONLY)
TOOLNM - TOOL NAME STRING
TNUM - TOOL NUMBER VALUE (STRING, "T" REMOVED & CONVERTED TO #)
(THIS VALUE IS NULL FOR V10 TOOL PATH DECODES!)
OPTYPE - OPERATION TYPE
TLDESC - TOOL DESCRIPTION, BUILT UP FROM PARAMETERS IN TOOL DATA
PATHNM - TOOL PATH NAME
DIAGLV - DIAGNOSTIC CONTROL LEVEL (0= NO DIAGNOSTICS)
ERRMSG - STRING DESCRIBING ANY ERROR CONDITIONS
SRESP - SUBROUTINE RESPONSE: 1-REJECT (IGNORING LATHE DATA,
2-TERM - NOT A TOOL PATH OR UNKNOW OPERATION,
3-SUCCESSFULLY DECODED (MILL OR DRILL))
THIS ROUTINE DELETES ALL BLANKED LAYERS ON THE SELECTABLE
LAYERS. WHEN IT FINISHES, IT DISPLAYS COUNTS OF ENTITIES
DELETED AS WELL AS ENTITIES JUST EXAMINED.
THIS SUBROUTINE DELETE ENTITIES BY NAME.
IT CAN DELETE A RANGE OF VALUES (IF START & END []0) OR A
SINGLE ENTITY (OR GROUP).
IT RETURNS THE DELETION STATUS IN "SRESP":
1 - NOTHING DELETED
2 - PARTIAL DELETE (USED FOR RANGE ONLY)
3 - DELETED FULL RANGE
THIS SUBROUTINE DELETES ALL ENTITIES ON LAYER 255.
IT MAKES LAYER 255 SELECTABLE, DOES AN
ENTITY CYCLING OPERATION, AND DELETES ENTITIES
FOUND ON LAYER 255.
DELCNT - NUMBER OF DELETED ENTITIES (ON LAYER 255)
SRESP - SUBROUTINE RESPONSE - SET TO 3 FOR SUCCESS.
(THIS ROUTINE CANNOT FAIL, SO SRESP ALWAYS
EQUALS 3)
THIS PROGRAM CALCULATES THE SMALLEST POWER OF TWO
DENOMINATOR FOR USE WITH DIMENSIONING.
INVAL -- INPUT DECIMAL TO BE CONVERTED
TEMPNR -- NUMERATOR (SET TO ZERO IF INVAL
IS WHOLE NUMBER)
DENNTR -- DENOMINATOR (A POWER OF TWO,2,4,8,16...)
NOTE: INTERMEDIATE VALUES MUST BE USED (TEMPNR, TEMPDN)
BECAUSE DUMMY VALUES USED IN CALL STATEMENT WILL
'ZERO OUT' IF ASSIGNED FROM ANOTHER DUMMY VARIABLE.
THIS SUBROUTINE PERFORMS THE SAME 'GRID' OPERATION AS THE 'GRID
POINTS' OPTION IN SYSTEM PARAMETERS. THIS PROGRAM IS USED FOR
READING DATA FROM A DEVICE THAT IS NOT RECOGNIZED BY UNIGRAPHICS
AS A POSITION INDICATOR. (INPUT COORDINATES ARE FORCED TO THE
NEAREST GRID POINT.)
E
THIS SUBROUTINE EDITS THE LOCATION OF A POINT USING
X,Y,Z WORK COORDINATES.
THIS SUBROUTINE INPUTS ALL THE INFORMATION NEEDED TO TALLY UP
THE ENTITIES ON A PART. IT THEN CALLS _ENT_TALLY2.GRS TO DO
THE ACTUAL COUNTING.
THIS ROUTINE TALLIES UP THE ENTITIES ON A GIVEN PART, AS CONTROLLED
BY THE SUBROUTINE PARAMETERS.
This routine adds the .prt extension to supplied filenames.
If the file already has the correct extension, it is not changed.
THIS PROGRAM EXTRACTS TEXT FROM ENTITIES, THEN SORTS
THEM IN ORDER LEFT TO RIGHT, TOP TO BOTTOM, ETC
IT THEN PLACES THE TEXT IN A TEXT FILE AND RETURNS.
F
THIS PROGRAM FINDS THE GREATEST COMMON FACTOR
AND LEAST COMMON MULTIPLE OF TWO NUMBERS SUPPLIED.
THE TWO NUMBERS, N1,N2, MUST BE POSITIVE INTEGERS
LESS THEN 541. IF EITHER FACTOR IS OUTSIDE THIS
RANGE, THE PROGRAM RETURNS 0 AND 0 AS FACTORS.
ADD FIELD WELD TO BASIC WELD SYMBOL
ADD FIELD WELD TO BASIC WELD SYMBOL
This subroutine checks for the existance of a file and
displays an appropriate message:
THIS SUBPROGRAM GENERATES THE LEADER
ORIGIN FOR A WELD SYMBOL
THIS SUBROUTINE "FLATTENS" A SPLINE, MAKING ALL Z-VALUES ZERO.
THIS ROUTINE WAS WRITTEN TO COMPENSATE FOR A BUG
IN V9.0 THAT CAUSES THE CREATION OF NON-PLANAR CURVES
WHEN PROJECTING LINES ALONG A VECTOR ONTO A SURFACE.
SPLIN1 - THE ORIGINAL SPLINE (TO BE FLATTENED)
SPLIN2 - A SPLINE CREATED WITH THE DATA FROM SPLIN1,
EXCEPT THAT THE Z VALUES FOR THE POINTS (AND
TANGENTS) SET TO ZERO.
MAXDEV - MAXIMUM DEVIATION FROM (Z=0) PLANE
DIAGLV - DIAGNOSTICS LEVEL (IF ]0, DISPLAY DIAG DATA)
SRESP - SUBROUTINE RESPONSE (3=SUCCESS, 5=ABORT)
ABSTRACT: parse a string labeled 'src' against
list of delimiters in a string. If a
match is found, "return" the position in
number format, and the delimeter matched
This is similar to FNDSTR except this
function uses a list of delimeters,
This routine closes all open text files.
If diagnostics are enabled, it displays information
about the file before it closes it.
Diagnostic Levels:
]=1 - List open files as they are closed
]=5 - List status of all files.
THIS SUBROUTINE INVOKES THE FTP PROCESS, USING THE
HOST, USERNAME & PASSWORK PROVIDED, AND THEN
EXCUTES THE COMMANDS GIVEN IN THE SCRATCH FILE.
SCRFIL - NUMBER OF SCRATCH FILE CONTAINING FTP COMMANDS
HOSTNM - HOST NAME OF REMOTE MACHINE
USERNM - LOGON USERNAME FOR REMOTE MACHINE
PASSWD - PASSWORD FOR REMOTE MACHINE (CAN BE NULL FOR PC'S)
DIAGLV - DIAGNOSTIC LEVEL (0=SUPPRESS MESSAGES)
SRESP - SUBROUTINE RESPONSE (3-ENTRY COMPLETE, SUCCESS, 2=FAIL)
NOTE: AFTER SUCCESSFUL COMPLETION, THE SCRATCH FILE IS TERMINATED.
This program constructs a "B" plan view of the mold base
(looking from the top of the "B" plate downward).
All geometry created is 2-D.
This subprogram is used to build the mold base parameter
file for a particular job.
G
This subroutine will get the text for help on any grip routine.
The help files should be located in one of the following
locations:
UGFM Native
-------------------- --------------------
Current directory Current directory
@UGFMDISK:GRIP GRIP:
The file should end with a file extension of .GRH (GRip Help).
These files are merely text files which contain a description of
the calling program.
THIS SUBROUTINE LOOKS AT TWO CURVES AND DETERMINES
WHICH END-POINTS ARE CLOSER, CALCULATES VECTORS FOR EACH OF
THIS ENTITIES, AND WHETHER OR NOW THEY NEED TO BE REVERSED.
THIS ROUTINE EXTRACTS PATH NAMES FROM AN ACTIVE CLS FILE:
CLSFIL IS THE SCRATCH FILE CONTAINING THE CLS SOURCE FILE
SCRFIL IS THE SCRATCH FILE TO HOLD PATH NAMES
PTHCNT IS THE COUNT OF THE PATHS FOUND.
NOTE: TO SORT THE PATH NAMES IN A LOGICAL ORDER,
CALL _SMART_SORT IMMEDIATELY AFTER THIS ROUTINE
THIS ROUTINE READS IN A DATE, AND, OPTIONALLY A TIME STRING
THEN CONVERTS THEM TO A TIME STAMP FORMAT, AND A STANDARD
DD-MMM-YY HH:MM:SS STRING.
IF A DIFFERENT FORMAT IS DESIRED, THE OUTPUT STRING(S) CAN
BE EDITTED, OR _FM_FORMAT_DR_STRING CAN BE CALLED OUTSIDE OF
THIS ROUTINE.
TYPICALLY, THE DTSTR WILL BE USED IN A MENU OR PRINT-OUT,
WHILE DTSTMP IS USED TO DO ACTUAL COMPARISONS.
IF NO VALUE IS ASSIGNED TO THE DTSTR VARIABLE, IT DEFAULTS
TO TODAY'S RATE.
THIS SUBROUTINE READS IN A DIRECTORY LISTING, SELECTING
FILES BY TYPE & TEMPLATE.
SCRFIL - SCRATCH FILE NUMBER TO BE USED FOR STORING THE
DIRECTORY INFORMATION.
DNAMEX - DIRECTORY NAME TO START SCANNING
DIRSW - SWITCH CONTROLS DIRECTORY NAME PROCESSING (&NO-IGNORE THEM)
FILSW - SWITCH CONTROLS FILE NAME PROCESSING (&NO-IGNORE FILES)
TMPTS - TEMPLATE STRING ARRAY (SEE _TEMPLATE_SETUP.GRS)
TMPTN - TEMPLATE NUMBER ARRAY (SEE " )
SORTSW - SORT BY NAME SWITCH (&NO-DON'T SORT)
FILCNT - COUNT OF FILES IN SCRATCH FILE
SRESP - SUBROUTINE RESPONSE (1-REJECT, 2-TERMINATE, 3-SUCCESS)
THIS PROGRAM LOCATES FILES FOR USE WITH PROGRAMS IN THE GRIP
INTERNATIONAL LIBRARY.
THIS SUBROUTINE FINDS THE GRIP INTERNATIONAL LIBRARY
STRUCTURE.
It first checks for an environment variable called UGII_GRIPLIB. If
that variable is not defined, then it uses UGII_BASE_DIR/griplib.
THIS SUBROUTINE REFORMATS DIRECTORY PATHS FOR USE WITH
DIFFERENT PLATFORMS. (INPUT IS EXPECTED AS IF UNIX OR NT WAS
BEING USED).
THIS SUBROUTINE LOCATES A GROUP BY NAME, AND CHECKS THE
GROUP ENTITY COUNT AGAINST SEVERAL LIMITS.
NAMEX - STRING CONTAINING NAME OF GROUP TO GET
NIND - NAME INDEX (1=GET FIRST ENTITY OF NAMEX)
GCNT1 - IF 0, THIS ROUTINE RETURNS WITH A SRESP=1
IF THE GROUP WAS NOT FOUND.
IF NEGATIVE, ANY NUMBER OF ENTITIES UP TO
THE ABSOLUTE VALUE WAS ACCEPTABLE
IF POSITIVE, THE NUMBER OF ENTITIES IN THE
GROUP MUST MATCH THE VALUE OF GCNT1
GCNT2 - NUMBER OF ENTITIES IN GROUP (1RST LEVEL ONLY)
SRESP - SUBROUTINE RESPONSE (3=SUCCESS, 5=ABORT)
THIS SUBROUTINE READS OPERATION NAMES INTO A SCRATCH FILE
AND RETURNS WITH A COUNT OF OPERATION NAMES WRITTEN INTO
THE SCRATCH FILE. (COLUMNS 1-30 ARE THE OPERATION NAME,
COLUMN 31 IS A COMMA, AND 32 TO 131 ARE A "SORT FIELD",
USED TO DETERMINE THE ORDER OF THE PATHS).
NOTE: TO SORT THE OPERATION NAMES IN A LOGICAL ORDER,
CALL _SMART_SORT IMMEDIATELY AFTER CALLING THIS ROUTINE.
THIS SUBROUTINE DETERMINES THE PLATFORM TYPE BY NAME, AND
ALSO RETURNS A PAIR OF NUMBERS RELATING TO THE PLATFORM.
(FOR FUTURE USE WITH GRIP INTERNATIONAL LIBRARY, TO AUTOMATICALLY
ADJUST LIBRARIAN.GRS OPERATION TO CURRENT PLATFORM).
THIS ROUTINE EXTRACTS THE SOLID BODY EDGES FROM A SHEET BODY.
THE FIRST STEP IN PROCESSING THE SHEET BODY EDGES IS TO GET THE
EDGES CLEANED UP. WHEN THEY ARE RETURNED BY GRIP, THEY MAY NOT BE
IN ORDER, AND EACH EDGE CAN BE BROKEN INTO SEVERAL DIFFERENT SHAPES.
WE HAVE TO SORT THEM OUT, MERGE CONTINUOUS EDGES TOGETHER & RETURN
A SET OF CURVES TO THE CALLING ROUTINE.
WE START WITH THE FIRST CURVE, AND LOOK FOR THE NEXT CURVE.
THE CURVE THAT HAS EITHER ENDPOINT CLOSEST TO THE CURRENT CURVE
IS THE NEXT CURVE. IF THE START POINT IS CLOSEST, IT IS
CONSIDERED TO HAVE A "NORMAL" ORIENTATION. IF THE END POINT
IS CLOSER, THE CURVE IS "REVERSED". WE THEN MAKE THIS NEXT
CURVE THE CURRENT CURVE, AND GO LOOKING AGAIN.
BY KEEPING TRACK OF THE NORMAL/REVERSED STATUS, WE CAN COMPARE
TANGENCIES. FOR NORMAL CURVES, WE JUST COMPARE THE TANGENT AT
THE END OF THE FIRST CURVE WITH THE TANGENT AT THE START OF THE
SECOND CURVE. IF THE CURVES WERE REVERSED, WE'D USE THE REVERSE
OF THE TANGENT AT THE START POINT OF THE FIRST CURVE AND COMPARE IT
WITH THE REVERSE OF THE TANGENT AT THE END POINT OF THE SECOND
CURVE. IF EITHER ONE IS REVERSE BUT NOT BOTH, WE JUST REVERSE THE
SENSE OF THAT ONE CURVE.
TO PREVENT THE PROGRAM FROM LOOPING WHEN IT ENCOUNTERS A LOOP,
WE USE A FINITE DO/ LOOP AND BLANK EACH CURVE AS WE WORK OUR
WAY AROUND THE LOOP.
TO KEEP TRACK OF THE CURVES "ON THE FLY", WE PUT THE SUBSCRIPT
OF THE CURVES INTO A SEQUENCE NUMBER ARRAY. THE FIRST ELEMENT
OF THE ARRAY CONTAINS THE SUBSCRIPT OF THE FIRST CURVE, THE
SECOND CONTAINS THE NEXT.
WHEN THE PROGRAM HAS A LIST OF CONTIGUOUS CURVES, IT CREATES
AN SPLINE APPROXIMATING THESE CURVES.
THIS ROUTINE ALLOWS SLOPE SELECTION IN THE FIVE
OPTIONS USED FOR SPLINE CREATION
SLOPEM - VALUE CORRESPONDING TO THE SLOPE METHOD CHOSEN
BEFORE, SET TO THE VALUE SELECTED AFTER CHOOSE
XYZVCT - UNIT VECTOR POINTING IN DIRECTION OF SLOPE.
CURPNT - CURRENT POINT (USED FOR DIRECTION POINT CALCULATIONS)
SRESP - SUBROUTINE RESPONSE, SAME AS PARAMETER STATEMENT'S
RESP (1=REJECT, 2=TERM, 3=SLOPE ENTERED)
THIS SUBROUTINE DETERMINES WHICH SURFACE A POINT LIES ON.
IT RETURNS THE U & V VALUES AT THIS POINT AND THE SURFACE ID.
IT STARTS WITH THE CURRENT SURFACE, (AS SET BY THE SURFACE
ID), AND STARTS SEARCHING ONLY IF THE SUPPLIED X,Y,Z LIES
OUTSIDE THE RANGE 0[=U[=1, 0[=V[=1 OR IS MORE THAN 1" AWAY
FROM THE SURFACE. IT CHECKS EACH POINT FOR THESE CRITERIA
AND STOPS WHEN IT FINDS A SURFACE WITHIN THESE PARAMETERS.
IT RETURNS THE SURFACE ID AS WELL AS THE U,V VALUES.
IF IT CAN'T FIND A SURFACE THAT CONTAINS THE POINT,
SRESP IS SET TO 2.
SURFS - ARRAY OF 101 SURFACES
SCNT - COUNT OF SURFACES (UP TO 100)
STOLER - SURFACE TOLERANCE (POINT HAS TO BE
AT LEAST THIS CLOSE TO THE SURFACE
TO BE CONSIDERED "ON" THE SURFACE).
SID - SURFACE ID (LOCATION OF SURFACE IN
ARRAY THAT CONTAINS THE POINT)
[THIS ID IS USED AS A STARTING POINT
FOR SURFACE SEARCHING]
N - COORDINATES OF POINT USED TO ID THE
SURFACE.
U - "U" PARAMETER OF POINT ON "FOUND" SURFACE
V - "V" PARAMETER OF POINT ON "FOUND" SURFACE
SRESP - SUBROUTINE RESPONSE: SET TO 2 IF NO SURFACE
FOUND AND 3 IF A SURFACE IS FOUND.
This routine gets the current version name and number from
the current UG session.
For values below 11.0, it uses multi-version support and $$
switched code. For 11.0 and beyond, it uses the &UGVERS gpa
and ENVVAR to read the values from the system.
Values are returned as strings, UGVNAM, UGVNUM, each having
a minimum length of 10.
THIS ROUTINE GETS A UNIX ENVIRONMENT VARABLE VIA AN
XRUN COMMAND. IF YOU READING MORE THAN A FEW ENVIRONMENT
VARIABLES, USE _GET_UNIX_ENV2.GRS
THIS ROUTINE GETS A UNIX ENVIRONMENT VARABLE VIA AN
XSPAWN COMMAND. THIS VERSION IS BETTER THAN _GET_UNIX_ENV.GRS
WHEN SEVERAL ENVIROMENT VARIABLES ARE NEEDED.
THIS ROUTINE CONVERTS A UG DATE TO THE STANDARD GM DATE FORMAT:
DD-MM-YY, WHERE MM IS THE TWO LETTER ABBREVIATION FOR THE DATE.
ABSTRACT: Obtains user preferences for geo_mend program
ABSTRACT: Takes a plane entity from the user and executes the following
steps:
1: Creates a WCS with the X & Y axis on the specified plane
by taking the plane vertex and normal and then randomizing
a point to determine the X axis. This is cool, because
you cannot go directly from a plane to a WCS without
randomizing a point. This is necessary to set your work
view normal to the plane selected by the user.
2: Sets the work view to the newly created WCS and then sets
the clipping planes to the plane tolerance value supplied
by the user. This is a cool technique for speeding up
entity cycling. If you only want to select entities on
(or near) a specific plane, this is a very fast way to do it.
ABSTRACT: Trims the entities that are within the designated tolerance
of a plane whose end points lie within the designated value.
Only trims lines and arcs at this point, but could be easily
enhanced to handle b-curves and splines if needed.
This GRIP procedure will keep track of GRIP program usage by
writing to a data file called GRIPUSE.DAT which is located in:
UGFM Native
-------------------- --------------------
Current directory Current Directory
@UGFMDISK UGII$UTIL:
THIS IS THE "FRONT END" FOR THE GROUP FIXING OPTION OF
"PART_DOCTOR". IT USES TWO CHOOSE MENUS TO SET THE VALUES
OF "DISPSW" AND "FIXSW".
THIS SUBROUTINE ANALYZES THE GROUP STRUCTURE ON A PART FILE
FOR BAD CONSTRUCTION PRACTICES. THE PROGRAM THEN CAN DELETE
MEMBERLESS GROUPS, UNGROUP GROUPS CROSSING LAYERS AND
DESCRIBE ALL THIS DURING PROCESSING.
H
THIS SUBROUTINE "HIGHLIGHTS" A SELECTED ENTITY BY
CHANGING IT'S COLOR AND/OR FONT TO SPECIFIED VALUES.
AN EXAMPLE OF THIS CALL WOULD BE:
CALL/'_HIGHLIGHT_ENT',PNTS(IND),&RED,&DASHED,&YES
TO RESTORE THE SAME ENTITY TO IT'S ORIGINAL FONT & COLOR,
CALL IT A SECOND TIME WITH A SWITCH OF &NO:
CALL/'_HIGHLIGHT_ENT',PNTS(IND),0,0,&NO
IT USES ATTRIBUTES "HL_COLOR", "HL_FONT" TO SAVE AND
RESTORE THE ORIGINAL COLOR/FONT/DENSITY. IF THESE
ATTRIBUTES ARE DELETED, THE RESTORE WILL DO NOTHING.
IT DELETES THESE VALUES AFTER HIGHLIGHTING, AND PRESERVES
THEM DURING A HIGHLIGHT. (THIS WILL "REMEMBER" THE
ORIGINAL VALUES EVEN IF AN ENTITY IS HIGHLIGHTED TWICE).
ENT - ENTITY TO HIGHLIGHT
HCOLOR - HIGHLIGHT COLOR (0=DON'T CHANGE COLOR)
HFONT - HIGHLIGHT FONT (0=DON'T CHANGE FONT)
HLSW - HIGHLIGHT SWITCH (&YES - HIGHLIGHT,
&NO - UNHIGHLIGHT).
THIS SUBROUTINE "HIGHLIGHTS" A SELECTED GROUP BY
CHANGING IT'S MEMBER'S COLORS AND/OR FONT TO SPECIFIED VALUES.
AN EXAMPLE OF THIS CALL WOULD BE:
CALL/'_HIGHLIGHT_GRP',GRP1,&RED,&DASHED,&YES
TO RESTORE THE SAME ENTITY TO IT'S ORIGINAL FONT & COLOR,
CALL IT A SECOND TIME WITH A SWITCH OF &NO:
CALL/'_HIGHLIGHT_GRP',GRP1,0,0,&NO
IT USES ATTRIBUTES "HL_COLOR", "HL_FONT" TO SAVE AND
RESTORE THE ORIGINAL COLOR/FONT/DENSITY. IF THESE
ATTRIBUTES ARE DELETED, THE RESTORE WILL DO NOTHING.
IT DELETES THESE VALUES AFTER HIGHLIGHTING, AND PRESERVES
THEM DURING A HIGHLIGHT. (THIS WILL "REMEMBER" THE
ORIGINAL VALUES EVEN IF AN ENTITY IS HIGHLIGHTED MORE THAN
ONCE.
GRP - ENTITY TO HIGHLIGHT
HCOLOR - HIGHLIGHT COLOR (0=DON'T CHANGE COLOR)
HFONT - HIGHLIGHT FONT (0=DON'T CHANGE FONT)
HLSW - HIGHLIGHT SWITCH (&YES - HIGHLIGHT,
&NO - UNHIGHLIGHT).
SAVESW - SAVE THE COLORS & FONTS OF ALL ENTITIES.
(IF SET TO &NO, THEN ONLY THE COLOR, FONT, ETC
OF THE FIRST ENTITY IS SAVED).
INTELLIGENT OPERATION:
THE COLOR OF THE FIRST ENTITY IS SAVED AS AN ATTRIBUTE OF THE
GROUP, AND CHECKED AGAINST ALL OTHER ENTITIES IN THE GROUP.
IF ALL THE ENTITIES ARE THE SAME COLOR, & FONT, THEN
SAVESW HAS NO EFFECT, AND THE ROUTINE RUNS FASTER.
ON RESTORE, SAVESW IS IGNORED, AND ANY "LOCAL" ATTRIBUTES
(ASSIGNED TO AN ENTITY WITHIN A GROUP) OVERRIDE THE
GROUP ATTRIBUTES FOR THAT COLOR).
THIS SUBROUTINE DISPLAYS HELP INFORMATION IN AN HP TERM WINDOW.
THE WINDOW WILL REMAIN AFTER THIS ROUTINE RETURNS, ALLOWING THE USER
TO REFER TO THE WINDOW WHILE USING THE PROGRAM.
THE PARAMETER THAT CONTAINS THE HELP DIRECTORY IS PTHLST(6)
THIS ROUTINE SUBSTITUTES HARMLESS CHARACTERS FOR CHARACTERS THAT
WOULD ALTER THE OUTPUT OF NETSCAPE WHEN USED IN A WEB PAGE. THIS
IS USED TO "CLEAN UP" TEXT FROM PROGRAM HEADERS BEFORE IT IS USED
IN A WEB PAGE.
CURRENTLY, THIS PROGRAM DOES ONLY TWO SUBSTITUTIONS:
"[" =] "[" AND "]" =] "]", BUT FUTURE CHARACTERS MAY BE ADDED.
I
SUBROUTINE TO REFORMAT GRIP SOURCE FILES
STRIPS OFF LEADING AND TRAILING BLANKS
ABSTRACT: THIS SUBROUTINE FINDS THE INTERSECT COORDINATES OF TWO
LINES
INPUT DATA CONSISTS OF LINE END POINT COORDINATES - X1, Y1,
X2, Y2. THE INTERSECT COORDINATES - X1NT AND Y1NT ARE
RETURNED.
THIS ROUTINE FORMATS A NUMBER INTO AN INTEGER STRING, ADDING
COMMAS TO MAKE IT MORE READABLE.
SUBROUTINE TO GRIP2.ITEM.NO.GRS
THIS PROGRAM CREATES A BUBBLE CALL OUT FOR A MATERIAL LIST.
USER IS PROMPTED TO SELECT A DETAIL FROM THE ASSEMBLY. THE
PROGRAM WILL THEN CHECK THE DETAIL TO SEE IF THE ATTRIBUTES
VENDOR, STEEL, AND A NAME HAVE BEEN ASSIGNED TO THE DETAIL.
IF NOT, THE PROGRAM SENDS A MESSAGE TO THE USER AND A CALL
OUT IS NOT CREATED. ONLY GROUPED DETAILS MAY BE SELECTED.
J
THIS SUBPROGRAM GENERATES THE LEADER
ORIGIN FOR A WELD SYMBOL
L
THIS SUBROUTINE MOVES A MULTI-LEVEL GROUP (UP TO 20 LEVELS DEEP)
TO A NEW LAYER.
THIS SUBROUTINE CONVERTS A STRING TO ALL LOWERCASE.
IT IS USED IN UNIX FILENAMES BEFORE USING WITH UNIX COMMANDS.
This routine lists a single filename in a column format.
(The code was taken from the _LIST_CURRENT_DIRECTORY
routine).
This routine displays the current directory listing.
THIS SUBROUTINE ASKS WHAT NON-ENTITIES THE USER
WANTS PRINTED OUT, VIA A CHOOSE MENU
THIS SUBROUTINE LISTS THE NON-ENTITY STRINGS FROM GRIP:
SCRFIL IS 1 OR 2, TELLING THE SUBROUTINE WHICH SCRATCH
CAN BE USED.
SWS IS AN NUMERIC ARRAY, CONTROLLING WHAT NON-ENTITIES
ARE PRINTED OUT. (EACH VALUE IS &YES, OR &NO)
1 - VIEWS
2 - LAYOUTS
3 - DRAWINGS
4 - REF LIBS
5 - OPERATIONS
6 - PARAMETER SETS
7 - TOOLS
8 - CATEGORIES
SRESP - SUBROUTINE RESPONSE, 1-REJECT, 2-TERM, 3-ENTRY COMPLETE
THIS SUBROUTINE LISTS THE LAYERS VISIBLE IN A VIEW IN A
COMPRESSED FORMAT:
X, X-X, X ...
SCRFIL - OUTPUT SCRATCH FILE (0 - LIST DEVICE)
VNAMEX - VIEW TO EXAMINE (0 - GLOBAL MASK)
THIS ROUTINE LEFT-JUSTIFIES A STRING. COMBINED WITH _UCASE,
THIS CAN BE USED TO MAKE STRING MATCHING EASIER.
This subroutine logs data to a specified log file.
The standard log file format is:
YYYYMMDDHHMMSS[userid] -[action]
or, for multi-line log entries:
YYYYMMDDHHMMSS[userid] a[action]
YYYYMMDDHHMMSS[userid] b[action]
The data to log must be 108 characters or less. Strings
that exceed this limit will be truncated.
The log directory is in PTHLST(5)
M
This routine takes an array of direction consines and calculates
the progressive X, Y, Z axis rotations required to get that matrix.
THIS ROUTINE RETRIEVES A SCRATCH FILE, USES IT AS A MENU OF
CHOICES, LETS THE USER PICK ON AND RETURNS IT TO THE CALLING
ROUTINE.
THE FILE CONTAINING THE MENU TEXT MUST BE RESEQUENCED
1,1 BEFORE THIS ROUTINE IS CALLED.
THIS ROUTINE PRESENTS THE CONTENTS OF SCRATCH FILE
AS MENU CHOICES, AND ASKS THE USER TO SELECT ONE.
ALTERNATE ACTION IS USED TO DISPLAY THE NEXT MENU,
REJECT TO DISPLAY THE PREVIOUS.
NOTE: THE MENU FILE MUST BE RESEQUENCED 1,1 BEFORE
THIS ROUTINE IS CALLED.
THIS ROUTINE PRESENTS THE CONTENTS OF SCRATCH FILE
AS MENU CHOICES, AND ASKS THE USER TO SELECT ONE.
ALTERNATE ACTION IS USED TO DISPLAY THE NEXT MENU,
REJECT TO DISPLAY THE PREVIOUS.
THE FILE CONTAINING THE MENU TEXT MUST BE RESEQUENCED
1,1 BEFORE THIS ROUTINE IS CALLED.
THIS SUBROUTINE SENDS A SINGLE LINE MESSAGE TO
THE SPECIFIED COORDINATES ON THE MESSAGE MONITOR
THE MESSAGE STRING CAN BE UP TO 68 CHARACTERS
LONG. IF THE MESSAGE EXTENDS PAST THE EGDE OF THE
SCREEN IT WILL WRAP AROUND TO THE NEXT LINE.
CAUTION: SOME LINES ARE BLANKED OUT BY UG MENUS.
AVOID USING ROWS 0, 1, AND 17 OR STARTING IN COLUMN 8.
This routine moves files using OS commands, compensating for
variations in the OS commands:
THIS ROUTINE DRAWS THE X-AXIS OF AN X/Y GRAPH. BEFORE DOING ANY
ACTUAL DRAWING, IT DOES SEVERAL SPECIAL OPERATIONS ON THE
DATA:
THIS VERSION IS BASED ON AN ELAPSED TIME INTERVAL, AND WILL ROUND
TO VALUES THAT GIVEN SPACING AS CLOSE TO, BUT NOT EXCEEDING 1"
THESE VALUES ARE NUMBERS EASILY DIVIBLE INTO AN HOUR OR A DAY,
DEPENDING ON THE SIZE OF THE INTERVAL. IT IS MAINLY INTENDED AS
A PERFORMANCE MONITOR OUTPUT ROUTINE, BUT COULD TRACK BLOOD
PRESSURE OF A PERSON OVER TIME, OR MILAGE OF A CAR, ALONG WITH
OTHER FACTORS, SUCH AS AMBIANT TEMPERATURE. BUT, I DIGRESS.
THE MAIN DIFFERENCES BETWEEN THIS ROUTINE AND THE Y-AXIS ROUTINE
ARE: THE AXIS (X VS Y), THE ENDS OF THE RANGE ARE NOT MOVED IN
THIS ROUTINE WHILE THEY CAN BE CHANGED IN THE Y ROUTINE, AND
THIS ONE IS BASED ON A SPECIAL TIME STAMP CODING.
TIME STAMP CODING WILL BE USING COMPUTATIONAL DATE/TIME CODES,
WHERE THE INTEGER PART OF A VALUE IS THE COMPUTATIONAL DAY,
AND THE FACTIONAL PART IS THE MINUTES PAST MIDNIGHT/1440.
INPUT VARIABLES:
XLL,YLL,XUR,YUR - DIAGONAL POINTS DEFINING THE GRAPH AREA.
XMIN,XMAX - START & END TIME/DATE CODES.
XOFFST - DATE OFFSET VALUE, SO XMIN[1 AND MATH
WORKS OUT.
XTITLE - TITLE FOR X-AXIS
XMODE - SCALE CREATION MODE:
1 - BOTTOM SCALE ONLY.
2 - BOTTOM SCALE/TOP RULER
3 - BOTH BOTTOM/TOP SCALE
SRESP - IF SET TO "9", DIAGNOSTICS ENABLED
OUTPUT VARIABLES:
XMIN,YMIN - MODIFIED START/END TIME STAMPS
(CURRENT DESIGN IS FOR XMIN & XMAX TO BY'
COPIED OVER)
YLL,YUR - MODIFIED Y LOCATIONS, NORMALLY USED FOR
"STACKING" VARIABLES, BUT WILL PROBABLY
NOT APPLY HERE.
GRP - GROUP OF FINISHED X-AXIS SCALE(S)
SRESP - SUBROUTINE RESPONSE VALUE, USING THE CODES:
1-REJECT, 2-TERMINATE, AND 3=ENTRY COMPLETE
THIS ROUTINE DRAWS THE Y-AXIS FOR A X/Y GRAPH.
IT PERFORMS SEVERAL FUNCTIONS PRIOR TO ACTUALLY
DRAWING THE GEOMETRY:
AUTOMATIC SCALING TO FIT IN THE RANGE OF
YLL TO YUR, AUTOMATIC CALCULATION OF A "NICE"
ROUND INCREMENT VALUE FOR THE Y SCALE STEPS,
AND RECALCULATION OF YMIN AND YMAX TO PRODUCE
ROUND STARTING AND ENDING VALUES ON THE SCALE.
This routine deletes named groups to erase a graph before drawing a
new one.
THIS ROUTINE DISPLAYS ALL THE VALUES CRITICAL TO THE MULTIPLOT
FUNCTION. (MAINLY AS A DIAGNOSTIC ROUTINE, BUT ALSO CAN BE
USED TO CHECK OUT A DATA FILE.
SEE _MP_READ.GRS FOR AN EXPLANATION OF THE VARIABLES USED.
THIS ROUTINE CREATES UNDER THE X-AXIS LABEL FOR THE MULTIPLOT PROGRAM.
THIS ROUTINE PERFORMS PASS #1 ON THE READING OF THE DATA FILE.
IN THIS ROUTINE, THE CODE DETERMINES THE MAX & MINIMUM OF ALL
THE DATA POINTS ENTERED.
DOWN IN THE ACTUAL READ ROUTINE, COLOR, FONT, DENSITY, MODE
AND RANGE VALUES MAY BE SET.
THIS ROUTINE MAKES A SECOND PASS AT THE DATA FILE,
THIS TIME CREATING POINTS AT THE DATA POINTS GIVEN.
AFTER ALL THE DATA POINTS ARE CREATED (AND LOADED INTO
GROUPS AS WE GO ALONG TO SAVE VARIABLE USAGE), THE
PROGRAM CREATES SPLINES OR LINE SEGMENTS FROM THE
RESULTING VALUES.
THIS ROUTINE READS IN DATA FROM A DATA FILE, INCLUDING
PROGRAM/CONTROL INFORMATION AND THE ACTUAL DATA VALUES:
VARIABLES (INPUT/OUTPUT):
PNTCNT - NUMBER OF POINTS READ IN SO FAR (INCREMENTED
AFTER EACH BLOCK OF DATA READ IN)
VARCNT - NUMBER OF DEPENDENT VARIABLES, MAX IS 20
(SET BY FIRST LINE OF DATA)
YCOLOR - COLOR OF POINTS/LINES/SPLINES
(SET BY DIRECTIVE COLOR(x)=&BLUE/&WHITE/etc)
YFONT - FONT OF POINTS/LINES/SPLINES
(SET BY DIRECTIVE FONT(x)=&SOLID/&DASH/etc)
YDENS - DENSITY OF POINTS/LINES/SPLINES
(SET BY DIRECTIVE DENS(x)=&NORMAL/&HEAVY/&THIN)
VPNTR - VARIABLE (RANGE) POINTER. CAN BE USED TO LINK
TWO VALUES TOGETHER.
YMODE - VARIABLE CONTROLLING TYPE OF GRAPH DESIRED:
(SET BY DIRECTIVE MODE(x)=&POINT/&LINE/&SPLINE)
XTITLE - TITLE FOR X-AXIS (UP TO 30 CHARACTERS)
YTITLE - TITLES FOR Y-AXIS (UP TO 30 CHARACTERS)
YMIN - RANGE VALUES WHICH CAN BE SET BY MIN(x) OR
YMAX - MAX(x) IN THE DATA FILE.
RNGFLG - VARIABLE USED TO INDICATE A RANGE HAS BEEN SET.
XOFFST - DATE STAMP OFFSET. (THIS IS USED TO KEEP XVALUE
AS CLOSE TO 1 AS POSSIBLE, DUE TO ROUNDING ERRORS)
XVALUE - THE INDEPENDENT VARIABLE THAT TIES ALL THESE
VALUES TOGETHER. (THE FIRST VALUE IN THE
INPUT STRING). IN DATE/TIME MODE, IT CAN
A DATE FOLLOWED BY A TIME)
YVALUE - AN ARRAY CONTAINING UP TO 20 POSSIBLE DEPENDANT
VALUES. (ACTUAL COUNT IS IN VARCNT)
EOFFLG - SET TO &YES WHEN THE READ HITS END-OF-FILE
PASS - SET TO 1 IF READING FIRST TIME, 2 FOR SECOND
(ON SECOND PASS, ALL PARAMETERS ARE IGNORED)
SRESP - SUBROUTINE RESPONSE:
1-MINOR ERROR (REJECT), 2-MAJOR ERROR (TERMINATE)
3-ALL OK (ENTRY COMPLETE)
THIS ROUTINE PRESENTS SEVERAL CHOICES ON A MENU
AND LETS THE USER SELECT AS MANY AS THEY WANT.
IT ADDS/REMOVES MARKERS FROM THE SCRATCH FILE
AND USES _,MENU_SELECT2 TO DO THE ACTUAL PROCESSING.
THE PARAMETERS THAT CONTROL THIS ROUTINE ARE:
SCRFIL - SCRATCH FILE THAT CONTAINS MENU CHOICES
AND WILL BE USED TO RETURN SELECTED VALUES.
FLGCHR - FLAG CHARACTER (']' OR '*" FOR EXAMPLE)
THIS IS USED AS THE FIRST CHARACTER TO FLAG
FILES SELECTED.
CLRSW - WHEN SET TO &YES, THIS ROUTINE MAKES SURE
THAT ALL LINES DO NOT START WITH THE FLAG
CHARACTER.
RFMTSW - WHEN SET TO &YES, THIS ROUTINE MAKES SURE
THAT ALL LINES THAT DO NOT START WITH THE
FLAG CHARACTER HAVE A LEADING SPACE IN
FRONT OF THEM.
FLSHSW - FLUSH ENTRIES NOT SELECTED.
SELCNT - COUNT OF SELECTED RECORDS IF FLUSH SWITCH
IS SET TO &YES)
RESTRICTIONS:
THE RECORDS IN THE FILE MUST BE CONTAIN "*", AND MUST NOT
BEGIN WITH THE SELECT CHARACTER OR A SPACE. THE LENGTH OF
EACH RECORD SHOULD BE 37 CHARACTERS OR LESS.
FOR FASTER PERFORMANCE (WITH LARGE FILES), RFMTSW AND
CLRSW CAN BE SET TO &NO. THIS WILL SPEED UP INITIALIZATION,
BUT WILL RESULT IN UNFORMATTED CHOICES.
FOR MOST APPLICATIONS, CLRSW, RFMTSW AND FLSHSW SHOULD BE
SET TO &YES.
THIS ROUTINE PLOTS UP TO 20 FUNCTIONS SIMULTANEOUSLY.
IT USED A DATA FILE CONTAINING DATA AND SETUP COMMANDS
TO DETERMINE PLOT COLORS. THE SCALES ARE AUTO-RANGING,
BASED ON THE DATA FILE RANGES.
SEE MULTIPLOT.GRS FOR MORE INFORMATION!
N
ASSIGN OPERATION.
ASSIGN OPERATION TAG. THE TAG IS OPERATION'S SEQUENCE NUMBER.
THIS TAG IS USED FOR LISTING PURPOSES ONLY.
ASSIGN PART-ENTITY ATTRIBUTES FOR CLSF AND CURRENT PART FILESPECS.
ASSIGN OPERATION-ENTITY ATTRIBUTES FOR COORDINATE-SYSTEMS: MCS AND RCS.
DELETE ALL ATTRIBUTES (BOTH ENTITY AND PART) ASSIGNED BY PROGRAM FOR
CURRENT PART.
ASSIGN PART-ENTITY ATTRIBUTES FOR OPERATION COUNT AND NAME.
ASSIGN OPERATION-ENTITY ATTRIBUTES FOR PATH-NAME AND FEEDRATES.
PRODUCE LINKED 'CHOOSE' MENUS FROM STRING ARRAY.
ASSIGN CLSF. MAKE SURE IT EXISTS ON DISK.
THERE ARE THREE ALTERNATIVES:
1) MAKE A COPY OF CURRENT (IE. ORIGINAL) CLSF, IF IT EXISTS.
2) MAKE A COPY OF AN EXISTING CLSF.
3) CREATE A NEW EMPTY CLSF.
DEFINE COORDINATE SYSTEM ENTITY.
DETERMINE IF GIVEN FILE NAME HAS GIVEN EXTENSION.
GET FEED RATE SELECTION LIST.
REPEATEDLY ATTEMPT TO FETCH GIVEN TEXT FILE INTO SCRATCH FILE #2.
ONLY ATTEMPT TO FETCH IF THERE IS NO LOCK.
LOCK MECHANISM IS EXISTENCE/NON-EXISTENCE OF LOCK FILE.
GET FILESPEC FOR NCGEN_BATCH.GRX
ADMINISTER HELP.
INITIALIZE LIST OF ALL OPERATIONS IN CURRENT PART.
INITIALIZE LIST OF DESCRIPTIONS OF ALL OPERATIONS IN CURRENT PART.
INITIALIZE DATA LISTS SHOWING IF OPERATION WAS EDITED FOR GEOMETRY,
TOOL, AND PARAMETER-SET.
IS OPERATION LEGAL FOR EDITING ?
SHOW CLSF FILESPEC.
LIST ALL OPERATIONS IN CURRENT PART. GIVE OPERATION-TYPE AND
SHOW IF ASSIGNED FOR BATCH. ALSO SHOW IF OPERATION HAS BEEN EDITED
FOR GEOMETRY, TOOL, AND PARAMETER-SET.
SHOW CLSF FILESPEC.
LIST ONLY ALL THE ASSIGNED OPERATIONS IN CURRENT PART. GIVE OPERATION-TYPE.
LIST OPERATIONS IN THEIR ASSIGNED ORDER (IE. PROCESSING ORDER).
FETCH AND WRITE ENTRY TO LOG FILE.
AN ENTRY IN THE LOG FILE CONSISTS OF:
-----------------------
OPERATION NAME: XXXXXX
OPERATION TYPE: XXXXXX
CLSF FILESPEC: XXXXXX
PART FILESPEC: XXXXXX
DATE COMPLETED: XXXXXX
TIME COMPLETED: XXXXXX
STATUS: XXXXXX
-----------------------
MAKE COORDINATE-SYSTEM USING ITS TRANSFORMATION MATRIX.
ESTABLISH/DISPLAY MACHINE COORDINATE SYSTEM.
OPERATION CHOICE.
CHOOSE OPERATION NAME FROM PREPARED LIST THAT CONTAINS ONLY
VALID UNASSIGNED OPERATIONS.
RETURN OPERATION-TYPE DESCRIPTION GIVEN
OPERATION NAME.
ESTABLISH/DISPLAY REFERENCE COORDINATE
SYSTEM.
DISPLAY COORDINATE SYSTEM
FORMAT FILESPEC BY SPLITTING IT INTO SEVERAL LINES (MAX 3).
ADD UNIQUE SUFFIX TO PREFIX. RESULT IS 'FSPEC'.
SUFFIX IS COMPOSED OF UNDERSCORE FOLLOWED BY A NUMBER.
THIS SUBROUTINE COPIES ALL ATTRIBUTES FROM AN EXISTING NOTE, AND
THEN APPLIES THEM TO THE NEW NOTE WITH THE NEW TEXT AS SUPPLIED
FROM XNEWST.
THE NUMBER OF CHANGED ENTITIES IS HELD IN XCHCNT.
THIS VERSION HANDLES SINGLE LINE NOTES.
THIS VERSION ALSO SAVE/RESTORES MODULE PARAMETES SO THAT
THEY ARE NOT AFFECTED BY THIS ROUTINES OPERATION.
THIS SUBROUTINE COPIES ALL ATTRIBUTES FROM AN EXISTING NOTE, AND
THEN APPLIES THEM TO THE NEW NOTE WITH THE NEW TEXT AS SUPPLIED
FROM XNEWST.
THE NUMBER OF CHANGED ENTITIES IS HELD IN XCHCNT.
THIS VERSION HANDLES NOTES UP TO 10 LINES LONG.
THIS SUBROUTINE COPIES ALL ATTRIBUTES FROM AN EXISTING NOTE, AND
THEN APPLIES THEM TO THE NEW NOTE WITH THE NEW TEXT AS SUPPLIED
FROM XNEWST.
THE NUMBER OF CHANGED ENTITIES IS HELD IN XCHCNT.
THIS VERSION HANDLES TWO LINE NOTES.
THIS SUBROUTINE COPIES ALL ATTRIBUTES FROM AN EXISTING NOTE, AND
THEN APPLIES THEM TO THE NEW NOTE WITH THE NEW TEXT AS SUPPLIED
FROM XNEWST.
THE NUMBER OF CHANGED ENTITIES IS HELD IN XCHCNT.
THIS VERSION HANDLES UP TO 10 LINE NOTES. THE NUMBER OF LINES
TO BE OUTPUT IS SET BY "XNLCNT".
THIS VERSION DOES NOT SAVE MODULE PARAMTERS. THIS MUST BE DONE
BY THE CALLING ROUTINE TO AVOID ACCIDENTALLY CHANGING THE PARAMETERS.
THIS SUBROUTINE COPIES ALL ATTRIBUTES FROM AN EXISTING NOTE, AND
THEN APPLIES THEM TO THE NEW NOTE WITH THE NEW TEXT AS SUPPLIED
FROM XNEWST.
THE NUMBER OF CHANGED ENTITIES IS HELD IN XCHCNT.
THIS VERSION HANDLES UP TO 100 LINE NOTES. THE NUMBER OF LINES
TO BE OUTPUT IS SET BY "XNLCNT".
VERSION "A" ALSO ADDS THE ATTRIBUTES "MAX_CHAR" & "MAX_LINES"
TO THE FINISHED NOTE.
THIS VERSION DOES NOT SAVE THE MODULE PARAMETER VALUES BEFORE
CHANGING THEM. THESE PARAMETERS MUST BE SAVED (AND RESTORED)
BY THE CALLING ROUTINE TO PREVENT THE CALLING PROGRAM FROM
PERMANENTLY CHANGING THEM.
This routine actually creates the toolpath statements (the GOTO/s, etc)
Called by:
note_engrave.grs
Called by:
note_engrave.grs
Called by:
note_engrave.grs
ABSTRACT: TO DRAW MACHINE SCREWS IN 3D
ABSTRACT: TO CONSTRUCT STANDARD FASTENER HARDWARE
Called by:
n_c_engrave.grs
Called by:
n_c_engrave.grs
Called by:
n_c_engrave.grs
P
THIS PROGRAM FILLS OUT "PAGES" OF INFORMATION ON PRE-DESIGNED
FORMS AND SENDS THE FINISHED FILE TO THE PLOTTER.
CALLING VARIABLES:
NOTNMS - LIST OF NOTE NAMES TO USE FOR FILLING IN BLANKS.
NOTIDX - NOTE INDEX - NUMBER OF LINES FOR EACH NOTE IN SEQ.
NOTSTR - NOTE STRINGS - STRINGS CONTAINING ACTUAL NOTE DATA:
NOTMNS - 10 MAX, NOTIDX - 10 MAX, NOTSTR, 20 MAX
INPFIL - NAME OF TEXT FILE TO READ FROM
PAGCNT - TOTAL NUMBER OF PAGES PLOTTED
PAG1NM - NAME OF PART FILE FOR PAGE 1
PAG2NM - NAME OF PART FILE FOR PAGE 2+ (CAN BE SAME AS PAG1NM)
PASS - CONTROLS STOPPING POINT IN OPERATION:
PASS=0 - JUST CREATE NOTE & PLOT (FOR ALL PAGES)
PASS=1 - RETURN AFTER EACH NOTE IS CREATED
PASS=2 - BUILD PLOT & START ON NEXT NOTE.
(PASS 1/PASS 2 IS USED TO ADD EXTRA DATA TO A FILE
AFTER THE NOTE IS CREATED, BUT BEFORE BUILDING
THE PLOT FILE).
SRESP - "RESP" VALUE FOR SUBROUTINE (1=REJECT,2=TERM,3=NO ERROR)
THE FOLLOWING PART ATTRIBUTES MUST APPEAR ON THE PAGES USED
BY THIS PROGRAM:
PAGE_WIDTH - WIDTH OF PAGE (LOWER LEFT OF PAGE MUST BE
PAGE_HEIGH - HEIGHT OF PAGE AT WCS AND ABSOLUTE 0,0,0)
NOTE_X - X COORDINATE OF TOP LEFT OF NOTE
NOTE_Y - Y COORDINATE OF TOL LEFT OF NOTE
NOTE_LPP - LINES PER PAGE/MAXIMUM FOR THIS PAGE
ANY NOTES TO BE FILLED IN REQUIRE THE ORIGINAL NOTE TO
BE NAMED. THIS NAME WILL BE USED TO REPLACE TEXT IN
THE NOTE WITH THE NOTE STRING DATA.
THERE MUST BE SEVERAL VARIABLES DEFINED BEFORE THIS PROGRAM
WILL RUN. THESE MUST BE DEFINED FOR PAGE 1/COVER AND PAGE 2+
(PAGE 1 WILL BE USED FIRST, THEN PAGE 2+ WILL BE REPEATED
UNTIL THE DATA IS USED UP).
ALL THESE VALUES ARE REPEATED FOR PAGE #2. THE PROGRAM WILL
START BY FILLING OUT PAGE 1, THEN CONTINUE TO PAGE 2. AS EACH
PAGE IS FILLED, IT IS SENT TO THE PLOTTER.
THE DATA WILL BE READ FROM A TEXT DATA FILE. IF '//' CHARACTERS
ARE FOUND, THESE WILL FORCE PAGING AT THAT POINT. OTHERWISE,
THE PROGRAM WILL "PAGE" ACCORDING TO THE LPP1 AND LPP2 VALUES.
SINCE THIS PROGRAM CAN REGENERATE THE PLOTS FASTER THEN IT IS
POSSIBLE TO RETRIEVE THE FILE, NO DATA WILL BE FILED.
THIS SUBROUTINE "CLEANS" UP DUPLICATE ENTITIES. IT DETERMINES
DUPLICATE STATUS BY CHECK COORDINATE DATA AS WELL AS COLOR,
FONT, DENSITY AND LAYER.
THIS ROUTINE COMPARES ALL THE ENITIES IN A PART FILE
TO LOOK FOR DUPLICATE ENTITIES. ANY DUPLICATES ARE
PROCESSED ACCORDING TO THE FIX METHOD IN EFFECT AT
THE TIME.
THIS ROUTINE VERIFIES THAT A FILENAME IS LEGIT FOR USE
ON A PC.
PCNAME - SUPPLIED STRING CONTAINING FILENAME TO VERIFY
ERRMSG - RETURNED STRING CONTAINING ERROR MESSAGES
(UNDEFINED IF SRESP=3)
SRESP - SUBROUTINE RESPONSE: (2=FAIL, 3=SUCCESS)
THIS SUBROUTINE CALCULATES THE RECTANGULAR DISTANCE VECTOR
AND POSITION FROM THE POLAR VECTOR GIVEN
INPUTS: XCENTR -- USED AS 'POLE' IN POLAR CALCULATIONS
YCENTR -- THE Y-COORD OF 'POLE'
RAD -- RADIUS (LENGTH) OF DISTANCE VECTOR
ANG -- ANGLE DISTANCE VECTOR FORMS WITH X-AXIS
OUTPUTS: DX -- DISTANCE PARALLEL TO X-AXIS FROM X CENTER
TO X POSITION
DY -- DISTANCE PARALLEL TO Y-AXIS FROM Y CENTER
TO Y POSITION
XPOS -- LOCATION OF DESTINATION POINT
YPOS -- LOCATION OF DESTINATION POINT
CALCULATE DISTANCE VECTORS AND LENGTH OF DISTANCE VECTOR.
THIS SUBROUTINE DRAWS A POLYGON BASED ON THE NUMBER OF SIDES,
RADIUS OF A CIRCLE, STARTING ANGLE AND INSCRIBE/CIRCUMSCRIBE
VARIABLE USAGE:
NPOS - LOCATION OF CENTER POINT
MODEX - MEANING OF RAD0: (1-INSCRIBED, 2-LENGTH OF SIDE,
3-CIRCUMSCRIBED)
RADX - RADIUS OF INSCRIBE/CIRCUMSCRIBE CIRCLE/LENGTH OF SIDE
ANG0 - ANGLE TO START FIRST SIDE
NSIDES - NUMBER OF SIDES
GRP - ENTITY TO RETURN GROUP IN
PT2PT
SUBROUTINE TO SLIDER-SLIDER, SLIDER-CRANK, AND 3BAR.
THIS IS A PROGRAM TO RESET THE DRAFTING PARAMS
AT THE END OF A MAIN PROGRAM
TO USE IN A MAIN PROGRAM, THE CALL WILL
LOOK LIKE THIS:
CALL/'_PUTPARAMS',LNDENZ,LPHONT,CCIZE,WORKL
Q
ASSIGN OPERATION.
ADMINISTER HELP.
R
THIS SUBROUTINE READS THE CURRENT COLOR SETTINGS FROM THE
SYSTEM. THIS ALLOWS COLORS TO BE LISTED IN MENUS, ETC.
THIS SUBROUTINE READS IN TOOL PATH STATEMENT(S). IT
WILL READ 1 LINE IF THIS IS V9, AND TWO LINES IF
IT IS V10.
TLPATH IS THE TOOL PATH/ STATEMENT LINE, AND TPLINE IS
THE LINE NUMBER WHERE THE TOOL PATH OCCURS.
TLDATA IS THE TLDATA/ LINE (V10 ONLY), AND TDLINE IS
THE LINE NUMBER WHERE THE TLDATA OCCURS.
SRESP IS SET TO: 3 IF WE PROCESSED A TOOL PATH,
2 IF WE FOUND A TOOL PATH, BUT IT WAS
INCOMPLETE
AND 1 IF THE LINE WAS NOT A TOOL PATH.
NOTE: THIS ROUTINE CAN BE USED BY ITSELF TO GET VERY
BASIC INFORMATION ABOUT A TOOL PATH OR IT CAN
BE FOLLOWED BY A CALL TO _DECODE_TOOL_PATH TO
GET MORE INFORMATION FROM THE TOOL PATH/ STATEMENT.
THIS SUBROUTINE CALCULATES THE POLAR DISTANCE VECTOR
AND POSITION FROM THE RECTANGULAR VECTOR GIVEN (2D ONLY)
INPUTS: XCENTR -- USED AS 'POLE' IN POLAR CALCULATIONS
YCENTR -- THE Y-COORD OF 'POLE'
XPOS -- LOCATION OF DESTINATION POINT
YPOS -- LOCATION OF DESTINATION POINT
OUTPUTS: DX -- DISTANCE PARALLEL TO X-AXIS FROM X CENTER
TO X POSITION
DY -- DISTANCE PARALLEL TO Y-AXIS FROM Y CENTER
TO Y POSITION
RAD -- RADIUS (LENGTH) OF DISTANCE VECTOR
ANG -- ANGLE DISTANCE VECTOR FORMS WITH X-AXIS
CALCULATE DISTANCE VECTORS AND LENGTH OF DISTANCE VECTOR.
THIS SUBROUTINE REMOVES ALL CONTROL CHARACTERS FROM A STRING:
THIS SUBROUTINE RESTORES THE CURRENT VALUES OF THE
CALCULATOR FROM A 12-NUMBER ARRAY.
THIS ROUTINE RESTORES THE DISPLAY CONTROL PARAMETERS.
(ACTUALLY ENTITY DISPLAY PARAMETERS &
SYSTEM DISPLAY PARAMETERS AND BORDER DISPLAY CONTROL)
THIS PROGRAM RESTORES THE CURRENT GLOBAL LAYER MASK FROM
THE STRING ARRAY CALLED LAYERS. THE CODES USED ARE:
0 - INVISIBLE
1 - VISIBLE
2 - SELECTABLE
3 - WORK
LAYERS SHOULD BE DIMENSIONS AS A STRING OF (256,1)
SRESP RETURNS A 3 IF THE RESTORE WAS SUCCESSFUL AND
A 2 IF THERE WAS AN ERROR
THIS ROUTINE RESTORES THE CURRENT VALUES OF MODULE PARAMETERS
FROM A NUMERIC ARRAY AND TWO STRINGS. THE TWO STRINGS MUST BE
DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS OF 6 CHARS.
THE ARRAY IS 50 ELEMENTS, EVEN THOUGH ONLY 45 ARE NEEDED.
(THE EXTRAS ARE FOR FUTURE ENHANCEMENTS)
IT DOES NOT HANDLE FONT SETTINGS (HARDLY EVER NEEDED) NOR DOES
IT HANDLE OTHER ENVIROMENT SETTINGS (NOT AVAILABLE FROM GRIP)
THIS ROUTINE RESTORES THE DISPLAY CONTROL PARAMETERS.
(ACTUALLY ENTITY DISPLAY PARAMETERS &
SYSTEM DISPLAY PARAMETERS AND BORDER DISPLAY CONTROL)
THIS ROUTINE RESTORES THE CURRENT VALUES OF MODULE PARAMETERS
FROM A NUMERIC ARRAY AND TWO STRINGS. THE TWO STRINGS MUST BE
DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS OF 6 CHARS.
THE ARRAY IS 50 ELEMENTS, EVEN THOUGH ONLY 45 ARE NEEDED.
(THE EXTRAS ARE FOR FUTURE ENHANCEMENTS)
IT DOES NOT HANDLE FONT SETTINGS (HARDLY EVER NEEDED) NOR DOES
IT HANDLE OTHER ENVIROMENT SETTINGS (NOT AVAILABLE FROM GRIP)
THIS SUBROUTINE RESTORES THE SYSTEM PARAMETER VALUES
FROM A NUMERIC ARRAY, AND FOUR STRINGS. THE FOUR STRINGS
MUST BE DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS
OF 8, 100, 100, AND 100, RESPECTIVELY FOR OPERATION IN A
UGFM ENVIRONMENT.
THERE ARE SOME RESTRICTIONS: IF THE LIST DEVICE
WAS SET TO A FILE, THIS ROUTINE CAN'T TELL WHICH
FILE IT WAS, AND WILL SET IT TO CRT.
DUE A BUG IN GRIP BATCH, LIST DEVICE SETTINGS HAVE NO
EFFECT. (THEY ARE CHANGED, BUT IT DOES NOT SEEM TO EFFECT
OUTPUT).
WCS DATA IS NOT SAVED.
THIS SUBROUTINE RESTORES THE SYSTEM PARAMETER VALUES
FROM A NUMERIC ARRAY, AND FOUR STRINGS. THE FOUR STRINGS
MUST BE DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS
OF 8, 100, 100, AND 100, RESPECTIVELY FOR OPERATION IN A
UGFM ENVIRONMENT.
THERE ARE SOME RESTRICTIONS: IF THE LIST DEVICE
WAS SET TO A FILE, THIS ROUTINE CAN'T TELL WHICH
FILE IT WAS, AND WILL SET IT TO CRT.
DUE A BUG IN GRIP BATCH, LIST DEVICE SETTINGS HAVE NO
EFFECT. (THEY ARE CHANGED, BUT IT DOES NOT SEEM TO EFFECT
OUTPUT).
WCS DATA IS NOT SAVED.
This routine takes three rotation angles and calculates the
resulting 3x3 matrix of direction cosines. The data is stored in a
3x4 for compatibility with UG's TRANSF command.
The rotation sequence is: Rotate about X-axis, rotate about Y-axis,
rotate about Z-axis
S
THIS SUBROUTINE SAVE THE CURRENT VALUES OF THE
CALCULATOR IN A 12-NUMBER ARRAY.
THIS ROUTINE SAVES THE DISPLAY CONTROL PARAMETERS.
(ACTUALLY ENTITY DISPLAY PARAMETERS &
SYSTEM DISPLAY PARAMETERS AND BORDER DISPLAY CONTROL)
THIS PROGRAM READS THE CURRENT GLOBAL LAYER MASK AND
STORES IT IN THE STRING ARRAY CALLED LAYERS. THE
CODES USED ARE:
0 - INVISIBLE
1 - VISIBLE
2 - SELECTABLE
3 - WORK
LAYERS SHOULD BE DIMENSIONED AS A STRING OF (256,1).
SRESP RETURNS A VALUE OF 3 FOR SUCCESSFUL SAVE AND
2 FOR ERROR CONDITIONS
THIS ROUTINE SAVES THE CURRENT VALUES OF MODULE PARAMETERS
IN A NUMERIC ARRAY AND TWO STRINGS. THE TWO STRINGS MUST BE
DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS OF 6 CHARS.
THE ARRAY IS 50 ELEMENTS, EVEN THOUGH ONLY 45 ARE NEEDED.
(THE EXTRAS ARE FOR FUTURE ENHANCEMENTS)
IT DOES NOT HANDLE FONT SETTINGS (HARDLY EVER NEEDED) NOR DOES
IT HANDLE OTHER ENVIROMENT SETTINGS (NOT AVAILABLE FROM GRIP)
THIS SUBROUTINE SAVES THE SYSTEM PARAMETER VALUES
IN A NUMERIC ARRAY, AND FOUR STRINGS. THE FOUR STRINGS
MUST BE DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS
OF 8, 100, 100, AND 100, RESPECTIVELY FOR OPERATION IN A
UGFM ENVIRONMENT.
THERE ARE SOME RESTRICTIONS: IF THE LIST DEVICE
WAS SET TO A FILE, THIS ROUTINE CAN'T TELL WHICH
FILE IT WAS, AND WILL SET IT TO CRT.
WCS DATA IS NOT SAVED.
THIS ROUTINE SAVES THE DISPLAY CONTROL PARAMETERS.
(ACTUALLY ENTITY DISPLAY PARAMETERS &
SYSTEM DISPLAY PARAMETERS AND BORDER DISPLAY CONTROL)
THIS ROUTINE SAVES THE CURRENT VALUES OF MODULE PARAMETERS
IN A NUMERIC ARRAY AND TWO STRINGS. THE TWO STRINGS MUST BE
DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS OF 6 CHARS.
THE ARRAY IS 50 ELEMENTS, EVEN THOUGH ONLY 45 ARE NEEDED.
(THE EXTRAS ARE FOR FUTURE ENHANCEMENTS)
IT DOES NOT HANDLE FONT SETTINGS (HARDLY EVER NEEDED) NOR DOES
IT HANDLE OTHER ENVIROMENT SETTINGS (NOT AVAILABLE FROM GRIP)
THIS SUBROUTINE SAVES THE SYSTEM PARAMETER VALUES
IN A NUMERIC ARRAY, AND FOUR STRINGS. THE FOUR STRINGS
MUST BE DIMENSIONED (IN THE CALLING ROUTINE) TO LENGTHS
OF 8, 100, 100, AND 100, RESPECTIVELY FOR OPERATION IN A
UGFM ENVIRONMENT.
THERE ARE SOME RESTRICTIONS: IF THE LIST DEVICE
WAS SET TO A FILE, THIS ROUTINE CAN'T TELL WHICH
FILE IT WAS, AND WILL SET IT TO CRT.
WCS DATA IS NOT SAVED.
THIS SUBROUTINE TAKES TWO CURVES AND DETERMINES THE BEST WAY TO
CLOSE THE GAP BETWEEN THEM.
IT REPORTS BACK THE METHOD USED, AND CAN BE CALLED SEVERAL
TIMES TO SWITCH BETWEEN DIFFERENT METHODS.
THIS SUBROUTINE ASKS FOR ALL THE INITIAL SETTINGS FOR THE SUPER CHAIN
PROGRAM.
THIS SUBPROGRAM FINDS THE ENTITY SELECT
POINT FOR A POINT, LINE, ARC, CONIC OR
SPLINE WHEN USING AN IDENT STATEMENT
THIS SUBPROGRAM FINDS THE ENTITY SELECT
POINT FOR A POINT, LINE, ARC, CONIC OR
SPLINE WHEN USING AN IDENT STATEMENT.
THIS ROUTINE EXAMINES A VIEW AND MAKES THE LAYERS THAT ARE
VISIBLE IN THAT VIEW ALSO SELECTABLE.
IF THE VIEW IS USING THE GLOBAL MASK, THEN ALL LAYERS THAT
ARE VISIBALE ALSO BECOME SELECTABLE.
A CALL TO SAVE LAYER STATUS BEFORE CALLING THIS ROUTINE AND
RESTORE AFTER THE PROCESS IS DONE
THIS SUBROUTINE EXAMINES A SPLINE AND ADDS KNOT POINTS
TO IT IF NEEDED. (SINCE GRIP CAN'T EDIT A SPLINE, IT
ACTUALLY RE-CREATES THE SPLINE USING POINTS CREATED
AT EQUAL PARAMETER DISTANCES, RE-USING EXISTING KNOT
POINTS ALONG THE WAY).
NOTE: THIS ROUTINE WORKS FOR MINIMUM POINT VALUES [=11
USED IN: TAPS-3D
PROJ2PLN
BIMBA-AIR
TO INTERACTIVELY DETERMINE THE WCS
DWCS AND WCS ARE SET AT THE SAME VALUES
ONE FOR WORK AND ONE FOR SAVE
THIS ROUTINE TAKES A NAME (OPERATION NAME, FILE NAME, ETC),
BUILDS A SORT FIND, SORTS THE FILE, REMOVES THE SORT FIELDS
AND EXITS WITH THE NUMBER OF LINES IN THE FILE.
LIMITS: NAMES ARE LIMITED TO 30 CHARACTERS OF LESS, AND
10 ALPHANUMERIC GROUPS OR LESS. IF A GROUPS OF
LETTERS OR NUMBERS IS LONGER THE 10 CHARACTERS
THE SORT OPERATION MAY BE EFFECTED.
FUTURE ENHANCEMENTS: MAKE BUILDING THE INDEX A TWO-PASS
OPERATION. FIRST PASS WOULD DETERMINE
THE WIDTH OF EACH FILE, THE SECOND
PASS WILL BUILD THE SORT KEYS.
THIS ROUTINE TAKES DATA FROM A STRING ARRAY, PUTS IT INTO
A SCRATCH FILE, SORTS IT AND PUTS IT BACK.
ENTRIES SET TO &NULSTR ARE IGNORED.
A COUNT OF THE LINES PROCESSED WILL BE RETURNED IN LINCNT.
THE 301 IN THE NAME INDICATES THAT THIS ROUTINE HANDLES UP TO
301 LINES OF TEXT.
This routine reads a file containing raw SPC data and
calculates all the numbers needed to create an SPC chart.
It does not plot this data.
This routine takes a string containing numbers separated by commas
and converts it into numeric values and puts them into an array.
This was designed to read raw data for SPC analysis but can be used
whenever a string of numbers needs to be read in with good error
checking.
This routine uses the routines from Multiplot to generate SPC
graphing data. There are two types of output: Blank Charts, which
have an area for filling in data but have no points plotted and
Plotted Charts which use already acquired data to generate charts.
This routine marks a group of points (to identify special conditions).
This routine uses the routines from Multiplot to generate SPC
graphing data. This routine creates a blank chart. If data plotting
and reading is needed, it must be done by routines following this one.
This routine reads the SPC raw data file and plots it on
the chart (which should already exist).
This routine does a lot less error-checking because the file was
read previously by _spcp_calc_from_file.grs and processing would not
reach this point if any errors were detected.
This routine reads the SPC by locating points that indicate
special conditions are present. (Trends, Shifts and Strays).
This routine reads a file containing raw SPC data and
processes any settings embedded in the data. (Command
lines look &[name]=[value]).
ADD SPECIFICATION TAIL TO WELD SYMBOL
ADD SPECIFICATION TAIL TO WELD SYMBOL
THIS SUBROUTINE MERGES SPLINES TOGETHER INTO ONE SPLINE.
IT LOOKS AT THE SPLINES AND DETERMINES THE DIRECTION OF
ORDER OF THE SPLINES. NEXT, IT READS IN THE KNOT POINT
COORDINATES AND CREATES A NEW SPLINE.
THIS IS A LITTLE BETTER THAN "SPLINE APPROX CURVES"
BECAUSE IT USES AN AVERAGING AGORYTHM FOR HANDLING
THE AREAS AROUND END-POINTS OF THE SPLINE.
THIS SUBROUTINE INPUTS INFORMATION NECESSARY
TO MERGE SPLINES TOGETHER. IT CAN ALSO BE USED
TO CONVERT A B-SPLINE TO A REGULAR SPLINE.
THIS ROUTINE READS AN EXISTING SPLINE AND DETERMINE WHICH POINTS
MUST BE ELIMINATED TO AVOID "LOOP BACKS" IN THE NEW SPLINE. IT
ALSO ELIMINATES POINTS THAT ARE WITHIN A MINIMUM DISTANCE AND
CHANGE THE ANGLE OF THE SPLINE LESS THEN A MINIMUM ANGLE.
SINCE THIS ROUTINE CAN DRASTICALLY ALTER THE SHAPE OF A SPLINE,
IT SHOULD BE USED VERY CAREFULLY WHEN ACCURACY IS IMPORTANT.
(SETTING THE MINANG TO -1, THE MAXANG TO 90 AND THE MINDST TO 0
WILL SUPPRESS THE ELIMINATION OF CLOSE POINTS WHILE STILL FIXING
SWITCH BACKS).
NOTE: SPLINE POINT TANGENTS WERE NOT USED BECAUSE VECTORS FROM
POINT TO POINT GAVE A CLEARER PICTURE OF SPLINE SWITCH BACK.
THIS ROUTINE REDUCES THE KNOT POINTS IN A SPLINE. IT CAN BE
USED WHEN CREATING "TRANSITION CURVES" THAT DO NOT REQUIRE
HIGH ACCURACY BUT MUST BE SMOOTH.
THIS ROUTINE READS AN EXISTING SPLINE AND ALLOWS THE USER TO
SELECT POINTS TO IGNORE.
SINCE THIS ROUTINE CAN DRASTICALLY ALTER THE SHAPE OF A SPLINE,
IT SHOULD BE USED VERY CAREFULLY WHEN ACCURACY IS IMPORTANT.
NOTE: SPLINE POINT TANGENTS WERE NOT USED BECAUSE VECTORS FROM
POINT TO POINT GAVE A CLEARER PICTURE OF SPLINE SWITCH BACK.
THIS ROUTINE READS AN EXISTING SPLINE EXTRACTS KNOT POINTS &
TANGENTS THEN GENERATES A SPLINE USING THE KNOT POINTS IN
REVERSE ORDER.
NOTE: SPLINE POINT TANGENTS WERE NOT USED BECAUSE VECTORS FROM
POINT TO POINT GAVE A CLEARER PICTURE OF SPLINE SWITCH BACK.
This subroutine removes leading, trailing and adjecent blanks from
a string.
This subroutine extracts parameter information from a string of the form:
&[param name]=[value] or
&[param name]([subscript])=[value]
ABSTRACT:This routine is passed three parameters
1) str - the string to be tokenized
2) delims - a list of delimeters
3) tokens - an empty 3D array
The calling program would declare
something like this:
tokens(n,2,128)
(n)-----(1) - thetoken
|
(2) - the associated delimeter
The routine then parses the string using the
list of delimeters. It stores the
delimeted token in the first sub element
of the array labeled tokens
and the delimeter associated with the token
is stored in the 2nd sub element
NOTE: the first element of the tokens array
is reserved for the number of tokens
in the array, this routine stores that
number in the array.
This subroutine removes any trailing blanks from a string.
THIS PROGRAM CHAINS ENTITIES WITHOUT USEING THE "CHAIN" STATEMENT.
VARIABLES:
INPUT:
ZTOLER - Z-AXIS TOLERANCE (MAXIMUM Z-DEVIATION ALLOWED)
CHDIST - MAXIMUM DISTANCE TO CHAIN ACROSS
STARTC - INITIAL COLOR ASSIGNED TO ENTITIES WHEN THEY
ARE LOADED INTO THIS ROUTINE
ERRORC - ERROR COLOR, USED TO HIGHLIGHT NON-PLANAR ENTITIES
DONEC - COLOR ASSIGNED TO CHAINED ENTITIES
ATTSW - ATTRIBUTE SWITCH, IF &YES, ENTITIES ASSIGNED
CHAIN NUMBERS.
DIAGLV - DIAGNOSTIC LEVEL
OUTPUT:
CHGRP - GROUP OF CHAINED ENTITIES, IN REVERSE ORDER
SRESP - SUBROUTINE RESPONSE (3-SUCCESS)
THIS SUBROUTINE PROJECTS A CURVE ONTO A LIST OF SURFACES,
EXTRACTS THE CURVES FROM THE RETURNED GROUP, THEN
MERGES THE CURVES INTO ONE SPLINE.
NOTE: WHILE THIS ROUTINE CAN HANDLE UP TO 500 SURFACES, ONLY
100 PROJECTIONS ARE ALLOWED PER CURVE. (THIS LIMIT IS
SET DOWN IN _SPLINE_MERGE.GRS)
T
THIS PROGRAM READS IN TABLET DATA FROM THE NUMONICS TABLET
OUTPUTS: KEY -- A VALUE FROM -5 TO 16 INDICATING DIGITIZER/
FUNCTION KEYBOARD INPUT. (0-16 ARE KEYS ON
DIGITIZER, 0-15 REPRESENT 0-F ON "MOUSE", 16
IS THE DIGITIZER PEN). -5 TO -1 IS THE VALUE
OF "RESPONSE" IF A DIGITIZER KEY WAS NOT
HIT (-5 -- DATA SENT, JUST NO KEY DATA,
-3 -- NO DATA SENT, -2 -- "TERMINATE",
-1 -- "REJECT")
XPOS - X-AXIS LOCATION, 0[XPOS[99.999 OR -99.999[XPOS[0
OR ANYWHERE IN BETWEEN, DEPENDING ON ORIGIN.
YPOS - Y-AXIS LOCATION, SAME RANGE AS XPOS
NORMALIZES TABLET INPUT DATA (SCALE, REF.TO ZERO POINT)
THIS ROUTINE USES THE OUTPUT FROM _TEMPLATE_SETUP.GRS TO DO TEMPLATE
MATCHING IN GRIP. TO SPEED UP THE PROCESS, VARIOUS "ACELLERATORS" ARE
USED: STRING LENGTH CHECKING IS USED TO ELIMINATE STRINGS THAT
ARE TOO SHORT TO MATCH, AND VARIOUS SUBSTRING MATCHES ARE USED TO
ELIMINATE SEARCH TIME.
(SEE TEMPLATE_SETUP FOR A LIST OF PARAMTERS & VALUES)
THIS SUBROUTINE SETS UP THE TEMPLATE PARAMETERS. IT IS CALLED
ONCE, AFTER THE TEMPLATE IS ENTERED, BUT BEFORE IT IS USED FOR
MATCHING.
SOME PERFORMANCE GAINS CAN BE HAD BY:
SKIPPING TEMPLATE MATCHING ENTIRELY AND ASSUMING A MATCH WHEN MODE = -1,
AND ATTEMPTING AN EXACT MATCH AND SKIPPING THE TEMPLATE MATCHING ROUTINE
WHEN MODE = 0.
THIS SUBPROGRAM GENERATES AN ARROW,DOT,
TILDE ON THE END OF A LINE, ARC, CONIC, OR
SPLINE
ABSTRACT: PERFORM TEXT EDITING WITHIN GRIP.
In it's current state, it is used as sub-program but it can
also run as a main by editing the first and last line
Called by:
fasteners.grs
This routine is used to time processes within a GRIP program. It
was originally written to time different programming techniques
for a talk at the September User's meeting.
SCRFIL should be set to a scratch file number that is not
used by the calling routine. It is not used until this routine
is called with MODSTR set to END.
MODSTR is used to control how the timing process is run. Possible
values are: START - used to reset log files & start timing
INTERVAL - used to time several steps in a process
END - finishes timing & generates listing
of timing intervals.
MESSGX contains the message that should be associated with a given
process, such as "STARTING SURFACE GENERATION". This string
should be 103 characters or less for 132 char display or
53 characters or less for 80 column output.
DSPMOD if set to &YES, outputs timing info, in real time, to the
ugii window. (This window is usually in the background)
EVENTC Event count - this number is used to determine a processing
rate. If zero, it is ignored.
SRESP Subroutine Response variable. Set by this routine to
1=Parameter Error, 2=Failure, 3=Success.
THIS SUBROUTINE CONVERTS A TIME STRING TO COMPUTATIONAL TIME.
FUNCTIONAL OPERATION SIMILAR TO UF3611.OB, EXCEPT FORMULA FOR
CTIME IS HOURS*3600+MINUES*60+SECONDS. DIVIDE THIS ROUTINE'S
COMPUTATIONAL TIME BY SIX TO USE WITH MCAUTO'S ROUTINES)
STRING SIZE (CHARS) FORMAT EXPECTED
4 HHMM (COMPRESSED HOURS:MINUTES)
5 HH:MM (STANDARD HOURS:MINUTES)
6 HHMMSS (COMPRESSED HOURS:MINUTES:SECONDS)
8 HH:MM:SS (STANDARD HOURS:MINUTES:SECONDS)
9 HHH:MM:SS (ELAPSED TIME HOURS:MINUTES:SECONDS)
THIS SUBROUTINE CONVERTS A COMPUTATIONAL TIME TO A TIME STRING
FUNCTIONAL OPERATION SIMILAR TO UF3610.OB, EXCEPT FORMULA FOR
CTIME IS HOURS*3600+MINUES*60+SECONDS. MULTIPLY MCAUTO'S
COMPUTATIONAL TIME BY SIX TO USE THIS ROUTINE.
TFORMAT VALUE FORMAT
1 HHMM (COMPRESSED HOURS:MINUTES)
2 HH:MM:SS (STANDARD HOURS:MINUTES:SECONDS)
3 HH:MM (STANDARD HOURS:MINUTES)
4 HHMMSS (COMPRESSED HOURS:MINUTES:SECONDS)
5 HHH:MM:SS (ELAPSED TIME HOURS:MINUTES:SECONDS)
THIS ROUTINE CREATES A TRANSITION SPLINE BETWEEN TWO CURVES,
WHILE PRESERVING TANGENCIES, ETC.
THE MIDPNT ENTITY CAN BE ONE OF THREE VALUES: NULL - MEANING
THERE IS NO MID-POINT, A POINT, TO BE USED AS A MID POINT IN
THE RESULTING SPLINE, AND A GROUP OF UP TO 10 POINTS TO CONTROL
THE TRANSITION SPLINE EVEN MORE PRECISELY.
U
THIS SUBPROGRAM GENERATES THE LEADER
ORIGIN FOR A WELD SYMBOL
THIS SUBROUTINE CONVERTS A STRING TO ALL UPPERCASE.
IT IS USED IN UNIX FILENAMES BEFORE DISPLAYING ON UG MENUS.
THIS ROUTINE IS AN ENHANCED VERSION OF UF3610.OB
IT CONVERTS COMPUTATION DATE & TIME DATA TO CONVENTIONAL
DATE & TIME STRINGS. IT ALLOWS FROM SEVERAL FORMATS. SEE
DOCUMENTATION ON DATE_TO_CONV.F77 AND TIME_TO_CONV.F77
FOR MORE INFORMATION. IT IS 100% MCAUTO COMPATIBLE.
THIS ROUTINE IS AN ENHANCED VERSION OF UF3611.OB
IT CONVERTS CONVENTIONAL DATE & TIME STRINGS TO COMPUTATIONAL
DATE & TIME DATA. IT ALLOWS FROM SEVERAL FORMATS. SEE
DOCUMENTATION ON _DATE_TO_COMP.GRS AND _TIME_TO_COMP.GRS
FOR MORE INFORMATION. IT IS 100% MCAUTO COMPATIBLE.
THIS ROUTINE DETERMINE THE 3-4 DIGIT VERSION NUMBER FROM A UG VERSION
NAME OR VICE VERSA.
THE VERSION NUMBER IS THE LAST PART OF THE NAME OF THE DIRECTORY:
FOR 9.1, IT WOULD BE 091, FOR 10.5 IT WOULD BE 105 AND SO ON.
THE VERSION NAME IS THE VALUE DISPLAYED BY &RELNO OR &UGVERS
This code will receive a string and then return the string
converted to uppercase.
V
THIS ROUTINE CONVERTS NUMBERS TO STRINGS, WITH ERROR CHECKING.
Called by:
str_ft_in.grs
W
THIS SUBPROGRAM GENERATES THE LEADER
ORIGIN FOR A WELD SYMBOL
THIS SUBPROGRAM GENERATES THE LEADER
ORIGIN FOR A WELD SYMBOL
X
THIS SUBROUTINE CREATES A MATRIX TO REPOSITION FROM ONE
COORDINATE SYSTEM TO ANOTHER. IT WORKS BY USING THE
AXIS VECTORS AND ORIGIN OF THE SECOND CSYS WITH RESPECT TO
THE FIRST. IF THE SUPPLIED ENTITY IS DEFINED, IT WILL
TRANSFORM IT.
CSYS1 - REFERENCE COORDINATE SYSTEM
CSYS2 - DESTINATION COORDINATE SYSTEM
MAT0 - TRANSFORMATION MATRIX
GRP - GROUP/ENTITY TO BE TRANSFORMED
(SET TO &NULENT IF JUST "MAT0" IS NEEDED)
GRP2 - NEW GROUP (IF COPIED)
MOVESW - SWITCH TO DETERMINE IF TRANSFORM IS A MOVE
(SET TO &YES FOR MOVE, &NO FOR COPY)
SRESP - SUBROUTINE RESPONSE
(2=TERMINATE/ERROR, 3=ENTRY COMPLETE/SUCCESS)
NOTE: THIS SUBROUTINE WAS COPIED FROM V10 (PRE-RELEASE) OF
THE GRIP INTERNATIONAL LIBRARY.
THIS SUBROUTINE CREATES A MATRIX THAT WILL ROTATE ENTITIES ABOUT
AN ARBITRARY POINT. THE PLANE OF ROTATION IS DETERMINED BY RPLN
IF THE SUPPLIED ENTITY IS DEFINED, IT WILL TRANSFORM IT.
XC, YC, ZC - COORDINATES OF POINT TO ROTATE ABOUT
ANG - ANGLE TO ROTATE
RPLN - PLANE OF ROTATION: (1-XY, 2-YZ, 3-ZX)
MAT0 - TRANSFORMATION MATRIX
GRP - GROUP/ENTITY TO BE TRANSFORMED
(SET TO &NULENT IF JUST "MAT0" IS NEEDED)
GRP2 - NEW GROUP (IF COPIED)
MOVESW - SWITCH TO DETERMINE IF TRANSFORM IS A MOVE
(SET TO &YES FOR MOVE, &NO FOR COPY)
SRESP - SUBROUTINE RESPONSE
(2=TERMINATE/ERROR, 3=ENTRY COMPLETE/SUCCESS)
NOTE: THIS SUBROUTINE WAS COPIED FROM V10 (PRE-RELEASE) OF
THE GRIP INTERNATIONAL LIBRARY.
THIS SUBROUTINE CREATES A MATRIX THAT WILL SCALE ENTITIES ABOUT
AN ARBITRARY POINT. IF ONLY XS IS NON-ZERO, THE SCALING OPERATION
IS DONE USING ONLY THIS FIRST SCALE. IF THE SUPPLIED ENTITY IS
DEFINED, IT WILL TRANSFORM IT.
XC, YC, ZC - COORDINATES OF POINT TO SCALE ABOUT
XS, YS, ZS - SCALE FACTORS
(TO SCALE USING ONE FACTOR, SET YS & ZS
TO ZERO)
MAT0 - TRANSFORMATION MATRIX
GRP - GROUP/ENTITY TO BE TRANSFORMED
(SET TO &NULENT IF JUST "MAT0" IS NEEDED)
GRP2 - NEW GROUP (IF COPIED)
MOVESW - SWITCH TO DETERMINE IF TRANSFORM IS A MOVE
(SET TO &YES FOR MOVE, &NO FOR COPY)
SRESP - SUBROUTINE RESPONSE
(2=TERMINATE/ERROR, 3=ENTRY COMPLETE/SUCCESS)
NOTE: THIS SUBROUTINE WAS COPIED FROM V10 (PRE-RELEASE) OF
THE GRIP INTERNATIONAL LIBRARY.
THIS ROUTINE PERFORMS THE XRUN/XSPAWN COMMAND. (THE ACTUAL COMMAND USED
IS DEPENDENT ON THE VERSION OF UG THAT IS USED TO COMPILE THIS ROUTINE)
IT DOES NOT RETURN ANY RESULTS OR VERIFY OPERATION OTHER THAN TO TRAP
FAILURE.
THIS VERSION IS USED TO RUN A UNIX COMMAND.
THIS ROUTINE PERFORMS THE XRUN/XSPAWN COMMAND. (THE ACTUAL COMMAND USED
IS DEPENDENT ON THE VERSION OF UG THAT IS USED TO COMPILE THIS ROUTINE)
IT DOES NOT RETURN ANY RESULTS OR VERIFY OPERATION OTHER THAN TO TRAP
FAILURE.
THIS VERSION IS USED TO RUN A UNIX SCRIPT. IT FIRST CHANGES PERMISSION
ON THE SCRIPT TO "rwx------" (700) THEN EXECUTES IT.
THIS ROUTINE GENERATES TRACE CURVES FOR AN XY ROTATION