Hi everyone,

Today I’m going to talk to you about a command that arguably has the coolest name ever to be given to an AutoCAD® command. The command is so cool in fact, that it didn’t want to go through the usual fuss of being a documented command. Therefore it’s actually one of those secret (undocumented) commands that Autodesk lets us find for ourselves.

The command is: TSPACEINVADERS

But what could such a bizarrely named command be for?

It is essentially a command for checking your drawing for TEXT and MTEXT entities that have other entities that “invade” the space of the TEXT or MTEXT. This makes it obvious where you might want to apply background masks and the like for your TEXT and MTEXT, so that they become more readable.

It becomes extra useful when we’re dealing with a large number of TEXT or MTEXT entities, because this command makes it very easy to make a selection of the relevant entities that need a background mask, which can then all be amended at once.

That’s all for today – but as a little side question, what are the commands you use that have the most interesting names?


P.S. As always, please do subscribe below if you found this blog useful. And do get in touch if you want to share a tip with us all! 🙂

The REVERSE Command

Hi all, just a quick tip for today.

Probably my favourite entity in AutoCAD® is the polyline. However, there have been a few things in the past that I’ve found somewhat annoying, one of which is controlling the direction of polylines.

Normally the direction of polylines makes little difference, but for some purposes it can be important. For example, line-type text is oriented in line with the direction of the line segment, so if the polyline flows from right to left, as opposed to from left to right, the text will appear upside-down.

Reversing the vertices in a polyline has historically been quite cumbersome to achieve, but as of AutoCAD® 2010, there is now a REVERSE command. Simply enter the REVERSE command by either typing it, or selecting it from the Home ribbon, and select the polyline you want to reverse. This command can also be used on a few other entities, namely LINE, SPLINE and HELIX entities.

I hope you found this tip helpful, and I’ll have some more tips for you soon. 🙂


P.S, please make sure you subscribe to my blog, and forward on any useful tips you may want to share.

The SSX Command

As this is my first post on of 2013, I’d firstly like to wish you all a (somewhat belated…) Happy New Year!

Here’s a tip that was forwarded to me recently, by a chap named Santiago. I’ve used variations of this tool, which I have found to be very useful, and this one is equally so – the SSX command.

It’s essentially one of those really useful selection tools. Selecting things one by one is pretty cumbersome, and rarely are the changes we want to make only applicable to one entity. So if only there were a way to select a certain type of entity… You guessed it – that’s what SSX does. It allows you to select similar entities to the one entity you specify. So lets say you want to select all LINE entities on the very standards-compliant layer named “BOB”. All you’d have to do is type SSX followed by ENTER. Then, select a LINE entity that is on the layer you want (in this case, the “BOB” layer…), and AutoCAD® will add all relevant entities to the active selection set. Then, just manipulate the entities the way you want (such as forming the word “UNCLE”), and well, Bob’s your uncle.

See what I did there… ?


Depending on your AutoCAD® setup your selection may be cancelled after running this command. In which case, you can just invoke the command you want to use like MOVE for example, and then just use “p” for PREVIOUS.

Hopefully you will all find this useful – it’s just one of those commands that when used in the right place at the right time work wonders.

That’s all for now, and many thanks to Santiago for sharing this with us. If you have a tip that you think is useful, please please do get in touch. I very much appreciate all your contributions.

Equally, if there is any subject in particular that you want covered in a post, I’m always open to suggestions.


P.S. For those that haven’t already subscribed, please do so below. I can’t believe I’m up to over 500!

The LAYMCUR Command

Just a quick tip for today – the LAYMCUR command. Sometimes you’ll be working away and want to change to the layer of “that object” – you might not know (or care) what layer it’s on, but you just want to start working on that layer… If that’s the case, then this command is for you!

Simply invoke LAYMCUR either from the command line or from the ribbon under Home tab > Layers panel > Make Object’s Layer Current. Then just pick the entity you want to use as the current layer.

Then, continue with your masterpiece… 🙂


P.S. I’m on the cusp of releasing to you a tool I’ve been working on – I’m quite pleased with it, and it’ll be ready in a few days!


