Hello everyone.
I've been using and learning Autocad for little over a year now, and would like to start actually learning customization. I'm just wondering what would be best for me to learn, considering the long term. My Dutch Autocad manual from 2007 states that LISP is a thing of the past and will dissappear, and I should learn VBA instead because it's a skill you can apply in many different software. My current company uses VBA a lot for customization of Autocad and Solidworks, so I'm already leaning toward learning it. Then again, when I look at the general picture, LISP seems to be still quite popular (at least judging from this board) while VBA seems to be getting sideswept in favor of .NET and it isn't even distributed along with Autocad anymore. For your information: I am new to programming in general (aside from some VBA I learned over 10 years ago in secondary school). Can anyone give me some advice on this issue?
I'm posting this here because I fear I will get more biased response if I post this in one of the specific customization forums.
Solved! Go to Solution.
Solved by Alfred.NESWADBA. Go to Solution.
Hi,
LISP is a tool for AutoCAD that imho will live a long time more, there are to much tools out there based on LISP in AutoCAD.
The part with VBA is mostly replaced by VB.NET is true, there are always rumors about VBA will not be available with next version of AutoCAD, and until 2013 it was
already hard to work with it as the VBA kernel was 32bit while AutoCAD is more and more running on 64bit and that was the reason of some performance issues. For 2014 and 2015 the VBA part was updated to version 7, that means it was a real 64bit implementation, so the performance issues are solved for this AutoCAD - VBA combination.
At least VB.NET (or any other dotNET based programming language) seems to be the most growing environment, not only for AutoCAD, also for other products like MS-Office products and a lot more. And my personal opinion: within the next years (as long as AutoCAD runs on Windows) the dotNET environment is the one I'm using for most of the applications and I guess I'm on a secure way.
HTH, - alfred -
It (kind of) depends on how much programming you want to learn. LISP as implemented in AutoCAD is fairly unique to AutoCAD; its reasonably easy to pick up but has some limits and isn't very transferable. dotNET requires more structured approach to learning proper programming techniques but provides much more opportunity both inside and outside AutoCAD. VBA is something of an odd-fish. As noted its rapidly becoming a programming orphan in the AutoCAD community as support dwindles and users migrate to dotNET.
Both benefit from a good understanding of what AutoCAD is actually doing e.g. entities are not "on" layers but have a layer name as a property; block definitions are not the same thing as block references; and so on.
Ok, thanks for the replies. I've decided I'm going to start learning some visual basic.net. The main reason is that it seems to be much better documented, and I can both learn from Autodesk itself ('my first plug-in' training) + there seems to be a good VB course on Lynda.com i can use. I have no idea if there's any recent guide to learning VBA for Autocad. (I've found a book from 2006 on the internet, but that seems ancient.)
It also just seems the smart choice when you look at it like a future investment. In 5 years time VBA might have vanished completely and I might not even work with Autocad anymore, but chances are VB.net will remain a useful skill.