AfraLisp Blog

The AutoLisp/Visual Lisp/VBA Resource Website

AfraLisp Blog

Home Newsletter Utter Rubbish Coding Tips AutoCAD Tips Contact Downloads WAUN

Controlling Complex Linetypes

Since AutoCAD R13, text can be part of the repeating pattern in a line. Lines with repeating 
text are called complex linetypes. The definition of linetypes are stored in an ascii text file 
with a .LIN file extension. The acad.lin file contains default linetypes and this file can be 
edited to include complex linetypes. Linetype definitions can also be defined in a separate 
.LIN file with a unique name, such as ltyeshp.lin in the R13\Com\Support directory. You 
can use a text editor such as Windows Notepad or DOS Edit to create and modify 
complex linetypes. 

The repeating segments for complex lines are defined in the same manner as the simple 
linetype. In a complex linetype, brackets are used to enclose the description of text to be 
repeated along the line. The position and size of the text in relation to the repeating line 
segments is determined with 4 controlling parameters named "transforms". 

A transform will scale, rotate and offset in the X or Y direction the text in the complex 
linetype. The following example will add text that repeats along the line when included in a 
linetype definition. 

["MC",NEWSTYLE,S=1,R=90,X= -0.25,Y= -0.5] 

The key to creating a successful complex linetype definition is understanding how to 
center the text in the blank elements of the line. Each element defining the repeating text 
is separated by commas. The characters contained in quotes are the characters that will 
be displayed along the line. The next element is the text style used for the repeating text. 
S=? controls the size, R=? controls the rotation and X=? and Y=? adjust the placement of 
the repeating text in relation to the rest of the line. 
How to set the height of the repeating text 
There are four possible combinations of settings that can affect the height of the text in a 
complex linetype. When a text style is defined in AutoCAD it can either be defined with a 
height of zero or a particular number. If the style used in the complex linetype has a 
height of zero, then the number in the S=? transform will define the repeating text height 
when the line is placed in the drawing. 

If the text style used in the complex linetype has a height other than zero, then the 
number in the S=? transform will be the multiplier for the text style height. 

If the S=? transform is not included in the linetype definition, the text height is determined 
by the height defined in the text style. If the text style is defined with a height of zero and 
the S=? transform is not included in the linetype definition, the height of the repeating text 
will default to 1 (one). 
How to center the text in a complex linetype 
The X=? and Y=? transforms are used to center align the repeating text. The X value 
required can be determined from the width of the repeating space where the text is to 
appear and the width of the repeating text. The repeating space is created by the 
negative number preceding the text definition. 

One way to determine the width for the repeating text is to place the text in a drawing and 
use the distance command to measure the width. The DTEXT command can be used to 
create the text. Use the same height for the text that you intend to use in the linetype. 
After the space width and the character width have been determined, subtract the width of 
the text from the blank space where the text is going to be placed, and divide by two. 
Then subtract this number from the space to determine to distance to shift the text to the 
left in the space. Make sure to use a minus sign (-) to make the number negative. 

The formula is: 
SP-((SP - W)/2) 

given: 
SP = repeating space and W = width of the letters (text string) 

To center the repeating text in the vertical orientation, divide the S=? transform by 2 and 
use this value. Add a minus sign to move the text down. (Example Y= -0.25) See the 
previous section on how to set the height of repeating text if the S=? transform is not the 
only control for the text height. The number for the Y=? transform must be the negative of 
half the repeating text height. (It must be a negative number to shift the text down from 
the line segments.) 
Settings in the drawing that affect complex linetypes 
The style used for repeating text in a complex linetype must be defined as a text style in 
the drawing. Therefore, if you change a text style already used by complex linetypes in a 
drawing, the changes will also affect the display of repeating text in the next complex 
linetype you create in that drawing. The affected settings include Width factor, Obliquing 
angle, Backwards, Upside down, and Vertical. 

For example, if you add text to a drawing that uses the same style as text in a complex 
linetype, and you change the text style to have an oblique angle, the text will also be 
oblique in the next complex linetype that is created in the drawing. For this reason, it may 
be prudent to create unique styles for the text to be used in linetypes. Complex lines will 
use those style settings until another style is used. 
Note: You may need to perform a regen in order to see the changes display. 
LTSCALE or CELTSCALE commands change the repeating text and the lengths of the 
repeating patterns to a new size. The LTSCALE variable scales the repeating text and 
line segments in every line in a drawing. This variable scales all complex linetypes 
proportionally in the drawing. The CELTSCALE is not a global variable and only scales 
lines created after it is set. The CELTSCALE variable also scales complex lines 
proportionally. 


