Nate Holt's Blog

November 20, 2015

Auto mapping “Power” and “Control contact pin assignments in AcadE

Filed under: Electrical — nateholt @ 8:42 am

(this article posted originally on old [lost] blog, March 8, 2007… thanks to Vladimir Panic for sending a saved copy back to me! Here’s the old posting – Nate.)

Here’s the issue. AutoCAD Electrical’s PINLIST contact pin assignments work great when you’re dealing with clean categories of N.O., N.C. and Form-C contacts. But when you might have two types of normally open N.O. contacts on the same parent device, then there is some ambiguity when AutoCAD Electrical auto-assigns pin pairs.


Above is an example of a motor starter relay coil “-K14” with a triple set of “power contacts” on the left and a normal control contact on the right. All contacts are normally open contacts but clearly there is a difference in which ones should be used where in the schematics.

When all the contacts in a group are the same, like a control relay, then it’s no problem. Let AutoCAD Electrical assign the next available N.O. or N.C. or Form-C contact pairing and all is fine.

But, when there are multiple flavors of N.O. contacts like for this motor starter contactor, then the auto-assignment may not give the expected results.

Here are three ways to deal with this situation (where there are two or more types of a given contact type). The first is the out-of-the-box version where you need to manually confirm that the auto-assignment AutoCAD Electrical makes is the appropriate decision (ex: power N.O. versus control N.O.). The second is an enhanced version of this that gives a bit more information – making the decision obvious. The third fully automates the selection of power versus control contact but requires a minor addition to a handful of library symbols.

Let’s look at each of these methods.

Method A: Default pin list mapping – different types of N.O. contacts listed together

This is the current AutoCAD Electrical default. Here’s the PINLIST entry that covers a Siemens part number 3TF511-OAK6 motor starter – 3 power contacts (the L1/T1 through L3/T3 pin-pair entries, each marked with a beginning “1” flag indicating N.O.), 1 normal control contact with pins 13/14 and 1 normally closed (N.C.) control contact (beginning “2” flag indicating N.C.) with pins 21/22.


When you insert the motor starter coil and select this Siemens part number, the above PINLIST value is stored on the motor starter coil symbol. Then, when a N.O. contact is linked to the motor starter, AutoCAD Electrical picks the next available N.O. contact pin pair from this PINLIST string. If the automatic selection is not what you really wanted, you pick the “List” button and manually select the pin pair that is more appropriate. But you have to know which is which. The power and control N.O. contacts are all shown in the same list box and it may not be obvious which is which.


Method B: Descriptions added to the “power” version of the N.O. contacts in the listing

This approach is pretty much the same as above but displays the needed information. Here a “comment” is added to each of the power contact pin entries in the catalog lookup PINLIST entry for this motor starter’s part number. Let’s say that you identify motor power N.O. contacts with a code of “Ma” where “M” is main contactor and “a” means N.O. (and “b” would be N.C.). Here’s the PINLIST entry with the comments added on the three power contacts.


And here is what the “List” dialog looks like when the contact is linked to the parent motor starter coil. Note that the power contact pins are identified in the upper left-hand pick box. The lone “control” N.O. contact is there too but it has no prefix label. So the user can more accurately decide which contact pin pair to choose.


Method C: Best – Auto-mapping of Power contact pins

Here’s the way to totally automate the process, but it requires a bit of setup. First, we modify the entry in the catalog lookup PINLIST for our motor starter coil. We change the first character for each power contact pin pair from a “1” (meaning N.O.) to a “4Ma” meaning special type “Ma”.


Now, the critical step is this… modify the N.O. Power contact library symbol. Add an invisible attribute PINLIST_TYPE with an attribute value of “4Ma”. This is important for this to all work. This attribute will flag AutoCAD Electrical to look for for type “4Ma” pin list entries when the contact is linked to a parent coil symbol.


That’s it. Now, when we pop in this modified N.O. power contact and link it to the motor starter coil, it will access and auto-assign from only contacts that have been marked as type “4Ma”. If you hit the “List” button, this pick list dialog displays. Note that only the three power contacts display.


And here’s the unmodified “normal” N.O. contact symbol. When we link this to the motor starter coil, it skips over the “4Ma” entries and finds the first normal “1” entry.


And if we hit the “List” button, note that only the single N.O. control contact pin pair (pins 13-14) lists (and the 4Ma contacts show up at the bottom in an “other” sublist).


So, there it is. Use this “4x” pin list type to differentiate between different flavors of the same general contact type.

October 27, 2015

AcadE Quiz

Filed under: Electrical — nateholt @ 9:34 pm

Updated quiz from some time ago…


Q1.  True/False – AutoCAD Electrical uses AutoCAD “custom objects” for schematic components, wire numbers, and physical panel layout representations. _________

Q2. What is the absolute minimum needed for a generic AutoCAD block insert to be recognized as a “parent” schematic component symbol? ___________________________________

Q3. True/False – AutoCAD Electrical requires that schematic component symbols always be constructed with pre-defined widths so that wires can “know” where to break across the symbol and how to connect. ____________

Q4. What are the two key attribute names on a component symbol are used to carry and report catalog part number and manufacturer assignment? ________ and _________

Q5.  Does this push-button component symbol below represent a “Normally open” or “Normally closed” electrical contact? ________________________

Q6.  If there was 240 volts of electrical potential on one side of the push-button contact and you accidentally grabbed a bare wire on the other side of that push-button contact, would you prefer the push-button’s contact type to be “Normally open” or “Normally closed”? ________________________

Q7. What is the most likely block name for the symbol shown in Q5? _________________

Q8. What is the most likely attribute name for the left-hand wire connection on the Q5 symbol? _________.

Q9. If the Q5 symbol carries attributes for both a terminal “pin” number and pin number description text, what would the most likely attribute names be for the right-hand side wire connection attributes? Wire connection attribute name: ___________, Pin attribute name: _____________, Pin description attribute name ______________.

Q10.  What is the most likely block name for this parent push-button symbol shown above, inserted into a vertical wire? ___________

Q11. If AutoCAD electrical could not find the symbol shown in Q10, what symbol name would it try to find and insert? ______________. If found, what are two things would AutoCAD Electrical do to the symbol as it inserts?

  1. ____________________________________
  2. ____________________________________

Q12. Each circle on this “transformer” component symbol below needs to allow a wire to automatically connect from either of two different directions. The upper left-hand circle has two red wires shown. If the “H1” terminal pin is attribute “TERM01” and both wire connections on this circle need to relate to this single terminal pin attribute, what two wire connection attribute names must be used on the edge of this circle?

Upper edge: __________________

Left-hand edge ______________________.


Q13. A parent selector switch is shown above top-left. It is tied to a child contact below through a dash link line. A. What are the first five characters of the parent selector switch’s block name? ____________. B. How about the first five characters of the child selector switch contact’s block name? ____________.

Q14. What attribute name does the upper end of the dash link line “connect” to on the parent selector switch symbol? _______________.

Q15. What attribute name does the lower-right hand end of the dash link line connect to on the child contact symbol? _________________.

Q16. Two terminal symbols are shown below inserted into a wire and wire numbers applied. The third character of the round terminal symbol’s block name has to be what?   ___

Q17. You notice Bob seems frustrated. He says that two wire connections on his 8-connection custom schematic symbol act strangely. Whatever wire number connects to one of the connections is repeated on the other connection. All the other six wire connections work fine. What is probably wrong? ____________________________________________________________________

Q18. Randy reports that his custom 3-phase resistor symbol will not trigger a wire number change through any of its three pairs of connections. What single question do you ask to have him view you as a total genius?  “Is the _________________ character of your symbol’s block name a ____?

Q19. Jorge created a special pair of normally open and normally closed contact symbols. They work fine with AutoCAD Electrical in every way except for the “Toggle NO/NC” command. With this command, there is no response – the symbol refuses to swap from the one state to the other. What is the most likely problem? ______________________.


Q20. Slavica created a special, vertical version of a pushbutton symbol shown here. Everything works fine except that whenever he tries to wire up the bottom wire connection, the wire won’t connect as expected. It ends up horizontal as shown. What is wrong? ___________________________

Q21. Vincent needs his custom 3-connection symbol to not break the wire number through it between pins TERM02 and TERM03. What attribute could he add to his symbol? __________________. What should be its default value? _________________________.

Q22. You have a half-dozen drawings open on your screen from a couple different AcadE projects. As you’re flipping from one drawing to the next, it suddenly seems that AcadE no longer works as expected. Jeff walks by and notices your puzzled look. What is the one key question he asks you?