On with another quick-tip today. This is a command that it took me a while to realise how useful it truly is – SELECTSIMILAR.

One of the most fundamental tasks in AutoCAD® is creating your selection to manipulate. There are many ways to select, and generally you’ll end up windowing entities on screen.

But, you must remember that it is not the only way – sometimes you’ll have an idea for what you want to achieve, and often another command isn’t only faster, it’s more semantically correct to use, and therefore less prone to errors that you might make doing it another way.

So in cases where you have objects that are in some way similar (i.e, same layer, type, colour etc), go crazy with the SELECTSIMILAR command. You’ll grow to love it – trust me. There are many different object properties you can use to define what “similar” is. Typing “SE” for settings after invoking the SELECTSIMILAR command brings up this dialog box:

SelectSimilar Dialog Box

It is worth noting that if you’re using one of the verticals of AutoCAD® such as Civil 3D®, there are actually variants of the SELECTSIMILAR command. For example, right clicking an object and picking the “Select Similar” object actually invokes a different command, namely the AECSELECTSIMILAR command. This variant is not governed by the same settings dialog, and does not appear to have the same level of control – for this reason I personally prefer the good old fashioned SELECTSIMILAR command.

That’s all for today,


P.S. please do subscribe below if you haven’t already – this site is still growing fast and there’s a lot more content to come!


The LAYDEL Command

Firstly, many thanks to Mark Pettitt and John Coon for their first posts on A great start to something very positive and beneficial for all.

Secondly, I have a quick-tip for today. I literally used it under 5 minutes ago and it was so useful that I just had to write a post on it immediately.

The LAYDEL command. Using this command you can literally scoop spoonfuls of additional productivity into your work (see what I did there?? hehe).

This command identifies and deletes all entities on a layer, and removes the layer. On it’s own this might not seem very special, but read on… Consider you’re working with LOADS of data… normally you’d perhaps isolate the layer, select all the entities, and delete right? Well, as discussed previously in my guide to what causes AutoCAD® to freeze or crash, this is one of them. Selecting a large number of entities invites AutoCAD® to start “preparing” things, and it is a great way to crash AutoCAD.

Because LAYDEL is a built in AutoCAD® command, it is much MUCH faster than any way of doing the same thing. It’s lightning fast – and that makes me love it ! 😀

That’s all for now,


P.S. I’m going to have to do a top 10 coolest-named AutoCAD® commands… send me your nominations if you like!

Using XREFs and XREF Best Practice

XREFs can be an extremely helpful tool at your disposal when used well. However when used badly they can be a nightmare. In this article I am going to go through how to use XREFs and talk about some best practice tips to get the most out of your XREFs. Also I’ll talk about some common pit-falls that often cause problems.

What is an XREF?

If it wasn’t already obvious to you, XREF stands for external reference. As such, these are drawing files that are used as external references in our drawing. Other names for XREFs include references, overlays, attachments and model files. No matter what the name, the concept is the same. The external file is inserted into the current drawing as a reference. If you want to edit the geometry of the XREF, you’ll need to open the referenced file and edit that.

Basic Usage

We can insert an XREF by simply entering XREF into the command line. This brings up the the External References dialog box. In the top left there is a button for attaching a DWG file. Click this button, and you will be prompted to select a DWG file to insert. The insertion point for the XREF will always use the coordinate 0,0 in the XREF as the base-point in a similar fashion to how blocks work.

The External References dialog lists the currently loaded XREFs and displays details for each. Here is a good place to look to find any problems with your XREFs, such as XREF paths that might have changed. You can update the XREF paths from here by overwriting the “found at” path, or by selecting the ellipsis (…) in this field and browsing to the drawing. If you seem to be unable to edit this, it is likely that the reference you are trying to edit is a nested reference. This means that the drawing is actually an XREF within another drawing, and has not been directly referenced to this drawing. In other words, it is an XREF within an XREF. If this is the case you’ll need to edit the path within the first XREF, and then refresh that XREF within the current drawing.

While the External References dialog can be convenient, for simply inserting an XREF you do not need to open this dialog. Using the XATTACH command, you can invoke the command that would be used by clicking the DWG button on the XREF dialog.

