Controlling the Machine

  • Coinciding with the acquisition of VIA Development, Nate joined Autodesk in March of 2003 after a decade stint as an entrepreneur following a two-decade stint as a controls engineer and software applications developer at Owens-Corning. Nate is now the lead product architect for AutoCAD Electrical. He loves this stuff.

    About Nate

Latest Post

  • Undoing "Do not show me this again" - AutoCAD Electrical
    August 27, 2008 02:23 PMby Nate Holt

    Have you thought this?... "Gee, if I select 'Do not show me this again'... it seems so permanent. What if I someday I regret this, I want to change my mind. Am I doomed?..."

    I felt that fear at one time in my life, but no more. Go ahead. Hit the toggle with an easy conscience knowing that, in this case, "never again" doesn't have to be forever.

    Example

    Here's an example (provided by Autodesk's Pat Murnen)... the Terminal Strip Editor tool may sometimes throw this alert message:

    If I don't want to see this message for the next couple days while working on this old project... but don't want to lock myself out for eternity, can I hit the "Do not show me..." toggle?

    Answer: Yes

    No problem. When you're ready to restore this or any other accumulated "no shows", just get into the normal AutoCAD "Options" dialog. Select the "System" tab and then the "Hidden Message Settings" button.

    This sub-dialog pops up showing you which are your system's hidden messages. Toggle the ones you want to start seeing again.

    Redemption! It's so good.

    0 Comment | Add CommentIn Controlling the Machine >