Q23. You’re making an addition to an old legacy AutoCAD drawing. After telling AutoCAD Electrical to apply wire numbers to your drawing, you notice that random wire numbers have suddenly appeared on lines in unexpected places in the old parts of the drawing. You call Miriam since this seems like a major application failure. What is the one question could she ask you to help you fix your own problem?

Q24. In a very tight place on your schematic you bring two different wires together, run them on top of each other for a very short distance, and then branch off again. But now AcadE reports these two different wires as the same wire number. You’re stumped. Bill, finished for the day, clutching his new fishing rod, and heading for the exit door, stops momentarily and takes a look. He gives you some bad news. What is it?

Q25. For some unknown reason, the middle 4-wire vertical bus below is not “electrically connected” to the 4-wire horizontal bus – AcadE does not recognize the connections. All the lines are on a “wire layer” and you’ve manually popped in four “solder dot” symbols at the cross-over points for good measure. It looks good. But it just doesn’t work! Tim asks you a key question that guides you to the solution. What does he ask you?


Q26. Randy created a small 8-pin schematic connector symbol. It works great. But on your drawing, there was not much room for it so you scaled it and its connected wiring down to quarter-size. Now it fits nicely and doesn’t look too bad either. But for some reason the reported wire connections to the connector seem to be “shorted” together. What has happened?


October 15, 2015

Tip: Triggering “Properites” display/edit for a picked attribute on inserted block

Filed under: Electrical — nateholt @ 9:31 pm

Stumbled across this in the last couple weeks… and now use it constantly for some conversion work. Wish had known about this sooner!


For example, you want to change the layer that an embedded attribute displays on. No problem. CTRL-pick and then change the layer assignment in the Properties dialog.

September 2, 2015

Stretching just PART of an inserted block instance

Filed under: Electrical — nateholt @ 1:02 pm

This is an unconventional use of the AutoCAD Electrical “Stretch PLC Module” tool. It seems to work…









Advertisement: if you have a need for an AcadE (or related) app to be developed and have some budget, let me know. This is what I do. – Nate Holt, N8 Consultants LLC, Toledo, OH, USA. email:, office: 419-843-3310.

August 28, 2015

System-wide Block Update

Filed under: Electrical — nateholt @ 8:52 pm

Here’s a tool that is designed to quickly find and update/replace a named AcadE symbol block — not Drawing-wide or Project-wide, but System-wide… across all drawings in all projects on your system. Let’s say that a certain motor starter panel layout symbol was drawn a bit incorrectly some time ago and has been inserted into an unknown number of AcadE projects. This new System-wide tool can find all instances in moments and trigger a single system-wide block update process. Here’s a short video.

August 12, 2015

Active DWG not in Active Project – how to add alert to selected commands

Filed under: Electrical — nateholt @ 12:19 am

I’ve done it many times. Sit there scratching my head… “Why is AcadE giving me these goofy, unexpected results?”

Eventually realize that the active drawing I’m working on is not in my current active project.

Many commands give you a clue that your drawing is not in the active project… it might be the opening dialog’s “Drawing” button unexpectedly fuzzed out but the “Project” button enabled. You might even get a nice warning message. Here is what the Terminal Strip Editor tells you…


But some commands don’t give you such an in-your-face warning. Here’s a potential solution…

Avoiding this Embarrassment

There is an ugly way to automatically get an alert if you launch your command on a drawing that is not in the active project. It involves adding a string of text to the command’s “Macro” string in the ribbon menu.

Example: Let’s say more than once you’ve tried to run the Wire Annotation command on a drawing that wasn’t in the active project. This has triggered momentary frustration.

Let’s add a check/alert to the Wire Annotation command’s entry in the ribbon menu.


Step 1: Launch CUI command. Select “Electrical Commands” as shown below to narrow the search.


Step 2: Scroll down through the list and find the Wire Annotation command’s entry. Pick it.

In the “Properties” on the right side of the dialog, look for the “Macro” entry. This is what you want to carefully edit.

Note that the internal AcadE command name for the Wire Annotation command is AEWIREANNOTATION. It is embedded in the macro string shown below.


Step 3. Now CAREFULLY change the macro string value to one of the two new strings below. The one you pick depends upon what you want to happen if your drawing is not in the active project when you launch the Wire Annotation command. Option 1: If you want the alert to pop up and then the command exits without running, edit the Macro string as shown below, carefully preserving the internal AcadE’s command name but substituting a “c:” for the “_” character.


Note that the command name now has a “c:” prefix (this is NOT a drive letter!) and is in parenthesis.

Option 2: If you want the Alert to pop up and then allow the command to run after you acknowledge the alert, then carefully enter the string as shown below.


Step 3: Save/Exit the CUI command. Test!

Here’s what you’ll now see if you pick on “Wire Annotation” command icon in the ribbon menu with a non-project drawing active on your screen.


July 8, 2015

3-phase Circuit insertion with a pre-defined Wire Connection sequence

Filed under: Electrical — nateholt @ 2:26 pm

Here was an interesting problem. A user wanted to quickly (with a click or two) “ground out” unused CTs shown on a schematic symbol for large power circuit breakers.


Not too difficult to add a shorting circuit automatically… using AutoCAD Electrical’s “Insert Circuit” API call (c:wd_ins_circ2…) in a small Lisp utility. The circuit consists of just the interconnected wiring and attached ground symbol to do the job.


User runs a little lsp utlity, picks on the left-most upper or lower CT wire connection point of the circuit breaker symbol. Utility finds the closest wire connection X?TERMxx attribute to user’s pick point on the breaker symbol, picks the appropriate grounding circuit based upon the X?TERMxx attribute name’s 2nd character (“2″=top connection), and then pops the shorting circuit in, complete with smart ground symbol. Very cool.


But there is a problem with the downstream panel wiring diagram representation of the breaker’s CT connection terminal strips. The user really needs a specific “wire sequence” be applied to the six jumpered wire connections plus ground so that the jumpering on this grounded-out CT’s terminal strip inside the circuit breaker terminal box flows neatly top to bottom. Here is what the user wants to see when the schematic connection information is output to the breaker’s wiring diagram:


But what the user gets is random.

To guarantee the desired connection sequence for the six shorted-out breaker CT connections plus ground symbol means a second step. After inserting the “ground out” circuit, the user needs to find and launch AcadE’s “Edit Wire Sequence” command,,,


,,, and go through the process of rearranging the seven wire connections so that it matches this zig-zag order:


The zig-zag order above will drive the clean jumpering inside the breaker’s terminal box.


A solution is to predefine a default wire sequence for each set of the six CT connections right on the breaker symbol itself. Push the wire sequence Xdata on to the hidden X?TERMxx wire connection attribute definitions. When the symbol inserts, the wire sequence data will come in with the symbol. If a ground-out circuit is applied to a group of these six connections on the symbol, the pre-defined wire sequence will kick in. If these CT connections are not grounded out, the existing wire connection sequencing will be ignored / overwritten by the discrete wire connections that the user makes (i.e. connections that are not all shorted together).

But adding the correct Xdata / Xdata values to the attribute definitions at the library level is difficult / tedious.

Lisp Utility

Here’s a little AutoLisp utility to make this task easier. With the library symbol DWG open, appload the little piece of source code shown below. Then type PREDEFINE_WSEQ at the “Command:” prompt and start picking the symbol’s wire connection attributes in the order that you’d like to have as a default if the connections are jumpered together.


The utility places Xdata “VIA_WD_WSEQ” with an incrementing 3-digit value on to each picked attribute definition. This mimics what the “Edit Wire Sequence” command does if operating on it AFTER the symbol is inserted. The advantage here is that you do it one time at the library level. The sequencing for jumpered connections comes in automatically when the symbol inserts.

March 13, 2015

Retiring an ITEM number assignment — one approach

Filed under: Electrical — nateholt @ 9:59 am

There is a need to be able to “retire” an ITEM number assignment when an old AutoCAD Electrical project set is later upgraded. Perhaps an electrical device originally specified, installed, and operated is now part of an overall control system upgrade. It was assigned an item number and showed up in the BOM, but now is to be upgraded and replaced with something better. But the user doesn’t want the old item number to be re-used for the new device… or ever used again for anything in this project.

How to do this? One potential way is illustrated below. But is there a better way?


(update — thought a bit more about the original posting… and came up with a slightly modified approach. New screenshots below)