Best Practice

What to use XREFs for

XREFs should be used for content that could potentially be displayed on many drawings. Having multiple copies of the same thing is just a pain to deal with. Ok, you can copy easily enough from one drawing to the other, but you have to remember to do that every single time you make any change to either drawing. The solution is to use an XREF. Put all the information in the one drawing and insert that XREF into all the drawings that require it. Essentially, XREFs can become a kind of external modelspace for your drawings, saved in a central location. You can also logically separate aspects of the model so that each XREF has its own distinct purpose. This is a great way to add some structure to you drawings, and minimise any headaches you might face later with discrepancies between drawings.

Breaking your modelspace down into smaller XREFs is also a great way to reduce file size. I work under the premise that the bigger the drawing file size, the higher the chance that it’ll crash my PC. As such I try to keep individual drawings to below 5mb. Sometimes this is not practical, but mostly it is.

Also, be careful of surveys and other mapping information such as Ordnance Survey maps. While these are of course essential, avoid putting these directly into your drawings like the plague. These should ALWAYS be an XREF, unless you actually want AutoCAD® to crash 🙂

Attachments vs Overlays

XREFs can be inserted as two different types; an attachment or an overlay. While both may appear to achieve the same thing, there is a subtle difference between them. If you insert an XREF as an attachment, this means that any other drawings that XREF the current drawing will also show the nested XREF as well. For example, Model.dwg contains the XREF Outline.dwg as an attachment. If Drawing1.dwg then XREFs Model.dwg in, Outline.dwg will also be shown as a part of Model.dwg.

Conversely, overlays allow you to insert as many XREFs as you want, but prevents them from being nested. So in the example above, if Outline.dwg were inserted as an overlay, it would not be shown when Model.dwg is XREFed into Drawing1.dwg.

So which do you use? Well, like most things it depends what you’re doing. Generally speaking the preferred default option is to use overlays, because this prevents the possibility of having a reference loop, and is generally the more lightweight option. However, if you have much to gain from having XREFs that contain other XREFs, clearly an attachment is the way to go.

Where should XREFs be saved?

This is a good question – they have to go somewhere, and having them scattered all over the place so that you don’t know what’s what is not good at all. Generally speaking, I create a folder called xrefs, and put them all in there. I sort of consider the xrefs folder as the modelspace of all my drawings, and I treat it accordingly.

I have the luxury of working on projects that aren’t massive, so if you’re working on huge projects you’ll certainly need some other structure to accommodate the scope of the project. It would be no good having hundreds and hundreds of drawing files all saved in one folder named xrefs. For this, you’d probably have to set up zones, and subcategorise your xrefs by zone. This will have to be done on a project by project basis, and agreed with the others working on the project before starting.

Pit Falls

I’m going to kick off the pitfalls with VISRETAIN, a system variable that has been the bane of many a AutoCAD® user. It can easily catch you out as well. VISRETAIN controls how layers within XREFs behave. With VISRETAIN set to 1, the layer state of XREFs are remembered. So when you make some intricate changes to your XREF layers to ensure it plots a certain colour for example, this will be remembered. Set VISRETAIN to 0 and it’s another story – you’ll close the drawing, the layer changes you made will be lost, and you’ll have no idea it happened until you open the drawing again, and (maybe) spot the mistake. If you never ever want this to be an issue again, put this in acaddoc.lsp, which ensures VISRETAIN is set to 1 each time a drawing is opened:

(setvar “VISRETAIN” 1)

Next, I’ll talk about broken XREFs. A broken XREF is what we call an XREF with a path that no longer resolves to the .DWG file that it originally pointed to, and the file cannot be found. This is usually the result of an element of the path being renamed, such as the folder or the .DWG file itself. As noted earlier, you can update the path for the XREF from the XREF dialog, and modifying the “found at” path.

An additional problem can be to do with drive paths. Say you have an XREF that resides in W:\CAD\Projects\xrefs, but you also have a Z drive mapped such that Z:\Projects\xrefs refers to the same folder. If the XREF was originally loaded using the W:\CAD\Projects\xrefs path, then AutoCAD® usually expects the drawing to be on the W drive. This can be a temperamental issue, but I have often found that AutoCAD® will prevent you from re-loading an XREF from what appears to be another drive.

