Вы находитесь на странице: 1из 23

1

Chapter
13
Scripting







PADDS has a number of advanced drawing and detailing features. One such feature is the Pascal
scripting function built into PADDS. This powerful application allows for the writing and editing
of scripts to further simplify the drawing and detailing capabilities of PADDS.


This chapter introduces the following principles:

The PADDS scripting environment
General commands
Script structure and syntax
Page Break
The PADDS scripting environment
This section briefly describes the procedure to start a PADDS scripting session and the elements of
the scripting environment. For information regarding the general PADDS environment and
commands, refer to Chapter 1.









2
Starting Pascal scripting
In PADDS, select the Edit script option from the Macro menu. The Pascal scripting window will
be opened. The last script to be edited or run will be displayed.

A brief menu is found at the top of the screen. This menu provides access to general file functions,
running of the script, certain script examples and the help menu. Several options buttons are found
at the bottom of the screen.

The column to the left of the screen shows the line numbers of the script and is known as the gutter.



Page Break
Run
Debugging buttons









3
General commands
The general commands and other functions can be selected from the menu and the option buttons.
The following commands and options are available:

File menu : Offers the standard file functions: New, Open, Save, Save As and Close. A
debugging option is also offered. When selected, debugging of the script occurs during
running. However, if the script has already been debugged, it runs quicker if debugging
mode is not selected.
Run : Run the script.
Examples menu : A few examples demonstrating scripting aspects.
Help menu : Gives a selection of help topics.
Undo button : Allows the most recent action to be undone.
Transparency button : Transparency of the scripting screen can be selected in order to view
the running of the script through the scripting screen, if required.
Run and debugging buttons : The debugging buttons are disabled until the run (green arrow)
button is selected.

Using Scripting Help
The Pascal scripting Help gives guidance on the scripting commands supported by PADDS. The
default Help file can be edited and saved as a custom Help file. When accessing Help the user can
then decide which Help file to refer to. PADDS updates will update the default Help file, but not
the custom files.

For help on PADDS commands or to contact PROKON, use the PADDS Help menu, as described
in Chapter 1.

The script structure
A typical script structure consists of two major blocks:

Procedure and function declarations
Main block

Both are optional, but at least one should be present in a script. The main block need not
necessarily be inside begin end. It could simply be a single statement.









4
Page Break
Script syntax
Standard statements are available in scripting and certain aspects should accompany a statement.
The following aspects should be noted:
Each statement in a script should be terminated by a ; character.
Begin end blocks are used to group statements.
The case of letters is not important.
The following operators are supported: ^, *, /, and, +, -, or, <>, >=, <=, =, >, <, div, ,
sqr, sqrt, mod, xor, shl, shr
The syntax for various standard statements are given and discussed below.

Assign statements
Assign statements are used to assign a value or expression result to a variable or object property.
They are built and indicated by using :=. Some examples:

fac:=rval(s);
ie:=getcircle('Indicate circle?');
j:=i+1;
dc:=distance(xa,ya,xb,yb);

Character strings
A string is a sequence of characters. Strings are declared using a single quote () character. For
example:

A:=This is text;

Comments
Comments can be inserted in scripts or statements can be commented out (ie. rendered
ineffective) using the // characters. The comment will finish at the end of the line. Alternatively, for
comments longer than a line, use the (* *) or { } characters. Some examples:

// Single line comment
{Comments are useful for recording thoughts behind the commands
or for labelling parts of the script for easier reference}
Page Break
Variables
Variables do not need to be declared in scripting. They are implicitly declared. Consider the
following example:










5
var A;
begin
A:=0;
A:=A+1;
end;

In this example, the variable A is declared. However, if the statement var A declaring variable A
was omitted, the script would still be valid.

Indexes
Strings, arrays and array properties can be indexed using the square bracket characters [ ]. For
example, the expression Str[3] returns the third character in the string Str. Further:

MyChar:=MyStr[2];
MyStr:=A;
MyArray[1,2]:=1530;

Arrays
Use the [ ] characters to construct an array. Multi-index array constructors can also be used. In a
multi-indexed array, separate the indexes using , characters.

Scripting supports indexing in a variable that is a variant array. A variable is a variant array if:
it was assigned using an array constructor, or
it was created using the VarArrayCreate procedure.
Arrays in script are 0-based indexes.