Now let’s say you’re ready to “re-sequence” the ITEM numbers. BUT… you don’t want the re-sequence to affect the item numbers that you’ve marked as “retired” (i.e. those pushed into the little legend table and marked as MFG “_NOT USED”. Here’s how it can be done:



Now, when user launches the Re-sequence command, the “retired” items are all grouped at the very top of the “Manufacturers to Process” list, under “_NOT USED”. Just unselect this manufacturer and all of the “Retired” item number assignments are preserved through the item number re-sequence operation.





February 23, 2015

Quick question about “Mark Menus”

Filed under: Electrical — nateholt @ 2:52 pm

I’ve been away for awhile. Looking at the incremental improvements, this “Mark Menu” thing seems pretty neat. But there is one thing about the command placement for AutoCAD Electrical that has caused a small amount of frustration. I’ve more than once ended up with “Delete Component” when I was in a hurry and expecting an Edit or a Surf. markmenu

Does anyone know if this Mark Menu concept can be customized? I’d like to move “Delete Component” down in the bottom list where I think that I can more safely pick it. What think? Thanks, Nate.

February 13, 2015

Birth pic of AutoCAD Electrical

Filed under: Electrical, Musings — nateholt @ 9:31 pm

Cleaning out an old drawer and came across this Polaroid snapshot. It was March 13, 1996 and there was a first buyer for the “N8-Wire” AutoCAD add-on. It was to an outfit in Wixom, MI that was taking a chance on this.

Scan_20150213 (2)

The shipping department packaged it up and, before shipping it out (i.e. walking it down the street to the corner mailbox), placed it next to the development system (386 10mHz) in the software development department (tiny spare bedroom) to enshrine the moment.

Soon, Cimlogic picked up the marketing (their business card is in the photo), then VIA Development, and finally it became an Autodesk product. But many of the concepts, techniques, and workflows that were birthed in the first “N8-Wire” pictured here have endured.

February 11, 2015

How Wire Sequencing data is held in WDATA table

Filed under: Electrical — nateholt @ 1:52 am

This is the second of the series on the WDATA table format and will be of interest to one or two folks, if that (link here). But the question came up recently, so here goes…

Let’s look at an example of BEFORE and then AFTER.

Here is the wire network we’ll look at for this example. It’s the hot wire 224 below that interconnects six devices. Normal from/to reporting will likely list them top to bottom, left to right.




Here is what the above network’s record looks like in this project’s database file, WDATA table, for wire 224 BEFORE it is sequenced (Project Database file is opened and viewed with a copy of Microsoft Access). It’s pretty cryptic. It has six groupings of data, one for each wire connection in wire the wire number 224 network. Note that each wire connection entry in this list carries a value of “900” in its 22nd position. This “900” value is the default AcadE uses to signify a “non-sequenced” connection.


Now we run the Sequence Wire command and force some defined wire sequence. What we now have for from/to connection sequence is illustrated below with the “Show Sequence” command.




Here is what the WDATA table’s record now looks like for wire network 224. The “900” un-sequenced flag is now replaced with an incrementing 3-digit number starting at “001”.


To see it more cleanly, here are the subentries pulled out and shown separately. Sorting on the 22nd entry yields this wire connection sequence. Note that it matches the results shown in the “Show Sequence” tool above! The From/To reporting for wire number “224” will now show this connection sequence.




February 4, 2015

N8 Consultants – reopened for business

Filed under: Electrical — nateholt @ 8:38 am

Contact info here:

Nate Holt

phone: 419-344-5536 (EST time zone)

March 3, 2011

Accessing log file of AutoCAD Electrical project-wide tag/value updates

Filed under: Electrical — nateholt @ 11:23 am

AutoCAD Electrical automatically maintains a “log” file of changes it makes during project-wide retagging and value updating.

This may be useful if for tracking what things might need to be ballooned, clouded, or marked in some way to identify specific revisions.

The log file is an ASCII text file, automatically maintained by AutoCAD Electrical in the local “User” folder maintained by AutoCAD Electrical. The file name of the log file is the same as the project name but with a “.log” extension.

The screenshot below gives an example of how this works (and a limitation). There are three drawings in this project that all have an instance of component marked with a “TAG1” attribute value of “52-1AB”. There is a 3-line schematic component, a “power 1-line” version, and a “protection and control 1-line” version (different WD_TYPE values on each, so these appear as “Peer parents” to the 3-line schematic symbol).

In the example shown, the 3-line schematic instance of “52-1AB” was edited using AutoCAD Electrical. The tag name was changed to just 52-1 and the RATING1 attribute value changed from 1600A to 1492A. AutoCAD Electrical found and automatically updated the other two instances of 52-1AB. This update of the other two instances is automatically pushed into a “.log” file shown here.

The limitation is that AutoCAD Electrical does not “log” your edit of the original component. It only logs the changes it makes automatically as a result of your manual, original edit.

Log file name

The log file name will be the same as the active project but with a “.log” extension. The folder it is in is the local “USER” folder maintained by AutoCAD Electrical. You can see this path by typing this at the “Command:” prompt:    !GBL_wd_usr [Enter] 

Project log file –> Excel tool

Here’s a little AutoLISP utility that will find and read the active project’s “.log” file and format the data into a CSV file. You can then call up and view it in Excel.

February 28, 2011

Upcoming Webcast – Circuit Builder (Part 2)

Filed under: Electrical — nateholt @ 6:29 pm

April’s webcast will be the second in a series that started with the Introduction to Circuit Builder, presented in February.

Two main points of this webcast will explore in detail…

  • How a motor load assignment value (voltage, phase, HP/KW, RPM, motor type) entered into Circuit Builder can automatically influence the upstream breaker, fuse, and wire size assignments that Circuit Builder suggests as it completes the circuit… all per a given electrical standard.
  • How Circuit Builder can help in calculating appropriate wire conductor de-rating for factors such as ambient temperature, insulation type, conductor grouping… all per a given electrical standard.

Please check back here for exact time/date and the link to the free registration.

February 17, 2011

Tutorial – Introduction to the Circuit Builder tool (part 1) – AutoCAD Electrical

Filed under: Electrical, Tutorials — nateholt @ 1:01 am

 Introduction to the AutoCAD Electrical “Circuit Builder” tool. Excel-spreadsheet-driven, parametric build of electrical control circuits.

Autodesk’s Nathan Eliason hosted a webcast today (February 16, 2011) that was an introduction to the Circuit Builder tool built into AutoCAD Electrical. I helped put the demo together and was responsible for real-time Q & A support while Nathan was “on stage”. 

Note: this posting covers the second half of the presentation. The first part, dealing with the legacy tools Save Circuit / Insert Circuit from Icon Menu is covered in the previous posting here. Other Circuit Builder tutorials:

Circuit Builder – Switching from AWG to Metric Wire Sizes
Circuit Builder – Creating an Alternate Electrical Standards Setting
Circuit Builder – Leveraging AutoCAD’s “Group” Concept
Circuit Builder Configure Mode – Adding a “Pick from Icon Menu” Selection
Circuit Builder – Embedding Custom Calls in the Spreadsheet


Introduction to Circuit Builder

This tool was introduced in the AutoCAD Electrical 2009 timeframe. It comes preinstalled with data to build and annotate a sampling of motor control circuits and power feed circuits. It includes three-phase, single-phase, and one-line circuit representations. Each circuit is built dynamically with the following features:

  • Connects to an adjacent power bus.
  • Adds wiring between components.
  • Annotates selected components with suggested values based upon the selected load.
  • Each time a circuit is configured, it is added to a history list of circuits. This list provides for quick re-insertion at a later time.


So, let’s try it. We launch “Circuit Builder” from the Schematic tab of the AutoCAD Electrical toolbar…

… and this opening dialog appears, “Circuit Selection”. It sports a tree structure of pre-defined circuit types, both three-phase and one-line circuit representations.

We select the type of circuit we’d like to build and insert into our active drawing. Let’s pick the first circuit type listed under “3ph Motor Circuit”… the horizontal full-voltage non reversing motor circuit. Highlight and then hit the “Configure” button.

The “Circuit Selection” dialog disappears and we find a 3-phase bus attached to our cursor as shown below. We pop it into our drawing to the right of a vertical 3-phase supply bus. The horizontal bus auto-stretches to make connection to the vertical power bus.

As the 3-phase template attaches to the vertical bus, the “Circuit Configuration” dialog pops open as shown below. Here is where we can select various elements from the tree structure on the left-hand pane and make option selections for that element in the center pane and value assignments in the right-hand pane.

At any time during the configuration we can hit the button at the bottom left-hand part of the dialog to insert one or more of our options into the template circuit. We can “see” how our selections build into the circuit. If we don’t like an option we’ve picked, we can back it out and select a different option, dynamically, from this “Circuit Configuration” dialog.

Once all options are assigned and we’re satisfied with our circuit design, we hit “Done” to finish up and exit the dialog and expose our completed circuit.

How Circuit Builder Works / How you can customize Circuit Builder

Let’s spend the remainder of this tutorial by taking a brief look “under the hood” of Circuit Builder. Why? Because Circuit Builder begs you to customize it, to make it do what you need it to do at your company. So, let’s start…

Question: What drives this tree structure of circuits displayed in the opening “Circuit Selection” dialog?

Answer: An Excel spreadsheet (name displayed along top of dialog)

Here’s the first sheet of the “ace_circuit_builder.xls” Excel file. Its sheet name is ACE_CIRCS and it defines the tree structure of selectable circuit types that display in the Circuit Builder command’s opening dialog. Column “A” gives the main circuit type category and column “B” gives the individual selection options under that category.

For each selection in the tree (the combination of “A” and “B” columns), the third column in this spreadsheet sheet (below) gives the selected circuit’s drawing template “.dwg” file name.

So, when we select from the Circuit Builder opening dialog to build and insert a “Horizontal – FVNR – non-reversing 3ph Motor Circuit”, Circuit Builder is going to start by inserting circuit “ace_cb1_FVNR_H.dwg” into the active drawing at our selected pick point.

So, in it goes. And what we see here, in this beginning stage of Circuit Builder, is this…

…our circuit seems to be just a bare 3-phase bus with some X’s positioned randomly on the wires. Is this all there is?…

No. The circuit template is a framework that guides Circuit Builder as it designs your selected circuit type.

What Circuit Builder starts with for this selected 3-phase motor circuit type is the bus and a dozen or two “marker” blocks with attributes.

The marker block instances are all the same block name but with different CODE attribute values. Each marker block / CODE combination marks a specific X,Y coordinate point in this 3-phase motor circuit where some option can be applied.

Some of the key marker blocks on our inserted 3-phase bus tempalte are shown here. At each position in the bus, that marker block identifies what option or action is to take place at that point.

Let’s zoom in on the left-hand end and take a closer looks at the marker block for the main disconnect option for the circuit…

The marker block’s insertion point is the big “X” of the symbol (below). The visible CODE attribute is used to identify what the marker block is to control. Here, the CODE attribute is “Q001”. It is positioned at the point in the motor circuit where the circuit’s main disconnection means would insert.

Now, we might have a number of different possibilities for disconnect: non-fused switch, various types of circuit breakers, fuses, fused switch, or maybe no disconnection means. All of these are options, any of which we might want to assign to this part of our selected circuit’s design.

Circuit Builder will give us a shot at all of these options for position “Q001” in our template circuit. Let’s go back and take another look at the circuit builder spreadsheet.

This image below is very busy, but let’s see if we can follow…

  1. We launch Circuit Builder. It reads the ACE_CIRCS table (the upper left part of this slide) and builds a circuit selection tree structure from the first two columns.
  2. We make our selection in the tree structure, selecting the “Horizontal FVNR – non reversing” motor starter.
  3. Circuit Builder grabs the associated drawing template “.dwg” file from the 3rd column, ace_cb1_FVNR_H.dwg, and inserts it (exploded) into the active drawing at our pick point.
  4. Circuit Builder now looks at the 4th column of the selected circuit’s tree structure data and gets “3ph_H”. Circuit Builder now goes to the spreadsheet sheet of the same name, “3PH_H”. Here is where it will match up marker block codes that came in with the exploded drawing template and the available options for each.
  5. In our example we were looking at “Q001”. Finding it in the spreadsheet, we can see that there are 9 rows of data corresponding to nine different options to choose from for the circuit’s main disconnection means.

Now, as Circuit Builder processes the marker blocks, one-at-a-time, when it processes the “Q001” marker, it finds the spreadsheet identifies it as “Disconnecting means” and there are 9 rows of options.

 The entries from the spreadsheet drive what is displayed in the dialog shown below. Pretty cool.

But how does a selection in this dialog, like the “Disconnect switch and fuses (time-delay)” shown above, translate to that particular component being pushed into the drawing at the Q001 marker block’s XY location?

Here is another busy slide below, but stick with me on this.

The first column identifies the beginning of the “Q001” main disconnect data. The next 2-3 rows define the titles and options for two pop-lists that appear on the Circuit Builder dialog when dealing with this Q001 main disconnect. The 6th row carries an integer number. This is a selection index value.

 In our example here, we’ve selected the disconnect switch and fuses (time-delay). This carries an index value of 6.

We’ve also selected “No” for the “Include N.O. auxilary contact” selection. This carries an index value of 0.

The sum of these two selections is 6 (6 + 0 = 6). Circuit Builder now goes to the 7th column and looks for an entry or entries marked with a value of 6. It finds one row. The 8th column of this row contains the AutoCAD Electrical API command to insert the selected components. They pop in at the XY coordinate of the “Q001” marker block ( ! ).

This is kind of complex, but is this starting to make some sense now? The main idea is that the whole Circuit Builder concept is totally transparent and fully open. It is driven from an Excel spreadsheet file which you can expand / modify to meet your company’s specific needs.


Let’s finish our time together today by doing just that !   Let’s modify the spreadsheet to add some more choices to an existing option.

Here’s the option we want to enhance… it is for the “run” pilot light color selection for horizontal 3-phase motor circuits. Right now, as we use Circuit Builder to design a 3ph motor circuit, when we get to the control circuit’s “Light” selection, the options presented are just red and green pilot lights. Let’s say we want to add “blue” and “amber” options.

Let’s do it.

Step 1 – Open the ace_circuit_builder.xls Excel spreadsheet. Go to ACE_CIRCS sheet. Determine which sheet gives the detailed control for 3-ph horizontal motor circuits. It is sheet “3PH_H”. Select this sheet.

We flip to the 3PH_H sheet below and scroll down, looking for the “Light” entries…

Here they are. These match up with the four lights + “None” that show up in the Circuit Builder dialog when we get to the “Light” selection. We’re at the right place

Taking a closer look at the column below holding the commands that insert the light symbols… the middle argument of the command string looks like it is the light symbol’s block name.

Looks like “HLT1R” = red standard, “HLT1G” = green standard pilot light… “R”=red and “G” = green. Let’s roll the dice and assume that we can substitute “A” for amber and “B” for blue in these block names.

We can cut and paste copies of the two green pilot light rows. Insert twice. Then edit to cover “amber” and “blue” pilot lights.

(Caution: the F and G rows need to remain “text” – this may mean adding a single quote character in front of the number digit to force Excel to treat it as character string instead of a number. AutoCAD Electrical will have trouble reading the Excel spreadsheet if there is a mixture of numeric and text values in the same vertical column. All values need to be marked as “text”.)

Note: also scroll over to columns K and L and make the “A” and “B” color code changes.

Save and exit the spreadsheet.


And now, when we run Circuit Builder and get down to the “Light” option, there are our four new options! Very nice…!

February 16, 2011

Tutorial – Save Circuit / Insert Circuit from Icon Menu – AutoCAD Electrical

Filed under: Electrical, Tutorials — nateholt @ 3:17 pm

Save partial or complete schematic circuits to the AutoCAD Electrical icon menu for pick and placement at any time into the current design.

Autodesk’s Nathan Eliason hosted a webcast today (February 16, 2011) that was an introduction to the Circuit Builder tool built into AutoCAD Electrical. I helped put the demo together and was responsible for real-time Q & A support while Nathan was “on stage”.

Note: this posting is a summary of what Nathan covered in the first part of his presentation, prior to introduction of the Circuit Builder tool.

Save Circuit / Insert Circuit from Icon Menu

This is the original circuit toolset that’s been around for a very long time. And there are two versions that ultimately do the same thing, that is, allow you to save partial or complete circuits and then, at any time, pop in copies of them for re-use.

For example, on the circled part of the circuit shown above… let’s say we have designed a basic 3-phase motor control circuit with isolated control transformer and control circuit. We’ve built it up using AutoCAD Electrical, inserting wires and components. But we want to be able to quickly re-use this circuit and other circuits like this so we don’t have to create each future instance “from scratch”. Again, we’re talking about the original save/insert circuit capabilities that have been in AutoCAD Electrical for a long time…

1st method: Saving a Circuit using AutoCAD WBLOCK command

So, the first approach is to use the generic AutoCAD WBLOCK command and window the circuit or sub-circuit and save it to disk, perhaps in some folder structure you set up on a shared network drive. Maybe a folder for motor circuits, another for safety circuits, another for controllers, etc. Use WBLOCK command, select the components and wiring and an insertion point, give it a file name, and push it out to your custom “library” of circuits.

2nd method: Saving a Circuit to the Icon Menu

The second approach long supported by AutoCAD Electrical is using the “Save Circuit to Icon Menu”. You window the circuit or sub-circuit you want to save for later re-use. AutoCAD Electrical WBLOCKs out the circuit to disk, same as before… except that it gives you a bonus. It adds a convenient link to the circuit right on the schematic icon menu.

Let’s quickly walk through an example of this second approach, the “Save Circuit to Icon Menu”…

Let’s say we’re going to be inserting quite a few 3-phase motor symbols with each one attached to a 3-pole safety switch.

1. We can draw this one time.
2. Then we can save this out as a “saved circuit” to our icon menu
3. Then, any time we need this, we can select it from the normal schematic icon menu and pop it in.

Here’s  how…

1. Assume we’ve initially drawn the circuit.
2. Now ZOOM in on what is to be included in the saved circuit.
3. Then select the “Save Circuit to Icon Menu” command as shown below.

AutoCAD Electrical flips into its “Icon Menu Wizard” mode and jumps to the page dealing with saved “user circuits”.

4.  Right-click in an empty spot in the icon area of the dialog.
5.  Select “Add icon” à “New circuit…” which then pops up a “Create New Circuit” properties form for the new icon…

6. Fill in the form above. The first line is the text that you want to show up below the icon. Here we’ll just enter something like “DS and 3PH Motor”. Toggle the “Create PNG from current screen image” to capture the active drawing’s current state. This will become the actual icon graphics that show up in the button. Enter any file name in the middle and bottom edit boxes. Hit “OK”.

7.  With the icon defined, the final step is to select the components and wiring that are to be WBLOCKed out as this circuit along with the insertion base point.

That’s it. Now it’s ready for re-use…  at any time we can insert the previously saved circuit into the active drawing schematic.

We can use the Insert Wblocked Circuit command (shown in blue below) and browse to the saved circuit’s “.dwg” file, then pop it in and auto-connect to out active drawing’s wiring. Or, in our example since we used the “Save Circuit to Icon Menu” approach (shown in red below), we can pick on the new icon…

Inserting a saved circuit previously saved to an icon menu button reference

1.Select the “Insert Saved Circuit” button as shown in red below.

2.This immediately pops open the schematic icon menu and jumps to “User circuit” page.
3.Pick on the new circuit icon. Pop the circuit into position on the active drawing. There it is!
Note: If you can’t remember how to find the “Insert Saved Circuit” button on the ribbon, just select the Schematic icon menu. Pick “Miscellaneous” à “User Circuits”, and there it is… the new “DS and 3PH Motor” icon. Just pick on it at any time and pop in a copy of the saved circuit into the active drawing.
No matter which approach you use, the INSERT CIRCUIT command or the INSERT FROM ICON MENU command, the circuit pops in and…
1. Wires attempt to trim/reconnect to the drawing’s existing connections
2. Parent components attempt to re-tag appropriately
3. Child components that came in with the inserted circuit attempt to link to re-tagged parents that came in with the circuit

And there’s nothing stopping us from WBLOCKing out complete circuits, such as this 3-phase motor start/stop circuit. We can browse to the folder where we’ve WBLOCKed it or we pick it from the Icon menu if we’ve saved it with the “Save Circuit to Icon Menu” command… and pop it in. Component re-tag automatically, child contacts cross-reference, and wires re-connect.

Pretty cool… but actually there are some basic limitations… 


Which will lead to a future posting on the second, newer method. It made its appearance in ACE2009 and is called “Circuit Builder”.

The Circuit Builder tool comes preinstalled with an Excel data file to build and annotate a sampling of motor control circuits and power feed circuits. It includes three-phase, single-phase, and one-line circuit representations. Each circuit is built dynamically with the following features:

  • Connects to an adjacent power bus.
  • Adds wiring between components.
  • Annotates selected components with suggested values based upon the selected load.
  • Each time a circuit is configured, it is added to a history list of circuits. This list provides for quick re-insertion at a later time.
  • Driven from an editable Excel spreadsheet

 For the above, click on “Introduction to Circuit Builder” posted here.

Atoms-Family: tracking globals in AutoCAD Electrical

Filed under: Electrical — nateholt @ 11:03 am

No, not the 1960’s TV series… this is about a generic AutoLISP function. Use it to code-up a tool to monitor creation and modification of global variables as AutoCAD Electrical runs.

Disclaimer: this may or may not be useful information.

AutoCAD Electrical holds a lot of stuff in global variables as it does its thing. If you take a look at the source code for the Spreadsheet –> PLC I/O utility that Autodesk kindly ships with every copy of the product, you’ll notice quite a few variables with a prefix “GBL_wd_”. These are Lisp variables that hold data that is global to the overall AutoCAD Electrical application.

For example, there is the “WD_M” block that you’re probably familiar with. It has 70-80 attributes on it with key values that influence what and how things happen on the active drawing. AutoCAD Electrical reads this block and retrieves these attribute values one time and then saves the values as global variable called “GBL_wd_m”. Whenever you then ask AutoCAD Electrical to do some task on this drawing that requires it to retrieve a setting held on the WD_M block, it just grabs the value from the global variable GBL_wd_m instead of having to search the drawing for the WD_M block instance and then reading the appropriate attribute value off of it. Saves a lot of time.

There are lots of them and the names of these and lots of other stuff can be listed at any time with the simple Lisp expression (atoms-family 1) [Enter].

Here’s a tool that makes use of this atom-family call to track/monitor globals as AutoCAD Electrical runs …

Example Run

Starting up AutoCAD Electrical, we open up a drawing from the Project Manager. Then appload the above utility “GBL_TRACKER.LSP”. Type GBL_TRACKER [Enter] at the “Command:” prompt.

Now we pick an AutoCAD Electrical command, let’s say we try to SCOOT a wire. Then type GBL_TRACKER [Enter] again…

The circled global shows that the drawing’s valid wire type layer names are held in a global.

How might this be useful?

Let’s say that when we run  our SCOOT command and pick on a line that is on a layer that is not currently defined as a valid wire layer, then the SCOOT command aborts. For example, let’s say that we have drawn a cable “fan-in” and marked it with a cable marker. The “fan-in” part of the wire is on layer called “_MULTI_WIRE” which is not a valid wire layer. But we’d like to use SCOOT to adjust it.

From what our tool’s output tells us, it looks like valid wire layer names are held in a global variable. What if we try to temporarily add layer name “_MULTI_WIRE” to the global variable that holds the drawing’s valid wire layer names? Will SCOOT then “work” when we pick on a LINE that is on non-wire layer “_MULTI_WIRE” ? Let’s try it…

To add this to the global variable, we’d type or program this expression:

(setq GBL_wd_active_dwg_wiretype_cache_lst (cons "_MULTI_WIRE" GBL_wd_active_dwg_wiretype_cache_lst))

And now, when we try to SCOOT the non-wire and attached cable marker, SCOOT does not error out… but operates as if the non-wire line entity was actually a wire! Cool.

To restore normal SCOOT operation, just set the global to nil (and it will re-read the next time it is needed).

(setq GBL_wd_active_dwg_wiretype_cache_lst nil)  

UPDATE: forgot to mention this… you can view the contents of any global variable at any time. Just type the global variable name at the “Command:” prompt BUT precede the name with a ! character. For example, to display the value of the GBL_wd_m global, type this:

Command: !GBL_wd_m [enter]

February 12, 2011

Programmatically adding active dwg to active project – AutoCAD Electrical

Filed under: Electrical — nateholt @ 10:55 am

One line of Lisp code is all it takes for your custom application to add the active drawing to the current active AutoCAD Electrical project.

This question came up a couple days ago… “How can I program my custom application to take each drawing it creates and automatically add it to the current AutoCAD Electrical project?” You could do this the hard way by opening up the active project’s “.wdp” text file and add the full path to the new drawing to the end of that file.

But there’s a cleaner way that is used in the Spreadsheet –> PLC I/O utility to add each new PLC I/O drawing to the active project. This AutoCAD Electrical command is run from “full source code” mode and it is written in AutoLISP. So, maybe we can just take a look at this source code, find the right spot, and cut/paste a block of code into our custom application ( ! )

Finding the source file: wdio.lsp

Start AutoCAD Electrical. Type this at your AutoCAD command prompt:  

Command:  (findfile “wdio.lsp”)  [Enter]

It should return the full path to the PLC I/O utility’s source file. If this fails, try this one:  (c:ace_find_file “wdio.lsp” 3) [Enter]. Make backup copy of this file (just in case)

Open the “wdio.lsp” file

Use any ASCII text editor or type VLIDE [Enter] at the AutoCAD command prompt and use the built-in Visual Lisp editor.

Scroll down. The key part of the file that saves the active dwg to the current active project is excerpted below:

      (setq x (c:wd_is_cur_dwg_in_proj))
        ((> x 0)) ; this drawing is already listed in the project
        ((< x 0)) ; no project is marked as "active" ??
        ((= x 0) ; active dwg is not listed in active project, add it now.
          ; Call the normal AutoCAD Electrical "API" call for updating active drawing's title block
          ;    First sublist (of 13 elements, 1 for selected, 0 for not selected )
          ;    1st =  mapped to DWGDESC (the description under drawing "properties")
          ;    2nd = mapped to DWGSEC
          ;    3rd = mapped to DWGSUB
          ;    4th = mapped to FILENAME
          ;    5th = mapped to FILENAMEEXT
          ;    6th = mapped to FULLFILENAME
          ;    7th = mapped to DWGNAM
          ;    8th = mapped to SHEET
          ;    9th = mapped to SHEETMAX
          ;   10th =
          ;   11th = mapped to IEC_P (the drawing's IEC coding default for %P)
          ;   12th = mapped to IEC_I (the drawing's IEC coding default for %I)
          ;   13th = mapped to IEC_L (the drawing's IEC coding default for %L)
          (c:wd_tb_process_one 1 (list (list 1 1 1 1 1 1 1 1 0 0 1 1 1))) ; update title block
          (c:ace_add_dwg_to_project nil (list "" "" "" 1)) ; first "nil" = add active dwg
      ) )

The key command that pushes the active dwg into the active project is highlighted in red above. If you know that the active drawing is not in the active project, executing just this one-line AutoLISP expression should push the drawing into the project.

Note: here’s a quick test… just type at the command prompt and hit [Enter]…


Command: (c:ace_add_dwg_to_project nil (list “” “” “” 1))

Checking files for any marked in-use/read-only . . .




… and the drawing appears in the project manager of active project.



February 9, 2011

Extending AutoCAD Electrical to 4-pole Breaker/switch Dynamic Inserts (and beyond)

Filed under: Electrical — nateholt @ 11:12 am

The icon menu component insertion tool can be easily customized to extend quick pick and dynamic insertion of multi-pole devices of pole counts beyond AutoCAD Electrical’s 3-pole default.

Normally, to accommodate a circuit breaker of more than three poles, you pop in the 3-pole breaker from the stock icon menu pick and then manually add in to more single child breaker poles.

But let’s say that we routinely need to insert a 5-pole circuit breaker…

Would be nice to just hit a button…

Here’s a step-by-step sequence showing how to add a new button to the icon menu for a 5-pole circuit breaker.

Step 1 – Determine the parent and child symbol names needed to build the breaker.

Just insert a 3-pole breaker from the icon menu somewhere in space on the drawing.  Then use any block/attribute editing tool or the AutoCAD “LIST” command to get the block name of the top symbol (the parent)…

… and the block name used for the 2+ child poles.

Step 2 – Launch AutoCAD Electrical’s Icon Menu Wizard tool.

 Select “Schematic” and hit OK.

Step 3 – Drill down to the Circuit Breakers / Disconnects icon menu page. This is where we’ll add our new 5-pole CB icon.

Okay, here we are at the desired page… dealing with breakers and switches.

Fill in some data on the form for the new icon…

… the dialog below shows the standard commands available for the icon menu. Pick on the 3-pole parametric build option (even though we want 5 poles). Hit OK.

This brings us back to the previous dialog below but has filled in the “Command” edit box with command name WD_3UNIT. Here is where we trick AutoCAD Electrical to insert five poles (1 parent + 4 child symbols). Type in the parent symbol name (from step 1 above). Type in the child symbol name four times. Put a space between each symbol name as shown below.

Hit “OK” and “OK” to get all the way out of the Icon Menu Wizard tool.

Step 4 – Let’s try it! Hit the normal “Icon Menu” icon to insert components. Drill down to the Circuit Breaker page. There’s our new icon. Pick it.

Select and pop into the bus…

… and use the same icon to insert into vertical bus…

February 3, 2011

Energy-absorbing mailbox 2, Snow-plows 0

Filed under: Musings — nateholt @ 2:31 pm

It is looking like my modified mailbox may survive its second year against the county snow-plows. This is a tiny bright spot in an otherwise long and bitter Ohio winter.

Here is what the mailbox across the road looks like after the latest blast of snow. Not a pretty sight.

And here is my mailbox, still standing [so far!]. The difference may be the energy-absorbing mechanism I added to the design.

The idea is that the mass of snow-plow generated ice and snow, travelling 45-55 mph and striking the mail box assembly, causes the large gray hinged part of the mailbox to swing with the blow. This does two things: 1) As the hinged mailbox part rotates, the cross-sectional area exposed to the flying wall of snow/ice is reduced (side versus back).  Some of the trailing part of the wall of snow/ice will “miss” hitting the mailbox because the box will have partially rotated out of the way – exposing the back of the box instead of its maximum broad side. 2) The movement/acceleration of  the box as it rotates on the hinges absorbs energy along with the increasing resistance provided by the stretching spring.

The net result is that the shock of a “broadside hit” is reduced and, “rolling with the punch”, the energy is dissipated over a longer period of time. The spring auto-resets the mailbox to its normal position… ready for the next snow-plow.

So far, so good…!

UPDATE: a commenter below asked whether the a violent rotation might fling out the contents of the mailbox. I made some snide comment, but this commenter has proven to be absolutely correct!  I need to adjust the door latch to be a bit stiffer…

We had another 6-inches of snow several days ago, and the mailboxes along my road were subsequently attacked by the snow-plows. Afterwards I found various pieces of my mail frozen to the road surface, extending to about 50 feet downstream from my still-standing mailbox. One key item, what was supposed to be a tax return, is pictured below, chiseled from the road’s surface ( ! )

[05-Jan-2015 Nate Holt – it’s now 2015 and the mailbox is still standing — the design seems to have worked [so far]. The winter of 2013-2014 was brutal with record snow in our state, but the snowplows were still unable to take it down. Will see what the future holds for the remainder of this winter…]

February 1, 2011

Circuit Builder (part 1 intro) – link to recorded Webcast of 16-Feb-2011 (16-02-2011)

Filed under: Electrical, Tutorials — nateholt @ 6:08 pm

Hour-long  webcast at 11am PST, 16-Feb-2011, covering 1) save/insert complete circuits, and 2) introduction to the Circuit Builder tool that is built into AutoCAD Electrical (2009 and greater).