If you or someone else has renamed a folder, you’ll notice that many, if not all of your XREFs will have a broken path. Then you’re faced with the somewhat daunting task of updating all the XREF paths in your whole drawing set… For this, look into using the Reference Manager tool provided with AutoCAD® – its really useful, but I’ll save the details for another post.

The final problem is that with great power comes great responsibility! Although it is great to be able to update all your drawings in one go, equally you can screw the whole set up just as easily. BE CAREFUL. And regularly take a backup of your XREFs folder so that if you make a huge mistake, you can roll back to a previous version.


So there we go – XREFs. Use them, and use them wisely.


P.S. Don’t forget to subscribe below – I’m nearly at 200 subscribers!

The BURST Command

I had another little gem come out of the woodwork today, it’s an express-tool called BURST.

For years I’d been annoyed that exploding a block with attributes would reveal the attributes within the block rather than the values they were set to.

The BURST command solves this problem, and explodes the block, and converts all the attributes to text for you. Simply enter BURST to the command line, and select the block you want to explode.

Really handy when you need it.


The XLine Command and Creating Levels in your Drawing

With the Ortho Mode and Polar Tracking at your disposal, you may be tempted to completely ignore the concept of construction lines. But I certainly still use them, as they are actually really useful for specifying a logical concept in your drawing – for instance, a level.

Basic usage of the XLINE command is simple. Enter XLINE at the command line, followed by two points that define an origin and a direction. There are additional options at the command prompt – H and V constrain the construction line to the Horizontal and Vertical directions respectively. A forces the xline to be drawn at a specific angle, which can also sometimes be useful. The O option is basically the same as the offset command, but forces the new line to be an XLINE rather than imitating whatever you selected. The B option I’ve never actually used before, but this option draws the XLINE that bisects, or is the midpoint of the angle you enclose with three points.

I mentioned that XLINEs are useful for levels, but when drawing a section or elevation with known levels, it can sometimes be clumsy inputting the elevations. For this reason, I always draw sections and elevations at their real world level in the Y direction.



Here for example, we are showing a level of 0, and 4 above some datum. Here it would be good practice to ensure that the level we have shown on the drawing is actually the level in the Y axis of the drawing. That way, we can be more certain that the drawing is correct. It also makes checking very easy using the ID command, by simply looking at whatever it says for the Y axis, and comparing with what we know it should be.

But there still is the problem of inputting the levels in a quick and elegant way. Up until recently, I had been using an XLINE drawn horizontally at a level of 0, and then offsetting upwards the amount required. This works, but it’s not the quickest way. A slight improvement is to invoke the XLINE command, press H for Horizontal, and then input a coordinate manually, using 0 (or any other number) for the X coordinate, and the desired level for the Y coordinate. This works, but still (for me) isn’t as elegant as it could be.

So instead, I decided to create a neat little lisp, for getting an XLINE at a specific level on the drawing:


This simple command asks you for a level, and an XLINE appears in your drawing at that level. It also scales what you enter by a factor of 1000, so that levels displayed in metres are instantly converted to millimetres. I’d suggest having a look at the lisp code, as it is really quite a good example of how a little bit of lisp can get a job done. It also gives you the opportunity to optimise the code for whatever units you are using.

All for now,




I was setting up a dynamic block yesterday, and I wanted to specify a default position for all the movable parts, but I also wanted to have the option to reset the block to the default position after I’d moved stuff around. I started thinking along the lines of using visibility states in my block, but it wasn’t really what I wanted – ideally I’d like a command that resets a dynamic block to its original unmodified position.

So imagine my happiness to discover the RESETBLOCK command! It does exactly what you would expect – resets a dynamic block to its original state. Perfect, and worthy of sharing.

Hope this helps someone.

And by the way – if you haven’t already, have a proper play with dynamic blocks. They can be extremely useful, and pretty darn cool too!


P.S. If you subscribe below I will pay you some money.

P.P.S. Not really. But still subscribe please 🙂