Exercise - Centering text in a complex linetype 
Create a new text style 
1. Start a new drawing in AutoCAD. 
2. Issue the style command. 
3. Enter TEST for the style name. 
4. Select txt.shx on the select font file dialog box. 
5. Press Enter repeatedly to accept the default settings for the text style. (Make 
sure the height is set to zero.)
 
Determine the width of the repeating text 
1. Use the DTEXT command and create the text OO, (capital o) set the height to 
0.5. 
2. Use the DIST command to measure the width of the text. It should be around 
0.83. This width is used to determine the value needed to center the text in the 
complex line. 

Define the linetype 
1. Open up a text editor like Windows Notepad and enter the following 2 lines. 

*MYLINE,----OO---- 
A,1,-2,["OO",TEST,S=0.5,R=0,X= -1.42,Y= -0.25],1 


2. Save this file with the arbitrary name of lt-test.lin

Load the linetype in AutoCAD 
1. Issue the linetype command 
2. Select the load option. 
3. Enter MYLINE font the linetype to load. 
4. Select the lt-test.lin in the Select Linetype File dialog box. 

Use the linetype 
1. Bring up the layer control dialog box. 
2. Select layer zero 
3. Choose Set LTYPE. 
4. Select MYLINE. 
5. Press OK. 
6. Make sure linetype is set to MYLINE and layer zero is current, and press OK. 
7. Draw lines and notice that the text is now centered in the repeating space. 

Discussion of the exercise 
1. Open the lt-test.lin in a text editor (such as Notepad). 
2. The following should be in the file: 

*MYLINE,----OO---- 
A,1,-2,["OO",test1,S=0.5,R=0,X= -1.42,Y= -0.25],1 


The X value is used to move the text parallel to the repeating line segments. In this 
linetype the letters OO need to be centered in a space of 2. The width of the text at height 
of 0.5 is 0.83. The number 1.42 was derived by the following formula: 

2-((2-0.83)/2)=1.42 

The number is negative to move the repeating text back towards the start of the line into 
the blank space. 

The Y value is used to move the text perpendicular to the repeating line segments. In this 
linetype the -0.25 is used to center the letters OO. This number is derived by dividing the 
S=0.5 value by two. The number is negative to move it down in relationship to the 
repeating line segments. 

Helpful tips 

If a text style that will be used in the linetype is not defined, the error "Bad 
definition of (linetype name) at line (line#) of file filename.lin" will 
appear when you attempt to load the linetype. 

Use a text editor to create the complex linetype. If you try to create a complex 
linetype from the AutoCAD command line, you will get the error: "INVALID 
number or bad continuation". The linetype definition will not be saved.
 
Text objects in complex linetypes are displayed completely and never trimmed.

The Description of the linetype (first line) has a 47 character limit.
 
There is a 12 Dash - length specifications limit per linetype, and a limit of 80 
characters for a line.
 
The first line segment cannot be negative.
 
Put half of the repeating segment after the text definition. Adding a line segment 
after the repeating text will ensure that a line segment will not cross the last text 
object in the line when it is placed in a drawing. AutoCAD adjusts the line 
segments to force the line to start and end with a dash.
 
The scale command adjusts the length of the complex linetype and not the size 
of the repeating text or repeating line segments. 

The complex linetype can only have one color in standard AutoCAD. It can be 
set to color by layer or to any color using entity creation mode. 

The text in a complex line is not a separate entity. The complex line cannot be 
exploded. 

Compiled shape files (.SHX files) can be used in complex linetypes. These .SHX 
files must be created in AutoCAD. The location of the .SHX file must be set in 
the support path under Preferences/ File System. Use the instructions in the 
AutoCAD Customization Guide under Linetype Definition Files. An AutoCAD 
drawing that contains such a linetype must be accompanied by the compiled 
shape file or .SHX file where the shape is defined, as well as the .LIN file where 
the linetype is defined. 

 
The AutoLisp/Visual Lisp/VBA Resource Website

Copyright 1999-Perpetuity by AfraLisp

All rights reserved.
Information in this document is subject to change without notice.
Site created and maintained by Kenny Ramage

The AutoLisp/Visual Lisp/VBA Resource Website