Here is the link to the recording of this webcast.

January 31, 2011

Circuit Builder – switching from AWG to metric wire sizes – AutoCAD Electrical

Filed under: Electrical — nateholt @ 11:27 pm

How to define an alternate “electrical standard” to force Circuit Builder to default to metric wire sizes in its calculations.

Circuit Builder’s “Wire Size Lookup” dialog is a tool that can link into an “electrical standard” and guide you as you select motor size, motor power wire sizing, and appropriate ratings of the main disconnecting means – whether some type of breaker, fusible switch, or just fuses.

It can be launch from within Circuit Builder’s “Circuit Configuration” dialog as shown here:

The dialog opens and includes a number of different de-rating factors and settings. The results of the calculations default to AWG wire sizes. But one of the settings on the dialog can toggle calculations and display of metric wire sizes.

Let’s say you have a project that needs to use metric wire sizes rather than AWG. But you’d rather not have to remember to toggle to the “MM2” metric option every time the “Wire Size Lookup” dialog displays. You’d like it to default to metric wire sizes.

Setting up an alternate standard that defaults to metric wire sizes

Here’s how to create an alternate standard that parallels the default National Electrical Code settings for wire calculations but defaults to using metric wire sizes instead of AWG sizes. This avoids having to hit the AWG/MM2 toggle each time the dialog displays.