Some examples:

NewArray:=[1,2,3,4];
Num:=NewArray[1];
//Num takes on 2
MultiArray:=[[red,blue,yellow],[apple,banana,orange
];
Str:=MultiArray[0,2];
//Str takes on yellow
v:=vararraycreate([1,n1],12);
//Create an array of n1 variants
Page Break
If statements
Two forms of if statement exist, namely the if then and if then else statements. If the if
expression is true, the statement or block is executed. If the statement is false and there is an else
part, the statement or block following the else is performed. Some examples:










6
if not YesNoDlg('Keep changes?') then PopDwg;

if not intersec(x1,y1,x2,y2, x3,y3,x4,y4, xi,yi) then
errormsg('Lines are parallel');

if K<>0 then Result:=J/K;
if K=0 then Exit else Result:=J/K;

if K<>0 then
begin
Result:=J/K;
Count:=Count+1;
end
else
Done:=True;

While statements
A while statement is used to repeat a statement or block for as long as a control expression is
evaluated as true. The control expression is evaluated prior to the statement. Thus, if the control
expression is false at the first iteration, the statement is never executed. Execution of the statement
will continue for as long as the control expression remains true. For example:

while Data [M]<>Y then do M:=M+1;

while M>0 do
begin
if Odd(M) then X:=X*Y;
M:=M div 2;
Y:=Sqr(Y);
end;

while 2>1 do
begin
setpoint('Point?',x,y);
end;
Page Break
Repeat statements
A repeat statement has the following syntax: repeat statement 1; ; statement n; until expression
where the expression returns a Boolean value. The repeat statement continuously executes its
sequence of statements, testing the expression after each iteration. The repeat statement terminates
only when the expression returns True. Consider the examples:

repeat
Write(Enter a value (0..9): );
Readln(X);
until (X>=0) and (X<=9);









7

repeat
if not gettext('txt') then break;
infomsg(txt.text);
until false;

For statements
The syntax for a for statement is as follows: for counter:=initialValue to finalValue do statement.
The statement (or block) is repeatedly executed until the value of the counter, which is incremented
after each iteration from the initialValue, reaches the finalValue. For example:

for i:=low(sa) to high(sa) do
sa[i]:=vararraycreate([1,3],8);

Function and procedure declarations
The declaration of procedures and functions, if used in a script, occurs at the beginning of a script.
Frequently used statements or blocks can be declared as procedures or functions for repeated use
within a script, just as in conventional programming. The only significant difference is that with
scripting variable types do not need to be specified. Functions are procedures that return a result.
Consider the following examples:

function GetDim(Name);
begin
s:='800';
result:=1*inputstring('Dimensions',Name+'?, s);
end;

function Max(x,y);
begin
if x>y then result:=x
else result:=y;
end;

procedure Msg;
begin
infomsg('Hello Joe');
end;

Procedures and functions are then called or used in the main part of the script. When functions are
defined, the required input is defined. Then when functions are called, values for the stipulated
input are given, and the result of the function is usually assigned to a variable. Procedures are
called by simply using their names as statements. Some examples:

begin
MSG;
end;









8
//calls procedure named Msg (see above examples)

v:=max(10,7);
{calls function Max defined in examples above and assigns
function result to variable v}

Debugging a script
In order to debug a script, the Debugging mode option under File on the menu must be selected.
The debugging buttons at the bottom of the screen become active when the Run option on the menu
or the Run button are selected. The debugging buttons are as follows:








These buttons have the following functions:
Pause : Pauses script during running at the position reached in the script. Selecting this
button again removes the pause and allows the script to continue running.
Show execution point : Shows position in script during running.
Trace over : Runs through script line for line, regarding functions as a single statement.
Trace into : Same as Trace over, except that when a function is reached, it is also run
through line for line, rather than being regarded as a single statement.
Stop : Stops the script running.

To force the script to stop at a certain point, click on the required line number in the gutter of the
scripting screen. A break point, denoted by a red dot, will then be created at that position.
Page Break
Commands supported
In the following reference list of supported script commands, the number after the command
denotes how many input values are required with that command.

Stop
Trace Into
Trace Over
Show Execution
Point
Pause









9
System library:

UpperCase, 1 Returns a copy of a string in uppercase.
LowerCase, 1 Converts an ASCII string to lowercase.
CompareStr, 2 CompareStr compares S1 to S2, with case-sensitivity. The return
is less than 0 if S1 is less than S2, 0 if S1 equals S2, or greater if
S1 is greater than S2.
CompareText, 2 Compares two strings by ordinal value without case sensitivity.
AnsiUpperCase, 1 Supports multi-byte character sets
AnsiLowerCase, 1
AnsiCompareStr, 2
AnsiCompareText, 2
Trim, 1 Trims leading and trailing spaces and control char's from a string.

s:=Trim(' Junk ' #13#10);
TrimLeft, 1 Trims leading spaces and control characters from a string.
s:=TrimLeft(' Junk');
TrimRight, 1 Trims trailing spaces and control characters from a string.
qq:=TrimRight('Junk' +#13);
IsValidIdent, 1 Tests for a valid Pascal identifier.
IntToStr, 1 Converts an integer to a string. i2s below is less typing
IntToHex, 2 Returns the hex representation of an integer
StrToInt, 1 Converts a string that represents an integer to a number.
qq:=StrToInt('10');
StrToIntDef, 2 Default parameter specified
FloatToStr, 1 Converts a floating point value to a string.
qq:=FloatToStr(75.34216);
Format, 2 Returns a formatted string assembled from a format string
and an array of arguments.
FormatFloat, 2 Formats a floating point value
qq:=FormatFloat(75.34216,2);
StrToFloat, 1 Converts a given string to a floating-point value.
qq:=StrToFloat('23.67895');
EncodeDate, 3 Returns a TDateTime value for a specified Year, M and Day.
EncodeTime, 4 Returns a TDateTime value for a specified H, M, S, and millisec.
DecodeDate, 4 Returns Year, Month, and Day values for a TDateTime value.
DecodeTime, 5 Breaks a TDateTime value into hours, min, sec and millisec.

DayOfWeek, 1 Returns the day of the week for a specified date.
Date, 0 Returns the current date.
Time, 0 Returns the current time.
Now, 0 Returns the current date and time.
IncMonth, 2 Returns a date shifted by a specified number of months.
IsLeapYear, 1 Indicates whether a specified year is a leap year.









10
DateToStr, 1 Converts a TDateTime value to a string.
TimeToStr, 1 Returns a string that represents a TDateTime value.
DateTimeToStr, 1 Converts a TDateTime value to a string.
StrToDate, 1 Converts a string to a TDateTime value.
StrToTime, 1 Converts a string to a TDateTime value.
StrToDateTime, 1 Converts a string to a TDateTime value.
FormatDateTime, 2 Formats a TDateTime value.
Beep, 0 for i:=1 to 300 do
begin
Beep;
end;
VarIsNull, 1 Indicates whether the specified variant is Null.
Round, 1 Returns value X rounded to the nearest whole number.
qq:=Round(5.4); gives qq=5.0
Trunc, 1 Truncates a real number to an integer.
qq:=Trunc(5.7);
gives an integer of 5
Copy, 3 Returns a substring of a string.
inpstr:='abcdefghijk x:=copy(inpstr,3,5);
x will be 'cdefg' copies from 3rd character of 5 characters c d e f g
Delete, 3 Removes a substring from a string.
x:=delete(inpstr,3,5);
a will be abhijk deleted from 3rd character of 5 characters c d e f
g
Insert, 3 Inserts a substring into a string beginning at a specified point.
qq:=Insert('zzz','abcdef',4);
Pos, 2 Returns the index a specified substring in a given string.
qq:=pos('/','aaaa/bbb');
Length, 1 Returns the number of characters in a string.
qq:=Length('abcdef');
ShowMessage, 1 Displays a message box with an OK button. infomsg is less typing
InputQuery, 3 Displays an input dialog that lets the user enter a string or value.
Raise, 1 Create an exception object
CreateOleObject, 1 Instantiates a single instance of an Automation object.
GetActiveOleObject, 1 Retrieves a reference to an IDispatch interface to a currently
running, registered COM object.
VarToStr, 1 Converts a variant to a genuine string.
qq:=VarToStr(qq);
Dec, 1 Decrements a variable by 1.
Inc, 1 Increments an ordinal value by 1.
High, 1 Returns the highest value in the range of an argument.
Low, 1 Returns the lowest value in a range.
VarArrayHighBound, 2 Returns high bound for a dimension in a variant array.
VarArrayLowBound, 2 Returns low bound of a dimension in a variant array.
VarArrayCreate, 2 Creates a variant array.









11
qq:=VarArrayCreate([10,100], 3);
Low bound 10, High bound 100(<10000), type=3 (integer).
Where 3 integer
4 single
5 double
8 string (must be genuine strings use VarToStr on all
input)
9 boolean
11 byte
12 variant (Best when in doubt)
Random, 0 Generates random numbers between 0 and 1.
Machine, 0 Returns a pointer to current virtual machine object.
Scripter, 0 Returns a pointer to current scripter object.
Page Break
General functions

PreviewScript 0 Previews a script run directly from the menu
Nent, 0 Number of entities in drawing
Natt, 0 Number of attributes in drawing attribute list
Nstr, 0 Number of lines in current text entity. Use for MultiLine text block
Ient, 0 Number of last snapped entity
Iline, 0 Number of individual line in polyline structure
Layer, 0 Current layer qq:=Layer;
Scale, 1 Layer scale ( 0 for current layer)
scale:=Scale(qq);
will give .01 if current layer is 1:100 and .02 if current layer is 1:200
LayerOn, 1 Test if layer is on
qq:=LayerOn(Lno);
then use "if...." to respond
Pen, 0 Current pen
Font, 0 Current font number
GetEntity, 1 Load specified entity into entity structure. See ient above
GetEntity(ient); can then access the entities structure
eg. if the entity snapped was a text string then qq:=txt.Text; will put
the text string into qq
GetEntityLayer, 1 Get layer number of specified entity
Lno:=GetEntityLayer(ient);
SetEntityLayer, 2 Set layer number of specified entity (Entity #, layer #)
SetEntityLayer(ient,Lno);
SetEntityPen, 2 Set pen of specified entity
GetEntityPen, 1 Get pen of specified entity
qq:=GetEntityPen(ient);









12
SetEntityAtt, 2 Set attribute number of specified entity
GetEntityAtt, 1 Get attribute number of specified entity
SetEntityStyle, 2 Set line style of specified entity (as integer)
GetEntityStyle, 1 Get line style of specified entity (as integer)
PutEntity, 1 Replace specified entity
AddEntity, 1 Add entity in entity structure to drawing
DelEntity, 1 Delete specified entity
MarkDrawEntity 1 Highlights the entity on the drawing (Specify entity number) Still needs
work want to keep highlighted until "BU_"
DrawEntity, 1 Redraws the entity (Specify entity number)
'ShowOffLayers, 1 True : Draws off layers with a gray pen.
False : Do not draw off layers.
Inblock, 1 Test if entity (by number) is currently in block
AddToBlock, 1 Adds entity (by number) to block
RemoveFBlock, 1 Removes entity (by number) from block
GetAttString, 1 Accepts an integer and returns the attribute label
GetAttNumber, 1 Accepts a string and returns the attribute number
SetAttString, 2 Sets the attribute label for the specified number
e.g. setattstring(3, 'ND512');
PushDwg, 0 Save drawing to temporary folder all scripts should
start with this
PopDwg, 0 Restores drawing from temporary folder. Use with "Accept" at end
DrawingName, 0 Returns full path name of current drawing
Intersec, 10 Calculates the intersection between 2 lines
e.g. Intersec(x1,y1,x2,y2, x3,y3,x4,y4, xi,yi);
IntersecI, 10 Like intersec but only returns true if the lines actually cross each other.
IntersecCL, 11 Calculates the intersection between a circle and line and returns the
number of intersections (0,1,or 2)
e.g. n:=IntersecCL(x,y,r,
x1,y1,x2,y2,xi1,yi1,xi2,yi2);
Distance, 4 Calculates the distance between 2 points
e.g. qq:=Distance( x1,y1,x2,y2);
DistancePL, 6 Calculates the distance between a point and line (>0 for left)
e.g. qq:=DistancePL(x,y, x1,y1,x2,y2);
PointOnLine, 6 Calculates the projection of a point on a line (true if projection between
end points)
e.g. PointOnLine(x,y, x1,y1,x2,y2);
InterPolate, 5 Interpolates a value between to coordinates
e.g. y:=Interpolate(x1,y1,x2,y2, x);
Exec, 1 Executes a .exe file. Still falls through into next line in script add stopper
flag:=0;
Exec('c:\prokon\data\$-exe\ Dump_It.exe');
while flag<>1 do
begin
delay(1);









13
end;
then .exe file must set flag to 1 just before it exits
ExecCenter 1 Executes a .exe file and moves the window to screen centre
ExecWait 1 Executes a .exe file and waits until it is closed
Run, 1 Runs a psc file
run('c:\prokon\data\$-psc\ Do_It.psc');
RunUnit 3 Runs a specific function into a .psc file and returns the function value e.g.
Xm:=RunUnit('c:\prokon\data\$-psc\Unit.psc',
'MaxValue', [5.0, 8.5]);
Below is a procedure called "Show1.psc":
procedure Show1(a)
begin
infomsg('Input to a is '+a);
end;
Called thus it will show what is in "a"
a:='It worked !!!';
RunUnit('c:\prokon\data\$-psc\show1.psc',
'Show1',[a]);
SetLib 1 Specifies a global .psc library file.
RunLib 2 Runs a library function and returns the function value,
e.g Xm:=RunLib(MaxValue, [5.0, 8.5]);
SetVal, 1 Sets 1 value before executing a drawing command that requires it can be
stacked one above the other to set more values should the command below
require it
SetVal2, 2 Sets 2 values
SetText, 1 Sets a string
SetChar, 1 Sets a character
SetYN, 1 Sets a Yes or No cahracter ('Y' or 'N')
GetPoint, 3 'Prompt', x, y Prompts for a point
SetPoint, 3 'Prompt', x, y Prompts for point and set it
GetLine, 1 'Prompt' Returns entity no (ient) + line no (iline)
GetPolyLine, 1 'Prompt' Returns entity no (ient)
GetCircle, 1 'Prompt' Returns entity no (ient)
GetArc, 1 'Prompt' Returns entity no (ient)
GetText, 1 'Prompt' Returns entity no (ient)
GetPnt, 1 'Prompt' Returns entity no (ient)
GetHatch, 1 'Prompt' Returns entity no (ient)
GetRebar, 1 'Prompt' Returns entity no (ient)
GetBitmap, 1 'Prompt' Returns entity no (ient)
GetAnyEntity, 1 'Prompt' Returns entity no (ient)
SnapLine, 2 Returns entity number (ient) of closest line to specified x, y (0 if nothing
found)
SnapCircle, 2 Returns entity number (ient) of closest circle to
specified x, y (0 if nothing found)
SnapArc, 2 Returns entity number (ient) of closest arc to specified x, y (0 if nothing









14
found)
SnapEntity, 2 Returns entity number (ient) of closest entity to specified x, y (0 if nothing
found)
R2S, 2 Converts a real number to a string (value, number of decimals)
I2S, 1 Converts an integer to a string
Char, 1 Converts an ordinal value to a string
IncStr, 1 Returns incremented numeric or alphabetical string
DecStr, 1 Returns decremented numeric or alphabetical string
Textwidths, 1 Returns the width of the specified string in mm
Exit, 0 Terminates the script
Delay, 1 Delays script or specified no of milliseconds
Page Break
Entity structures

e.g. lin.L refers to the layer of the line object and
lin.X[1] refers to the x coordinate of the first vertex of a line

lin Line entity

Lno Layer integer
Pen Pen integer
Stl Style integer
Typ Type integer
Num Number of line segments integer
Xc Array of X coordinates real
Yc Array of Y coordinates real
Att Attribute integer

cir Circle entity

Lno Layer integer
Pen Pen integer
Stl Style integer
Rad Radius real
Xc X coordinate real
Yc Y coordinate real
Att Attribute integer

earc Elliptical arc entity

Lno Layer integer
Pen Pen integer









15
Stl Style integer
R_x X Radius real
R_y X Radius real
Ang Main Axis angle real
A_1 Start angle real
A_2 End angle real
Xc X coordinate real
Yc Y coordinate real
Att Attribute integer

pnt Point entity (dot or ring)

Lno Layer integer
Pen Pen integer
Typ Type integer T=1 => Dot
T=2 => Ring
Dia Diameter real
Xc X coordinate real
Yc Y coordinate real
Att Attribute integer

txt Text entity

Lno Layer integer
Pen Pen integer
Fnt Font integer
Jus Justify integer (02 = Left Top)
Bold Bold boolean
Italic Italic boolean
Underline Underline boolean
Hgt Height real
Ang Angle real
W_F Width factor real
L_S Line spacing factor real
Xc X coordinate real
Yc Y coordinate real
Text Text string
Att Attribute integer

fil Hatch entity

Lno Layer integer
Pen Pen integer
Stl Style integer









16
Num No of vertices integer
P_S Paper scale boolean
ScF Scale factor real
Ang Pattern angle real
X_o Pattern origin real
Y_o Pattern origin real
Xc Array of X coordinates real
Yc Array of Y coordinates real
Pat Pattern name string[15]
Att Attribute integer

bar Rebar entity

Lno Layer integer
Pen Pen integer
Stl Style integer
S_C Shape code integer
C_E Curtailed ends integer
Lvl Level integer
S_x Sign X integer
S_y Sign Y integer
Adim A dimension real
Bdim B dimension real
Cdim C dimension real
Ddim D dimension real
Edim E dimension real
Ang Angle real
Dia Diameter real
Xc X coordinate real
Yc Y coordinate real
Typ Type character
Mark Mark string[5]
Att Attribute integer

bit Raster image entity

Lno Layer integer
Siz Size integer
Wid Width real
Hgt Height real
Xc X coordinate real
Yc Y coordinate real
Typ Type char 'B' .bmp
'E' .emf









17
'J' .jpg
'G' .gif
Att Attribute integer

Page Break
File functions

FileExists, 1 If not FileExists('c:\prokon\data\ junk.pad') then
break;
DeleteFile, 1 DeleteFile('c:\prokon\ data\Junk.pad');
CopyFile, 2 DrgName:='c:\prokon\data\Junk.pad;
NewDrgName:='c:\prokon\data\Junk-A.pad';
CopyFile(DrgName,NewDrgName);
RenameFile, 2 DrgName:='c:\prokon\data\Junk-A.pad';
NewDrgName:='c:\prokon\data\Junk-B.pad';
RenameFile(DrgName,NewDrgName);
WorkingFolder 0 Returns the name of the working folder
Tempdir 0 Returns the name of the temporary folder
OpenW 1 openW('c:\prokon\data\$cratch\ Temp.txt');
WriteF 1 writeF('Some text');
OpenR 1 openR('c:\prokon\data\$cratch\ Temp.txt');
InStr:=readF;
OpenA 1 openA('c:\prokon\data\$cratch\ Temp.txt');
writeF('Some more text');
will add extra text line to an existing file.
ReadF 0 InStr:=readF;
CloseF 0 closeF; All open files must be closed at end
FindMore 2 Returns true while files for specified wild card, found e.g.
while findmore(workingfolder+bs-*.pad,s) do

Dialogue boxes

InfoMsg, 1 message
ErrorMsg, 1 message
YesNoDlg, 1 question - returns true or false
InputString, 3 heading, prompt, initial value of input string, returns input string









18
Page Break
Radiogroup dialogue

RadioClear, 0 Clears all entries from the radio dialogue
RadioCaption, 1 Sets the caption of the radio dialogue box
RadioAddItem, 1 Adds an item to the radio dialogue - no limit on number of items
RadioAddHint, 1 Adds an optional hint for each item
RadioColumns, 1 Specifies the number of columns in which items should be displayed
RadioExecute, 1 Displays the dialogue. The number specified indicates the default
selection (-1 for previous selection, -2 for no selection. The function
returns then number of the item selected. (-1 if cancel clicked)

Input grid (table) dialogue

GridClear, 0 Clears all entries from the grid.
GridCaption, 1 Sets the caption of the input grid dalog.
SetGridCell, 3 Column and row number (0 based), and cell text to set.
SetGridCell(0,1,'Dimension A');
GetGridCell, 2 Returns the cell text at column, row number.
A:=1 * GetGridCell(0,1);
SetGridImage, 1 Specifies the file name of the image to display next to the input grid.
GridExecute, 0 Displays the dialog and returns false if Cancel clicked.

Drawing commands

Note : To view Padds drawing commands short cuts, use F10. Refer to Chapter 12 for command
descriptions.

File : FN_ 0 FW_ 1
FO_ 1 FP_ 0
FS_ 0 FK_ 0
FS_dos 1 FI_ 0
FA_ 1
FC_ 0
FR_ 1

Edit : EI_ 0 E1_ 0
ES_ 0 E2_ 0
EX_ 0 E3_ 0
EC_ 0 E4_ 0









19
ET_ 0 E5_ 0
EM_ 0 E6_ 0
EO_ 0 E7_ 0
EB_ 0 E8_ 0
EP_ 0 E9_ 0
EJ_ 0 E0_ 0
EF_ 0 EE_ 0
ER_ 0 EU_ 0
EA_ 0 EY_ 0
ED_ 0
EZ_ 0
EV_ 0

Set: SU_ 0 ST_ 0
SP_ 2 SE_ 0
SM_ 0 S1_ 0
SO_ 0 S2_ 0
SA_ 0 S3_ 0
SZ_ 0 SV_ 0
SL_ 1 SC_ 0
SS_ 1

Line : LL_ 0 LY_ 0
LA_ 0 LD_ 0
LB_ 0 LC_ 0
LP_ 0 LH_ 0
LO_ 0 L1_ 0
LR_ 0 L2_ 0
LT_ 0 L3_ 0
LK_ 0 L4_ 0
LG_ 0 L5_ 0
LS_ 0
LZ_ 0
LX_ 0

Circle : CC_ 1 C7_ 0
C2_ 0 C8_ 0
C3_ 0 CE_ 0
C4_ 0 CA_ 0
C5_ 0 CO_ 0
C6_ 0

Text : TT_ 1 TS_ 0
TU_ 0 TO_ 0









20
TE_ 0 TL_ 0
TD_ 0
TM_ 0
TC_ 0
TN_ 0
TB_ 0
TF_ 0
TA_ 0
TP_ 7
TG_ 0
TG_All 0 Similar to TG, but set the global text justify and text angle also.

Point : PC_ 0 P2_ 0
PF_ 0 P3_ 0
PL_ 0 P4_ 0
PS_ 2 P5_ 0
PO_ 0 P6_ 0
PN_ 0 P7_ 0
PI_ 0 P8_ 0
PM_ 0
PH_ 0
PT_ 0
P1_ 0
P1_8 8 Like P1 but accepts all 8 parameters in brackets

Hatch : HH_ 0 HE_ 0
HO_ 0 HP_ 0
HA_ 0 HC_ 0
HM_ 0 HG_ 0
HD_ 0 HS_ 0
HI_ 0 H1_ 0
HT_ 0
HV_ 0

Rebars: RB_ 0 RF_ 0
RE_ 0 RG_ 0
RD_ 0 RZ_ 0
RR_ 0 RO_ 0
RX_ 0 R1_ 0
RC_ 0 R2_ 0
RP_ 0 R3_ 0
RI_ 0 R4_ 0
RU_ 0 R5_ 0
RY_ 0 R6_ 0









21
RL_ 0 R7_ 0
RN_ 0 R8_ 0
RH_ 0
RM_ 0
RA_ 0
RT_ 0
RS_ 0

Dimensions :
DH_ 0 D1_ 0
DV_ 0 D2_ 0
DS_ 0 D3_ 0
DI_ 0 D4_ 0
DO_ 0 D5_ 0
DR_ 0
DA_ 0
DP_ 0

Blocks: BD_ 0 B1_ 0
BL_ 0 B2_ 1
BB_ 0 B3_ 0
BC_ 0 B4_ 0
BP_ 0 B5_ 0
BA_ 0 B6_ 0
BR_ 0 B7_ 0
BS_ 0 B8_ 0
BW_ 0 B9_ 0
BH_ 0 B0_ 0
BU_ 0 BK_ 0

Window :
WR_ 0


Zoom : ZA_ 0
ZE_ 0
ZW_ 4 // X,Y for first and opposite corners (Any order)
ZC_ 3 // X centre, Y centre and radius of zoom window
ZS_ 0
ZR_ 0

Snap modes and Snap once:
NI_ 0 NL_ 0
NE_ 0 NH_ 0









22
NB_ 0 NV_ 0
NG_ 0 NM_ 0
NF_ 0 NT_ 0
Section Break (Next Page)









23

Вам также может понравиться