Previous Post

  • AutoCAD Electrical - Technical Pulications - survey request
    July 24, 2008 03:57 PMby Nate Holt

    Hello AutoCAD Electrical Customers!
     
                    The AutoCAD Electrical Technical Publications Team wants to make every effort to ensure the product documentation is meeting your needs and as part of this ongoing effort, we would like to ask you to complete a short survey.  This survey takes only a few minutesto complete, and will go a long way in helping us to understand which learning solutions are important to you.  You can access the survey by clicking the link below.
     
     
    Thank you,
     

    The AutoCAD Electrical Technical Publications Team

    0 Comment | Add CommentIn Controlling the Machine >

  • Circuit Builder API call - incorrect argument list
    June 16, 2008 10:11 PMby Nate Holt

    The new Circuit Builder tool in AutoCAD Electrical 2009 can do some pretty neat things. It is pretty flexible as far as customizing it to do other than three-phase motor control circuits.

    One issue that a user brought up recently was that the API call for running circuit builder without any user prompts is not documented quite right. One of the arguments is in the wrong spot.

    Here is the correct documentation for the call:

     

    ace_cb_insert Function

     

    Description
    Invoke Circuit Builder and insert complete circuit without any user prompts.

    Syntax
    (c:ace_cb_insert  param_lst)

    Parameter
    param_lst
    (list xy template_dwg xls_fnam xls_sheet insckt_scl symscl rungvertdist runghorizdist history_name options)
     
    • "xy" = main template insertion coordinate, nil = user prompted to pick insertion
    • "template_dwg" = main template dwg to insert
    • "xls_fnam" = circuit builder XLS file, nil = default to "ace_circuit_builder.xls"
    • "xls_sheet" = code sheet that corresponds to the selected template
    • "insckt_scl" = main template insertion scale, nil = use drawing default
    • "symscl" = component insertion scale, nil = use current default
    • "rungvertdist" = spacing adjustment distance between marked horiz wires
    • "runghorizdist" = spacing adjustment distance between marked vertical wires
    • "history_name" = nil if no "history" reference, otherwise = previously assigned circuit name
    • "options" 1's bit set=debug messages on, nil=no options selected
     
    Example: insert 3-phase non-reversion motor starter circuit as defined in the default ace_circuit_builder.xls spreadsheet file. Insert at coordinate 5.0,23.5 on the active drawing.
     

    (c:ace_cb_insert (list "5.0,23.5,0.0" "ace_cb1_FVNR_H" nil "3PH_H" nil nil nil nil nil nil))

     

    Example lisp expressions (entered at command prompt to illustrate what they will generate):

    Command: (c:ace_cb_insert (list "5.0,23.5,0.0" "ace_cb1_FVNR_H" nil "3PH_H" nil nil 0.75 0.75 nil nil))

     

    Command: (c:ace_cb_insert (list (getpoint) "ace_cb1_FVNR_V" nil "3PH_V" nil 1.5 1.75 0.5 nil nil))

     

    Command: (c:ace_cb_insert (list (getpoint) "ace_cb1_FVNR_V" nil "3PH_V" nil 1.5 1.75 1.5 nil nil))

     

     

     

    0 Comment | Add CommentIn Controlling the Machine >

  • Circuit Generation by Layer Combos - AutoCAD Electrical
    May 21, 2008 11:53 PMby Nate Holt

    Creating custom circuit designs by exposing/hiding combinations of layered sub-circuit options!

    You have a standard design but with many options. You draw each option on its own layer and save the whole thing as a template drawing. Then, you create a desired design by copying the template and turning on (or off) a specific set of option layers.

    There are a couple problems with this approach and AutoCAD Electrical, but they can be overcome (!).

    First of all, AutoCAD Electrical will include all components marked with catalog information in its BOM reporting, even components on a layer that has been frozen or turned off.  So, for options that you do not want in your final design, the components and wiring on those layers need to actually be deleted from the drawing (not just frozen or layer turned off).

    Second, AutoCAD Electrical interprets line entities to be wires only when those line entities are found on one of the user-defined layers specifically set aside for wiring. The layer name itself gives the wire's color and gauge value and perhaps insulation type. So, pushing a couple components and interconnected wiring out to an "option" layer will defeat the ability of the line wire to retain its wire layer name assignment.

    This second issue, pushing wiring out to a specific option layer but providing a means to restore the original wire layer names if the option is "selected", is tricky. But a solution is to save the original layer name as an invisible "Xdata" value right on each wire segment as it is pushed to its option layer.

    The attached autolisp file contains a set of "tools" to make this all possible. Here is a listing of the five small functions contained in this file:

    files/21401_21500/21481/file_21481.lsp  (download this file and rename PushPullLay.lsp)

    (APPLOAD the PushPullLay.lsp file. Then each function below can be typed in at the command line prompt.)

    PushToLay [Enter] - prompts you for a new "option" layer name. Then prompts you to pick wires and components that are to be associated with that option. The utility moves the picked items to the target option layer. The original layer names are saved on each moved component as an Xdata value to be used by PullFromLay or (pull_lay <layerlist>) functions below. You would use this tool to help create the original circuit "template" drawing with all of its various option layers.

    PullFromLay [Enter] - prompts you for an existing "option" layer name. Then it pulls all components and wiring found on that layer (layer can be frozen or OFF, no problem) and restores the wires and components to their original layer assignments (saved when originally set up by PushToLay above).

    EraseLay [Enter] - prompts you to enter an unused "option" layer that you want to remove from the active drawing (i.e. so that it will not show up in the BOM report).

    These next two functions might be useful encoded into an overall VB, VBA, or AutoLISP application to auto-generate your circuit designs:

    (pull_lay <layerlist) - same as PullFromLay above but the layer name or names are passed as a list. For example, let's say you want to restore layers "OPTION3" and "OPTION55" with one call and no user prompts. You would set up your VBA or AutoLISP application to make this call:   (pull_lay (list "OPTION3" "OPTION55"))

    (erase_lay <layerlist) - same as EraseLay above but the layer name or names are passed as a list. For example, erase everything on OPTION4:  (erase_lay (list "OPTION4"))

    How it works

    Here is the "PushToLay" function. It prompts you for the targer "option" layer name. Then you select the components and wiring that is to make up this option. The utility process each entity in the selection set. It saves the existing layer name on the entity as a "PUSH2LAY" Xdata value. Then it pushes the entity to the target layer.

    The PullFromLay utility pretty much works in reverse. It prompts you for the option layer name. The utility then creates a selection set of everything it finds on that layer. Then it processes each of these entities, reads the save layer name from the PUSH2LAY Xdata value. It restores the entity to that layer. Presto... the option suddenly appears, neatly wired up and everything displayed on the appropriate layers!

     

     

     

     

     

     

    2 Comments | Add CommentIn Controlling the Machine >

  • Concatenations in Title Block Update - AutoCAD Electrical
    May 2, 2008 08:31 AMby Nate Holt

    Going beyond simple one-for-one text value insertions into a title block... this customer issue came up a couple days ago. AutoCAD Electrical's project-wide title-block update tool defaults to simple mapping of discrete drawing or project setting values to individual attributes in the title block. But this customer needed to format several of these drawing-specific values into one concatenated text string value and push it out to a single attribute on each drawing's title block.

    Let's say that the user's title block carries attribute "TB-DNAM" that is to carry a value that is a combination of the following project and drawing-specific values: Project "LINE3" value, then a dash character, then the project's "LINE14" value, then a colon, and finally the drawing's SHEET number assignment.

    Normally, this would have to be all done by hand. But with a little customization, we can trigger AutoCAD Electrical's title block update command to do this attribute value format automatically. Let's write a little AutoLISP function that we'll call "tb_concatenate.lsp", and it will concatenate values and return a single text string.

    And then, in our title block update ".wdt" file (or on the title block's invisible WD_TB attribute), we'll include the "TB-DNAM" attribute annotation to reference this AutoLISP function like this:

    TB-DNAM = (tb_concatenate (list 3 "-" 14 ":" "SHEET"))

    The key is that our function will accept a list of parameters to concatenate. So, it is "general purpose" !

    Here is the tb_concatenate utility and a brief summary of how it works.

    Above and toward the end, the function first reads in data from the active project's ".wdp" file. This will carry two lists of data that may be needed. First, there is the list of all project "description" lines, the LINE1 through LINEx values defined for the overall project. And second, there is a list of drawing-specific Section, Subsection, and drawing description lines. Each entry in this list is for a drawing in the project. Each entry is a "sublist" containing a list of the drawing's values.

    Now, below, the function begins to process the list of parameters passed in the call. The parameters are in "linelst" and processed one at a time, the "foreach" call. Each is checked to see if it is an integer number or a text string. If integer number, then it looks into the project description list pulled in above. If not integer, then it compares the passed text string parameter against a set of specific flags like "SHEET", "IEC_L", and "DD2".

    If no match as integer numer or on any of the specific text flags, it finally (near the bottom below) assumes that the parameter is just a text string to insert directly into the output.

    And that's it. When finished processing all of the passed parameters, the full concatenated string is returned by this AutoLISP expression. The AutoCAD Electrical Title Block update command pushes this concatenated value out to the target attribute on the title block ( ! ).

    Download utility here:

    files/21401_21500/21413/file_21413.lsp - download and rename tb_concatenate.lsp

    To use, you MUST first APPLOAD this utility before launching the title block update command. If you are running in multi-document mode (the AutoCAD default), then you'll need to use a method to make sure this utility loads with each drawing as it opens. Otherwise it will work on the first drawing and then fail from that point forward.

     

     

    1 Comment | Add CommentIn Controlling the Machine >

  • Match Wire Number Text to Wire Color - AutoCAD Electrical
    April 22, 2008 09:03 AMby Nate Holt

    Here is a simple user request that finds a happy solution using the AutoCAD Electrical "API". A small AutoLISP utility with a few embedded AutoCAD Electrical API calls does the trick.

    The Request

    Out-of-the-box, AutoCAD Electrical pushes all wire number text out to the user-defined layer under "Drawing Properties". In the example drawing below, the wire numbers all appear yellow because the defined WIRENO layer itself has been set to default to yellow.

    But the user prefers to see the wire number take on the color of the wire it is tied to. So wire numbers 59, 60, and 61 display as gray, 64 and 65 red, and the rest white.

    So, how to do this? All that is needed is a little post-processing utility to find wire number attributes, find the layer of the wire that the wire number ties to, and flip the attribute's layer to match that wire layer.

    The AutoLISP Utility

    Here is one way to do it. This AutoLISP utility includes a half-dozen calls into the AutoCAD Electrical API.

    Download file from this link, rename to wn_textcolor.lsp

    files/21301_21400/21353/file_21353.lsp

    To Use

    Download the utility and rename it to wn_textcolor.lsp. APPLOAD it. Then type WD_TEXTCOLOR [Enter] at the command line.

    Result

    Here's the "after" version:

    The utility should also find and move the "extra wire number copies" and any wire number leaders.

    1 Comment | Add CommentIn Controlling the Machine >

  • Autodesk University 2008 - LAST Call for Papers
    April 21, 2008 07:54 AMby Nate Holt

    Please submit your AutoCAD Electrical presentation proposal(s) online, as soon as possible (deadline April 27, 2008), at the "Call for papers" website:   http://au.autodesk.com/event/speaker_cfp/
    So, if you:
     
    • Have the communication skills, technical expertise, and relevant experience using AutoCAD Electrical….
     
    • Want to share your knowledge of a favorite topic—from tips and tricks, customization, new-user tutorial, or maybe even a look at a topic such as AutoCAD Electrical and sustainable design….
     
    • Are motivated to bring success to your peers….
     
     
    … Then Autodesk wants to hear from you—now!
     
    A speaker honorarium is also provided.

    0 Comment | Add CommentIn Controlling the Machine >

  • Autodesk University 2008 - Call for Papers
    April 21, 2008 07:49 AMby Nate Holt

    Please submit your AutoCAD Electrical presentation proposal(s) online, as soon as possible (deadline April 27, 2008), at the http://au.autodesk.com/event/speaker_cfp/guidelines/types/
     
    So, if you:
     
    • Have the communication skills, technical expertise, and relevant experience using AutoCAD Electrical….
     
    • Want to share your knowledge of a favorite topic—from tips and tricks, customization, new-user tutorial, or maybe even a look at a topic such as AutoCAD Electrical and sustainable design….
     
    • Are motivated to bring success to your peers….
     
     
    … Then Autodesk wants to hear from you—now!
     
    A speaker honorarium is also provided.

    0 Comment | Add CommentIn Controlling the Machine >

  • Help Wanted
    April 9, 2008 11:13 PMby Nate Holt

    The AutoCAD Electrical team is looking for customers who would be interested in helping to shape future releases of AutoCAD Electrical by attending periodic webcasts. The primary objective of these meetings would be for you to work directly with the AutoCAD Electrical team to gather your requirements, input, and suggestions regarding potential product enhancements. Prior to the events, you would receive an invitation with the details of the meeting as well as a high level agenda of the topics that will be discussed during the meeting. Participation is completely voluntary, but in order to participate in these discussions, you will be required to first sign our Non-Disclosure Agreement (NDA).

    If you are interested in participating in some of these meetings, please first complete the survey which you can access by clicking the link below:


    http://www.surveymonkey.com/s.aspx?sm=eoH3_2bL9p5DwWs0RuVVm93w_3d_3d


    Here are some answers to questions you may be asking yourselves right now:

    Q.) Where are these events held? Do I have to travel for them?
    A.) These events are held via a webcast presentation and conference call, so there is no need to travel and all you would need is internet access and a telephone.

    Q.) What is required of me if I attend one of these events?
    A.) Nothing, other than sending the requested information, signing and sending back the NDA, and calling/logging into the presentation. These events are completely voluntary and if you are not interested in a particular topic, or are just too busy at the time of the meeting, that is fine, you don’t have to attend. You can just wait for the next topic and discussion to take place and attend that meeting if you are available. Please keep in mind that our purpose of hosting these discussions is to help us ensure that we are meeting your needs with the potential product enhancements that are discussed.

    Q.) Ok, so I don't have to attend every discussion that I receive an invitation for, but for those that I do, how much of my time will it take?
    A.) We completely understand and respect how busy everyone is. Our goal for these events is to keep them to a 1 hour timeframe. Sometimes, the discussions may run over a little when many people have feedback they would like to provide, but we fully understand that not everyone may be able to continue to participate past an hour. We want everyone who joins the discussions to feel free to voice their opinions and to provide their input during these discussions. Having an open environment for these discussions where everyone feels comfortable contributing can really help to drive deeper discussion and discoveries and overall lead to a better solution for the potential product enhancements.

    The AutoCAD Electrical team looks forward to hearing from you and to your participation in these events!

    Jared Bunch
    Product Designer
    Autodesk, Inc.

    7 Comments | Add CommentIn Controlling the Machine >

  • "User Post" to alter sort of "By Tag" BOM
    April 7, 2008 03:06 PMby Nate Holt

    This came up late last week. A European user was seeing his "By Tag" bill of materials report show up sorted in reverse order when the primary sort was set to be the "TAG" field. He was seeing BOM entry for "-91K" show up before the entry for "-51Q" or "-1X".

    It appears that this report is first attempting to sort on the numeric suffix value of the field before it tries an alphanumeric evaluation. So the leading "dash" character common in IEC tagging mode was making the tag values look like negative numbers. The result is that sorting negative numbers from small (most negative) to large (least negative) would put "-91" before "-15" and "-1".

    The work-around was to create a "User Post", launched from the "By Tag" BOM report display. This would "post-process" the report data, do an alphanumeric sort (instead of numeric sort) on the "Tag" field, and then re-display the report.

    It only took one line of code added to the existing "user post" AutoLISP utility that ships with the product. This extra line makes a call into an AutoCAD Electrical API "sort" function. It sorts on the "(nth 16 ...)" element of each "By Tag" BOM entry - which corresponds to the "TAG" field. 

          (if (= user_2 "1")
            (progn
              (setq combined_data (c:wd_selsort combined_data '(lambda (X Y) (< (nth 16 X)(nth 16 Y)))))
          ) )

    The ACE2008 path/filename is c:\program files\autodesk\acade 2008\tag_bom.lsp - for other versions, hit the "User post" button with the report displayed and observe the full path/filename given in the command window).

    To finish it off, the "Dialog" entry can be changed as well (same folder, file name tag_bom.dcl):

     :toggle{key="user2";
            label="Use alpha-sort on TAG column";
            }

    That's it. Seems to work.

    Download files here is you'd like this adjusted user post file.

    files/21201_21300/21282/file_21282.lsp   (rename tag_bom.lsp)

    files/21201_21300/21283/file_21283.dcl   (rename tag_bom.dcl)

    0 Comment | Add CommentIn Controlling the Machine >

Subscribe to Blog

Want to keep up with the latest? Subscribe to the RSS feed today.

RSS

Login

Register now to access tips, discussions and more.
Forgot your password ?

Categories

All

Blog Roll

Autodesk Manufacturing Blogs
The Evangelist Speaks
Jay Tedeschi shares his thoughts
Under The Hood
Brian Schanen on Vault, Productstream, and more.
In the Machine
Garin Gardiner's Blog
Controlling the Machine
Nate Holt's Blog
Drawing the Machine
Andrew de Leon on mechanical drafting and design
Recommended Blogs
Between the Lines
Shaan Hurley's AutoCAD Blog
Beyond the Paper
Scott Sheppard's DWF Blog
Lynn Allen's blog
Lynn Allen's blog
Featured Peer Blogs
Ask the CAD Geek
Expert Autodesk product knowledge, with heavy focus on Manufacturing
Area 31
Custom programming, design ideas and other interesting oddities
Cadgneto's Blog
Autodesk mechanical products
Sean Dotson's Site
Sean Dotson's mCAD Tutorials, Forums, Admins & more
The Autodesk Informer
Helpful sites, tutorials, and industry news

Send to a Peer

You must login to share pages.

Feedback

Tell us what you think of the site.

Send Feedback