1. Launch the built-in Access database editing tool as shown below.

2. The Electrical Standards Database Editor dialog opens. Expand the “Default” and “NEC” tree nodes to show all table names. Find the table named “OPT_NEC”. Right click and Copy / Paste this table. Name the new copy “OPT_NEC-MM2” as shown below.

3.  Once you hit OK, the tree structure will update and add in the new “NEC-MM2” entry as shown below. Expand it to display the copied table OPT_NEC-MM2 and click on it to open. Edit the two “name” records highlighted in red. 

Here’s the key change. Edit the record marked with a CODE field value of “W_STD”. Change its DEFAULT field value from “AWG” to “MM2”. Hit “Save” and exit out of the database editor.


Open up any project. Right click on the project name in the AutoCAD Electrical Project Manager and select it.

Now run Circuit Builder and start to “Configure” a motor circuit. On the “Motor Setup” right at the front end, hit the “Select Motor” as shown below and make some motor selection. This sets in motion the queries into the select standard in the Electrical Standards Database file.

Select any motor size in dialog above and hit OK. Now cross your fingers and pop open the “Wire Size Lookup” dialog as shown below.

The dialog should display. Metric wire sizes instead of AWG sizes should now calculate and display. 

If there are other defaults you’d like to change, take a look in your new copied OPT_NEC-MM2 table and adjust.

