SPACELINES 3D construction lines FLATLINES 2D construction lines
Copy the application file "spacelin(.exe|.arx)" and the slide library file "spacelin.slb" to a location on your hard disk drive that Autocad searches from its "acadprefix" system variable.
The Autocad system variable "acadprefix" is automatically set from the "ACAD" environment variable on startup. Please refer to your systems user manual of your specific operating system platform to find out about how to set environment variables.
If you don't know how to proceed with the following steps, ask your system manager to help you. The program will still work without, but you will use it with much more convenience if you do so.
Commands acting in 2D have names starting with "FL..." for "Flatlines".
Commands acting in 3D have names starting with "SL..." for "Spacelines".
Please refer to the actually installed program parameters file
"acad.pgp" for the names of the keyboard shortcuts defined for your
installation.
Points, vectors, angles or distances may be specified on the command
line or interactively on screen. Most of the functions prompt for
selecting one or more edges in the existing drawing as reference for
positioning lines in space. The prompt:
Edge:
accepts the selection of almost every straight edge in a drawing to specify either a direction vector, an angle reference or a location in space. There is no limitation whether this edge belongs to a specific entity type or not as long as the entity contains straight edges. Point, arc, circle, shape and text entities as well as curve fitted meshes and polylines do not contain straight edges. In R14, entities defined by other extension applications may or may not contain straight edges to select. Currently, only the entities defined by the built in acis modeller are recognised.
The menufiles sl11/sl12/sl14.mnu offer popup, screen, and icon menu sections with all spaceline and flatline commands for Autocad R11, R12 and R14 respectively. The spacelin.pgp file contains recommended keyboard shortcuts for many of the commands. You are encouraged to include the contents of those two files to your standard acad.mnu and acad.pgp files for convenience.
line [n] out of 3D limits!
is displayed and the line is not created. The number [n] is only displayed for those functions generating more then one line at a time.
2D commands:View is not plan to UCS. Command results may not be obvious.will be issued. Still, even 2D lines cannot be generated if they fall outside the 3D frame because the current UCS might be placed in an arbitrary position and angle relative to the World coordinate system.
In 3D Commands, entered values will be processed directly in relation to the current UCS. However, if the lower and upper Z value of the 3D frame are identical, most of the 3D lines are likely to be out of range.
Note that some auxiliary commands are supplied in each a 2D and a 3D version of identical behaviour for orthogonality.
SLX SLY SLZ | Parallel to X/Y/Z Axis of UCS. |
FLX FLY | Parallel to X/Y axis on current elevation. |
SLXY SLYZ SLZX | With angle parallel to XY/YZ/ZX plane of UCS. |
SLXZ SLZY SLYX | With angle parallel to XZ/ZY plane of UCS. |
FLXY FLYX | With angle to XY/YX plane on current elevation. |
SLVECT FLVECT | Parallel to a vector in space/on current elevation. |
SL2POINT FL2POINT | Along two points in space/on current elevation. |
SLPARAL FLPARAL | Parallel to an edge in space/on current elevation. |
SLNORM FLNORM | Normal (perpendicular) to an edge in space/on current elevation. |
SLINTER FLINTER | Interpolating edges in space/on current elevation. |
SLDIST | Normal (perpendicular) to two edges in space (shortest distance). |
FLGRID | Grid on current elevation (ignore frame). |
FLRECT | Rectangle on current elevation (ignore frame). |
3DLIM SHOWLIM | Set/show 3D limits. |
SLON SLOF | Switch layer ZZ_SPACELIN on/off. |
SLDEL | delete visible construction lines. |
SLHELP FLHELP | List available commands in 2D/3D. |
the commands "SLDEL" and "FLDEL" delete all construction lines visible in the current viewport (after a "Yes or No" prompt). for technical reasons this commands work only in non perspective views. Of course, the auxiliary lines can also be deleted manually by the "ERASE" command and manipulated by any other Autocad command. They will still be recognized by "SLDEL" and "FLDEL", as long as they are not moved to another layer or put inside a block.
2D command:
Since construction lines are inserted on the special layer
"ZZ_SPACELIN", visibility can be turned on and off with that layer.
The commands "SLON" and "FLON", or "SLOF" and "FLOF" respectively turn
the layer "ZZ_SPACELIN" on and off.
Please note though, that the commands creating new lines will not turn
on the layer "ZZ_SPACELIN" again, so that lines created while it is off
will stay invisible until it is turned on again manually. This may lead
to confusion in some cases. For the same reason it is not recommended to
freeze the layer "ZZ_SPACELIN".
Lines will be drawn in parallel to one main axis of the current UCS. The commands repeat asking for a point to fix the position of each line. Enter <return> to exit the loop.
2D commands:Angle in XY or adaption plane or Adapt/Last <default>:The default input is a numeric angle entered on the keyboard or specified interactively by selecting two points relative to the X axis of the current UCS. Entering <return> selects the value last used by the specific function or zero if called the first time in an editing session. Alternatively one of the following keywords can be entered:
Each command then repeats prompting for a point for the position of each line. Enter <return> to exit the loop.
2D commands:Direction vector or <Adapt>:The vector may be entered in two different ways.
Then the commands repeat asking for a point for the position of each line. Enter <return> to exit the loop.
2D command:Each line is drawn through two specified points. The commands keep prompting for points to position each line. Enter <return> to exit the loop.
2D command:Point/Vector/distance <default>:
The default input is a numeric distance entered on the
keyboard or by selecting a distance on screen.
<Return> selects the distance last used or zero if called
the first time in an editing session.
You are repeatedly prompted to select a reference edge and a
point each. The functions calculate the direction vector
from the edge to the specified point. The parallel will be
offset in that direction to the distance first entered.
If this distance is zero the prompt for the point is omitted
and the line immediately drawn.
Enter <return> to exit the loop.
prompts you to specify an offset vector by
Direction vector or <Adapt>:
The vector may be entered in two ways:
(default) Prompts you to select an edge, which is taken as reference vector for the offset. The length of the edge determines the offset distance. The direction of the vector depends on the exact location of the selection point. The vector starts from the endpoint of the edge which is closer to the point you picked to select it.
The vector can be entered through a point relative to the origin of the current UCS.
You are repeatedly prompted to select a reference edge and each parallel line is immediately drawn. Enter <return> to exit the loop.
The user will be repeatedly prompted to select a reference edge and a point to draw the line through. Enter <return> to exit the loop.
Lines are drawn as normals to user selected edges of the existing
drawing through an entered point. The commands repeatedly ask for an
edge and a point each to compute the position of a line.
Enter <return> to exit the loop.
number of lines <default>:Enter <return> to select the number last used, or one if called the first time in an editing session. You are then repeatedly prompted to select two existing edges of the drawing. The edges must not be collinear or the functions will exit on printing a warning message. Enter <return> to exit the loop.
If the selected edges are parallel, the function draws the lines(s) dividing the distance between them according to a regular grid. All lines will be in the same plane as the two edges.
If the edges are not parallel, the result differs if the edges intersect in space or if they don't. In testing this, the edges are assumed to be of infinite length. In 2D, All non paallel edges intersect.
If the edges intersect you are prompted to specify the angle to position the lines:
Point or <Inner>/Outer angle:
All lines will be in the same plane as the two edges and will meet at their intersection point (or the intersection point of their projection to the X Y plane in 2D).
If the edges in 3D do not intersect then the prompt looks like:
<Inner>/Outer angle:
Input options similar as above. You cannot specify the angle to fill on screen, because there is no proper location to do so. Since the edges have no common plane in this case, the line(s) don't either. But they are parallel to the plane defined if they would intersect, while maintaining their directions. Relative to this plane, the angles are computed exactly the same way as in the intersecting case. The location of the lines is defined by dividing the shortest distance between the two edges into two or more regular sections. As the result of all these operations, the line(s) are member of a spiral staircase helix or of a hyperbolic paraboloid. (Can anyone explain this in a simpler way?)
If the edges (intersecting or not) form a right angle, the options for "Inner" and "Outer" produce their results depending which ends of the edges have been picked when selecting them. The vector of an edge is taken to start at the endpoint closer to the point picked. The inner angle will be the angle starting from the vector of the first selected edge towards the vector of the second one.
2D command:Lines are drawn connecting the points on two selected edges of a drawing that define the smallest distance or those edges. This line is a normal to both edges even if they intersect.
The commands repeats prompting for two edges in turn to determine the position of each line. Enter <return> to exit the loop.
3D commandLower Left corner of grid:Then you are prompted for the mode to divide the grid in X direction:
X Spacing or <Variable>:
If a real distance is entered the next prompt asks for:
Number of Cells: <1>:
So the grid will have the specified number of spaces of the specified width in X direction.
X Variable spacing:
Enter a number of distances one after another and then
<return> to continue.
In this mode the X direction of the grid will contain one or
more different spaces each of its specified width.
If <return> is entered the first time the prompt appears,
the previous prompt is displayed again.
The same applies for the Y direction whith the respective prompts:
Y Spacing or <Variable>:and:
Number of Cells: <1>:or:
Y Variable spacing:
As soon as all the Values are specified the grid is drawn. Frame settings are ignored.
2D commandEnter two points which are used as opposite corners of a rectangle parallel to the X and Y axis of the current UCS on the current elevation. Frame settings are ignored.
2D commandspacelin(.exe|.arx) | ADS/ARX application. |
sl11.mnu | Menu file template for Autocad R11. |
sl12.mnu | Menu file template for Autocad R12. |
sl14.mnu | Partial menu file for Autocad R14. |
spacelin.slb | Slide library for icon/image menus. |
spacelin.pgp | Template file for keyboard shortcuts. |
autoload.sl | Template autoloading function for Autocad R12/14. |
sl_man.html | This file. |
README.txt | General info. |
Any other error is considered unknown and will probably be handled by the ADS programming interface or by the operating system. In other words: Things may crash!
Undetected errors are handled as if no error occured.
The block on the layer "ZZ_SPACELIN" is kept unique. Do not insert other blocks on that layer or they will, all exept one, be deleted next time the application is loaded. There is no way to determine ahead of time which one of the blocks found will be used and which are discarded. This means that the stored 3D frame settings are likely to get lost in the process.
The invisible block cannot be removed from the drawing in any straightforward way (except with the help of autolisp or ads/arx). As a consequence it is impossible to purge the layer "ZZ_SPACELIN", even if you have removed all spacelines from the drawing. This is also true if you inserted another drawing as a block which used spacelin.
Polylines with a width are usually drawn by Autocad with the outside
edges of successive segments connected to make a continuous path. If the
angle between the segments is "very sharp" though, the ends are broken
up and closed seperately with orthogonal lines through the endpoint.
Spacelin tries to follow this behaviour and find the connecting resp.
ending lines. However, it may fail to do so correctly in boundary cases.
The way Autocad draws polylines where the successing segments
have differing starting and ending widths can most politely be
described as "erratic". There are even cases where polylines are
drawn with gaps! It is no wonder that there is no documentation
available for this behaviour. Spacelin will not always do the same thing
as Autocad in such cases.
In drawings edited with Autocad R12/14, the block to store the frame data is made an anonymous block, which will not be listed by the "?" option of the "insert" and "block" commands. There is a bug in Autocad R11 which makes it impossible to handle anonymous blocks if one of them resides at the beginning of the internal block table. In drawings edited by R11, the 3D frame data will therefore be stored in a normal block whith the name "ZZ_LIMITS". This block will then appear at the end of block listings of that drawing. If a drawing is transferred to or from R11, SPACELIN will replace its data block to make it an anonimous or a named block as apropriate.
How to report bugs:
if you think you found a bug in spacelin, you can do the following:
a) Try to reduce the problem to the most simple drawing configuration
possible. b) Write the most precise description of the problem possible.
c) Send both together to the email address at the bottom of this page.
If I can reproduce the problem, if I think it really is a problem
(in contrast to a feature not explained well enough in the documentation),
and if I see a way to do something about it, I will give it a try.
Spacelines 1.0 Copyright © 1995 Georg Mischler. Spacelines 1.1 Copyright © 1998 Georg Mischler. All rights reserved. Permission to use and copy this software for any purpose and without fee is hereby granted provided that the software is not altered in any way, both the above copyright notices and this permission notice appear in all supporting documentation and the full documentation is included. Commercial distribution of this software is permitted, provided that it is distributed unmodified and in its entiety with all documentation, and the price charged is not significantly higher than the cost of copying and distributing this software and its documentation. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.spacelin homepage