![]() |
|
Spaces home Bobby C. JonesProfileFriendsBlogMore ![]() | ![]() |
|
Bobby C. JonesMusings of a Corporate CAD Manager
August 11 AutoCAD Top Ten List
I've used AutoCAD for a long time and just like any long term relationship with an inanimate pile of 1's and 0's it is deep love/hate relationship. Below is my list of the top 10 items that I love about AutoCAD. Some of them refer to CAD in general and some are more geared towards the vertical applications and the new B.I.M. applications, but they all originated with my use of AutoCAD. #10 - Vertical Applications #9 - Fields #8 - The 3rd dimension #7 - Multiple Undo #6 - The powers of association #5 - Style based objects Style based objects make it extremely easy to put in a window of one style and change it to another. Styles have been around for a while, even in straight AutoCAD. Text and dimension styles have been bread and butter tools for CAD Managers and power users for many years. I can't imagine drawing without them. #4 - Blocks #3 - Customization #2 - Ubiquity #1 - Users There's my list, how does it compare to yours? Next we'll look at the top 10 items that I hate about AutoCAD.
Technorati tags: CAD Management July 11 There's Power Under ThereBefore I get into the CAD stuff, I need to share a little something that you may find useful. A while back I read a book on speed reading. And guess what, despite the "As Seen on TV!" warning on the front cover, it really works. My casual reading speed has increased 100% without any loss of comprehension or retention. I'm now working on actually increasing comprehension and retention while maintaining my increased speed. One of the methods the book suggests to do that is to increase your vocabulary.
I thought that I had a fairly decent vocabulary, but I tried an exercize outlined in the book. Anytime I came across a word that I didn't fully understand, I stopped reading and looked it up. The theory is that eventually your vocabulary will increase, you'll start spending less time in the dictionary, and your reading speed will increase as your grasp of the language increases. No kidding, on the first page that I read after starting this exercize, I found three words that I either didn't know at all, or only had a vague or partial understanding of the meaning. The words were pique, balefully, and diatribe. And let me tell you, after looking up these words and fully grasping their meaning, that part of the story took on a whole new dimension. I fully encourage you to give this experiment a try, even if you believe that your vocabulary is already Brobdingnagian.
Just like a large vocabulary is a key to success with language, knowledge of system variables is a key to success with AutoCAD. One of my old AutoLISP books had a huge section in the back that listed all of the AutoCAD system variables. It was instrumental in my early success with AutoCAD. I still try to keep up with all of the new ones, but I do miss a few. Here's one that a co-worker taught me about today:
PUBLISHALLSHEETS
It controls whether or not the PUBLISH command brings in the layout tabs from just the current drawing or from all open drawings. That one created some monster plot jobs before we figured out what was going on!
If you're not familiar with system variables, start exploring, you'll like what you find. If you think that you're well versed in them, give them another look. I promise that you'll rediscover variables that you forgot about and you may even find one or two that you never knew existed. July 10 Before it's too lateLast week on the Autodesk discussion groups I read of the passing of Don Reichle. I didn't know Don. I had never interacted with him in the groups. But I could see from the replies to the news of his passing that he was very well respected and liked. Lots of people had lots of good things to say about him. It struck me as sad that he may not have known the impact that he had on the people he knew and the people he didn't. All those words of kindness were a little too late for Don.
I started thinking of the people that I've met online that have had an impact on my career and my life. While there are many, I could fill pages with their names, 3 come to the top.
So while you're still around to hear it, thank you! You've been teachers, mentors, and most importantly friends. July 07 A Blog in the OvenOwning a Blog is much harder than I originally thought. It sounds simple enough; throw your thoughts into the machine, mix in a few screen shots, stir, and viola, a Blog is born. Truth be told, I am very happy with my Blog. And why shouldn't I be? I made it exactly the way that I wanted it. The problem with authoring a Blog is the same problem that Chefs face; who's going to eat it? I like brownies. My motto is that if I'm going to add inches to my waistline, there will be chocolate involved. In particular I like my brownies extra gooey. I've found that taking them out of the oven 5 minutes early will achieve gooey perfection. No one else in my family, immediate or extended, likes them gooey. They prefer them more cake like. (I know, it doesn't make sense to me either.) Just remember, of all my family I only choose one, and I can forgive her the sin of liking cakey brownies. So when I make brownies for me, they are dense and gooey. When we take them to a family gathering, they are light and cakey. How do you like your Blogs, dense and gooey or light and cakey? My guess is that most readers prefer light and cakey. As the chef of this Blog, however, I sometimes like to cook and serve up something dense and gooey. Have you read my very first post? Most of my posts have been very light and cakey, mostly dealing with work and professional topics. But that's not me, at least not all of me. And if I try to stay completely within the light and cakey realm, I'll get bored and stop posting. (This is my first post since early March for crying out loud!) I promise that I'll keep the dense and gooey posts to a minimum, with the deepest left inside my journal, but realistically, if I'm going to keep this Blog active it's going to have some deep gooey places. So until next time, adios! Will the next time be dense or cakey? I don't know, but rest assured, there will be a next time. March 04 Hanging Pictures With ShoesI am by no stretch of the word old; unless of course you ask my children who may have a different opinion. But I will admit that I have lost a step or two to old man time. In years past I could read something once and it was committed to short term memory; committed at least long enough to pass the quiz the next day. Now however, I find that I must read and re-read certain things in order to understand and memorize them. I'm hoping that this is just the result of picking up poor reading and memory habits. So I bought a book on speed reading and reading comprehension. I'm still in the early chapters, but it has given me a couple of tools that will help me break my bad reading habits. After explaining these tools, and while giving some encouragement on using them, the author said something that sounded awfully familiar.
I have seen, and repeated, this exact same advise, in varying contexts, countless times. It is just a fact of life so ingrained into my everyday living that I don't really think about it anymore. But I constantly see this principle being fought, at home and at work.
I'm not saying that the reasons given in any of these scenarios aren't valid. But the person giving these excuses likely doesn't have enough, if any, experience with the alternate tools to make an educated decision on which is best for which job. They know their one tool, they know how to manipulate it to do any job, and they'll use it even if they have to jump through incredible hoops to do so. I know, because I have been the acrobat contorting my body and jumping through flaming hoops suspended hundreds of feet in the air to get from point A to point B. If I had taken the time to learn a new tool I could have simply walked the short straight distance between A & B. And the next time a similar problem arose I would have been empowered with the ability to choose between two tools to get the job done. So the next time your spouse picks up a nail and a strappy little Manolo Blahnik to hang that shot of Rusty catching his first Frisbee, gently remove the $500 shoe from their eager little hands and give them a $3 hammer.
Technorati tags: CAD management February 21 Qualities of a Good CAD TestIn my career I have been asked to take surprisingly few CAD tests. There is only one that I can remember. The engineer interviewing me asked what was the best method to fill an irregular shaped area in AutoCAD. He was looking for hatch, I told him hatch, and I passed the test with a 100, A+. To this day I don't understand how he found that useful. But that was his litmus test and he was happy with it. Even though I never had a serious CAD test in my career, now, as a CAD manager, I find them an invaluable tool. A good CAD test will tell me a lot about a potential employee. An interview tells you a lot about a person that a CAD test won't, but a CAD test is where the rubber meets the road. There is no lying about your experience or misrepresenting yourself on a CAD test. The question is, "What makes a good CAD test?"
From the view of a potential employee there may be some mixed feelings about taking a CAD test. Most people will feel some level of anxiety. That is normal and is to be expected. There are a few that see a test as a way to show off their skills. I start grading a test, looking for these qualities, while explaining the rules to the interviewee. I don't deduct for those that are nervous, but I do add points for those whose fingers are itching to prove their mettle. I've heard of some interviewees taking offense when asked to take a CAD test, and actually refusing to take it. I've never interviewed anyone that has expressed any offense, but if someone did refuse, I simply wouldn't hire them. So test away, remove the chaffe from the wheat. And if you're not up to developing a test of your own, just ask them if they know how to use the hatch command.
Technorati tags: cad management February 16 Where's my alter ego?This past weekend I finally bit the bullet and created an account on Second Life, known as SL to the veterans. Before joining I couldn't help but imagine SL as a real life, known as RL to the SL veterans, Lord of the Flies, full of anonymous people running around unchecked and behaving badly while hiding behind specious 3D avatars. Within minutes I discovered just how easy it would be to do so. Upon entering SL the first task is to learn the basics. A couple of tutorials walk you through moving around, interacting with objects, and setting your appearance. It's not easy to create an accurate representation of your real self. It's much easier to simply drag and drop your way into a look that you'd have trouble achieving in RL with 8 hours a day in the gym with Arnold Schwarzenegger's personal trainer. You can even give yourself a sex change. Click...Drag. Look ma, I'm wearing your shoes. So I set out with bulging muscles barely contained beneath my skin tight wife beater in search of other Second Lifer's interested in some intellectual chatting. I found some. My first encounter went something like this.
Fortunately I'm a veteran of newsgroups and other public forums and wasn't discouraged by the high level of intellect of this exchange. I pressed on and noticed a lone figure on the horizon. I flew closer for a better look. I believe that learning to fly is the final tutorial before you're released into the SL wilderness. As I flew closer, banking hard to the right in what I thought to be a terrific fly by, the figure formed into a woman with jet black hair cut into a severe short crop that reminded me of an 80's hairdo right out of an MTV video. To complete the look she was wearing black pants, a black shirt with shredded sleeves, no shoes, and a green and red stripped necktie. However, what really caught my attention was her green skin mottled with dark spots. Obviously she was just a little lost, like me, and was off in this remote corner looking for someone with whom to share her deep cerebral thoughts. I guessed that she had mistakenly eaten some bad SL mushrooms to end up in her current state. I introduced myself, and immediately apologized for my lack of clothing. I had been trying on bathing suites by the pool and Click...Drag removed them. I couldn't remember what to Click...Drag to put them back on. Look ma, I've been swimming in the cold end of the pool. She was definitely an intellect. I missed half of our conversation while I thumbed through my dictionary looking up several words that I didn't recognize from her first sentence. She typed like the wind and her end of the conversation grew off the screen. My three and four letter interjections didn't slow her a bit. They may have even spurred her on. Of course I missed all of that part of the conversation because I was engrossed in reading her bio. It turns out that she was a member of a number of lesbian groups and more than a couple of other sexually oriented organizations that I never knew existed. I imagine that if I really had been the single 21 year old multi-millionaire that my bio claimed I would have been thinking that I had struck gold. I returned to the conversation.
I may try again this weekend. It'll just depend on whether or not I feel like myself.
Technorati tags: Second Life February 04 CAD Manager Mistake #2Don't know everything. In CAD Manager Mistake #1, I talked about how dangerous it is to be too valuable to your CAD users and how they are more than willing to let you do their work for them if you are willing to do it. Along those same lines, they will let you do all of their thinking if you are willing to do so. As a CAD manager you know more about CAD software, construction methods, and drafting techniques than any of your users. With all that knowledge you can insert yourself as the top knowledge bank in the office. You can use this as a tool to climb your way into promotions and raises. Everyone will look up to you, the king of the mountain. And just like the game you played as a kid, someone will always be looking for a weakness, a way to knock you down so they can have their turn at the top. As exciting as that sounds, there is a better way. Don't hoard your knowledge in a vain attempt to be strong. Instead, work hard to share it. Be a teacher and a mentor to your users every chance that you get. Focus your energies on the CAD managers and power users reporting to you. They will become your support network. Empower them to teach and mentor the CAD users below them, just as you do for them. This spreading of knowledge doesn't lesson you, it strengthens you exponentially with each leg that is added to your support network. Instead of fighting your way to the top, stepping on all in your path, you will be pushed to the top, carried on the shoulders of those that you've helped.
Technorati tags: Autocad, cad management Visual Studio 2005 Code Snippets for the AutoCAD .NET API - Part 2
Now that you've decided that Code Snippets are greatest thing since dual core processors, you've learned the basics of creating and managing them, and you've learned of some of their more advanced features, let's look at a few snippets specific to AutoCAD. One word of warning, all of these examples are for C#. I'll see if I can get VB versions coded up and posted; or even better, I'll be more than happy to post your VB translations of them! One of my most used snippets is one for starting a Transaction. It is an Expansion and a SurroundsWith snippet. <?xml version="1.0" encoding="utf-8"?> Another common snippet is one that opens a Database object. <?xml version="1.0" encoding="utf-8"?> Here's a snippet to insert code that asks the user to select an entity, Editor.GetEntity(). I like this one, and snippets that insert the other GetXXX calls, because there can be a lot of setup code for the call and a lot of code to check the return values. It's easy code, but involves a lot of typing, unless you use a snippet to insert it of course.
<?xml version="1.0" encoding="utf-8"?> //Exit if an entity is not selected While these examples show inserting small peices of code, there's nothing wrong with snippets that insert entire procedures, or groups of procedures, or even entire class skeletons.
February 02 Visual Studio 2005 Code Snippets for the AutoCAD .NET APIIn a previous article I discussed how to use Visual Studio Code Snippets to reduce the amount of typing, the number of typos, and coding errors resulting from those typos. In this follow up article I'm going to show you where to find basic information on creating your own snippets, discuss when to use them instead of creating utility libraries, and talk about some of the more advanced features. I'll follow up this article with some example snippets specific to accessing the AutoCAD .NET API. The BasicsThere is a lot of information on the net on creating and managing snippets. I'm not going to rehash the basics here, but I will hit some highlights before passing you off to other sites that will get you up and running with creating basic code snippets and how to manage them.
The sites listed below will get you up to speed on all of those basics and more.
The problem with most of these sites is that they cover the basics, and they cover them well, but then they stop. The MSDN sites contain information beyond the basics, but it's not always easy to find. In the remainder of this article I will move beyond the basics and answer some burning snippet questions. Snippets vs. Utility ClassesWhen I first started creating snippets I found that they did speed up the coding process. It didn't take long, however, before I asked myself when should I create a code snippet versus when should I create little helper utility classes. I actually flailed around a bit on this one before deciding that for most of what I was doing, gluing together bits and pieces of the AutoCAD .NET API, code snippets were the better choice. Here's some guidance, the only thing that I could find other than what I found from my own experiences, from the MSDN site:
As programmers we're lazy and we want to use tools to decrease the amount of actual typing required to write our code. There will be times when a reusable utility class, or component, is a good choice, but put some thought into the problem first and see if creating a custom code snippet isn't the better option. Functions in SnippetsSnippets for C# support Functions that run when the snippet is inserted and modify what the snippet inserts. There are three built in functions: GenerateSwitchCases(), ClassName(), and SimpleTypeName(). Of these three I use the SimpleTypeName() often in my custom snippets. This function reduces the call to the supplied Type to as short as possible. Here is an excerpt from a snippet that uses the SimpleTypeName() function. <Literal Editable="false"> First note the attribute, Editable, is set to false. If this attribute is omitted it defaults to true. A Literal with Editable set to false defines a replacement element that the user doesn't fill out. Instead you can use the SimpleTypeName Function to fill out the replacement element. In the above example all occurrences of $PromptEntityOptions$ in the snippet will be replaced with the fully qualified name, Autodesk.AutoCAD.EditorInput.PromptEntityOptions. That is unless a using statement is at the top of the class: using Autodesk.AutoCAD.EditorInput; When this using statement exists the SimpleTypeName() function shortens the fully qualified name to, PromptEntityOptions. I do not have any examples of custom snippets using any of the other Functions, but you can read all about them on MSDN. Functions are unfortunately only supported in C# and J#, VB snippets do not support them. Snippet TypesThere are three types of snippets, Expansion, SurroundsWith, and Refactoring. A custom code snippet can be assigned as Expansion or SurroundsWith, or both. Custom snippets cannot be assigned as a Refactoring snippet. An Expansion snippet simply expands the code defined in the snippet at the current cursor location. A SurroundsWith snippet will be placed around any lines of code that are selected. This snippet excerpt shows a snippet that is both an Expansion and a SurroundsWith snippet. I'll provide the full snippet in my follow up article. <Header> To use this snippet as an Expansion snippet, type the shortcut, tr, and hit the Tab key twice. The code expands at the cursor location. To use it as a SurroundsWith snippet, select some existing lines of code, right click to pull up the context menu, and select the Surround With... option. Navigate to the desired snippet and select it. The snippet code will surround the code that was highlighted. | ||||||||