Other Circuit Builder tutorials:

Tutorial – Introduction to the Circuit Builder Tool (Part 1)
Circuit Builder – Creating an Alternate Electrical Standards Setting
Circuit Builder – Leveraging AutoCAD’s “Group” Concept
Circuit Builder Configure Mode – Adding a “Pick from Icon Menu” Selection
Circuit Builder – Embedding Custom Calls in the Spreadsheet

January 30, 2011

Circuit Builder – Creating an alternate electrical standards setting – AutoCAD Electrical

Filed under: Electrical, Tutorials — nateholt @ 12:11 am

AutoCAD Electrical ships with Circuit Builder’s “electrical standards” for wire sizing and breaker/fuse/switch ratings set to parallel some of those outlined in the National Electrical Code. Here is how to alter the settings or create a selectable, alternate electrical standards selection.

Circuit Builder’s “Wire Size Lookup” dialog is a tool that can link into an “electrical standard” and guide you as you select motor size, motor power wire sizing, and appropriate ratings of the main disconnecting means – whether some type of breaker, fusible switch, or just fuses.

The motor power wire sizing has a number of different de-rating factors selectable from the dialog. One of them is the “Fill Correction:” selection. The motor wire ampacity is reduced in steps when there are more than three power conductors grouped in the same conduit, raceway, or cable. The de-rating steps increase with increasing ranges of grouped power conductors.

