wannabe Posted October 12, 2008 Posted October 12, 2008 Having spent four years as a CAD technician in a range of disciplines I am now looking into the possibility of educating myself in LISP and VBA. Ive worked through the tutorials for both that are contained within AutoCAD, and now I'm looking for a book to make the next step. Also, some advice would be good as to whether its worth investing my time into or not regarding career and even own business potential. Quote
swestbrook60 Posted October 13, 2008 Posted October 13, 2008 Having spent four years as a CAD technician in a range of disciplines I am now looking into the possibility of educating myself in LISP and VBA. Ive worked through the tutorials for both that are contained within AutoCAD, and now I'm looking for a book to make the next step. Also, some advice would be good as to whether its worth investing my time into or not regarding career and even own business potential. That is a difficult question to answer. I self-taught myself in LISP, VBA, and every other language I know except for FORTRAN back in Engineering school. It took me many years to realize I was missing some of the fundamentals of each language which would make my daily programming much easier. I suggest some type of formal education in any language you wish to learn, not only will it speed the learning curve up but it will give you a basis to draw from in your future explorations. As far as it being worth your time, I think it absolutely is worth any amount of effort. The secret to productivity is customization and automation and AutoCAD is one of the best applications when it comes to allowing that to happen. I started my career as a drafter on a board before computers were commonplace and now I own my own software company specializing in mechanical engineering design applications. You never know where your career will lead you, but it was my personal interest in computers, and AutoCAD since that was used in my job, that lead me to make programming my hobby. Over the course of the next 15 years or so, netowrking, programming and the like became the focus of my job also. So yes it can be done but that depends on the time and effort you are willing to put into it. If you chose that road, the educational process will never end, you must keep current with many topics. For example, late in life here I have returned to school at night and earned a BS and MS in Information Systems to learn all those fundamentals I missed as a self-taught programmer. I realize that sounds like way to much effort, but if you enjoy doing this type of work then it will seem like nothing. If you are thinking of your own business I would say its virtually required. Each project I get is completely different fromt the last, and I mean in every little detail. Every company you deal with will use AutoCAD differently and will have many other constraints (such as languages used, databases used, security requirements, programming methodology, variable naming, etc.) that you will have to adhere to. For example my 3 largest projects right now..one uses AutoCAD 2006, another uses AutoCAD Mechanical 2008, and the other uses Solid Edge as thier CAD system. Of the two AutoCAD users, ones uses modelspace only and the other uses both model and paperspace. Did I answer you question, or just make it worse? Quote
wannabe Posted October 13, 2008 Author Posted October 13, 2008 Yes, that seems to be quite a good answer, thanks. Coming from someone who has achieved what I want to achieve it certainly holds weight. I've recently started work for a major multi-discplined engineering firm and feel that a year or two here, which in terms of quality is quite a step up from previous working experiences, will allow me to get used to working to standards and high quality. But, after this, I think it would be best for me to work in a CAD design office to get an understanding of how I can operate as a company in the future and what scenarios to expect to find myself in. Going back to the Lisp/VBA, I think all I can do at the moment is to get a book and see whats online. However, I will at some point give my works a politely spoken ultimatum about training and hope that personal funds will spared in my pursuit of CAD programming excellence. Again, if you can advise on any or all of this, in particular what type of books, courses would be best part-time, I would really appreciate it. Quote
swestbrook60 Posted October 13, 2008 Posted October 13, 2008 Yes, that seems to be quite a good answer, thanks. Coming from someone who has achieved what I want to achieve it certainly holds weight. I've recently started work for a major multi-discplined engineering firm and feel that a year or two here, which in terms of quality is quite a step up from previous working experiences, will allow me to get used to working to standards and high quality. But, after this, I think it would be best for me to work in a CAD design office to get an understanding of how I can operate as a company in the future and what scenarios to expect to find myself in. Going back to the Lisp/VBA, I think all I can do at the moment is to get a book and see whats online. However, I will at some point give my works a politely spoken ultimatum about training and hope that personal funds will spared in my pursuit of CAD programming excellence. Again, if you can advise on any or all of this, in particular what type of books, courses would be best part-time, I would really appreciate it. I don;t know any book names off the top of my head, but be aware there are two types of books on any programming language. I call the first a "how-to" book which will get you started in the learning process, and the "reference" book which you will use forever after you have learned the language basics. If you go buy VB, you will get a reference book with it, but that doesn't really help the beginner, spend the $40 on a book for Learning VB. The difference between the books is that a reference book will give 3 examples of how to do something, and each will have subtle changes. Without the basic understanding the newbie cannot easily distinguish between the three examples when there could be great differences. Check and see if your company offers tuition reimbursement. Usually this is a corporate benefit and as long as the subject matter deals with your current job they are required to offer it to you. I got my BS degree all on the company's dime, all I paid for was my books. Knowing you have to pay for it if you do not meet the grade requirements can be a good incentive too! In the long scope of things, consider learning a language such as C (any flavor) or Delphi since they both have many more capabilities than VB, not to mention a more professional looking user interface. Good luck! Quote
wannabe Posted October 13, 2008 Author Posted October 13, 2008 Thanks. Unfortunately, all non-essential training is off limits with my new company and it appears everything is going to be self funded and part time. Thanks again. Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 Actually, I am still a little confused on the best way to achieve my goals of becoming competent at CAD customisation and then subsequently starting my own business venture. I am not sure if I should try to learn LISP, VBA & another language like you mentioned all at the same time or individually, or even in blocks of say a month each. Do you think it is possible to get any on the job training for meeting my targets, if I look in the right places? Ideally I want a business that can outsource CAD work, CAD customisation and even help companies to develop their CAD practices. Also, I am confident that once equipped with knowledge I am able to pass onto others confidently and clearly, in a way which can make educating others easier than some more traditional methods. Therefore I would also potentially like my future business to offer training. Does it sound to others as though I am trying to bite off more than I can chew? And if not, how would be best for me to write a long term plan which I can follow and keep track of my progress and how far away from the required levels I am? Thanks in advance. (I am currently 23 years old if that is relevant) Quote
swestbrook60 Posted October 14, 2008 Posted October 14, 2008 Actually, I am still a little confused on the best way to achieve my goals of becoming competent at CAD customisation and then subsequently starting my own business venture. I am not sure if I should try to learn LISP, VBA & another language like you mentioned all at the same time or individually, or even in blocks of say a month each. Do you think it is possible to get any on the job training for meeting my targets, if I look in the right places? Ideally I want a business that can outsource CAD work, CAD customisation and even help companies to develop their CAD practices. Also, I am confident that once equipped with knowledge I am able to pass onto others confidently and clearly, in a way which can make educating others easier than some more traditional methods. Therefore I would also potentially like my future business to offer training. Does it sound to others as though I am trying to bite off more than I can chew? And if not, how would be best for me to write a long term plan which I can follow and keep track of my progress and how far away from the required levels I am? Thanks in advance. (I am currently 23 years old if that is relevant) Thgere are probably as many opinions of where to start as we have cad users. As far as AutoCAD goes, I started with LISP since it was the easiest to learn, but at the same time can be quite frustrating. I would suggest you start writing small LISP macro that help you create drawings in your job. I was drawing mechanical parts so my first LISP routines did things like draw a drilled hole with a counterbore with user input for start point, direction, drill size, counterbore diameter and depth. Basically I turned the drawing of 12 lines on 3 different layers into one command. I would focus on doing this type of thing for a while depending on how fast you are learning and what your drawing disipline provides to program. I make this suggestion for two reasons, first you are learning programming which is just logical progression regrdless of the language and secondly I think it is the fastest way for you to show productivity gains to your employer. Share all of these routines with your co-workers (once you have them working good) and learn how to create custom menu and toolbars for your whole CAD department that incorporate your LISP routines. My guess is your company will realize the productivity gains you have provided and may free up some money for some additional training. Your LISP programming will gradually grow in depth and complexity as your learn it and tackle more difficult problems. When you find LISP cannot do the job well enough, its time to learn VBA. Once again, when you switch to VBA start with some small projects to get your feet wet. I know I learn faster when I have a specific task to complete and not when I just sit and read a programming book. I don't think you can place a time line on this, it depends on how fast you learn and the areas of your specific drawings and disipline that allow customization. If an idea pops into your head then go try it. There is no one way to solve a problem through programming and no one way to approach programing education. Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 Your young enough to learn as much as you want if you set your mind to it. But I would consider what Autodesk is "planning" for the future before I just started hitting the books. We dont have a concrete date, but we know that at some point VBA is going to either stop working or be so slow (as an out of process function) that it wont really be a good option. It could be next year, it could be 3-5 years away, we just dont know. Does that mean you shouldn't learn VBA? By all means NO, its a great language to start with, and will give you a basis if you choose to move on to .Net. LISP is a completely different animal. Knowing LISP is important because it allows you to create commands to call your VBA commands, as that cannot be done directly in VBA. For me, the hardest part of learning a new language was when my brain compared it t the LISP I already knew, and it didn't work that way. If I had to start fresh, with no knowledge learned thus far, I would just dive into .Net. Its going to be around for a long time. Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 Thgere are probably as many opinions of where to start as we have cad users. As far as AutoCAD goes, I started with LISP since it was the easiest to learn, but at the same time can be quite frustrating. I would suggest you start writing small LISP macro that help you create drawings in your job. I was drawing mechanical parts so my first LISP routines did things like draw a drilled hole with a counterbore with user input for start point, direction, drill size, counterbore diameter and depth. Basically I turned the drawing of 12 lines on 3 different layers into one command. I would focus on doing this type of thing for a while depending on how fast you are learning and what your drawing disipline provides to program. I make this suggestion for two reasons, first you are learning programming which is just logical progression regrdless of the language and secondly I think it is the fastest way for you to show productivity gains to your employer. Share all of these routines with your co-workers (once you have them working good) and learn how to create custom menu and toolbars for your whole CAD department that incorporate your LISP routines. My guess is your company will realize the productivity gains you have provided and may free up some money for some additional training. Your LISP programming will gradually grow in depth and complexity as your learn it and tackle more difficult problems. When you find LISP cannot do the job well enough, its time to learn VBA. Once again, when you switch to VBA start with some small projects to get your feet wet. I know I learn faster when I have a specific task to complete and not when I just sit and read a programming book. I don't think you can place a time line on this, it depends on how fast you learn and the areas of your specific drawings and disipline that allow customization. If an idea pops into your head then go try it. There is no one way to solve a problem through programming and no one way to approach programing education. I work for a large Multi-disciplined engineering firm at the moment who already have a lot of custom LISP routines etc. But comparing this to previous employers who are not so skilled and resourced in CAD customisation is the market I am looking to exploit in the future. So, where the dis-advantage of working for a large company, and not really being able to show significant improvements to the way they operates, works against me, on the other hand to me it is excellent experience for when I am operating alone. Although, I suppose there is a small opportunity to improve my current role. I do plan to work through books, but I as time goes by I intend to use forums such as this to request tasks from people as experience at programming. Really appreciate your reply, thanks. Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 Your young enough to learn as much as you want if you set your mind to it. But I would consider what Autodesk is "planning" for the future before I just started hitting the books. We dont have a concrete date, but we know that at some point VBA is going to either stop working or be so slow (as an out of process function) that it wont really be a good option. It could be next year, it could be 3-5 years away, we just dont know. Does that mean you shouldn't learn VBA? By all means NO, its a great language to start with, and will give you a basis if you choose to move on to Net. LISP is a completely different animal. Knowing LISP is important because it allows you to create commands to call your VBA commands, as that cannot be done directly in VBA. For me, the hardest part of learning a new language was when my brain compared it t the LISP I already knew, and it didn't work that way. If I had to start fresh, with no knowledge learned thus far, I would just dive into Net. Its going to be around for a long time. Interesting to say the least. I had no idea VBA was about to become obsolete as a component of AutoCAD. All the information you guys are giving suggests I should put all my focus into learning LISP. I really wanted to learn VBA because it can create drawings from just code and interact with other software; and no-one seems to specialise in it. But if its about to become obsolete then its pointless me continuing. Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 I didn't say it was pointless, I just said you should consider it might go away sooner than later. I use VBA everyday to automate everything I can. But I am learning C# because I know that someday, I will have to give it up Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 I didn't say it was pointless, I just said you should consider it might go away sooner than later. I use VBA everyday to automate everything I can. But I am learning C# because I know that someday, I will have to give it up Ok, thanks again. I'll have a think over the coming weeks and look into what you have mentioned about other languages. If i did learn VBA and it became obsolete then at least its programming experience. Maybe some companies who continue to operate with older software may extend the duration that VBA is useful for. If you were me, though, how would you set about achieving my goals? What language would you learn first? Would you try to learn two at the same time, etc.. Cheers. Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 If I were you, I would learn some basic LISP that you could use immediately. Define some shortcut commands and learn how LISP works. Then I would either learn VBA or a .Net language. Using your new LISP knowledge, you could run your VBA macros from the command prompt. (Something you cannot do easily in vba, but very easy to accomplish with LISP) I have some papers I wrote for learning VBA, I can post to get you started. Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 If I were you, I would learn some basic LISP that you could use immediately. Define some shortcut commands and learn how LISP works. Then I would either learn VBA or a .Net language. Using your new LISP knowledge, you could run your VBA macros from the command prompt. (Something you cannot do easily in vba, but very easy to accomplish with LISP) I have some papers I wrote for learning VBA, I can post to get you started. Okay, with the logic provided in this thread I will set about making LISP my current priority but will still remain keen in VBA and to educating myself in it. I would be very grateful if you would share training material as you mentioned; I think I may need to accrue a higher post count before I can sent private messages. Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 just a couple more and it will kick over and give you PM ability Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 BTW did you see this? http://www.cadtutor.net/forum/showthread.php?p=178997#post178997 Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 BTW did you see this?http://www.cadtutor.net/forum/showthread.php?p=178997#post178997 Yeah, definitely kept tabs on that thread. Hopefully I will be able to amend my routine to the correct formate and by this time tomorrow I will have more questions for you . Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 Although I was trying to make my text justified middle centre at the point of creation. Basically I created a drawing that saved itself and contained a circle with some text in at coordinates I specified in the macro. But I think your code should be helpful enough, whilst giving me a bit to think about - which is ideal. Quote
CmdrDuh Posted October 14, 2008 Posted October 14, 2008 objTxt.Alignment = acAlignmentMiddleCenter Quote
wannabe Posted October 14, 2008 Author Posted October 14, 2008 objTxt.Alignment = acAlignmentMiddleCenter I did manage to find that in that CAD help window. I just wondered where it would need to go and if I would need to declare it, but ran out of time trying combinations at work. Anyway, I will have a play at work tomorrow. I think the example code you showed, showing how to amend already created text should be enough if I think about it. Thanks again for your help. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.