Enemy: Heat

Internally generated heat is enemy and heat is the issue here. We’re talking about the “I squared R losses”, the power that is dissipated in a wire conductor in the form of heating of the wire itself. The more current-carrying wires that are grouped together, the warmer all of the conductors will become as a group, further raising the resistance of the conductors and potentially exceeding the conductor’s insulation temperature rating.  

So, an electrical code may require that the maximum amps that a conductor can safely carry, when it is all by itself or with no more that two other conductors, needs to be de-rated to a factor of 0.8 of the original when there are between four and six conductors grouped together in a conduit, cable, or raceway. And, if the number of power conductors is seven to nine, the de-rating needs to be 0.7 of the original.

Default “FILL” table

The ranges for “FILL” de-rating are defined in a table found in Circuit Builder’s Electrical Standards database file. The default table is called “FILL” and is shown below using AutoCAD Electrical’s built-in standards database editor (you can also view it using a copy of Microsoft Access).

The default table above yields these de-rating ranges:

  • 1-3:        1.0 ( no de-rating)
  • 4-6:        0.8
  • 7-9:        0.7
  • 10-20:   0.5
  • 21-30:   0.45
  • 31-40:   0.4
  • >40:       0.35

Creating an alternate standard that has a modified FILL table

Let’s say that you have some projects that need to follow a slightly different range of conductor groupings and de-rating factors, perhaps something that is closer to the UL 508A standard. Let’s say that the  alternate fill table needs to be more like this:

  • 1-3:      1.0 (no de-rating)
  • 4-6:      0.8
  • 7-24    0.7
  • 25-42  0.6
  • >42      0.5

We could just modify the existing table, but it might be better to create an alternate “UL508A” standard in Circuit Builder’s Electrical Standards database file. Here’s how to create a second standard as part of the standards database file.

1. Launch the built-in Access database editing tool as shown below.

2. The Electrical Standards Database Editor dialog opens. Expand the “Default” and “NEC” tree nodes to show all table names. Find the table named “OPT_NEC”. Right click and Copy / Paste this table. Name the new copy “OPT_UL508A” as shown below.

3.  Once you hit OK, the tree structure will update and add in the new “UL508A” entry as shown below. Expand it to display the copied table OPT_UL508A and click on it to open. Edit the two records shown and hit “Save”.

4. Make a copy of the “FILL_NEC” table. Name it “FILL_UL508A”.


5. Open up the copied/renamed FILL_UL508A table. Edit as shown below to give the altered ranges for grouped conductor counts and de-rating correction factors to parallel what might be found in the UL 508A standard. “Save” and “Close”.



Open up any project. Right click on the project name in the AutoCAD Electrical Project Manager and select it.

Now run Circuit Builder and start to “Configure” a motor circuit. On the “Motor Setup” right at the front end, hit the “Select Motor” as shown below and make some motor selection. This sets in motion the queries into the select standard in the Electrical Standards Database file.

Select any motor size in dialog above.

Now launch the “Wire Size Lookup” dialog (shown below). This is where we find out if our test is going to be a success or a failure. Turn on the “Fill correction” option. Hit the pop-list as shown. See if the five UL 508A grouping categories show up instead of the seven that show up for the NEC selection. Make some selections and confirm that the fill correction factor to the right of the pop list tracks the UL 508A ranges correctly.

That should do it.

If there are other things that you want to adjust per this alternate standard, copy the tables from the NEC version, rename with the UL508A suffix (replace the “NEC” suffix with “UL508A”), open, edit, and save.

January 19, 2011

Importing Wire Types from a master schematic (Part 2) – AutoCAD Electrical

Filed under: Electrical — nateholt @ 11:14 am

New drawing automatic import and set-up of wire types pulled from a master schematic drawing.

This is an update of the previous posting here. Autodesk has added this as a stock feature to AutoCAD Electrical 2011 ( ! )

Let’s say you’re creating a new schematic drawing to add to an existing AutoCAD Electrical project. It is going to be similar in function to an existing drawing where you’ve set up a number of custom “wire types”. What you’d like to do is just pull all of those wire types over to your new drawing and get moving.

But, when you select the “Create/Edit Wire Type” command and the dialog below displays, you realize that you’re only getting the default “WIRES” wire type defined with this new drawing. You really want to pull in wire types that you’ve already taken the time and effort to define on the other drawings in your project.

But wait…! What is this new “Import…” button used for? Could it be…???

Yes! The mysterious new button in ACE2011 brings up a file browse dialog. Select a “master” drawing to provide wire type candidates for the new, active drawing.

Make the wire type selections and hit OK. And in they come (below)! Nice…

Again, this feature became available starting in AutoCAD Electrical 2011. For earlier versions, you can use the tool described in the earlier posting linked above.

January 2, 2011

2010 in review

Filed under: Electrical — nateholt @ 11:45 pm

The stats helper monkeys at mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Crunchy numbers

Featured image

About 3 million people visit the Taj Mahal every year. This blog was viewed about 57,000 times in 2010. If it were the Taj Mahal, it would take about 7 days for that many people to see it.

In 2010, there were 40 new posts, growing the total archive of this blog to 96 posts. There were 294 pictures uploaded, taking up a total of 39mb. That’s about 6 pictures per week.

The busiest day of the year was November 9th with 406 views. The most popular post that day was Index of AutoCAD Electrical Utilities – April 2006 through October 2010.

Where did they come from?

The top referring sites in 2010 were,,,, and

Some visitors came searching, mostly for nate holt, solar eclipse, solar eclipse from space, autocad electrical, and autocad electrical tutorial.

Attractions in 2010

These are the posts and pages that got the most views in 2010.


Index of AutoCAD Electrical Utilities – April 2006 through October 2010 July 2009


Tutorial – Automation of PLC I/O Drawings – AutoCAD Electrical February 2010


Tutorial – Basics of ‘Smart’ Panel Layout (Part 1) – AutoCAD Electrical June 2010
1 comment


PLC I/O Drawing Generator – Pre-defining wire numbers – AutoCAD Electrical November 2009


Tutorial: Basics of ‘Smart’ Panel Layout (Part 3) – AutoCAD Electrical June 2010

December 8, 2010

Tutorial – Automatic Wire Annotation from Schematic to W/D (Part 1) – AutoCAD Electrical

Filed under: Electrical, Tutorials — nateholt @ 2:48 pm

Annotation of panel wiring diagram representations with real-time schematic wire connection data.

Autodesk’s Nathan Eliason hosted a webcast earlier today that focused on AutoCAD Electrical’s ability automatically annotate panel layout or panel wiring diagram representations with real-time schematic wire connection data. I helped put the demo together and was responsible for real-time Q & A support while Nathan was “on stage”. 

Note: this posting is a summary of what Nathan covered in the first 30 minutes or so of his presentation.

A Quick Review

Let’s summarize what we saw in the first two or three panel-related tutorials back in June


Once the schematic creation phase is complete, AutoCAD Electrical extracts a list of schematic components for placement into panel layout drawings.  Users choose the panel location and a physical “footprint” representation of each device to be inserted into the layout and a “link” is automatically created between the device and its representation.  Any changes to the schematic or panel representation will update the other.  Non-schematic items like wire duct and mounting hardware can be added to the layout and automatically combined to create a “smart” panel bill-of-materials report.


Simplify panel layout drawing creation to reduce errors and ensure that all parts are placed, and drawings are automatically updated.

What do we mean by panel layout drawings being “smart”?  The layouts have a “smart” relationship with their control schematic counter-parts.

Consider this: The panel layout drawings are probably just one part of your overall electrical controls drawing package. The other very key part of the package is the electrical controls “schematic” drawings.

The electrical schematic drawings in your design define the interconnected wiring between control devices such as relays, pilot lights, switches, motor starters, I/O modules, and such. They might be drawn in a “ladder” format as shown here, or sideways ladders, or even drawn in more of a point-to-point interconnection style.

These schematics are actually quite “smart” all by themselves. With AutoCAD Electrical they can have automatically generated tag-IDs, child contact cross-referencing, automatic wire number assignments, various BOM reports, and on and on.

But, when panel layout drawings and associated schematics are combined in a single AutoCAD Electrical project, then the panel layouts get a big “Project IQ” boost from the presence of their schematics.

Item #5 is the one that is the main topic addressed in Nathan Eliason’s webcast 08-December-2010 and summarized below.

Schematic to Panel W/D Wire Connection Annotation

The panel layouts and the electrical controls schematics are tied  very closely together.  Let’s use one of the sample projects, “IECDEMO”, that installs with the product.

Here we have portions of three drawings shown below. There are two electrical schematics on the left and a small portion of a panel layout on the right.


The circled elements on the two schematics are related to the physical panel footprint symbol on the right.

Let’s use this simple example to show how the AutoCAD Electrical panel layout drawing on the right can be turned into a quick “wiring diagram”. What this wiring diagram will show is a listing, all in one place, of schematic wire connections that tie to this “-K14” motor starter.

Two things to check before we launch the wiring diagram annotation command. The first is this…

 1. Set the annotation format to include the pieces of information you want to see on your wiring diagrams.

This is set up as a project-wide default by selecting “Panel” –> “Configuration” on any drawing of the project. Here we’ve selected that we want wire number, destination component tag and pin number, and connected wire’s color/gauge layer name.

The second thing to check is the default text style and text size for the annotation. The command will default to whatever text style is set as “current” for the target panel layout drawing. Here we have text style “WD_IEC” and text height of 2.0 selected for our panel layout drawing.

 Now we’re ready to go.

Launch the “Wire Annotation” command as shown above. Select “Active drawing (all)” and hit OK.

You’ll see the annotation dialog pop up one more time. Confirm selections and hit OK.

In a few moments AutoCAD Electrical will have extracted the current state of the schematic wiring, sorted it all out, formatted it per your selection, and then pushed it out to each panel footprint symbol ( ! )


Now, the annotation comes in as an MTEXT entity located at the origin point of each footprint symbol (as shown above). You can move the MTEXT entity to a better position and it will then “hold” at that position when you re-run the command to freshen the connection data with edits made on the schematics.

Here we’ve repositioned the MTEXT annotation for the “-K14” motor starter.

Note that all the information on the portion of the schematic shown on the left-hand side of the screenshot has been automatically annotated on to the panel footprint representation… this includes the wire color/gauge layer names because we selected that option for the wire annotation format.

[Next blog posting… Part 2 – Creating and annotating separate wiring diagram layout drawings]

Other Panel-related tutorials:

Tutorial – Basics of ‘Smart’ Panel Layout (Part 1)  
Tutorial – Basics of ‘Smart’ Panel Layout (Part 2)  
Tutorial – Basics of ‘Smart’ Panel Layout (Part 3)
Tutorial – Mapping schematic components to panel layout – AutoCAD Electrical

December 6, 2010

Forcing full database rebuild – AutoCAD Electrical

Filed under: Electrical — nateholt @ 12:11 pm

This old command didn’t make it into the ribbon UI a couple releases ago. But every once in awhile I’d like access to it again to manually force a rebuild of my current project’s scratch database file.

Just type this at the AutoCAD Electrical “Command:” prompt:

Command: AEREBUILDDB [Enter]

This dialog appears. Make your selection and let it do its thing.

December 3, 2010

Command substitution example, ‘Show Sigs’ – AutoCAD Electrical

Filed under: Electrical — nateholt @ 11:37 am

Substituting  your own version of a command for one called from the stock AutoCAD Electrical ribbon UI

Here’s an example of invoking your own version of a utility from the stock AutoCAD Electrical ribbon UI without modification. The key is to give your utility the same executable command name that the ribbon calls. Then add your utility to the normal AutoCAD “Startup Suite”.

The sequence appears to be that AutoCAD loads the AutoCAD Electrical code into memory first. Then it loads the stuff you’ve defined in the Startup Suite. If one of the latter has the same executable name as the former, then the latter one wins. Your custom utility will take precedence over the same-named AutoCAD Electrical one.

“Show Sigs” example

The stock “Show Sigs” command works by zooming extents and then displaying the temp graphics to show the source/destination links. But on a crowded drawing, you may want to zoom in to get a better view. The problem is that this erases the temp graphics. If you first zoom in and then launch the command, it zooms extents and then displays the graphics. You’re  screwed. Frustrating.

But if we create our own version of this with an ability to pan/zoom around and follow the paths, then it would be so much nicer. And if we give it the same executable name as the existing command in the UI and let it appload from the AutoCAD “Startup Suite”, then our own version will execute in place of the original when picked from the UI.

So, here’s the sequence:

1. Get the existing command name that is launched from the AutoCAD Electrical UI. Run the command one time. Then pick the “up arrow” key to “repeat the last command”. You should see the command name at the command prompt. It will likely have an “AE” prefix. For this example, it is “AESHOWSIG”.

2. Create your Lisp or VB version of the utility using this as the executable’s name. In lisp, your function name line of code would be something like this:

(defun c:AESHOWSIG ( / ) …

3.  Test your utility and adjust until you get it working as desired (this is the hard part!)

4. When finished, add your utility to the “Start-up Suite”. Type APPLOAD at the “Command:” prompt to display dialog as shown below.

Browse to your executable and add it to the list of executables to automatically load at AutoCAD  start-up (and with each subsequent drawing you open in AutoCAD).

That should do it. Restart AutoCAD Electrical. Now, selecting the “Show Signals” button on the stock AutoCAD Electrical UI should now invoke the new utility ( ! ). No change to the UI is needed in this case. To go back to the original, just remove this entry from the Startup Suite list.

If you want to see how this works, download the sample utility here.

December 1, 2010

Win7 “Aero Themes” and AutoCAD 2010/2011 (??)

Filed under: Tips — nateholt @ 12:47 am

“Aero” theme selection potentially causing instability with AutoCAD 2010/2011 (??)

Win7 “Home Premium” has not been too friendly with AutoCAD 2010/2011 on my inexpensive laptop. It would go through periods of locking up every hour or so when AutoCAD was running, even when doing just the simplest tasks. Sometimes just sitting there… I would come back to the machine and it would be locked up.

A Google hit suggested that the Win7 “Aero” theme might be the culprit…

…it’s now been two “lock-up-free” days since I flipped my machine over to a generic theme!  Fingers-crossed…

October 27, 2010

AutoCAD Electrical: Change Default Catalog Lookup Filters

Filed under: Electrical — nateholt @ 7:15 pm

Here’s link to Mark Flayler’s article from the IMAGINiT Manufacturing Solutions Blog… to potentially gain some speed on the improved AcadE 2011 catalog lookup dialog.

Older Posts »

The Shocking Blue Green Theme. Create a free website or blog at


Get every new post delivered to your Inbox.

Join 39 other followers